Microcontroller Kits
Simple Mikrokontroller 89s51 Trainer
Standart
Mikrokontroller 89s51 Trainer
Super Mikrokontroller Trainer 89s51
All Kits
Programmer via USB Port
ย
Percobaan 12.2. Pengambilan data karakter keyboard PC dan display ke LCD Karakter
Pada percobaan ini data keyboard PC diinterfacekan ke mikrokontroller dengan menggunaan port P3 bit 2 dan 3. Hasil pengambilan data keyboard selanjutnya ditampilkan pada layar LCD Karakter.
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. 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 prog121a.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 nop call init_LCD ;Forever: JB KbdClock,$ acall ambilKeyboard jnc Forever acall LCD_Out 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 ;write_char: mov dptr,#word1 ;DPTR = [ address word1 ] mov r3,#16 ;R3=16,number character to be display mov r1,#80h ;R1=80h,address DDRAM start position acall write_inst ;write1: clr a ; A = 0 movc a,@a+dptr ; A = [A+ DPTR] mov r1,A ; R1 = A inc dptr ; DPTR = DPTR +1 acall write_data; djnz r3,write1 ; R3 = R3-1, 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 ; LCD_Out: mov R7, #80h acall write_inst mov R7,DataKeyboard acall write_data 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 ;Init_lcd: mov r1,#00000001b ;Display clear acall write_inst ; mov r1,#00111000b ;Function set, Data 8 bit,2 line font 5x7 acall write_inst ; mov r1,#00001100b ;Display on, ;cursor off,cursor blink off acall write_inst mov r1,#00000110b ;Entry mode, Set increment acall write_inst ret ;Write_inst: clr P3.6 ; RS = P2.0 = 0, write mode instruction mov P0,R1 ; D7 s/d D0 = P0 = R1 setb P3.7 ; EN = 1 = P2.1 call delay; call delay time clr P3.7 ; EN = 0 = P2.1 ret ;Write_data: setb P3.6 ; RS = P2.0 = 1, write mode data mov P0,R1 ; D7 s/d D0 = P0 = R1 setb P3.7 ; EN = 1 = P2.1 call delay; call delay time clr p3.7 ; EN = 0 = P2.1 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
word1: DB ' Welcome Home '; here is the data to be look up end
7. Simpanlah program yang anda ketik dan beri nama : prog121a.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.
11. Lakukan modifikasi program tersebut untuk menampilkan data keyboard PC lebih dari satu karakter ke LCD karakter.
ย
Komentar, pertanyaan dan diskusi tentang topik tersebut. Klik disini
ย
ย
HARDWARE
1.Target
2.Programmer
DASAR TEORI1.Organisasi Mem
1.1. Mem.Data
1.2. Mem.Prog
1.4. SFR2.Pengalamatan3.Set Instruksi
3.1.Copy Data
3.2.Aritmatika
3.3.Logika
3.4.Lompatan4.Interupsi5.Timer Counter6.Serial Kom.7.Bahasa Assemb.8.Perangkat LunakMIDE dan ISP Soft.
PERCOBAAN 1
LED
PERCOBAAN 2
SAKLAR
PERCOBAAN 3
7 Segmen
PERCOBAAN 4
LCD Character
PERCOBAAN 5
ADC
PERCOBAAN 6
DAC
PERCOBAAN 7
Keypad
PERCOBAAN 8
Motor Stepper
PERCOBAAN 9
Timer Counter
PERCOBAAN 10
Komunikasi Serial
PERCOBAAN 11
Interupsi
PERCOBAAN 12
Keyboard PC
PERCOBAAN 13
Printer Dot Matr.
PERCOBAAN 14
RTC12C887
PERCOBAAN 15
P W M
ย
ย