Anda di halaman 1dari 9

HARDWARE/SOFTWARE II KEY PAD 3x4 Naskan, S.

Kom

Nama: Tita Eka Saputri Nim : 11.11.5050

Kelas: 11-S1-TI-O6

STMIK AMIKOM YOGYAKARTA 2012

LAPORAN INDIVIDU A. Peralatan yang digunakan Dalam praktikum pertama board yang digunakan adalah: 1. LCD 2x16 2. Mini 32 3. Kabel Data (USB to MiniUSB) 4. Kabel header 10 pin 5. Software CodeVision AVR 6. Keypad 3x4 B. Dasar Teori Keypad merupakan kumpulan dari push button yang disusun secara matrix. Banyak jenis keypad yang banyak beredar mulai keypad 3x4, 4x4, keypad HP, dan masih banyak jenisnya. C. Hasil Praktikum Hasil praktikum percobaan1 yang dilakukan sesuai dengan petunjuk sebagai berikut: Cara kerja: 1. Hubungkan LCD ke PORTA dan KEYPAD ke PORTC 2. Buka Program CodeVision AVR, ketikkan program dibawah ini: #include <mega32.h> #include <delay.h> #include <lcd.h>

#asm .equ__lcd_port=0x1b; #endasm

Void main(void) {

Lcd_init(16); DDRC=0xF0; PORTC=0xFF; lcd_gotoxy(2,0); lcd_putsf(=Keypad 3x4=); lcd_gotoxy(0,1); lcd_putsf(=Tekan Tombol=);

while(1) { PORTC=0b11101111; Delay_ms(10); if (PINC.0==0) {lcd_gotoxy(14,1); lcd_putsf(1); } if (PINC.1==0) {lcd_gotoxy(14,1); lcd_putsf(4); } if (PINC.2==0) {lcd_gotoxy(14,1); lcd_putsf(7); } if (PINC.3==0) {lcd_gotoxy(14,1); lcd_putsf(*); }

PORTC=0b11011111; Delay_ms(10); if (PINC.0==0) {lcd_gotoxy(14,1); lcd_putsf(2); } if (PINC.1==0) {lcd_gotoxy(14,1); lcd_putsf(5); } if (PINC.2==0) {lcd_gotoxy(14,1); lcd_putsf(8); } if (PINC.3==0) {lcd_gotoxy(14,1); lcd_putsf(0); }

PORTC=0b10111111; Delay_ms(10); if (PINC.0==0) {lcd_gotoxy(14,1); lcd_putsf(3); } if (PINC.1==0) {lcd_gotoxy(14,1); lcd_putsf(6); } if (PINC.2==0) {lcd_gotoxy(14,1); lcd_putsf(9); } if (PINC.3==0) {lcd_gotoxy(14,1); lcd_putsf(#); } } }

a. Apa yang ditampilkan pada LCD? Jawab: yang ditampilkan pada LCD adalah =Keypad 3x4= dan Tekan Tombol: , jika keypad di tekan 1 maka pada LCD akan muncul angka 1, jika di tekan 4 maka pada LCD akan muncul angka 4, begitu seterusnya sesuai dengan program yang dibuat. b. Jelaskan bagaimana konsep pembacaan input dari keypad 3x4? Jawab : dibaca dari baris dan kolom yaitu Baris 0 dan Kolom 2.

D. KESIMPULAN Kesimpulan yang diperoleh dari praktikum ini bahwa: Keypad merupakan kumpulan dari push button yang disusun secara matrix. Hasil dari praktikum yang ditampilkan di LCD adalah =Keypad 3x4= dan Tekan Tombol: . Untuk keypad akan tampil di LCD jika ditekan secara manual dan akan menjalankan perintah sesuai dengan program yang telah dibuat.

E. TUGAS Buatlah kontroler lampu LED dengan input password, password minimal 3 angka! Jawab: #include <mega32.h> #include <delay.h> #include <stdlib.h> #include <stdio.h> float nilai=0, password=12345678; char temp[12], array[10], i=0, indeks=0; //variabel indeks digunakan untuk mendeteksi jika indeks=0 unlock, indeks=1 lock

// Alphanumeric LCD Module functions #asm .equ __lcd_port=015 ;PORTC #endasm #include <lcd.h> void lock() { while (indeks==0) { lcd_gotoxy(0,0); lcd_putsf(Please press =); lcd_gotoxy(0,1); lcd_putsf(to lock); PORTB = 0b11111011; delay_ms(30); if (PINB.7 == 0) { indeks=1; PORTD.0=1;//terkunci lcd_clear(); lcd_gotoxy(0,0); lcd_putsf(locked); delay_ms(1000); lcd_clear(); } } } void enter() {

if (nilai==password) { lcd_clear(); lcd_gotoxy(0,0); lcd_putsf(unlocked); delay_ms(1000); i=0; nilai=0; PORTD.0=0;//kunci terbuka indeks=0; } else { lcd_clear(); lcd_gotoxy(0,0); lcd_putsf(wrong password); delay_ms(2500); i=0; nilai=0; indeks=1;//karena password salah jadi masih terkunci } } void simpan_dlm_1variabel() { if (i==1){nilai=array[i];} if (i>=2 && i<=8) { nilai=(nilai*10)+array[i]; } }

void scanning_keypad()//scanning pendeteksian penekanan keypad { lcd_gotoxy(0,0); lcd_putsf(enter ur pass); PORTB = 0b11111110; delay_ms(30); if (PINB.4 == 0) {i++; array[i]=1; simpan_dlm_1variabel(); delay_ms(300);} if (PINB.5 == 0) {i++; array[i]=4; simpan_dlm_1variabel(); delay_ms(300);} if (PINB.6 == 0) {i++; array[i]=7; simpan_dlm_1variabel(); delay_ms(300);} if (PINB.7 == 0) {lcd_clear();i=0;nilai=0;delay_ms(300);} PORTB = 0b11111101; delay_ms(30); if (PINB.4 == 0) {i++; array[i]=2; simpan_dlm_1variabel(); delay_ms(300);} if (PINB.5 == 0) {i++; array[i]=5; simpan_dlm_1variabel(); delay_ms(300);} if (PINB.6 == 0) {i++; array[i]=8; simpan_dlm_1variabel(); delay_ms(300);} if (PINB.7 == 0) {i++; array[i]=0; simpan_dlm_1variabel(); delay_ms(300);} PORTB = 0b11111011; delay_ms(30); if (PINB.4 == 0) {i++; array[i]=3; simpan_dlm_1variabel(); delay_ms(300);} if (PINB.5 == 0) {i++; array[i]=6; simpan_dlm_1variabel(); delay_ms(300);} if (PINB.6 == 0) {i++; array[i]=9; simpan_dlm_1variabel(); delay_ms(300);} if (PINB.7 == 0) {delay_ms(300);} PORTB = 0b11110111; delay_ms(30); if (PINB.4 == 0) {delay_ms(300);} if (PINB.5 == 0) {delay_ms(300);} if (PINB.6 == 0) {delay_ms(300);}

if (PINB.7 == 0) {enter();delay_ms(300);} } void tampil_lcd() { if (nilai>0) { ftoa(nilai,0,temp); lcd_gotoxy(0,1); lcd_puts(temp); } } void main(void) { PORTB=0xff; DDRB=0x0f; PORTD=000;//PD0 belogika low atau dlm keadaan unlock awalnya DDRD=001;//PD0 sebagai output // Analog Comparator initialization // Analog Comparator: Off // Analog Comparator Input Capture by Timer/Counter 1: Off ACSR=080; SFIOR=000; // LCD module initialization lcd_init(16); lcd_putsf(ElectrO-cOntrOl); delay_ms(1500); lcd_clear();

while (1) { lock(); scanning_keypad(); tampil_lcd(); }; }

Anda mungkin juga menyukai