📄 1602logo.asm
字号:
;///////////////////////////////////////////
;....本程序实现液晶循环显示信息功能.
;///////////////////////////////////////////
RS EQU P2.0
RW EQU P2.1
E EQU P2.2
SJ EQU P0
org 00h
ajmp main
org 030h
main:
mov sp,#60h
main1:
lcall delay ;延时一段时间
MOV SJ,#38H ;
ACALL ENABLE ;写指令38H
MOV SJ,#38H ;
ACALL ENABLE ;写指令38H
MOV SJ,#38H ;
ACALL ENABLE ;写指令38H
MOV SJ,#38H ;
ACALL ENABLE ;写指令38H
MOV SJ,#08H ;
ACALL ENABLE ;写指令08H
MOV SJ,#01H ;
ACALL ENABLE ;写指令01H
MOV SJ,#06H ;
ACALL ENABLE ;写指令06H
MOV SJ,#0cH ;
ACALL ENABLE ;写指令0CH
MOV SJ,#80H ;第一行显示第一个字符的位置
ACALL ENABLE ;调用写指令
mov dptr,#table3 ;第一行表头位置
call write1 ;调用第一行写子程序
mov SJ,#0c0h ;第二行位置
call enable ;调用写指令
mov dptr,#table2 ;第二行表头位置
call write1 ;调用第二行写子程序
jmp main1 ;返回主程序不断的循环
ENABLE: ;写命令时序(参照1602LCD使用说明书)
CLR RS
CLR RW
CLR E
ACALL DELAY
SETB E
RET
write1: ;写字符串
mov r1,#00h ;将R1清0
a1:mov a,r1 ;把R1的值送到ACC
movc a,@a+dptr ;查表取将显示的数据并把要显示的数送入ACC
call write2 ;调用写程序写入单个字节
inc r1 ;将工作寄存器指针加一
cjne r1,#10h,a1 ;R1的内容加到16后就返回到a1处
ret ;
write2: ;写单个字符
mov SJ,a ;写数据到显示端口
setb rs ;写数据时序(请参照1602LCD使用说明书)
clr rw
clr e
call delay
setb e
ret
delay:
mov r7,#255
d1:mov r6,#255
d2:djnz r6,d2
djnz r7,d1
ret
table3: db " www.ttnu.com"
table2: db " 0512-58112811"
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -