BAB16 - MCS51 - Aplikasi Key - LCD
February 15, 2019 | Author: cakMAD69 | Category: N/A
Short Description
Aplikasi Key - LCD...
Description
16.Input Keypad dan ditampilkan di LCD Percobaan ini lanjutan dari percobaan 3 dan percobaan 7 yang digabungkan. Sedangkan logika untuk pengambilan dari keypad dan dikeluarkan ke LCD adalah sbb: Cek apakah P3.3 mempunyai logika ‘0’ (Status OE terhubung ke P3.3) JB
P3.3,$
; TUNGGU TOMBOL DITEKAN
Jika ada tombol yang ditekan, ambil datanya dan di AND kan dengan 0FH MOV ANL
A,P0 A,#0FH
Cek apakah tombol sudah dilepas, jika j ika belum tunggu sampai dilepas JNB
P3.3,$
; TUNGGU TOMBOL DILEPAS
Pindahkan datanya ke LCD dengan MOV MOV ACALL MOV ADD ACALL
R0,A A,#0CFH CONTROLOUT CONTROLOUT A,R0 A,#30H DATAOUT
; KOLOM 15 BARIS 2 ; ASCII DARI DATA KEYPAD
Untuk melakukan percobaan ini, lakukan langkah-langkah sebagai berikut: 1. Hubungkan modul MICROTRAINER dengan memasang kabel DB25 dengan LPT1 pada PC. Mode printer adalah SPP atau output only. only. 2. Ketikkan di sembarang editor yang anda miliki listing program program berikut: ; PROG09.ASM DIGUNAKAN UNTUK MENGAMBIL DATA DARI KEYPAD ; DAN DITAMPILKAN KE LCD ; JUMPER INPUT : KEYPAD POSISI '0' ; JUMPER OUTPUT : LCD POSISI '0'
Mikrokontroler MCS51
127
ORG SJMP
00H START
;-------------------------------------; LCD CONSTANTA ;-------------------------------------DISPCLR EQU 00000001B FUNCSET EQU 00111000B ENTRMOD EQU 00000110B DISPON EQU 00001100B START: ACALL MOV ACALL
INIT_LCD INIT_LCD DPTR,#BARIS1 PRINTSTRING1 PRINTSTRING1
MOV ACALL
DPTR,#BARIS2 PRINTSTRING2 PRINTSTRING2
ACALL SJMP
KEYPAD MAIN
MAIN:
;--------------------------------------------------------; PENGAMBILAN DATA DARI KEYPAD ;--------------------------------------------------------KEYPAD: JB P3.3,$ MOV A,P0 ANL A,#0FH MOV R0,A MOV A,#0CFH ACALL CONTROLOUT CONTROLOUT MOV A,R0 ADD A,#30H ACALL DATAOUT JNB P3.3,$ RET ;-------------------------------------------------------; PROSEDUR PEMESANAN TEMPAT ;-------------------------------------------------------; RS : 0 : P3.5 ;E :0-1-0 : P3.4 ; DATA : P2 CONTROLOUT: CLR P3.5 ACALL DELAY CLR P3.4 ACALL DELAY SETB P3.4 ACALL DELAY MOV P2,A CLR P3.4 ACALL DELAY RET
Mikrokontroler MCS51
; TUNGGU TOMBOL DITEKAN
; PESAN TEMPAT DI KOLOM 15 BARIS 2 ; ASCII DARI DATA KEYPAD KEYPAD ; TUNGGU TOMBOL DILEPAS
; RS = 0
128
;------------------------------------------------------; PROSEDUR PENEMPATAN DATA ;------------------------------------------------------; RS : 0 : P3.5 ;E :0-1-0 : P3.4 DATAOUT: SETB P3.5 ACALL DELAY CLR P3.4 ACALL DELAY SETB P3.4 ACALL DELAY MOV P2,A CLR P3.4 ACALL DELAY RET
; RS = 1 ;E=0 ;E=1 ;E=0
;-------------------------------------------; PROSEDUR DELAY LCD ;-------------------------------------------DELAY.INIT.LCD: MOV R6,#20H DLY.LCD.LP: MOV R7,#10H DJNZ R7,$ DJNZ R6,DLY.LCD.LP RET INIT_LCD: MOV ACALL ACALL
A,#FUNCSET CONTROLOUT CONTROLOUT DELAY.INIT.LCD DELAY.INIT.LCD
MOV ACALL ACALL
A,#DISPON CONTROLOUT CONTROLOUT DELAY.INIT.LCD DELAY.INIT.LCD
MOV ACALL ACALL
A,#DISPCLR CONTROLOUT CONTROLOUT DELAY.INIT.LCD DELAY.INIT.LCD
MOV ACALL ACALL RET
A,#ENTRMOD CONTROLOUT CONTROLOUT DELAY.INIT.LCD DELAY.INIT.LCD
;---------------------------------------------------------; PROCEDURE LCD BARIS KOLOM LCD ;---------------------------------------------------------POSISI2.1: MOV A,#1 POSISI2: ADD A,#11000000B A,#11000000B ; BARIS KEDUA KEDUA DEC A ACALL CONTROLOUT CONTROLOUT ACALL DELAY.INIT.LCD DELAY.INIT.LCD RET
Mikrokontroler MCS51
129
POSISI1.1: MOV
A,#1
ADD DEC ACALL ACALL RET
A,#10000000B A,#10000000B ; BARIS PERTAMA PERTAMA A CONTROLOUT CONTROLOUT DELAY.INIT.LCD DELAY.INIT.LCD
POSISI1:
PRINTSTRING2: ACALL CLR MOVC JNZ PRINTSTRINGLOOP: ACALL ACALL INC CLR MOVC JNZ RET
POSISI2.1 POSISI2.1 A A,@A+DPTR PRINTSTRINGLOOP DATAOUT DELAY.INIT.LCD DELAY.INIT.LCD DPTR A A,@A+DPTR PRINTSTRINGLOOP
PRINTSTRING1: ACALL POSISI1.1 POSISI1.1 CLR A MOVC A,@A+DPTR JNZ PRINTSTRINGLOOP2 PRINTSTRINGLOOP2: LCALL DATAOUT ACALL DELAY.INIT.LCD DELAY.INIT.LCD INC DPTR CLR A MOVC A,@A+DPTR JNZ PRINTSTRINGLOOP2 RET ;----------------------------------------; PROCEDURE DELAY ;----------------------------------------DELAY: MOV R5,#0 U1: MOV R6,#0 U2: MOV R7,#0 U3: INC R7 CJNE R7,#5,U3 INC R6 CJNE R6,#5,U2 INC R5 CJNE R5,#5,U1 RET BARIS1: DB 'INPUT
KEYPAD',0
BARIS2: DB 'KEYPAD:
Mikrokontroler MCS51
',0
130
3. Simpanlah program yang anda ketik dan beri nama prog09.asm 4. Kemudian keluarlah ke DOS ke DOS prompt dan ketikkan A PROG09 Jika tidak ada kesalahan, tekan 5. Anda akan langsung masuk ke program AEC_ISP, kemudian kemudian pilihlah option A. Load HEX File to flash buffer, kemudian ketik PROG04.HEX PROG04.HEX dan tekan sebarang tombol 6. Pilih E.Program dan tunggu sebentar sampai ada indikator 100 % dan tekan sebarang tombol 7. Pilih I. Reset . Putarlah potensiometer 1 dan lihatlah tampilan di LCD nya 8. Berilah kesimpulan anda ....................................... ........................................................... ........................................ ......................................... ......................................... ........................ .... ....................................... ........................................................... ........................................ ......................................... ....................................... ..................
Mikrokontroler MCS51
131
View more...
Comments