当前位置:文档之家› 已经采用过-LCD1602显示字符和(RAM)数字的汇编程序

已经采用过-LCD1602显示字符和(RAM)数字的汇编程序

单片机LCD1602显示字符和数字的汇编程序(无聊原创)
1,单片机和LCD1602的连线,和程序结果显示如下图:
2,LCD第一行显示字符XIAORENGUANG第二行显示RAM中40H到46H中的数字。

程序如下:
ORG 0000H
AJMP MAIN
RS EQU P2.4
RW EQU P2.5
E EQU P2.6
MAIN: MOV SP,#60H
MOV 40H,#01H
MOV 41H,#02H
MOV 42H,#03H
MOV 43H,#04H
MOV 44H,#05H
MOV 45H,#06H
MOV 46H,#07H
ACALL DD1 ;DD1是LCD初始化
MOV DPTR,#TABLE1
ACALL DD2;DD2是LCD第一行显示TABLE1
ACALL PPP ;PPP是LCD第二行显示RAM中40H到46H中的数据
SJMP $
DD1: MOV p0,#01H ;清屏
CALL ENABLE
MOV p0,#38H ;显示功能
CALL ENABLE
MOV p0,#0FH ;显示开关控制
CALL ENABLE
MOV p0,#06H ;+1
CALL ENABLE
RET
DD2: MOV p0,#80H;第一行的开始位置
cALL ENABLE
CALL WRITE1;到TABLE1取码?
RET
DD3: MOV p0,#0C0H;第二行的位置
CALL ENABLE
CALL WRITE1;到TABLE2 取码
RET
ENABLE: CLR RS ;送命令
CLR RW
CLR E
CALL DELAY
SETB E
RET
WRITE1: MOV R1,#00H ;显示table中的值
A1: MOV A,R1;到table取码
MOVC A,@A+DPTR
call wRITE2 ;显示到lcd
INC R1
CJNE A,#00H,A1 ;是否到00h
RET
WRITE2:MOV p0,A ;显示
SETB RS
CLR RW
CLR E
CALL DELAY
SETB E
RET
(动态显示频率、幅度核心程序设计思想:可以利用如下程序)
MOV 40H,#01H
MOV 41H,#02H
MOV 42H,#03H)
MOV R1,#40H ;显示table中的值
MOV A,R1;到table取码
MOVC A,@A+DPTR
MOV P0,A
INC R1
LJMP LOOP
DELAY: P USH ACC
MOV A,R4
MOV R4,#05
D1: MOV R5,#0FFH
DJNZ R5,$
DJNZ R4,D1
MOV R4,A
POP ACC
RET
PPP: M OV p0,#0C0H;第二行的位置
CALL ENABLE
MOV DPTR,#TAB;显示
CALL WRITE3;到TABLE2 取码
RET
WRITE3: MOV R1,#40H ;显示table中的值
MOV R7,#07H
A2: MOV A,@R1;到table取码
MOVC A,@A+DPTR
call wRITE2 ;显示到lcd
INC R1
DJNZ R7,A2 ;是否到00h
RET
table1: db"XIAORENGUANG ",00H
TAB: DB 30H, 31H, 32H, 33H
DB 34H, 35H, 36H, 37H
DB 38H, 39H
END。

相关主题