单片机lcd1602显示(汇编)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
利用P1口与行列式键盘接口,编写键盘扫描程序,把按键输入的键码,显示在LCD液晶显示器上。
ORG 0000H
JMP MAIN
RS EQU P1^0
RW EQU P1^1
E EQU P1^5
MAIN:MOV R7,#30H
MOV P2,#11110111B
MOV A,P2
SWAP A
ORL A,#10000000B
MOV @R0,A
ANL A,#00000001B
JZ K1
MOV A,@R0
ANL A,#00000010B
JZ K2
MOV A,@R0
ANL A,#00000100B
JZ K3
MOV A,@R0
ANL A,#00001000B
JZ K4
LJMP NEXT1
K1:MOV R7,#31H
LJMP LCD_DISPLAY
K2:MOV R7,#32H
LJMP LCD_DISPLAY
K3:MOV R7,#33H
LJMP LCD_DISPLAY
K4:MOV R7,#34H
LJMP LCD_DISPLAY
NEXT1:MOV P2,#11111011B
MOV A,P2
ORL A,#00000100B
MOV @R0,A
ANL A,#00010000B
JZ K5
MOV A,@R0
ANL A,#00100000B
JZ K6
MOV A,@R0
ANL A,#01000000B
JZ K7
MOV A,@R0
ANL A,#10000000B
JZ K8
LJMP LCD_DISPLAY
K5:MOV R7,#35H
LJMP LCD_DISPLAY
K6:MOV R7,#36H
LJMP LCD_DISPLAY
K7:MOV R7,#37H
LJMP LCD_DISPLAY
K8:MOV R7,#38H
LJMP LCD_DISPLAY
;LCD初始化
LCD_DISPLAY:MOV P0,#00H ;清屏LCALL ENABLE
MOV p0,#38H ;显示功能
CALL ENABLE
MOV p0,#00001100B ;显示开关控制LCALL ENABLE
MOV P0,#80H;第一行的开始位置LCALL ENABLE
MOV P0,R7
SETB RS
CLR RW
CLR E
CALL DELAY
SETB E
RET
ENABLE:CLR RS ;送命令CLR RW
CLR E
CALL DELAY
SETB E
RET
DELAY:PUSH ACC
MOV A,R4
MOV R4,#05
D1:MOV R5,#0FFH
DJNZ R5,$
DJNZ R4,D1
MOV R4,A
POP ACC
RET END