Modul 4(jika keypad 8 ditekan maka tulisan lcd akan bergerak dari kanan ke kiri)

1. Tujuan[KEMBALI]

a. Mempelajari aplikasi output pada mikrokontroller PIC 16F877A
b. Mempelajari aplikasi input pada mikrokontroller PIC 16F877A
c. Mempelajari aplikasi I/O pada mikrokontroller PIC 16F877A

2. Alat dan Bahan[KEMBALI]

a. Module PIC 16F877A
b. LCD
c. Keypad

3. Teori Komponen[KEMBALI]

> Dasar Teori Mikrokontroler


Mikrokontroler PIC16F877A merupakan salah satu mikrokontroler dari keluarga PICmicro yang popular digunakan sekarang ini, mulai dari pemula hingga para profesional. Hal tersebut karena PIC16F877A sangat praktis dan menggunakan teknologi FLASH memori sehingga dapat di program-hapus hingga seribu kali. Keunggulan mikrokontroler jenis RISC ini dibanding dengan mikrokontroler 8-bit lain dikelasnya terutama terletak pada kecepatan dan kompresi kodenya. Selain itu, PIC116F877A juga tergolong praktis dan ringkas karena memiliki kemasan 40 pin dengan 33 jalur I/O.

Anggota keluarga PICmicro buatan Microchip Inc. cukup banyak. Ada yang menggunakan FLASH memori dan ada pula yang jenis OTP (One Time Programmable). Mikrontroler dari keluarga PICmicro yang popular, antara lain PIC2C08, PIC16C54, PIC16F84. Agar lebih mengenal PIC16F877A, berikut ini diberikan fitur-fitur penting yang terdapat pada PIC16F877A.


 
MIkrokontroller PIC16F877A

fitur fitur PIC 
  1. RISC CPU yang mempunyai performance tinggi
  2. Hanya 35 jenis instruksi yang perlu dipelajari
  3. Semua instrujsi mempunyai siklus tunggal kecuali untuk instruksi percabangan.
  4. Kecepatan Instruksi: DC – 20 MHz clock input DC – 200 ns instruction cycle
  5. 8K x 14 words of FLASH Program Memory, 368 x 8 bytes of Data Memory (RAM) , 256 x 8 bytes of EEPROM Data Memory
  6. Pinout compatible dengan PIC16C73B/74B/76/77
  7. Interrupt (14 sumber interrupt)
  8. Delapan level hardware stack
  9. Direct, indirect dan relative addressing modes
  10. Power-on Reset (POR)
  11. Power-up Timer (PWRT) dan Oscillator Start-up Timer (OST)
  12. Watchdog Timer (WDT) dengan on-chip RC oscillator
  13. Programmable code protection dan Fully static design
  14. Power saving SLEEP mode
  15. Selectable oscillator options
  16. Low power, high speed CMOS FLASH/EEPROM technology
  17. In-Circuit Serial Programming (ICSP) hanya dengan dua pin
  18. Single 5V In-Circuit Serial Programming capability
  19. Processor read/write access to program memory
  20. Wide operating voltage range: 2.0V to 5.5V
  21. High Sink/Source Current: 25 mA
  22. Commercial, Industrial and Extended temperature ranges


Deskripsi pin pin

Mikrokontroler PIC16F877A di produksi dalam kemasan 40 pin PDIP (Plastik Dual In Line) maupun 40 pin SO (Small Outline). Namun yang banyak terdapat dipasaran adalah kemasan PDIP. Pin-pin untuk I/O sebanyak 33 pin, yang terdiri atas 6 pada Port A, 8 pada Port B, 8 pada Port C, 8 pada Port D, 3 pada Port E. Ada pula beberapa Pin pada mikrokontroler yang memiliki fungsi ganda.

 

Organisasi Memori
Memori pada PIC16F877A dapat dipisahkan menjadi dua blok memori, satu untuk memori program dan satu untuk memori data. Memori EEPROM dan register GPR didalam RAM merupakan memori data, sedangkan memori FLASH merupakan memori program.

Prosedur Percobaan 

1. Pastikan semua supply dalam keadaan off
2. Hubungkan jumper seperti rangkaian dibawah
3. Buatlah listing program yang telah ada pada modul
4. periksakan rangkaian kepada asisten yang mengawas
5. Hidupkan semua supply
6. Upload program dari laptop ke modul
7. Tekan tombol Reset
8. Amati percobaan, jika tidak sesuai perbaiki rangkaian atau program
9. Jika sesuai, maka selesai dan demokan pada asisten yang mengawas
10.Jelaskan prinsip k78erja + program dan hubungan keduanya kepada asisten
11.Demokan ke pembimbing praktikum
12.Matikan supply


> Dasar Teori LCD

LCD (Liquid Crystal Display) adalah suatu jenis media tampil yang menggunakan kristal cair sebagai penampil utama. LCD sudah digunakan diberbagai bidang misalnya alal–alat elektronik seperti televisi, kalkulator, ataupun layar komputer. Pada bab ini aplikasi  LCD yang dugunakan ialah LCD dot matrik dengan jumlah karakter 2 x 16. LCD sangat berfungsi sebagai penampil yang nantinya akan digunakan untuk menampilkan status kerja alat. Adapun fitur yang disajikan dalam LCD ini adalah :
a.      Terdiri dari 16 karakter dan 2 baris.
b.      Mempunyai 192 karakter tersimpan.
c.       Terdapat karakter generator terprogram.
d.      Dapat dialamati dengan mode 4-bit dan 8-bit.
e.       Dilengkapi dengan back light.
 
Gambar LCD 2*16

Pin Deskripsi
1 Ground
2 Vcc
3 Pengatur kontras
4 “RS” Instruction/Register Select
5 “R/W” Read/Write LCD Registers
6 “EN” Enable
7-14 Data I/O Pins
15 Vcc
16 Ground
 
Cara kerja LCD 2*16 secara umum

Pada aplikasi umumnya RW diberi logika rendah “0”. Bus data terdiri dari 4-bit atau 8-bit. Jika jalur data 4-bit maka yang digunakan ialah DB4 sampai dengan DB7. Sebagaimana terlihat  pada table diskripsi, interface LCD merupakan sebuah parallel bus, dimana hal ini sangat memudahkan dan sangat cepat dalam pembacaan dan penulisan data dari atau ke LCD. Kode ASCII yang ditampilkan sepanjang 8-bit dikirim ke LCD secara 4-bit atau 8 bit pada satu waktu. Jika mode 4-bit yang digunakan, maka 2 nibble data dikirim untuk membuat sepenuhnya 8-bit (pertama dikirim 4-bit MSB lalu 4-bit LSB dengan pulsa clock EN setiap nibblenya). Jalur kontrol EN digunakan untuk memberitahu LCD bahwa mikrokontroller mengirimkan data ke LCD. Untuk mengirim data ke LCD program harus menset EN ke kondisi high “1” dan kemudian menset dua jalur kontrol lainnya (RS dan R/W) atau juga mengirimkan data ke jalur data bus.
Saat jalur lainnya sudah siap, EN harus diset ke “0” dan tunggu beberapa saat (tergantung pada datasheet LCD), dan set EN kembali ke high “1”. Ketika jalur RS berada dalam kondisi low “0”, data yang dikirimkan ke LCD dianggap sebagai sebuah perintah atau instruksi khusus (seperti bersihkan layar, posisi kursor dll). Ketika RS dalam kondisi high atau “1”, data yang dikirimkan adalah data ASCII yang akan ditampilkan dilayar. Misal, untuk menampilkan huruf “A” pada layar maka RS harus diset ke “1”. Jalur kontrol R/W harus berada dalam kondisi low (0) saat informasi pada data bus akan dituliskan ke LCD. Apabila R/W berada dalam kondisi high “1”, maka program akan melakukan query (pembacaan) data dari LCD. Instruksi pembacaan hanya satu, yaitu Get LCD status (membaca status LCD), lainnya merupakan instruksi penulisan. Jadi hampir setiap aplikasi yang menggunakan LCD, R/W selalu diset ke “0”. Jalur data dapat terdiri 4 atau 8 jalur (tergantung mode yang dipilih pengguna), DB0, DB1, DB2, DB3, DB4, DB5, DB6 dan DB7. Mengirim data secara parallel baik 4-bit atau 8-bit merupakan 2 mode operasi primer. Untuk membuat sebuah aplikasi interface LCD, menentukan mode operasi merupakan hal yang paling penting.

>Dasar Teori Rangkaian Clock

Rangakaian clock berfungsi untuk pembentuk/membangkitkan pulsa/gelombang kotak secara terus-menerus dan rangkaian ini tidak mempunyai kondisi stabil/setimbang. Rangkaian clock termasuk golongan Astabil Multivibrator dengan IC 555. Output rangkaian clock digunakan untuk input rangkaian-rangkaian logika yang sekuensial (berhubungan dengan waktu). Yang termasuk rangkaian logika sekuensial contohnya: Flip-Flop, Shift Register, dan Counter. Adapun fungsi rangkaian clock yaitu, untuk mengatur jalannya data dalam penggeseran ke kanan atau ke kiri, maupun dalam perhitungan/pencacahan bilangan biner. Yang dimaksud rangkaian Astabil Multivribator Adalah multivribator yang tidak stabil tegangan output-nya (tegangan pengeluarannya berubah-ubah) tanpa adanya sinyal masukan yang diberikan. Rangakaian clock dengan IC 555 besrta pulsa-pulsa pada pin 3dan pin 6 ditunjukkan pada gambar ini







Pada gambar rangkaian clock diatas akan dijabarkan mengenai cara kerja dari sistem rangkaian tersebut. Pada simbol C akan naik melebihi kira-kira 2/3 Vcc jika ada tegangan yang masuk ke dalam rangkaian tersebut. Dan ada penggunaan rumus tersendiri jika Kapasitor C mulai dikosongkan dengan menggunakan komponen Rb . Rumus yang terjadi adalah :

T : Rb x C



Keluaran atau output akan naik dan juga tinggi jika tegangan di Kapasitor (C) mulai turun hingga mencapai rumus ( Vcc/3). Komponen IC 555 memiliki besar tegangan yang akan naik dan turun secara eksponensial. Gelombang segi empat menjadi bentuk dari keluaran atau output komponan IC 555 ini. Bentuk keluaran yang tidak simetri ini disebabkan waktu yang dibutuhkan untuk pengisian lebih lama dibandingkan dengan waktu untuk pengosongan komponen ini. Dan keadaan keluaran yang rendah lebih cepat dibandingkan dengan kadar keluaran yang lebih tinggi. Dan perhitungan untuk menentukan asimetris dari keluaran atau output rangkaian clock menggunakan rumus :

W : 0.693 (RA + Rb) * C

T : 0.693 * Rb * C

T : W + t
Dan W adalah lebar pulsa sementara t adalah waktu atau lama periode dengan besarnya frekuensi dihitung F : 1/T.
>Dasar Teori Keypad 
Keypad adalah bagian penting dari suatu perangkat elektronika yang membutuhkan interaksi manusia. Keypad berfungsi sebagai interface antara perangkat (mesin) elektronik dengan manusia 
atau dikenal dengan istilah HMI (Human Machine Interface). Matrix keypad 4×4 merupakan salah satu contoh keypad yang dapat digunakan untuk berkomunikasi antara manusia dengan mikrokontroler. Konfigurasi keypad dengan susunan bentuk matrix ini bertujuan untuk penghematan port mikrokontroler karena jumlah key (tombol) yang dibutuhkan banyak pada suatu sistem dengan mikrokontroler. Konstruksi matrix keypad 4×4 untuk mikrokontroler dapat dibuat seperti pada gambar berikut:

Proses scaning untuk membaca penekanan tombol pada matrix keypad 4×4 untuk mikrokontroler diatas dilakukan secara bertahap kolom demi kolom dari kolom pertama sampai kolom ke 4 dan baris pertama hingga baris ke 4. Misal kita asumsikan keypad aktif LOW (semua line kolom dan baris dipasang resistor pull-up) dan dihubungkan ke port mikrokontrolr dengan jalur kolom adalah jalur input dan jalur baris adalah jalur output maka proses scaning matrix keypad 4×4 diatas dapat dituliskan sebagai berikut.

·         Mengirimkan logika Low untuk kolom 1 (Col1) dan logika HIGH untuk kolom yang lain kemudian membaca data baris, misal tombol SW1 ditekan maka data baris pertama (Row1) akan LOW sehingga data baris yang dibaca adalah 0111, atau tombol yang ditekan tombol SW5 maka data pada baris ke 2 akan LOW sehingga data yang terbaca 1011, atau tombol SW9 yang ditekan sehingga data yang terbaca 1101, atau tombol SW13 yang ditekan maka data yang dibaca adalah 1110 dan atau tidak ada tombol pada kolom pertama yang di tekan maka data pembacaan baris akan 1111.

·         Mengirimkan logika Low untuk kolom 2 (Col2) dan logika HIGH untuk kolom yang lain kemudian membaca data baris, misal tombol SW1 ditekan maka data baris pertama (Row1) akan LOW sehingga data baris yang dibaca adalah 0111, atau tombol yang ditekan tombol SW5 maka data pada baris ke 2 akan LOW sehingga data yang terbaca 1011, atau tombol SW9 yang ditekan sehingga data yang terbaca 1101, atau tombol SW13 yang ditekan maka data yang dibaca adalah 1110 dan atau tidak ada tombol pada kolom pertama yang di tekan maka data pembacaan baris akan 1111.

·         Mengirimkan logika Low untuk kolom 3 (Col3) dan logika HIGH untuk kolom yang lain kemudian membaca data baris, misal tombol SW1 ditekan maka data baris pertama (Row1) akan LOW sehingga data baris yang dibaca adalah 0111, atau tombol yang ditekan tombol SW5 maka data pada baris ke 2 akan LOW sehingga data yang terbaca 1011, atau tombol SW9 yang ditekan sehingga data yang terbaca 1101, atau tombol SW13 yang ditekan maka data yang dibaca adalah 1110 dan atau tidak ada tombol pada kolom pertama yang di tekan maka data pembacaan baris akan 1111.
Mengirimkan logika Low untuk kolom 4 (Col4) dan logika HIGH untuk kolom yang lain kemudian membaca data baris, misal tombol SW1 ditekan maka data baris pertama (Row1) akan LOW sehingga data baris yang dibaca adalah 0111, atau tombol yang ditekan tombol SW5 maka data pada baris ke 2 akan LOW sehingga data yang terbaca 1011, atau tombol SW9 yang ditekan sehingga data yang terbaca 1101, atau tombol SW13 yang ditekan maka data yang dibaca adalah 1110 dan atau tidak ada tombol pada kolom pertama yang di tekan maka data pembacaan baris akan 1111.

4. Rankaian Simulasi[KEMBALI]

 

Prinsip kerja alat: Pada rangkaian di atas digunakan keypad sebagai input dan lcd sebagai output. Keypad terhubung PORT RD dan pin data lcd PORT RC2-RC5. Jika keypad 8 ditekan maka PORT RD1 dan PORT RD6 artinya harus high, maka akan ditampilkan tulisan dari kanan ke kiri.

5. Flowchart[KEMBALI]

6. Listing Program[KEMBALI]


7. Video[KEMBALI]


8. Link Download[KEMBALI]

File program
File video
File proteus
File html

0 comments:

Copyright © 2013 Praktikum Mikroprocessor