Assalamualaikum wr. wb.
Pada kesempatan kali ini saya akan memberikan tutorial TUTORIAL CARA MEMBUAT SIMULASI LCD RUNNING TEXT DENGAN MENGGUNAKAN PROTEUS & CODEVISION AVR DARI KANAN KE KIRI....
1.
Download
softwarenya terlebih dahulu di sini.
2.
Setelah
didownload, buka folder yang berhasil didownload.
3.
Klik
Next.
4.
Centang
yang diberi kotak dan klik Next.
5.
Klik
Next.
6.
Pilih
letak folder hasil instalan dan klik Next.
7.
Pilih
Typical. Isi Name dan Company dan klik Install.
8.
Tunggu
sampai proses selsai diinstall.
10.
Klik Next.
Tahap selanjutnya
1.
Buka
aplikasi CodeVisionAVR yang telah diinstal (biasanya ada di Desktop)
2.
Klik
File – New – Project.
3.
Masukkan kode program (AVR) berikut ini
#include
<mega16.h>
#include
<delay.h>
#asm
.equ __lcd_port=0x18 ;PORTB
#endasm
#include
<lcd.h>
// Declare
your global variables here
char kolom=8; (nomor kolom misalnya angka di
isi 8 maka outputnya keluar dari nomor 8 )
void
main(void)
{
// Declare
your local variables here
//
Input/Output Ports initialization
// Port A
initialization
// Function:
Bit7=In Bit6=In Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In
DDRA=(0<<DDA7)
| (0<<DDA6) | (0<<DDA5) | (0<<DDA4) | (0<<DDA3) |
(0<<DDA2) | (0<<DDA1) | (0<<DDA0);
// State:
Bit7=T Bit6=T Bit5=T Bit4=T Bit3=T Bit2=T Bit1=T Bit0=T
PORTA=(0<<PORTA7)
| (0<<PORTA6) | (0<<PORTA5) | (0<<PORTA4) | (0<<PORTA3)
| (0<<PORTA2) | (0<<PORTA1) | (0<<PORTA0);
// Port B
initialization
// Function:
Bit7=In Bit6=In Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In
DDRB=(0<<DDB7)
| (0<<DDB6) | (0<<DDB5) | (0<<DDB4) | (0<<DDB3) |
(0<<DDB2) | (0<<DDB1) | (0<<DDB0);
// State:
Bit7=T Bit6=T Bit5=T Bit4=T Bit3=T Bit2=T Bit1=T Bit0=T
PORTB=(0<<PORTB7)
| (0<<PORTB6) | (0<<PORTB5) | (0<<PORTB4) | (0<<PORTB3)
| (0<<PORTB2) | (0<<PORTB1) | (0<<PORTB0);
// Port C
initialization
// Function:
Bit7=In Bit6=In Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In
DDRC=(0<<DDC7)
| (0<<DDC6) | (0<<DDC5) | (0<<DDC4) | (0<<DDC3) |
(0<<DDC2) | (0<<DDC1) | (0<<DDC0);
// State:
Bit7=T Bit6=T Bit5=T Bit4=T Bit3=T Bit2=T Bit1=T Bit0=T
PORTC=(0<<PORTC7)
| (0<<PORTC6) | (0<<PORTC5) | (0<<PORTC4) | (0<<PORTC3)
| (0<<PORTC2) | (0<<PORTC1) | (0<<PORTC0);
// Port D
initialization
// Function:
Bit7=In Bit6=In Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In
DDRD=(0<<DDD7)
| (0<<DDD6) | (0<<DDD5) | (0<<DDD4) | (0<<DDD3) |
(0<<DDD2) | (0<<DDD1) | (0<<DDD0);
// State:
Bit7=T Bit6=T Bit5=T Bit4=T Bit3=T Bit2=T Bit1=T Bit0=T
PORTD=(0<<PORTD7)
| (0<<PORTD6) | (0<<PORTD5) | (0<<PORTD4) | (0<<PORTD3)
| (0<<PORTD2) | (0<<PORTD1) | (0<<PORTD0);
//
Timer/Counter 0 initialization
// Clock
source: System Clock
// Clock
value: Timer 0 Stopped
// Mode:
Normal top=0xFF
// OC0 output:
Disconnected
TCCR0=(0<<WGM00)
| (0<<COM01) | (0<<COM00) | (0<<WGM01) | (0<<CS02) |
(0<<CS01) | (0<<CS00);
TCNT0=0x00;
OCR0=0x00;
//
Timer/Counter 1 initialization
// Clock
source: System Clock
// Clock
value: Timer1 Stopped
// Mode:
Normal top=0xFFFF
// OC1A
output: Disconnected
// OC1B
output: Disconnected
// Noise
Canceler: Off
// Input
Capture on Falling Edge
// Timer1
Overflow Interrupt: Off
// Input
Capture Interrupt: Off
// Compare A
Match Interrupt: Off
// Compare B
Match Interrupt: Off
TCCR1A=(0<<COM1A1)
| (0<<COM1A0) | (0<<COM1B1) | (0<<COM1B0) | (0<<WGM11)
| (0<<WGM10);
TCCR1B=(0<<ICNC1)
| (0<<ICES1) | (0<<WGM13) | (0<<WGM12) | (0<<CS12) |
(0<<CS11) | (0<<CS10);
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: Timer2 Stopped
// Mode:
Normal top=0xFF
// OC2
output: Disconnected
ASSR=0<<AS2;
TCCR2=(0<<PWM2)
| (0<<COM21) | (0<<COM20) | (0<<CTC2) | (0<<CS22) | (0<<CS21)
| (0<<CS20);
TCNT2=0x00;
OCR2=0x00;
//
Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=(0<<OCIE2)
| (0<<TOIE2) | (0<<TICIE1) | (0<<OCIE1A) | (0<<OCIE1B)
| (0<<TOIE1) | (0<<OCIE0) | (0<<TOIE0);
// External
Interrupt(s) initialization
// INT0: Off
// INT1: Off
// INT2: Off
MCUCR=(0<<ISC11)
| (0<<ISC10) | (0<<ISC01) | (0<<ISC00);
MCUCSR=(0<<ISC2);
// USART
initialization
// USART
disabled
UCSRB=(0<<RXCIE)
| (0<<TXCIE) | (0<<UDRIE) | (0<<RXEN) | (0<<TXEN) |
(0<<UCSZ2) | (0<<RXB8) | (0<<TXB8);
// Analog
Comparator initialization
// Analog
Comparator: Off
// The
Analog Comparator's positive input is
// connected
to the AIN0 pin
// The
Analog Comparator's negative input is
// connected
to the AIN1 pin
ACSR=(1<<ACD)
| (0<<ACBG) | (0<<ACO) | (0<<ACI) | (0<<ACIE) |
(0<<ACIC) | (0<<ACIS1) | (0<<ACIS0);
SFIOR=(0<<ACME);
// ADC
initialization
// ADC
disabled
ADCSRA=(0<<ADEN)
| (0<<ADSC) | (0<<ADATE) | (0<<ADIF) | (0<<ADIE) |
(0<<ADPS2) | (0<<ADPS1) | (0<<ADPS0);
// SPI
initialization
// SPI
disabled
SPCR=(0<<SPIE)
| (0<<SPE) | (0<<DORD) | (0<<MSTR) | (0<<CPOL) |
(0<<CPHA) | (0<<SPR1) | (0<<SPR0);
// TWI
initialization
// TWI
disabled
TWCR=(0<<TWEA)
| (0<<TWSTA) | (0<<TWSTO) | (0<<TWEN) | (0<<TWIE);
lcd_init(16);
while (1)
{
// Place your code here
for (kolom=8;kolom>=0;kolom--){ (untuk running text dari kanan ke kiri)
lcd_clear();
lcd_gotoxy(kolom,0);
lcd_putsf("MUHAMMAD"); (Isi text pertama sesuai selera :V)
lcd_gotoxy(kolom,1);
lcd_putsf("NOFRAN"); (Ini text ke dua *yg bawahnya*)
delay_ms(250); (delay
waktu terserah elu mau ngasih angka berapa, semakin kecil
};
maka semakin cepat dan sebaliknya)
}
}
Gue kasih
gambarnya biar ngerti…
Kemudian
compile lalu save (replace save)
1.
Buka proteus kemudian bikin skemanya kayak ini :
Devices yang di butuhkan:
Kalau
sudah, klik 2 kali At16nya lalu buka program file AVR yang kita buat tadi
(.cof).
Kemudian simulasikan
FILE : DOWNLOAD
Terima kasih semoga bermanfaat... ^_^
Tidak ada komentar:
Posting Komentar