Senin, 11 Februari 2008

Percobaan 12.1. Pengambilan data karakter keyboard PC dan display ke LED

Pada percobaan ini data keyboard PC diinterfacekan ke mikrokontroller dengan menggunaan port P3 bit 2 dan 3. Hasil pengambilan data keyboard selanjutnya ditampilkan pada LED.
Untuk melakukan percobaan ini lakukan beberapa langkah sebagai berikut:
1. Hubungkan jumper keyboard dua kabel ke rangkaian mikrokontroller bit P3.2 dan bit P3.3.
2. Pasang jumper LED_EN
2. Hubungkan modul keyboard PC PS/2 ke konektor keybaord
3. Hubungkan modul Microcontroller Trainer dengan power supply +5V
4. Hubungkan modul Microcontroller Trainer dengan rangkaian programmer
5. Buka Program M-IDE Studio for MCS-51, sebagai editor dan compiler program
6. Ketik program berikut ini: (download file prog122a.asm)

dispclr equ 00000001b
funcset equ 00111000b
entrmod equ 00000110b
dispon equ 00001100b
KbdData bit P3.2
KbdClock bit INT1;P3.3
DataKeyboard equ 30h
;
org 0h
Forever:
JB KbdClock,$
acall ambilKeyboard
jnc Forever
Mov P0, Datakeyboard
clr C
sjmp Forever
;
;============================================
;Subrutine AmbilKeyboard
;Subrutine berikut berfungsi untuk mendeteksi apakah keyboard
;sedang ditekan atau dilepas. Bila tombol tidak dilepas maka
;akan menuju pada subrutine ;Kybd_tidakLepas
;dan memberi tanda pada bit C = 0 sehingga bila C = 0
; maka data tidak akan dicetak
;Bila tombol keyboard dilepas maka data scan code diambil
;dan dikonversi ke dengan dengan menggunakan
; look up table serta menandai bit C = 1
;===========================================
AmbilKeyboard:
acall ambil_scancode
cjne a,#0F0h,kybd_tidakLepas
JB KbdClock,$
acall ambil_Scancode
Setb C
Acall Konversi_Scancode
ret
;
Kybd_tidakLepas:
Clr C
ret
;

;======================================================
;Subrutine Konversi_ScanCode
;Pada subrutine ini digunakan untuk menerjemahkan scan code ke bentuk
;karakter
; dengan menggunakan look up table.
;======================================================
Konversi_ScanCode:
Mov DPTR,#TableKeyboard
movc A,@A+DPTR
mov DataKeyboard,A
ret
;
Ambil_scanCode:
clr A
Jnb KbdClock,$
mov R0,#08h
Ambil_ScanCode2:
Jb KbdClock,$
Mov C,KbdData
Rr A
mov acc.7,C
Jnb KbdClock,$
Djnz R0,Ambil_ScanCode2
Jb KbdClock,$
Jnb KbdClock,$
Jb KbdClock,$
Jnb KbdClock,$
ret
;
delay: mov R5,#0
delay1:mov R4,#02fh
djnz R4,$
djnz R5,delay1
ret
;
TableKeyboard:
DB 00
DB 0F9H
DB 00
DB 0F5H,0F3H,0F1H,0F2H,0FCH
DB 00H
DB 0FAH,0F8H,0F6H,0F4H
DB 0C0H
DB '~'
DB 00H
DB 00H
DB 0C1H
DB 0C2H
DB 00H
DB 0C3H
DB 'Q1'
DB 00H,00H,00H
DB 'ZSAW2'
DB 00H,00H
DB 'CXDE43'
DB 00H,00H
DB ' VFTR5'
DB 00H,00H
DB 'NBHGY6'
DB 00H,00H,00H
DB 'MJU78'
DB 00H,00H
DB ',KIO09'
DB 00H,00H
DB './L;P-'
DB 00H,00H,00H
DB 27H
DB 00H
DB '[='
DB 00H,00H
DB 0C5H
DB 0C6H
DB 0AH
DB ']'
DB 00H
DB '\'
DB 00H,00H,00H,00H,00H,00H,00H,00H
DB 08H
DB 00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
DB 0DH
DB 00H
DB 0FBH
DB 00H,00H,00H,00H,00H,00H,00H,00H,00H,00H
DB 0F7H
;

end

7. Simpanlah program yang anda ketik dan beri nama : prog122a.asm
8. Pada program MIDE tersebut pilih Build /F9 atau untuk melakukan kompilasi program dari *.asm ke *.hex.
9. Lakukan pemrograman mikrokontroller dengan menggunakan Program ISP Software ( Lihat Petunjuk Penggunaan)
10. Lakukan pengamatan untuk data keyboard yang ditampilkan.

BACK NEXT

Tidak ada komentar: