BAB16 - MCS51 - Aplikasi Key - LCD

February 15, 2019 | Author: cakMAD69 | Category: N/A
Share Embed Donate


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

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF