Wednesday, 2 April 2014

Cara Menulis Karakter pada LCD HD44780 16x2

Lanjutan postingan sebelumnya mengenai Konfigurasi LCD HD44780 16x2 pada Mikrokontroler, kali ini kita akan membahas bagaimana cara menulis pada LCD dengan menggunakan mikrokontroler dan menggunakan software CodeVision,sedangkan untuk simulasi kita menggunakan proteus.

Langkah yang pertama kita buat skematiknya diproteus.


Selanjutnya adalah bagian program
1. Pertama-tama kita buka CodeVisionnya.
2. Klik New, kemudian muncul jendela pilih Project,OK. Kemudian muncul jendela dengan  pertanyaan apakah ingin menggunakan codewizard? pilih Yes.


3.  Kemudian Tampil jendela codewizard, kita pilih jenis mikrokontroler & frekuensi crystal yang kita gunakan. Pada bahasan kali ini saya menggunakan atmega8535 dan crystal 11.059200 MHZ.




4. Klik tab LCD, kemudian kita pilih di PIN mana kita menggunakan LCD tersebut.
`

5. Klik File, kemudian klik Generate Save & Exit. (Gunakan nama file yang sama)

Maka akan timbul lembar kerja yang kita atur menggunakan codewizard tadi.
Berikut listing coding beserta penjelasan mengenai fungsi-fungsi LCD yang sering digunakan.


  1. #include <mega8535.h> // header mikro
  2. #include <delay.h>  // header delay
  3. #include <stdio.h>  // header yang berisi fungsi sprintf

  4. // Alphanumeric LCD Module functions
  5. #asm
  6.    .equ __lcd_port=0x15 ;PORTC // PIN LCD
  7. #endasm
  8. #include <lcd.h> // header LCD

  9. char nim[20] = "03101004096";
  10. int nomor=200;
  11. char buff[20]; // tipe data char yang berbentuk array dengan ukuran 20

  12. // Declare your global variables here

  13. void main(void)
  14. {

  15. PORTA=0x00;
  16. DDRA=0x00;


  17. PORTB=0x00;
  18. DDRB=0x00;


  19. PORTC=0x00;
  20. DDRC=0x00;


  21. PORTD=0x00;
  22. DDRD=0x00;

  23. TCCR0=0x00;
  24. TCNT0=0x00;
  25. OCR0=0x00;


  26. TCCR1A=0x00;
  27. TCCR1B=0x00;
  28. TCNT1H=0x00;
  29. TCNT1L=0x00;
  30. ICR1H=0x00;
  31. ICR1L=0x00;
  32. OCR1AH=0x00;
  33. OCR1AL=0x00;
  34. OCR1BH=0x00;
  35. OCR1BL=0x00;


  36. ASSR=0x00;
  37. TCCR2=0x00;
  38. TCNT2=0x00;
  39. OCR2=0x00;

  40. MCUCR=0x00;
  41. MCUCSR=0x00;


  42. TIMSK=0x00;


  43. ACSR=0x80;
  44. SFIOR=0x00;

  45. // LCD module initialization
  46. lcd_init(16);

  47. while (1)
  48.       {
  49.       // Place your code here
  50.       lcd_clear();  // fungsi yang digunakan untuk menghapus tulisan di LCD
  51.        lcd_gotoxy(0,0); // fungsi yang digunakan untuk menuju ke koordinat x,y pada LCD
  52.        lcd_putsf("Abdi Prasetyo"); //fungsi yang digunakan untuk menuliskan string langsung tanpa variabel ( yang dilokasikan pada flash)
  53.      
  54.        lcd_gotoxy(0,1);
  55.        lcd_puts(nim); //fungsi yang digunakan untuk menuliskan string langsung melalui variabel ( yang dilokasikan pada RAM)
  56.      
  57.        delay_ms(500);
  58.        lcd_clear();
  59.      
  60.        lcd_gotoxy(0,0);
  61.        sprintf(buff,"No=%d",nomor); // string No=%d disimpan pada char array buff dan %d menunjukan nilai nomor
  62.        lcd_puts(buff);
  63.      
  64.        delay_ms(500);
  65.        lcd_clear();
  66.       };
  67. }


Berikut Videonya



Oke Terima kasih atas kunjungannya
Mohon koreksinya ya
Makasih











2 comments:

  1. Program sama Rangkaiannya sudah bener kak ? tapi kenapa masih ngak keluar tulisan nama dan nim nya kak. mohon bantuannya

    ReplyDelete
    Replies
    1. coba di cek ulang program sm rangkaiannya lagi, mngkin ada yg selip ga keliatan..
      ato cb di kirim programnya..

      Delete