Tampilkan postingan dengan label Mikrokontroler. Tampilkan semua postingan

Laporan Antarmuka Mikrokontroler Dengan LCD 16x2

ANTARMUKA MIKROKONTROLER DENGAN PENAMPIL LCD
(Liquid Crystal Display)

1.      TUJUAN
  • Mengetahui dan memahami cara mengantarmukakan mikrokontroler dengan modul penampil LCD.
  • Mengetahui dan memahami bagaimana memrogram mikrokontroler untuk menampil­kan karakter ke penampil LCD.
2.      DASAR TEORI
2.1 LCD M1632
Modul LCD M1632 seperti dalam Gambar 5.1 merupakan modul LCD dengan tampilan 16 x 2 baris dengan konsumsi daya yang rendah. Modul ini dilengkapi dengan mikrokontroler yang didisain khusus untuk mengendalikan LCD. Mikrokontroler HD44780 buatan Hitachi yang berfungsi sebagai pengendali LCD ini mempunyai CGROM (Character Generator Read Only Memory), CGRAM (Character Generator Random Access Memory), dan DDRAM (Display Data Random Access Memory).

Gambar 1.1 Modul LCD M1632

LCD ini memiliki 16 kaki, sebagaimana ditunjukkan dalam Tabel 1.1.

Tabel 1.1 Konfigurasi Pin LCD M1632
No
Kaki
Deskripsi
1
Vss
0V (GND)
2
Vcc
+5V
3
VLC
LCD Contrast Voltage
4
RS
Register Select; H: Data Input; L: Instruction Input
5
RD
H:Read; L: Write
6
EN
Enable Signal
7
D0
Data Bus 0
8
D1
Data Bus 1
9
D2
Data Bus 2
10
D3
Data Bus 3
11
D4
Data Bus 4
12
D5
Data Bus 5
13
D6
Data Bus 6
14
D7
Data Bus 7
15
V+BL
Positive Backlight Voltage
16
V-BL
Negative Backlight Voltage

2.2  DDRAM
DDRAM adalah merupakan memori tempat karakter yang ditampilkan berada. Contoh, untuk karakter ‘A’ atau 41H yang ditulis pada alamat 00, maka karakter tersebut akan tampil pada baris pertama dan kolom pertama dari LCD. Apabila karakter tersebut ditulis di alamat 40, maka karakter tersebut akan tampil pada baris kedua kolom pertama dari LCD. Posisi ini ditunjukkan dalam Gambar 5.2.


Gambar 1.2 Posisi DDRAM

2.3  CGRAM
CGRAM adalah merupakan memori untuk menggambarkan pola sebuah karakter di mana bentuk dari karakter dapat diubah-ubah sesuai keinginan. Namun memori ini akan hilang saat power supply tidak aktif, sehingga pola karakter akan hilang.

2.4  CGROM
CGROM adalah merupakan memori untuk menggambarkan pola sebuah karakter di mana pola tersebut sudah ditentukan secara permanen dari HD44780 sehingga pengguna tidak dapat mengubah lagi. Namun karena ROM bersifat permanen, maka pola karakter tersebut tidak akan hilang walaupun power supply tidak aktif. Pada Gambar 6.3, tampak terlihat pola-pola karakter yang tersimpan dalam lokasi-lokasi tertentu dalam CGROM. Pada saat HD44780 akan menampilkan data 41H ke DDRAM, maka HD44780 akan mengambil data di alamat 41H (0100 0001) yang ada pada CGROM yaitu pola karakter A.
Dalam Gambar 1.4 modul LCD dihubungkan ke PORTB mikrokontroler dimana kaki RS, RD, EN terhubung ke PORTB.0-PORTB.2 dan D4, D5, D6, D7 terhubung ke PORTB.4-PORTB.7.



Gambar 1.3 pola Karakter dalam CGROM

Gambar 1.4 Rangkaian LCD

3.      ALAT DAN BAHAN YANG DIGUNAKAN
  • 1 set PC/Laptop yang sudah berisi program Code Vision dan Khazama
  • 1 buah catu daya DC +5V
  • 1 buah multimeter
  • 1 buah ISP Downloader AVR
  • 1 buah sistem minimum AVR
  • 1 buah LCD
  • 1 buah kabel printer USB

4.      PROSEDUR PRAKTIKUM
1.      Rangkailah peralatan yang diperlukan seperti dalam Gambar 1.5. Hubungkan soket jumper PORTB pada minimum system dengan soket jumper pada LCD
.
Gambar 1.5 Rangkaian antarmuka mikrokontroler dengan LCD

2.      Buka program Code Vision AVR
3.      Buatlah file project (.prj) kemudian pilih IC yang digunakan (ATmega8535) dan atur clock 4.000 Mhz. (seperti praktikum sebelumnya)
4.      Klik sub tab Libraries>>Alphanumeric LCD (alcd.h). Centang Enable Alphanumeric LCD Support kemudian sesuaikan pada gambar di bawah ini. Kemudian klik OK


5.  Buatlah file source (.c) kemudian hubungkan file project dengan file source seperti pada praktikum sebelumnya.
6.      Tuliskan file header
7.      Buatlah program utama dan tuliskan program berikut di dalam program utama .

8.      Tuliskan program berikut dalam program utama tepatnya di dalam while(1).

9.      Compile dan Build program jika ada yang error perbaiki program. Masukkan file hex menggunakan Khanzama AVR Programer. Klik auto program, amati tampilan LCD.

10.  Hapus program yang ada di dalam while. Tuliskan program berikut di dalam while(1).

11.  Compile dan Build program jika ada yang error perbaiki program. Masukkan file hex menggunakan Khanzama AVR Programer. Klik auto program, amati tampilan LCD.
12.  Hapus program yang ada di dalam while. Tuliskan program berikut di dalam while(1).


13.  Compile dan Build program jika ada yang error perbaiki program. Masukkan file hex menggunakan Khanzama AVR Programer. Klik auto program, amati tampilan LCD.
14.  Hapus program yang ada di dalam while. Tuliskan program berikut di dalam while(1).

15.  Compile dan Build program jika ada yang error perbaiki program. Masukkan file hex menggunakan Khanzama AVR Programer. Klik auto program, amati tampilan LCD.
16.  Hapus program yang ada di dalam while. Tuliskan program berikut di dalam while(1).

17.  Compile dan Build program jika ada yang error perbaiki program. Masukkan file hex menggunakan Khanzama AVR Programer. Klik auto program, amati tampilan LCD.
18.  Buatlah tampilan nama anda berjalan dari kiri ke kanan pada baris 0 dan NIM anda berjalan dari kanan ke kiri pada baris 1 (tampidlan di baris 0 dan 1 muncul secara bersamaan).
19.  Ubahlah nilai dalam lcd_init(16) menjadi lcd_init(40) dan lihat perbedaannya.


5.    DATA HASIL PRAKTIKUM






















ADC MIKROKONTROLER AVR ATMEGA 8535


MENGGUNAKAN ANALOG TO DIGITAL CONVERTER (ADC)
DALAM MIKROKONTROLLER ATMEGA8535

1.     TUJUAN

  • Mengetahui dan memahami cara menggunakan ADC yang ada di dalam mikrokontroler.
  • Mengetahui dan memahami bagaimana memrogram mikrokontroler untuk mengonversi data analog menjadi data digital.

2.    ANALOG TO DIGITAL CONVERTER (ADC)
Penggunaan ADC sebagai pengonversi data analog menjadi data digital merupakan sesuatu hal yang diperlukan jika data yang masuk ke dalam mikrokontroler, biasanya data dari sensor berupa sinyal analog.
Fitur ADC dalam ATMega8535 adalah sebagai berikut:
  • Resolusi 10 bit.
  • Waktu konversi 65-260 μs.
  • Input 8 kanal.
  • Input ADC 0-5Vcc.
  • 3 Mode pemilihan tegangan referensi.
Ada beberapa langkah yang harus dilakukan untuk inisialisasi ADC, yaitu penentuan clock, tegangan referensi, format data output dan mode pembacaan. Inisialisasi ini dilakukan pada register-register berikut:


ADMUX (ADC Multiplexer Selection Register)
ADMUX merupakan register yang mengatur tegangan referensi yang digunakan ADC,
format data output dan saluran ADC.

  • REFS0-1 (Reference Selection Bits)
REFS0-1 adalah bit-bit pengatur mode tegangan referensi ADC. 


  • ADLAR (ADC Left Adjust Result)
ADLAR adalah bit keluaran ADC. Jika ADC telah selesai konversi, maka data ADC  akan diletakkan di 2 register, yaitu ADCH dan ADCL dengan format sesuai ADLAR.
Format data ADC jika ADLAR=0



Format data ADC jika ADLAR=1

  • MUX0-4 (Analog Channel and Gain Selection Bits) MUX0-4 adalah bit-bit pemilih saluran pembacaan ADC.

ADCSRA (ADC Control and Status Register A)
ADCSRA adalah register 8 bit yang berfungsi untuk melakukan manajemen sinyal kontrol dan status ADC.

  • ADEN (ADC Enable)
ADEN merupakan bit pengatur aktivasi ADC. Jika bernilai 1 maka ADC akan aktif.
  • ADCS (ADC Start Conversion)
ADCS merupakan bit penanda dimulainya konversi ADC. Selama konversi berlogika 1 dan akan berlogika 0 jika selesai konversi.
  • ADATE (ADC Auto Trigger Enable)
ADATE merupakan bit pengatur aktivasi picu otomatis. Jika bernilai 1 maka konversi ADC akan dimulai pada saat tepi positif pada sinyal trigger yang digunakan.
  • ADIF (ADC Interrupt Flag)
ADIF merupakan bit penanda akhir konversi ADC. Jika bernilai 1 konversi ADC pada suatu saluran telah selesai dan siap diakses.
  • ADIE (ADC Interrupt Enable)
ADIE merupakan bit pengatur aktivasi interupsi. Jika bernilai 1 maka interupsi penandaan telah selesai. Konversi ADC diaktifkan.
  • ADPS0-2 (ADC Prescaler Select Bit)
ADPS0-2 merupakan bit pengatur clock ADC.


SFIOR (Special Function IO Register)
SFIOR adalah register 8 bit yang mengatur sumber pemicu ADC. Jika bit ADATE pada register ADCSRA bernilai 0 maka ADTS0-2 tidak berfungsi.





Rangkaian yang digunakan untuk mempelajari ADC dapat dilihat dalam Gambar di samping. Rangkaian ini merupakan rangkaian pembagi tegangan dimana tegangan keluaran dapat dihitung dengan rumus:
Vout =   R2 x Vcc
                 R1+R2


3.    ALAT DAN BAHAN YANG DIGUNAKAN

  • 1 set PC/Laptop yang sudah berisi program Code Vision dan Khazama
  • 1 buah catu daya DC +5V
  • 1 buah multimeter
  • 1 buah ISP Downloader AVR
  • 1 buah sistem minimum AVR
  • 1 buah I/O
  • 1 buah kabel printer USB
  • 1 buah kabel pita hitam
  • 1 buah potensiometer

4.    PROSEDUR

1.      Rangkailah peralatan yang diperlukan seperti dalam Gambar diatas. Hubungkan soket jumper PORTC pada minimum system dengan soket jumper pada OUTPUT LED. Vout pada rangkaian potensiometer dihubungkan pada PORTA.0 (ADC channel 0).

2.      Buka program Code Vision AVR
3.      Buat program dengan menggunakan aplikasi Code Vision AVR
4.      Buatlah file project (.prj) kemudian pilih IC yang digunakan (ATmega8535) dan atur clock 4.000 Mhz. (seperti praktikum sebelumnya)
5.      Buatlah file source (.c) kemudian hubungkan file project dengan file source seperti pada praktikum sebelumnya.
6.      Tambahkan file header

7.      Program berikut merupakan deklarasi variabel hasil konversi ADC. Tuliskan variabel berikut di luar program utama.

8.      Buatlah program utama dan inisialisasikan PORT C sebagai output dengan kondisi awal LOW.


9.      Tuliskan inisialisasi ADC berikut di dalam program utama.


10.  Perhatikan blok program berikut. Arti dari blok instruksi tersebut adalah setting ADC di PORTA dan inisialisasi ADC. Tuliskan fungsi berikut di luar program utama.


11.  Tuliskan program berikut dalam program utama tepatnya di dalam while(1).

12.  Compile dan Build program jika ada yang error perbaiki program. Masukkan file hex menggunakan Khanzama AVR Programer. Klik auto program.
13.  Hubungkan output potensiometer pada PORTA.0.
14.  Ukur tegangan potensiometer (kaki tengah) sebesar 0-5V (sesuai tabel).
15.  Lepas probe AVO Meter lalu perhatikan dan catat nyala LED dan konversi nilai dalam desimal.
16.  Hitung perhitungan nilai digital dalam desimal dengan rumus berikut:
Vdigital = Vukur / Vcc *255
Contoh: misal tegangan analog yang diukur 1 V, maka tegangan digital adalah:

V = 1/5 *255 = 51 desimal, atau 33H atau 00110011B