Cara membuat Running Text on Seven Segment dengan ATMega. Pesanannya mas endrew minta bikinin running text yang berjalan di seven segment, hahaha secara males mengkodekan huruf yang mau ditulis dalam membuat running text di seven segment mending ngopas angka 0 – 9 buat dirunning. 

Biar terkesan natural, data yang dikeluarkan selain bilangan 0 – 9 juga ada nilai2 kosong didepan dan dibelakang bilangan untuk mematikan tampilan seven segment, jadi terkesannya gerak dari sebelah kanan, kekiri, setelah semua habis baru muncul lagi dari sebelah kanan.

Program running led di seven segment nya kek gini; mangap nek nggak diringkas jadi dikit, lagi males hahahaha

/*****************************************************
This program was produced by the
CodeWizardAVR V2.03.4 Standard
Automatic Program Generator
© Copyright 1998-2008 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com

Project : running 7 segment
Version :
Date : 20/06/2012
Author : priyo harjiyono
Company : http://anotherorion.com
Comments:
cara membuat tulisan seven segment berjalan di cvavr

Chip type : ATmega16
Program type : Application
Clock frequency : 4,001000 MHz
Memory model : Small
External RAM size : 0
Data Stack size : 256
*****************************************************/

#include <mega16.h>
#include <delay.h>

// Declare your global variables here

void main(void)
{
// Declare your local variables here
unsigned int geser, tampil, kaki, tunda, tunda1;
unsigned char data[]={0,0,0,0,0,0,0,00x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f, 0x6f,0,0,0,0,0,0,0,0};
// Input/Output Ports initialization
// Port A initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTA=0x00;
DDRA=0x00;

// Port B initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTB=0x00;
DDRB=0x00;

BACA JUGA:   Bermain dengan codevision AVR (3) gerbang logika dasar NAND dan NOR

// Port C initialization
// Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out
// State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0
PORTC=0x00;
DDRC=0xFF;

// Port D initialization
// Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out
// State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0
PORTD=0x00;
DDRD=0xFF;

// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
// Mode: Normal top=FFh
// OC0 output: Disconnected
TCCR0=0x00;
TCNT0=0x00;
OCR0=0x00;

// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: Timer 1 Stopped
// Mode: Normal top=FFFFh
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer 1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;

// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: Timer 2 Stopped
// Mode: Normal top=FFh
// OC2 output: Disconnected
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;

// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
// INT2: Off
MCUCR=0x00;
MCUCSR=0x00;

// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x00;

// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;

while (1)
{
// Place your code here
kaki=1;
for(geser=0;geser<20;geser++) //menggeser nilai seven segment agar maju satu step kedepan
{
for(tunda1=0;tunda1<50;tunda1++) //untuk memberikan tunda agar nilai tidak langsung bergeser
{
for(tampil=0;tampil<8;tampil++) //nilai total 7segment yang dipakai yaitu 8 buah 7segment
{
for(tunda=0;tunda<20;tunda++) //untuk memberikan tunda, menampilkan 8 karakter secara bersamaan
{
PORTD=kaki;
delay_us(5);
if(tampil+geser>20)
{
PORTC=0xff;
}
else
{
PORTC=~data[tampil+geser];
}delay_us(5);
}
kaki=kaki<<1;
if(kaki==0)
{
kaki=1;
//PORTC=0;
}
}
}
}
};
}

BACA JUGA:   Membuat Papan Skor ATmega16 dengan Codevision AVR

Dari program di atas make 4 kali for, yaitu for geser, tunda1, tampil dan tunda. Tunda1 dan tunda digunakan untuk men-delay tampilan seven segment agar tidak terlalu cepat berubah (for tampil) dan tidak terlalu cepat bergeser(for geser), dengan kecepatan perubahan nilai seven segment selama 5 mikro second tentu jika tidak menggunakan variable tunda maka semua seven segment akan terlihat bernilai sama, sementara jika kita tidak menggunakan tunda1 maka tampilan seven segment akan berjalan sangat cepat, kurang nyaman untuk melihat adanya “pergerakan” dari tulisan yang ingin ditampilkan.

Untuk rangkaian skematiknya dapat dilihat pada gambar dibawah

Begitu kira2, klo kurang jelas ya wis hahaha.

running text proteus dengan 7 segmen, cara membuat teks berjalan atmega 16, cara membuat huruf berjalan dengan seven segment diproteus, aplikasi penggunaan huruf bergeser seven segmen, cara program running led, cara membuat LCD teks berjalan 7 segment traffic light dengan ATMEGA 8535, cara membuat running 7 segment menggunakan avr, membuat running text dengan 7 segment, led berjalan menggunakan seven segment, running text 7 segment cvavr
News Reporter
Priyo Harjiyono, blogger kelahiran Cilacap yang kini menjadi warga Ngayogyakarta Hadiningrat, baginya blog adalah dunia untuk menciptakan mimpi2nya. Saat ini masih disibukkan sebagai pembelajar dalam dunia pendidikan.