Menampilkan Karakter Pada LCD menggunakan CodeVisionAVR

Alex
0
Kita pasti tau tentang perangkat-perangkat elektronika yang menggunakan LCD Karakter,,, misalnya seperti jam tangan, kalkulator, dll... Nah kali ini saya akan sharing tentang bagaimana kita menampilkan karakter ataupun kata pada sebuah LCD dengan menggunakan mikrokontroler ATmega32. Bagi anda yang belum memiliki rangkaian,,, mungkin bisa mensimulasikan dengan aplikasi yang bernama PROTEUS, jika belum punya silahkan download. Untuk file rangkaian simulasi sistim minimum mikrokontroler ini silahkan klik link ini.... Untuk membuat program kita akan menggunakan software CodeVisionAVR.

1. Buka CodeVisionAVR
2. Pilih file>New
3. Akan muncul Form
 
Pilih Project dan klik Ok
4. Selanjutnya akan muncul form confirmasi, pilih Yes
 
5. Akan muncul form berikut



Disini kita memilih settingan yang akan kita gunakan, pilih ATmega32, sesuaikan frequensi kristal dengan kebutuhan, pilih LCD, LCD Port pada PORT C.
6. Pilih File>Generate, Save and Exit.
 
kita akan dimanta menyimpan file tiga kali, simpan dengan nama yang sama.
7. Berikut adalah program yang kita gunakan
	 
/*****************************************************
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 : Menampilkan Karakter Pada LCD
Version :
Date    : 14/07/2012
Author  :
Company : alextc44.blogspot.com
Comments: Ini hanya untuk sharing!!!!


Chip type           : ATmega32
Program type        : Application
Clock frequency     : 8,000000 MHz
Memory model        : Small
External RAM size   : 0
Data Stack size     : 512
*****************************************************/

#include 

#include 

// Alphanumeric LCD Module functions
#asm
  .equ __lcd_port = 0x15;
PORTC
#endasm#include 

#include 

// Declare your global variables here

void main(void) {
  // Declare your local variables here

  // 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;

  // 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=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;

  // LCD module initialization
  lcd_init(16);

  while (1) {
    // Place your code here
    lcd_gotoxy(0, 0); //untuk menampilkan pada baris nol
    lcd_putsf("Welcome In"); //menampilkan karakter ini
    lcd_gotoxy(0, 1); //untuk menampilkan pada baris berikutnya
    lcd_putsf("Lex Blog"); //menampilkan ini
    delay_ms(1000); //perintah diatas dikerjakan selama delay
    lcd_clear(); //menghapus karakter
    break; //break
  };
}

 
9. Buka rangkaian simulasi pada Proteus, doble click ATmega32, browser pada program file, dan temukan folder exe file CodeVisionAVR dimana anda menyimpan tadi, buka dan pilih file yang sesai nama project anda tadi, jika sudah, jalankan program dengan menekan tombol Play.
10. jika langsung pada mikrokontroller, langsung download ke microcontroller anda. 

Post a Comment

0Comments
Post a Comment (0)