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:

Modul 2 (Jika switch 3 ditekan maka akan tampil tulisan "3" pada lcd dan motor berputar searah jarum jam)

1. Tujuan [kembali]

a. Mempelajari aplikasi output pada mikrokontroller Arduino
b. Mempelajari aplikasi input pada mikrokontroller Arduino
c. Mempelajari aplikasi I/O pada mikrokontroller Arduino

2. Alat dan Bahan [kembali]

a. ARDUINO 2560
b. LCD
c. Motor DC

3. Teori komponen [kembali]

a. Arduino
Arduino adalah kit elektronik atau papan rangkaian elektronik open source yang di dalamnya terdapat komponen utama yaitu sebuah chip mikrokontroler dengan jenis AVR dari perusahaan Atmel. Arduino yang kita gunakan pada prkatikum ini adalah arduino mega yang menggunakan chip AVR ATmega 2560 yang memiliki fasilitas PWM, komunikasi serial, ADC, timer, interupt, SPI dan I2C. Sehingga Arduino bisa digabungkan bersama modul atau alat lain dengan protocol yang berbeda-beda. Bahasa pemograman yang digunakan adalah bahasa C. Tetapi bahasa ini sudah dipermudah menggunakan fungsi-fungsi yang sederhana sehingga lebih mudah dalam memprogramnya. Dalam memprogram arduino, kita bisa menggunakan serial komunikasi agar arduino dapat berhubungan dengan komputer ataupun aplikasi lain. Beberapa fitur dari Arduino Mega 2560 ini adalah :

    Microcontroller                                 ATmega2560
    Operating Voltage                             5V
    Input Voltage (recommended)           7-12V
    Input Voltage (limits)                         6-20V
    Digital I/O Pins                                 54 (of which 15 provide PWM output)
    Analog Input Pins                             16
    DC Current per I/O Pin                    20 mA
    DC Current for 3.3V Pin                  50 mA
    Flash Memory                                  256 KB of which 8 KB used by bootloader
    SRAM                                             8 KB
    EEPROM                                        4 KB
    Clock Speed                                    16 MHz

BAGIAN-BAGIAN DARI ARDUINO MEGA 2560
Soket USB
     Soket USB adalah soket untuk kabel USB yang disambungkan ke komputer atau laptop.
Berfungsi untuk mengirimkan program ke Arduino dan juga sebagai port komunikasi serial.
Input / Output Digital
     Input/Output Digital atau digital pin adalah pin-pin untuk menghubungkan Arduino dengan
komponen  atau  rangkaian  digital.  Pada  Arduino  Mega  terdapat  53  I/O  Digital  dimana  16
diantaranya dapat dijadikan sebagai output PWM
  
Input Analog
    Input Analog atau analog pin adalah pin-pin yang berfungsi untuk menerima sinyal dari komponen atau rangkaian analog. Misalnya dari potensiometer, sensor suhu, sensor cahaya, dsb.
Terdapat 16 input analog pada arduino mega 2560.

Pin POWER
     Pin-pin catu daya adalah pin yang memberikan tegangan untuk komponen atau rangkaian yang dihubungkan dengan Arduino. Pada bagian catu daya ini terdapat juga pin Vin dan Reset.Vin digunakan untuk memberikan tegangan langsung kepada Arduino tanpa melalui tegangan USB atau adaptor.

Tombol RESET
     Reset adalah pin untuk memberikan sinyal reset melaui tombol atau rangkaian eksternal.

Jack Baterai/Adaptor
     Soket baterai  atau adaptor digunakan untuk menyuplai Arduino dengan tegangan  dari  baterai/adaptor 9V pada saat Arduino sedang tidak disambungkan ke komputer. Kalau Arduino sedang disambungkan ke komputer melalui USB, Arduino mendapatkan suplai tegangan dari USB, jadi tidak perlu memasang baterai/adaptor saat memprogram Arduino.

b. LCD

LCD dapat diprogram menggunakan mode 8-bit atau 4-bit. Mode 8-bit menggunakan 8-bit data (D0-D7) sedangkan mode 4-bit menggunakan 4-bit data (D4-D7). Pada halaman ini ditampilkan contoh pemrograman LCD 16x2 menggunakan mode 4-bit. Mode 4-bit memang sedikit lebih rumit dibanding mode 8-bit, akan tetapi dengan mode 4-bit kita akan menghemat 4 buah pin IO untuk keperluan yang lain. Berikut ini adalah skema antarmuka lcd 16x2:

LCD yang paling umum digunakan adalah LCD berukuran 2 baris x 16 kolom. Selain mudah diperoleh di pasaran dengan harga yang cukup murah, ukurannya sangat pas digunakan untuk kebanyakan aplikasi-aplikasi yang membutuhkan display, tidak terlalu kecil dan tidak terlalu besar. Interfacing LCD sangatlah mudah. Perhatikan gambar skematik di atas, kaki-kaki LCD nomor 1, 2, dan 3 adalah kaki VSS/GND, VCC, dan VEE/VO. Kaki VEE berfungsi untuk mengatur kecerahan tampilan karakter LCD. Untuk mengaturnya, digunakan VR 10K yang dapat diputar-putar untuk mendapatkan kecerahan tampilan yang diinginkan.

Kaki LCD nomor 4 (RS) adalah kaki Register Selector yang berfungsi untuk memilih Register Kontrol atau Register Data. Register kontrol digunakan untuk mengkonfigurasi LCD. Register Data digunakan untuk menulis data karakter ke memori display LCD. Kaki LCD nomor 5 (R/W) digunakan untuk memilih aliran data apakah READ ataukah WRITE. Karena kita tidak memerlukan fungsi untuk membaca data dari LCD dan hanya perlu menulis data saja ke LCD, maka kaki ini dihubungkan ke GND (WRITE). Kaki LCD nomor 6 (ENABLE) digunakan untuk mengaktifkan LCD pada proses penulisan data ke Register Kontrol dan Register Data LCD. Kaki 11, 12, 13, 14 adalah kaki data D4, D5, D6, D7. Perhatikan bahwa kaki data D0, D1, D2, D3 tidak digunakan karena mode yang digunakan adalah mode 4-bit.

c. Motor DC

Motor DC adalah motor listrik yang memerlukan suplai tegangan arus searah pada kumparan medan untuk diubah menjadi energi gerak mekanik. Kumparan medan pada motor dc disebut stator (bagian yang tidak berputar) dan kumparan jangkar disebut rotor (bagian yang berputar).

4. Rangkaian Simulasi [kembali]

 Prinsip kerja: Pada rangkaian di atas kita memakai arduino 2560. Arduino di hubungkan dengan 5 switch dihubungkan ke pin 45,47,49,51,53. Pin data lcd dihubungkan dengan pin 4 sampai 7 pada arduino 2560. Pin 8 dan 10 dihubungkan dengan modor dc. Kondisi pada praktikum kali ini adalah jika switch 3 ditekan maka akan tampil tulisan "3" pada lcd dan motor bergerak searah jarum jam.

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