6 0 421 KB
PRAKTIKUM MIKROPROSESOR MODUL II SEVEN SEGMENT, KEYPAD dan LCD LAPORAN AWAL
NAMA
: Mukh Yasin Nur Supriyadi
NPM
: 140303130001
WAKTU
: Senin, 6 Oktober 2014, 16.30 – 18.00
ASSISTEN
: Ahmad dan Fajar
LABORATORIUM HARDWARE PROGRAM STUDI TEKNIK KOMPUTER FMIPA UNPAD 2014
MODUL II SEVEN SEGMENT, KEYPAD dan LCD I.
Tujuan Praktikum Praktikan dapat memahami rangkaian mikrokontroler ATMega 8535 dengan seven segment. Praktikan dapat menggunakan dan memahami instruksi program CodeVision AVR untuk
menampilkan data ke seven segment. Praktikan mempelajari fungsi keypad. Praktikan dapat membuat program untuk memeriksa tombol yang ditekan pada keypad. Praktikan mampu membuat program untuk menampilkan suatu karakter pada LCD (Liquid Crystal Display) melalui pin I/O AVR.
II.
Teori Dasar II.1.
Seven Segment
Seven segment adalah suatu segmen-segmen yang digunakan menampilkan angka. Seven segment ini tersusun atas 7 batang LED yang disusun angka 8 dengan menggunakan huruf a-f yang disebut DOT MATRIKS. Setiap segmen terdiri dari 1 atau 2 Light Emiting Diode(LED). Peraga seven merupakan konfigurasi 7 buah LED dan 1 titik LED yang dapat dibentuk menjadi angka dan karakter tertentu yang ditandai dengan batang ‘a’ hingga batang ‘g’.
Gambar 2.1 Konstruksi Seven Segment Seven segment dapat dibedakan menjadi dua macam yaitu:
Common Anoda
:
Logika 1 = mati (logika tinggi) Logika 0 = menyala (logika rendah)
Common Katoda
:
Logika 1 = menyala (logika tinggi) Logika 0 = mati (logika rendah)
Tabel untuk menampilkan angka 0-9 :
Angk
Bit7
Bit6
Bit5
a 0 1 2 3 4 5 6 7 8 9
dot 1 1 1 1 1 1 1 1 1 1
g 1 1 0 0 0 0 0 1 0 0
f 0 1 1 1 0 0 0 1 0 0
Angk
Bit7
Bit6
Bit5
a 0 1 2 3 4 5 6 7 8 9
dot 0 0 0 0 0 0 0 0 0 0
g 0 0 1 1 1 1 1 0 1 1
f 1 0 0 0 1 1 1 0 1 1
Rangkaian Seven Segment:
COMMON ANODA Bit4 Bit3 E 0 1 0 1 1 1 0 1 0 1
D 0 1 0 0 1 0 0 1 0 0
COMMON ANODA Bit4 Bit3 E 1 0 1 0 0 0 1 0 1 0
D 1 0 1 1 0 1 1 0 1 1
Bit2
Bit1
Bit0
Data
c 0 0 1 0 0 0 0 0 0 0
b 0 0 0 0 0 1 1 0 0 0
A 0 1 0 0 1 0 0 0 0 0
(hexa) 0xc0 0Xf9 0Xa4 0xB0 0x99 0x92 0x82 0Xf8 0x80 0x90
Bit2
Bit1
Bit0
Data
c 1 1 0 1 1 1 1 1 1 1
b 1 1 1 1 1 0 0 1 1 1
A 1 0 1 1 0 1 1 1 1 1
(hexa) 0x3F 0x06 0x5B 0x4F 0x66 0x6E 0x7E 0x07 0x7F 0x6F
Gambar 2.2 Rangkaian Seven Segment II.2.
Keypad
Keypad adalah kumpulan beberapa switch yang tersusun atas baris dan kolom, yang mempunyai sifat yang unik yaitu kolom dan barisnya tidak dapat dirubah. Dalam melakukan proses pembacaan dan pengiriman data keypad dapat bekerja dengan menggunakan dua metoda, yaitu metoda scanning dan pollong. Keypad ATMega 8535 yang digunakan menggunakan metoda scanning yang berfungsi untuk menerima input tombol keypad serta menampilkan digit atau karakter yang diinginkan ke alat penampil seperti seven segment atau LCD. Berikut ini merupakan gambar rangkaian dari keypad:
Gambar 2.3 Rangkaian Keypad 3x4 Keypad merupakan susunan saklar push-button menurut baris dan kolom, hampir sama dengan dot matriks, hanya saja dot matrix tersusun dari LED. Bentuk dan susunan keypad dapat dilihat pada gambar 2.3. Hubungkan pin keypad dengan pin mikrokontroler. Cara untuk mengetahui saklar mana yang ditekan adalah dengan memeriksa baris dan kolom. Agar mikrokontroler mengetahui baris dan kolom mana yang terhubung, maka sebagian port mikrokontroler difungsikan sebagai output dan sebagian lagi difungsikan sebagai input.
II.3.
LCD
LCD adalah suatu display dari bahan cairan Kristal yang pengoperasiannya menggunakan system dot matriks, LCD banyak digunakan sebagai display dari alat-alat elektronik seperti kalkulator, multitester digital, jam digital dan sebagainya.
Gambar 2.4 Blok Diagram LCD LCD dapat digunakan dengan mudah dihubungkan dengan mikrokontroler AVR ATMega 8535. LCD yang digunakan dalam percubaan adalah LCD 2 x 16, lebar display 2 baris 16 kolom, yang mempunyai 16 pin konektor yang didefinisikan sebagai berikut:
Gambar 2.5 Konfigurasi Pin pada LCD Konfigurasi Pin pada LCD
PI N 1
NAMA PIN
FUNGSI
VSS
Ground Voltage
2
VCC
+5v
3
VEE
Contrast Voltage
4
RS
5
R/W
6
E
7 8 9 10 11 12 13 14 15 16
DB0 DB1 DB2 DB3 DB4 DB5 DB6 DB7 BPL GND
Register Select 1 = Intruction Register 0 = Data Register Read/Write, to choose write or read mode 0 = write mode 1 = read mode Enable 0 = start to lacht data to LCD character 1 = disable Data bit ke-0 (LSB) Data bit ke-1 Data bit ke-2 Data bit ke-3 Data bit ke-4 Data bit ke-5 Data bit ke-6 Data bit ke-7 Back Plane Light Ground Voltage
III.
TUGAS PENDAHULUAN 1. Jelaskan cara kerja seven segment! Jawab : Prinsip kerja seven segmen ialah input biner pada switch
dikonversikan
masuk
ke
dalam
decoder,
baru
kemudian
decoder
mengkonversi bilangan biner tersebut menjadi decimal, yang nantinya akan
ditampilkan
pada
seven
segment. Seven
segment
dapat
menampilkan angka-angka desimal dan beberapa karakter tertentu melalui kombinasi aktif atau tidaknya LED penyusunan dalam seven segment. Untuk memudahkan penggunaan seven segment, umumnya digunakan sebuah decoder( mengubah/ mengkoversi input bilangan biner menjadi decimal) atau seven segment driver yang akan mengatur aktif tidaknya led-led dalam seven segment sesuai dengan nilai biner yang diberikan. 2. Apa perbedaan antara seven segment common anoda dengan seven segment common katoda? Jawab : a. Common anoda Disini, semua anoda dari diode disatukan secara parallel dan semua itu dihubungkan ke VCC dan kemudian LED dihubungkan melalui tahanan pembatas arus keluar dari penggerak. Karena dihubungkan ke VCC, maka Common Anoda ini berada pada kondisi aktif high. b. Common katoda Disini semua katoda disatukan secara parallel dan dihubungkan ke ground. Karena seluruh katoda dihubungkan ke ground, maka common katoda ini berada pada kondisi aktif low. 3. Seven segment termasuk ke dalam encoder atau decoder! Jelaskan alasannya! Jawab : Decoder. Karena pada dasarnya prinsip kerja seven segmen ialah input
biner pada switch dikonversikan masuk ke dalam decoder, baru kemudian decoder mengkonversi bilangan biner tersebut menjadi decimal, yang nantinya akan ditampilkan pada seven segment. 4. Download rangkaian LCD! Jawab :
5. Apa fungsi kaki 15 dan 16 pada LCD? Jawab : kaki 15 berfungsi sebagai BPL (Back Plane Light) , dan kaki 16 sebagai Ground Voltage, 6. Apa fungsi dari potensiometer pada rangkaian LCD? Jawab : pada sebuah LCD terdapat trimpot potensiometer yang besarnya 10KΩ. Dimana fungsi dari trimpot potensiometer tersebut digunakan untuk mengatur contrast dari karakter yang ditampilkan pada LCD. 7. Buat program untuk menampilkan nama anda di LCD! Jawab : lcd_gotoxy(0,0); lcd_gotoxy(0,0); lcd_putsf("Tampilkan Nama"); lcd_gotoxy(0,1); lcd_putsf("Mukh Yasin Nur Supriyadi"); delay_ms(100); lcd_clear(); delay_ms(100); atau dengan cara berikut : #include // Alphanumeric LCD Module Functions #asm .equ __lcd_port=0x15 ; PORTC #endasm #include // Standard Input / Output Functions #include lcd_init (16); lcd_putsf ("Mukh Yasin Nur Supriyadi"); while ()
{ // put your code here } 8. Jelaskan cara kerja keypad ATMega 8535! Jawab : scanning yaitu mendeteksi terus menerus apakah ada penekanan tombol. Scanning ini dilakukan dengan bantuan mikrokontroler ATMega 8535 yang telah diprogram untuk scanning.
9. Sebutkan dan jelaskan dua metoda cara kerja keypad! Jawab : a. Metoda Scanning Metode scanning keypad dilakukan dengan mendeteksi hubungan pin baris dan kolom karena tombol ditekan, secara berurutan, bergantian dan satu-persatu. 10. Buatlah program untuk menampilkan huruf pertama dari nama anda pada seven segment menggunakan codevison AVR! Jawab : Org 0h Start: Mov P0,#01001101b ; tulis huruf M pada 7 segmen End 11. Buatlah program seven segment untuk menampilkan data ADC! Jawab :
12. Buatlah program untuk menampilkan karakter pada LCD menggunakan keypad! Jawab : #include #include #include #include // Alphanumeric LCD Module functions #asm .equ __lcd_port=0×15 ;PORTC #endasm void tekan_keypad_tampil_lcd() //penekanan keypad kemudian ditampilkan di LCD { PORTB = 0b11111110; delay_ms(30); if (PINB.4 == 0) {lcd_putsf(“1″); delay_ms(300);} if (PINB.5 == 0) {lcd_putsf(“4″); delay_ms(300);} if (PINB.6 == 0) {lcd_putsf(“7″); delay_ms(300);} if (PINB.7 == 0) {lcd_putsf(“F”); delay_ms(300);} PORTB = 0b11111101; delay_ms(30);
if (PINB.4 == 0) {lcd_putsf(“2″); delay_ms(300);} if (PINB.5 == 0) {lcd_putsf(“5″); delay_ms(300);} if (PINB.6 == 0) {lcd_putsf(“8″); delay_ms(300);} if (PINB.7 == 0) {lcd_putsf(“0″); delay_ms(300);} PORTB = 0b11111011; delay_ms(30); if (PINB.4 == 0) {lcd_putsf(“3″); delay_ms(300);} if (PINB.5 == 0) {lcd_putsf(“6″); delay_ms(300);} if (PINB.6 == 0) {lcd_putsf(“9″); delay_ms(300);} if (PINB.7 == 0) {lcd_putsf(“E”); delay_ms(300);} PORTB = 0b11110111; delay_ms(30); if (PINB.4 == 0) {lcd_putsf(“A”); delay_ms(300);} if (PINB.5 == 0) {lcd_putsf(“B”); delay_ms(300);} if (PINB.6 == 0) {lcd_putsf(“C”); delay_ms(300);} if (PINB.7 == 0) {lcd_putsf(“D”); delay_ms(300);} } void tampil_string() { lcd_gotoxy(0,0);
//menempatkan kursor lcd pada baris 0 kolom 0
lcd_putsf(“tampilan lcd2x16″);
//menampilkan tulisan tampilan
lcd2x16 lcd_gotoxy(0,1);
//menempatkan kursor lcd pada baris 1 kolom 0
lcd_putsf(“Elektro-cOntrOl”);
//menampilkan tulisan ElektrO-
cOntrOl } void tampil_variabel() { //sebuah variabel yg akan ditampilkan kedalam LCD harus diubah dahulu kedalam tipe data array //jika variabel bertipe data float maka diubah kedalan array dengan instruksi ftoa //jika variabel bertipe data int maka diubah kedalan array dengan instruksi itoa char temp[6]; int a=500; float b=123.45;
itoa(a,temp); lcd_gotoxy(0,0); lcd_puts(temp); ftoa(b,2,temp); //angka 2, banyaknya digit dibelakang koma yg ditampilkan lcd_gotoxy(0,1); lcd_puts(temp); } void main(void) { PORTB = 0xff; DDRB = 0x0f;//PA0-3 sebagai output, PA4-7 sebagai input while(1) //program utama { //tinggal dilakukan pemanggilan fungsi saja, contoh: tampil_string(); //pemanggilan fungsi tampil_string() }; }
DAFTAR PUSTAKA Ino Suryana, Drs,.M.Kom. 2014 , Laboratorium Hardware: Modul Praktikum Mikroprosessor Universitas Padjadjaran. Jatinangor http://id.wikipedia.org/wiki/Layar_tujuh_segmen http://pemudaminangkabau.wordpress.com/2013/02/28/pengertian-motor-dc/ http://wahyurahmaniar.files.wordpress.com/2010/11/lcd21.jpg http://natasyakinsky.blogspot.com/2013/06/seven-segment-display.html http://ilmubawang.blogspot.com/2011/04/download-artikel-ini-dalam-bahasa.html http://elektobot.blogspot.com/2013/09/program-menampilkan-kata-dari.html http://fuad-muhammad.blogspot.com/2011/12/huruf-kode-biner.html http://elektro-kontrol.blogspot.com/2011/06/lcd-dan-keypad.html http://ari-bawono.blogspot.com/2012/09/belajar-menampilkan-data-adc-di-lcd-2x16.html