SlideShare a Scribd company logo
2
Most read
3
Most read
5
Most read
CARA MEMBUAT SIMULASI LCD RUNNING TEXT
DENGAN MENGGUNAKAN PROTEUS & CODEVISION
AVR
Posted by : Muhammad NurohmanSelasa, 25
November 2014
Hai Teman Mikon kali ini saya akan menulis artikel tentang bagaimana caranya membuat
Running Text LCD dengan menggunakan aplikasi Proteus dan Code Vision AVR untuk
menulis programnya. Dan IC yang saya gunakan kali ini adalah IC Atmega 16 yang
memiliki 4 port dan 40 Pin, untuk mengetahui lebih jauh tentang Atmega 16 silahkan
kunjungi situs berikut Atmega16.
Baiklah Langkah Pertama yang harus kita lakukan adalah buka software Proteus anda, jika
belum terinstal silahkan download pada link berikut ini Proteus 7.1 . Jika sudah terinstal
silahkan buka software proteus lalu pilih komponen komponen yang dibutuhkan (Lihat pada
gambar).
Komponen :
Cara memilih komponen diatas bagi kalian yang belum mengetahuinya silahkan cari pada
Menubar yang berada disebelah kiri yang bernama (Komponen Mode) berada pada
tepatnya di bawah kursor. Lihat Gambar :
Keterangan :
1. Bulatan Warna Orange adalah Component Mode
2. Bulatan Warna Merah adalah Pick From Library (Untuk Mencari
Komponen dengan cara mengetik nama komponen tersebut).
3. Bulatan Warna Hijau untuk membuat Ground Dan Power
Langkah selanjutnya adalah membuat rangkaian LCD Running Text dengan cara mengklik
kiri komponen yang berada dalam kotak kemudian letakan kedalam papan gambar dengan
cara mengklik kiri. Silahkan ikutin gambar berikut.
Rangkaian
CARA MEMBUAT PROGRAM DENGAN
MENGGUNAKAN AVR
Jika Rangkaian sudah selesai mari kita buat AVR codenya untuk memasukkannya kedalam
Chip Atmega16 agar rangkaian dapat bekerja sesuai dengan apa yang kita inginkan
(Running Text Berjalan).
Baiklah langkah peratama dalam pengkodingannya adalah dengan cara membuka aplikasi
AVR, bagi kalian yang belum punya silahkan download pada link berikut CodeVisionAVR,
jika sudah silahkan jalankan AVR anda kemudian Pilih File kemudian New ketika ada
pilihan Create New File pilihlah Project kemudian Yes lalu pilih AVR Chips Type,
karna kita menggunakan Atmega16 maka kita pilih pilihan pertama atau yang paling atas
kemudian OK. dan akan keluar tampilan sebagai berikut.
Keterangan
1. Pilihlah Chip Atmega16 pada menu Chip
2. Ubah Clock menjadi 12.000000 Hhz
Jika sudah kliklah menu Ports yang berada disebelah Chip Karna disini kita menggunakan
PORT A maka PORT A lah yang harus kita ubah silahkan lihat gambar berikut :
Keterangan :
Pada Port A silahkan ubah Data Direction menjadi seperti gambar disamping dengan cara
klik pada tulisan in menjadi out. Kemudian pada Pullup/Output Value karna disini kita
menggunakan Low Aktiv makan dirubah yang tadinya 0 menjadi 1 bisa lihat pada gambar
dengan cara mengklik pada angka 0 tersebut menjadi angka 1 dari bit 0 sampai bit 7.
Kemudian karna kita menggunakan LCD maka pada bagian Alphanumeric LCD harus
diaktivkan dengan cara lihat pada gambar dibawah ini :
Beri Centang pada Enable Alphanumeric LCD Support (yang diberi tanda merah).
Jika sudah simpan dengan cara mengkilik gambar yg berbentuk seperti gear, Lihat pada
gambar :
Klik yang diberi tanda warna merah Kemudian simpan didalam folder yang akan anda buat
gunakan nama yang sama agar anda tidak bingung dalam mencarinya nanti karna akan
ada 3x Saves.
Jika sudah Silahkan anda tulis Codenya seperti berikut
/*****************************************************
This program was produced by the
CodeWizardAVR V2.05.0 Evaluation
Automatic Program Generator
© Copyright 1998-2010 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com
Project :
Version :
Date : 11/23/2014
Author : Freeware, for evaluation and non-commercial use only
Company :
Comments:
Chip type : ATmega16
Program type : Application
AVR Core Clock frequency: 12.000000 MHz
Memory model : Small
External RAM size : 0
Data Stack size : 256
*****************************************************/
#include <mega16.h>
#include <delay.h>
// Alphanumeric LCD Module functions
#include <alcd.h>
// Declare your global variables here
char kolom =0;
void main(void)
{
// Declare your local variables here
// Input/Output Ports initialization
// Port A initialization
// Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out
Func2=Out Func1=Out Func0=Out
// State7=1 State6=1 State5=1 State4=1 State3=1 State2=1
State1=1 State0=1
PORTA=0xFF;
DDRA=0xFF;
// 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;
// Port C 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
PORTC=0x00;
DDRC=0x00;
// Port D 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
PORTD=0x00;
DDRD=0x00;
// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
// Mode: Normal top=0xFF
// OC0 output: Disconnected
TCCR0=0x00;
TCNT0=0x00;
OCR0=0x00;
// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: Timer1 Stopped
// Mode: Normal top=0xFFFF
// OC1A output: Discon.
// OC1B output: Discon.
// 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=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: Timer2 Stopped
// Mode: Normal top=0xFF
// 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;
// USART initialization
// USART disabled
UCSRB=0x00;
// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;
// ADC initialization
// ADC disabled
ADCSRA=0x00;
// SPI initialization
// SPI disabled
SPCR=0x00;
// TWI initialization
// TWI disabled
TWCR=0x00;
// Alphanumeric LCD initialization
// Connections specified in the
// Project|Configure|C Compiler|Libraries|Alphanumeric LCD
menu:
// RS - PORTA Bit 0
// RD - PORTA Bit 1
// EN - PORTA Bit 2
// D4 - PORTA Bit 4
// D5 - PORTA Bit 5
// D6 - PORTA Bit 6
// D7 - PORTA Bit 7
// Characters/line: 8
lcd_init(16);
lcd_clear();
lcd_gotoxy(0,0);
lcd_putsf("NAMA");
while (1)
{
// Place your code here
for (kolom=0; kolom<=15; kolom++){
lcd_clear();
lcd_gotoxy(0,0);
lcd_putsf("NAMA :");
lcd_gotoxy(kolom,1);
lcd_putsf("M. NUROHMAN");
delay_ms(50);
}
}
}
Catatan : Pada Bagian Header ditambahkan Fungsi delay dengan cara
menuliskan #include <delay.h>
Jika sudah selesai silahkan anda Built The Project, Lihat Gambar :
Klik yang diberi tanda warna merah jika tidak ada eror warning makan Code anda tersebut
sudah benar.
Kemudian Jika sudah selesai kita kembali lagi pada Rangkaian LCD Running Text yang
tadi kita buat di software Proteus, Klik 2x pada IC Atmega16 untuk memasukkan kode AVR
yang barusan kita buat lalu akan keluar tampilan seperti berikut ini.
Klik yang diberi tanda warna merah, kemudian cari dimana anda tandi menyimpan folder
AVR yang telah dibuat, kemudian carilah foler EXE lalu double Klik pada foler EXE tsb
kemudian akan tampil beruba file yang berekstensi Intel Hex File double klik pada file
tersebut kemduian OK.
Setelah semuanya selesai kini anda dapat mensimulasikan LCD Running Text tersebut
dengan cara klik Play yang berada pada sisi bawah kiri Proteus kemudian nama yang
bertuliskan M. Nurohman akan berjalan dari kiri ke kanan dan untuk hasilnya silahkan lihat
gambar dibawah ini.
LCD Running Text Berjalan
Semoga artikel kali ini bermanfaat bagi kalian semua, terima kasih atas perhatiannya
semoga bermanfaat amiiin :) Suksess Selalu
Latihan berikut ini untuk membuat tampilan LCD berjalan di baris ke 2 nya (running text). LCD 16x2
diletakan di PortB sedangkan mikrokontroler memakai ATmega8535. Untuk merubah kecepatan da lam
menjalankan text-nya dirubah dengan nilai di delay-nya. Delay dalam satuan ms.
Compiler yang dipakai adalah Codevision AVR dan simulasi Proteus.
Jika ada yang ingin men-download program dan simulasi di proteus silahkan ke link berikut ini:
http://www.4shared.com/rar/n9yqh5_b/Text_Running.html
Berikut Listing Program Running Text di Codevision AVR;
/*****************************************************
Chip type : ATmega8535
Program type : Application
AVR Core Clock frequency: 12.000000 MHz
Memory model : Small
External RAM size : 0
Data Stack size : 128
*****************************************************/
#include (mega8535.h>
#include (lcd.h>
#include (delay.h>
#include (string.h>
#include (stdio.h>
// Alphanumeric LCD Module functions
#asm
.equ __lcd_port=0x18 ;PORTB
#endasm
// Standard Input/Output functions
// Global variables
char buffer_lcd[]="Selamat datang di Blogger Mohammad Ardi.Berbagi dalam ilmu pengetahuan.Semoga
latihan ini bisa memperdalam ilmu pemprograman di codevision avr.";
// Function prototype
void sett_REGs(void);
void tampilan(void);
// Main routine (super loop)
void main(void){
sett_REGs();
lcd_init(16);
_lcd_ready();
lcd_clear();
for(;;){// Endless loop, podo karo "while(1)"
tampilan();
}
}
// Setting register
void sett_REGs(void){
//Define I/O
DDRA = 0x00;
PORTA = 0x00;
DDRB = 0xFF;
PORTB = 0x00;
DDRC = 0x00;
PORTC = 0x00;
DDRD = 0xFF;
PORTD = 0x00;
}
// Display routine :D
void tampilan(void){
unsigned int i,j,k;
char lcd_number = 16;
unsigned int data_len = strlen(buffer_lcd);
_lcd_ready();
lcd_clear();
lcd_gotoxy(0,0);
lcd_putsf("Codevision AVR");
for (i=lcd_number; i>=1; --i){
lcd_gotoxy(i,1);
for (j=0; j<(lcd_number-i); j++){
lcd_putchar(buffer_lcd[j]);
}
delay_ms(100);
};
k=0;
for (i=0; i<=data_len; i++){
k++;
lcd_gotoxy(0,1);
for (j=0; j<16; j++){
if (buffer_lcd[j+k] == NULL){
return;
}
lcd_putchar(buffer_lcd[j+k]);
}
delay_ms(100);
};
}

More Related Content

PDF
Running Text on LCD ATMEGA 8535
PPSX
1. peripheral and interface
PDF
Mikrokontroler (arduino) 2019
PPT
Antilock Brake System (ABS)
PPTX
Flowchart dan Coding Program Traffic Light dengan At-Mega 16
PPTX
Ppt komponen komputer - sri paramudita x ad2
PPTX
Dasar dasar mikrokontroler
PPTX
Ppt android
Running Text on LCD ATMEGA 8535
1. peripheral and interface
Mikrokontroler (arduino) 2019
Antilock Brake System (ABS)
Flowchart dan Coding Program Traffic Light dengan At-Mega 16
Ppt komponen komputer - sri paramudita x ad2
Dasar dasar mikrokontroler
Ppt android

What's hot (20)

PDF
2 input output dan internal memori
PPTX
Sistem Kelistrikan Sepeda Motor.pptx
PPTX
Presentasi Mikrokontroler
DOCX
Job sheet tkj kelas x
PPT
Komponen utama-mesin
PPTX
Komponen aktif
PPT
Arduino coding.ppt
PPTX
Pelatihan dasar plc
PDF
8 rangkaian-dasar-kontrol-motor-listrik
DOCX
SOAL PENGUKURAN
PPTX
PROSES BISNIS OTOMOTIF.pptx
PPT
Kelas 7 hardware komputer
DOCX
Laporan jobsheet 1
DOC
01 job sheet lampu dn sinyal/Instrumen
DOCX
Kd 3.5 jobsheet instalasi listrik sederhana
PPT
Arsitektur Komputer 1.ppt
DOCX
Sensor avanza
DOCX
Menjelaskan prinsip kerja dvd player
PPTX
Komponen Elektronika dasar.pptx
2 input output dan internal memori
Sistem Kelistrikan Sepeda Motor.pptx
Presentasi Mikrokontroler
Job sheet tkj kelas x
Komponen utama-mesin
Komponen aktif
Arduino coding.ppt
Pelatihan dasar plc
8 rangkaian-dasar-kontrol-motor-listrik
SOAL PENGUKURAN
PROSES BISNIS OTOMOTIF.pptx
Kelas 7 hardware komputer
Laporan jobsheet 1
01 job sheet lampu dn sinyal/Instrumen
Kd 3.5 jobsheet instalasi listrik sederhana
Arsitektur Komputer 1.ppt
Sensor avanza
Menjelaskan prinsip kerja dvd player
Komponen Elektronika dasar.pptx
Ad

Similar to Cara membuat simulasi lcd running text dengan menggunakan proteus (20)

DOCX
Membuat program running led menggunakan
PDF
6 modul avr
DOC
PPTX
Walking robot bergerak maju berhenti menggunakan atmega16
PPTX
Rancang Walking Robot Dengan Mikrokontroler Atmega16
PDF
Traffic Light Berbasis ATMega32A
DOCX
Pembuatan Walking Robot Motor DC Dengan Program ATmega Maju Berhenti
DOC
Makalah praktikum mikro
PPT
Jtag Debugger Untuk Atmel Avr
PPTX
Traffic light menggunakan Atmega16
PPTX
Rancang Traffic Light Menggunakan Mikrokontroler Atmega16
DOCX
PS2 Mouse Interfacing dengan pemrograman bahasa C
DOCX
Tutorial membuat project termometer dan jam digital menggunakan codevision av...
PDF
Modul dasar-mikrokontroler-bab-ii-kebutuhan-hardware-at mega16
DOCX
Membuat stopwatch menggunakan mikrokontroler atmega16 by muhammad kennedy gin...
PDF
97674720 buku-mikrokontroler-atmega8535-dengan-codevisionavr
PDF
Makalah mikroprosesor jam digital dengan LCD16X2
PPTX
Percobaan 12 led berbasis ATMega16 - BascomeAVR
PPT
Led project menggunakan at mega16
PDF
Modul packet-tracer
Membuat program running led menggunakan
6 modul avr
Walking robot bergerak maju berhenti menggunakan atmega16
Rancang Walking Robot Dengan Mikrokontroler Atmega16
Traffic Light Berbasis ATMega32A
Pembuatan Walking Robot Motor DC Dengan Program ATmega Maju Berhenti
Makalah praktikum mikro
Jtag Debugger Untuk Atmel Avr
Traffic light menggunakan Atmega16
Rancang Traffic Light Menggunakan Mikrokontroler Atmega16
PS2 Mouse Interfacing dengan pemrograman bahasa C
Tutorial membuat project termometer dan jam digital menggunakan codevision av...
Modul dasar-mikrokontroler-bab-ii-kebutuhan-hardware-at mega16
Membuat stopwatch menggunakan mikrokontroler atmega16 by muhammad kennedy gin...
97674720 buku-mikrokontroler-atmega8535-dengan-codevisionavr
Makalah mikroprosesor jam digital dengan LCD16X2
Percobaan 12 led berbasis ATMega16 - BascomeAVR
Led project menggunakan at mega16
Modul packet-tracer
Ad

Recently uploaded (20)

PDF
lembar kerja LMS tugas pembelajaran mendalam
PPTX
Bahan Presentasi Persamaan Elips .pptx
PDF
PPT IPS Geografi SMA Kelas X_Bab 1 Pengantar Geografi_May.pdf
DOCX
Modul Ajar Deep Learning PKWU Rekayasa Kelas 12 SMA Terbaru 2025
DOCX
CONTOH RANCANGAN MODUL PROYEK KOKURIKULER SMA 1.docx
DOCX
Modul Ajar Pembelajaran Mendalam Senbud Seni Rupa Kelas XII Terbaru 2025
DOCX
Modul Ajar Deep Learning Biologi Kelas 10 SMA Terbaru 2025
PDF
INSTRUMEN IMPLEMENTASI DAN REFLEKSI PERENCANAAN PEMBELAJARAN-ARNI.pdf
PPTX
Slide PPT Metode Ilmiah Kelas 7 SMP.pptx
DOCX
Modul Ajar Deep Learning PJOK Kelas 12 SMA Terbaru 2025
DOCX
Modul Ajar Deep Learning Bahasa Inggris Lanjutan Kelas 11 SMA Terbaru 2025
PPTX
Keterbatasan-Fasilitas-dalam-Mengajar-KKA.pptx
PDF
Digital Statecraft Menuju Indonesia Emas 2045: Diplomasi Digital, Ketahanan N...
DOCX
Modul Ajar Pembelajaran Mendalam Senbud Seni Teater Kelas XII Terbaru 2025
PPTX
MATERI MPLS TENTANG KURIKULUM DAN KEGIATAN PEMBELAJARAN
PDF
Deck Rumah Pendidikan untuk Mendukung Program Prioritas Kemendikdasmen.pdf
DOCX
Modul Ajar Deep Learning Prakarya Kerajinan Kelas 12 SMA Terbaru 2025
PDF
Gangguan Penglihatan Mata - presentasi biologi
PDF
883668952-KP-4-Modul-2-Kerangka-Pembelajaran-Mendalam.pdf
PPT
Teknologi-Pangan-Pertemuan-820728132309-.ppt
lembar kerja LMS tugas pembelajaran mendalam
Bahan Presentasi Persamaan Elips .pptx
PPT IPS Geografi SMA Kelas X_Bab 1 Pengantar Geografi_May.pdf
Modul Ajar Deep Learning PKWU Rekayasa Kelas 12 SMA Terbaru 2025
CONTOH RANCANGAN MODUL PROYEK KOKURIKULER SMA 1.docx
Modul Ajar Pembelajaran Mendalam Senbud Seni Rupa Kelas XII Terbaru 2025
Modul Ajar Deep Learning Biologi Kelas 10 SMA Terbaru 2025
INSTRUMEN IMPLEMENTASI DAN REFLEKSI PERENCANAAN PEMBELAJARAN-ARNI.pdf
Slide PPT Metode Ilmiah Kelas 7 SMP.pptx
Modul Ajar Deep Learning PJOK Kelas 12 SMA Terbaru 2025
Modul Ajar Deep Learning Bahasa Inggris Lanjutan Kelas 11 SMA Terbaru 2025
Keterbatasan-Fasilitas-dalam-Mengajar-KKA.pptx
Digital Statecraft Menuju Indonesia Emas 2045: Diplomasi Digital, Ketahanan N...
Modul Ajar Pembelajaran Mendalam Senbud Seni Teater Kelas XII Terbaru 2025
MATERI MPLS TENTANG KURIKULUM DAN KEGIATAN PEMBELAJARAN
Deck Rumah Pendidikan untuk Mendukung Program Prioritas Kemendikdasmen.pdf
Modul Ajar Deep Learning Prakarya Kerajinan Kelas 12 SMA Terbaru 2025
Gangguan Penglihatan Mata - presentasi biologi
883668952-KP-4-Modul-2-Kerangka-Pembelajaran-Mendalam.pdf
Teknologi-Pangan-Pertemuan-820728132309-.ppt

Cara membuat simulasi lcd running text dengan menggunakan proteus

  • 1. CARA MEMBUAT SIMULASI LCD RUNNING TEXT DENGAN MENGGUNAKAN PROTEUS & CODEVISION AVR Posted by : Muhammad NurohmanSelasa, 25 November 2014 Hai Teman Mikon kali ini saya akan menulis artikel tentang bagaimana caranya membuat Running Text LCD dengan menggunakan aplikasi Proteus dan Code Vision AVR untuk menulis programnya. Dan IC yang saya gunakan kali ini adalah IC Atmega 16 yang memiliki 4 port dan 40 Pin, untuk mengetahui lebih jauh tentang Atmega 16 silahkan kunjungi situs berikut Atmega16. Baiklah Langkah Pertama yang harus kita lakukan adalah buka software Proteus anda, jika belum terinstal silahkan download pada link berikut ini Proteus 7.1 . Jika sudah terinstal silahkan buka software proteus lalu pilih komponen komponen yang dibutuhkan (Lihat pada gambar). Komponen :
  • 2. Cara memilih komponen diatas bagi kalian yang belum mengetahuinya silahkan cari pada Menubar yang berada disebelah kiri yang bernama (Komponen Mode) berada pada tepatnya di bawah kursor. Lihat Gambar : Keterangan : 1. Bulatan Warna Orange adalah Component Mode 2. Bulatan Warna Merah adalah Pick From Library (Untuk Mencari Komponen dengan cara mengetik nama komponen tersebut). 3. Bulatan Warna Hijau untuk membuat Ground Dan Power Langkah selanjutnya adalah membuat rangkaian LCD Running Text dengan cara mengklik kiri komponen yang berada dalam kotak kemudian letakan kedalam papan gambar dengan cara mengklik kiri. Silahkan ikutin gambar berikut. Rangkaian
  • 3. CARA MEMBUAT PROGRAM DENGAN MENGGUNAKAN AVR Jika Rangkaian sudah selesai mari kita buat AVR codenya untuk memasukkannya kedalam Chip Atmega16 agar rangkaian dapat bekerja sesuai dengan apa yang kita inginkan (Running Text Berjalan). Baiklah langkah peratama dalam pengkodingannya adalah dengan cara membuka aplikasi AVR, bagi kalian yang belum punya silahkan download pada link berikut CodeVisionAVR, jika sudah silahkan jalankan AVR anda kemudian Pilih File kemudian New ketika ada pilihan Create New File pilihlah Project kemudian Yes lalu pilih AVR Chips Type, karna kita menggunakan Atmega16 maka kita pilih pilihan pertama atau yang paling atas kemudian OK. dan akan keluar tampilan sebagai berikut.
  • 4. Keterangan 1. Pilihlah Chip Atmega16 pada menu Chip 2. Ubah Clock menjadi 12.000000 Hhz Jika sudah kliklah menu Ports yang berada disebelah Chip Karna disini kita menggunakan PORT A maka PORT A lah yang harus kita ubah silahkan lihat gambar berikut :
  • 5. Keterangan : Pada Port A silahkan ubah Data Direction menjadi seperti gambar disamping dengan cara klik pada tulisan in menjadi out. Kemudian pada Pullup/Output Value karna disini kita menggunakan Low Aktiv makan dirubah yang tadinya 0 menjadi 1 bisa lihat pada gambar dengan cara mengklik pada angka 0 tersebut menjadi angka 1 dari bit 0 sampai bit 7. Kemudian karna kita menggunakan LCD maka pada bagian Alphanumeric LCD harus diaktivkan dengan cara lihat pada gambar dibawah ini :
  • 6. Beri Centang pada Enable Alphanumeric LCD Support (yang diberi tanda merah). Jika sudah simpan dengan cara mengkilik gambar yg berbentuk seperti gear, Lihat pada gambar :
  • 7. Klik yang diberi tanda warna merah Kemudian simpan didalam folder yang akan anda buat gunakan nama yang sama agar anda tidak bingung dalam mencarinya nanti karna akan ada 3x Saves. Jika sudah Silahkan anda tulis Codenya seperti berikut /***************************************************** This program was produced by the CodeWizardAVR V2.05.0 Evaluation Automatic Program Generator © Copyright 1998-2010 Pavel Haiduc, HP InfoTech s.r.l. http://www.hpinfotech.com Project : Version : Date : 11/23/2014 Author : Freeware, for evaluation and non-commercial use only Company : Comments: Chip type : ATmega16 Program type : Application AVR Core Clock frequency: 12.000000 MHz
  • 8. Memory model : Small External RAM size : 0 Data Stack size : 256 *****************************************************/ #include <mega16.h> #include <delay.h> // Alphanumeric LCD Module functions #include <alcd.h> // Declare your global variables here char kolom =0; void main(void) { // Declare your local variables here // Input/Output Ports initialization // Port A initialization // Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out // State7=1 State6=1 State5=1 State4=1 State3=1 State2=1 State1=1 State0=1 PORTA=0xFF; DDRA=0xFF; // 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; // Port C initialization // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In
  • 9. Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTC=0x00; DDRC=0x00; // Port D 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 PORTD=0x00; DDRD=0x00; // Timer/Counter 0 initialization // Clock source: System Clock // Clock value: Timer 0 Stopped // Mode: Normal top=0xFF // OC0 output: Disconnected TCCR0=0x00; TCNT0=0x00; OCR0=0x00; // Timer/Counter 1 initialization // Clock source: System Clock // Clock value: Timer1 Stopped // Mode: Normal top=0xFFFF // OC1A output: Discon. // OC1B output: Discon. // 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
  • 10. 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: Timer2 Stopped // Mode: Normal top=0xFF // 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; // USART initialization // USART disabled UCSRB=0x00;
  • 11. // Analog Comparator initialization // Analog Comparator: Off // Analog Comparator Input Capture by Timer/Counter 1: Off ACSR=0x80; SFIOR=0x00; // ADC initialization // ADC disabled ADCSRA=0x00; // SPI initialization // SPI disabled SPCR=0x00; // TWI initialization // TWI disabled TWCR=0x00; // Alphanumeric LCD initialization // Connections specified in the // Project|Configure|C Compiler|Libraries|Alphanumeric LCD menu: // RS - PORTA Bit 0 // RD - PORTA Bit 1 // EN - PORTA Bit 2 // D4 - PORTA Bit 4 // D5 - PORTA Bit 5 // D6 - PORTA Bit 6 // D7 - PORTA Bit 7 // Characters/line: 8 lcd_init(16); lcd_clear(); lcd_gotoxy(0,0); lcd_putsf("NAMA");
  • 12. while (1) { // Place your code here for (kolom=0; kolom<=15; kolom++){ lcd_clear(); lcd_gotoxy(0,0); lcd_putsf("NAMA :"); lcd_gotoxy(kolom,1); lcd_putsf("M. NUROHMAN"); delay_ms(50); } } } Catatan : Pada Bagian Header ditambahkan Fungsi delay dengan cara menuliskan #include <delay.h> Jika sudah selesai silahkan anda Built The Project, Lihat Gambar : Klik yang diberi tanda warna merah jika tidak ada eror warning makan Code anda tersebut sudah benar. Kemudian Jika sudah selesai kita kembali lagi pada Rangkaian LCD Running Text yang tadi kita buat di software Proteus, Klik 2x pada IC Atmega16 untuk memasukkan kode AVR yang barusan kita buat lalu akan keluar tampilan seperti berikut ini.
  • 13. Klik yang diberi tanda warna merah, kemudian cari dimana anda tandi menyimpan folder AVR yang telah dibuat, kemudian carilah foler EXE lalu double Klik pada foler EXE tsb kemudian akan tampil beruba file yang berekstensi Intel Hex File double klik pada file tersebut kemduian OK. Setelah semuanya selesai kini anda dapat mensimulasikan LCD Running Text tersebut dengan cara klik Play yang berada pada sisi bawah kiri Proteus kemudian nama yang bertuliskan M. Nurohman akan berjalan dari kiri ke kanan dan untuk hasilnya silahkan lihat gambar dibawah ini. LCD Running Text Berjalan Semoga artikel kali ini bermanfaat bagi kalian semua, terima kasih atas perhatiannya semoga bermanfaat amiiin :) Suksess Selalu
  • 14. Latihan berikut ini untuk membuat tampilan LCD berjalan di baris ke 2 nya (running text). LCD 16x2 diletakan di PortB sedangkan mikrokontroler memakai ATmega8535. Untuk merubah kecepatan da lam menjalankan text-nya dirubah dengan nilai di delay-nya. Delay dalam satuan ms. Compiler yang dipakai adalah Codevision AVR dan simulasi Proteus. Jika ada yang ingin men-download program dan simulasi di proteus silahkan ke link berikut ini: http://www.4shared.com/rar/n9yqh5_b/Text_Running.html Berikut Listing Program Running Text di Codevision AVR; /***************************************************** Chip type : ATmega8535 Program type : Application AVR Core Clock frequency: 12.000000 MHz Memory model : Small External RAM size : 0 Data Stack size : 128 *****************************************************/ #include (mega8535.h> #include (lcd.h> #include (delay.h> #include (string.h> #include (stdio.h> // Alphanumeric LCD Module functions #asm .equ __lcd_port=0x18 ;PORTB #endasm // Standard Input/Output functions // Global variables char buffer_lcd[]="Selamat datang di Blogger Mohammad Ardi.Berbagi dalam ilmu pengetahuan.Semoga latihan ini bisa memperdalam ilmu pemprograman di codevision avr."; // Function prototype void sett_REGs(void); void tampilan(void);
  • 15. // Main routine (super loop) void main(void){ sett_REGs(); lcd_init(16); _lcd_ready(); lcd_clear(); for(;;){// Endless loop, podo karo "while(1)" tampilan(); } } // Setting register void sett_REGs(void){ //Define I/O DDRA = 0x00; PORTA = 0x00; DDRB = 0xFF; PORTB = 0x00; DDRC = 0x00; PORTC = 0x00; DDRD = 0xFF; PORTD = 0x00; } // Display routine :D void tampilan(void){ unsigned int i,j,k; char lcd_number = 16; unsigned int data_len = strlen(buffer_lcd); _lcd_ready(); lcd_clear(); lcd_gotoxy(0,0); lcd_putsf("Codevision AVR"); for (i=lcd_number; i>=1; --i){ lcd_gotoxy(i,1); for (j=0; j<(lcd_number-i); j++){ lcd_putchar(buffer_lcd[j]); } delay_ms(100); }; k=0; for (i=0; i<=data_len; i++){ k++; lcd_gotoxy(0,1); for (j=0; j<16; j++){ if (buffer_lcd[j+k] == NULL){ return; } lcd_putchar(buffer_lcd[j+k]); } delay_ms(100); }; }