📄 8802.asm
字号:
;0802液晶16位键盘的控制程序
RS EQU P2.0
RW EQU P2.1
E EQU P2.2
org 0000h
ajmp main
org 0030h
loop:mov 30h,#0ffh ;30h送ff即-1
main:INC 30H
mov a,30h
MOV DPTR,#TAB
MOVC A,@A+DPTR
MOV P0,#00000001B ;清屏
ACALL ENABLE
MOV P0,#00111000B ;显示功能
ACALL ENABLE
MOV P0,#00001111B ;显示开关控制
ACALL ENABLE
MOV P0,#00000110B ;输入模式
ACALL ENABLE
MOV P0,#0C0H ;数据存贮器地址
ACALL ENABLE
mov p0,A ;ASCII码
SETB RS
CLR RW
CLR E
ACALL DELAY
SETB E
lcall delay3
lcall delay3 ;延时一段时间
cjne a,#45H,main ;如果是最后一个数据重新开始
ljmp loop ; 否则30H 清除
ret
ENABLE: CLR RS ;送命令
CLR RW
CLR E
ACALL DELAY
SETB E
RET
DELAY: MOV P0,#0FFH
CLR RS
SETB RW
CLR E
NOP
SETB E
JB P0.7,DELAY ;判断忙标志
RET
DELAY3: ; 延时程序
MOV R7,#255
D1:MOV R6,#255
D2: DJNZ R6,D2
DJNZ R7,D1
RET
tab:
db 30h,31h,32h,33h,34h,35h,36h,37h,38h,39h,40h,41h,42h,43h,44h,45h
;0h0hc9878654a321 轮流显示键盘因为无法表达*# 就用H表示,B用8表示
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -