单片机LCD1602显示字符和数字的汇编程序1,单片机和LCD1602的连线,和程序结果显示如下图:
2,LCD第一行显示字符XIAORENGUANG第二行显示RAM中40H到46H中的数字。程序如下:
RS EQU P2.4
RW EQU P2.5
E EQU P2.6
ORG 0000H
AJMPMAIN
ORG 0030H
MAIN:MOV SP,#60H
MOV40H,#01H
MOV 41H,#02H
MOV42H,#03H
MOV43H,#04H
MOV44H,#05H
MOV45H,#06H
MOV46H,#07H
ACALLDD1 ;DD1是LCD初始化
MOV DPTR,#TABLE1
ACALLDD2;DD2是LCD第一行显示TABLE1
ACALLPPP ;PPP是LCD第二行显示RAM中40H到46H中的数据 SJMP$
DD1:MOV p0,#01H ;清屏
CALLENABLE
MOVp0,#38H ;显示功能
CALLENABLE
MOVp0,#0FH ;显示开关控制
CALLENABLE
MOVp0,#06H ;显示光标右移加1
CALLENABLE
RET
DD2:MOV p0,#80H;第一行的开始位置
cALLENABLE
CALLWRITE1;到TABLE1取码?
RET
ENABLE:CLR RS ;送命令
CLRRW
CLRE
CALLDELAY
SETBE
RET
WRITE1:MOV R1,#00H ;显示table中的值
A1: MOV A,R1;到table取码
MOVCA,@A+DPTR
call wRITE2 ;显示到lcd
INCR1
CJNEA,#00H,A1 ;是否到00h
RET
WRITE2:MOVp0,A ;显示
SETBRS
CLRRW
CLRE
CALLDELAY
SETBE
RET
(动态显示频率、幅度核心程序设计思想:可以利用如下程序) MOV40H,#01H
MOV41H,#02H
MOV42H,#03H)
MOVR1,#40H;显示table中的值
MOVA,R1;到table取码
MOVCA,@A+DPTR
MOVP0,A
INCR1
LJMPLOOP
DELAY: PUSH ACC
MOV A,R4
MOVR4,#05
D1: MOV R5,#0FFH
DJNZR5,$
DJNZR4,D1
MOV R4,A
POP ACC
RET
PPP: MOV p0,#0C0H;第二行的位置
CALLENABLE
MOVDPTR,#TAB;显示
CALLWRITE3;到TABLE2取码
RET
WRITE3:MOV R1,#40H ;显示table中的值
MOVR7,#07H
A2: MOV A,@R1;到table取码
MOVCA,@A+DPTR
call wRITE2 ;显示到lcd
INCR1
DJNZR7,A2 ;是否到00h
RET
table1:db"XIAORENGUANG ",00H
TAB: DB 30H, 31H, 32H, 33H
DB34H, 35H, 36H, 37H
DB38H, 39H
END