lcd1602液晶显示滚动汇编语言具体解释,请说一下这个程序的整个思路,没注释的地方是什么意思 10
RSEQUP2.0RWEQUP2.1EEQUP2.2ORG000HLJMPMAINMAIN:MOVR0,#5;//延时次数MOVR1,#0;//查表初值LCALLSZ1;...
RS EQU P2.0
RW EQU P2.1
E EQU P2.2
ORG 000H
LJMP MAIN
MAIN:MOV R0,#5 ;//延时次数
MOV R1,#0 ;//查表初值
LCALL SZ1 ;//清屏初始化设置
LCALL SZ7 ;//设置第一行显示坐标
MOV DPTR,#TAB1 ;//设置段码表地址一行显示段码表
LCALL XR
YS:LCALL DELY
LJMP MAIN;//清屏指令写入
SZ1:CLR RS ;//写指令标志
CLR RW ;//写标志
MOV P0,#01H ;//写入清屏指令
SETB E ;//高电平使能读数据
NOP ;空指令
NOP ;空指令
CLR E ;//下降沿执行指令
LCALL DELY_2MS;//显示开关设置光标开关设置
SZ3:CLR RS ;RS=0,选择指令寄存器
CLR RW ;RW=1,选择读模式
MOV P0,#0CH
SETB E ;E=1,允许读/写LCD
NOP ;空指令
NOP ;空指令
CLR E ;E=0,禁止读/写LCD
LCALL DELY_US;//设置总线位数显示行数点帧数
SZ5:CLR RS ;RS=0,选择指令寄存器
CLR RW ;RW=1,选择读模式
MOV P0,#36H
SETB E ;E=1,允许读/写LCD
NOP ;空指令
NOP ;空指令
CLR E ;E=0,禁止读/写LCD
LCALL DELY_US
RET
;//设置第二行显示坐标
SZ6:CLR RS ;RS=0,选择指令寄存器
CLR RW ;RW=1,选择读模式
MOV P0,#0C0H
SETB E ;E=1,允许读/写LCD
NOP ;空指令
NOP ;空指令
CLR E ;E=0,禁止读/写LCD
LCALL DELY_US
RET
;//设置第一行显示坐标
SZ7:CLR RS ;RS=0,选择指令寄存器
CLR RW ;RW=1,选择读模式
MOV P0,#90H
SETB E ;E=1,允许读/写LCD
NOP ;空指令
NOP ;空指令
CLR E ;E=0,禁止读/写LCD
LCALL DELY_US
RET
;//写入数据
XR: LCALL SZ4
SETB RS ;//数据标志位
CLR RW ;//写入标志位
MOV A,R1
MOVC A,@A+DPTR ;//查表
JZ GRET ;//检测是否显示完全//零为标志位
MOV P0,A ;//并行输出数据
SETB E ;E=1,允许读/写LCD
NOP ;空指令
NOP ;空指令
CLR E ;E=0,禁止读/写LCD
LCALL DELY
INC R1 ;//读下一个字符
SJMP XR
;//设置显示屏和光标移动方向
SZ4:CLR RS ;RS=0,选择指令寄存器
CLR RW ;RW=1,选择读模式
MOV P0,#18H
SETB E ;E=1,允许读/写LCD
NOP ;空指令
NOP ;空指令
CLR E ;E=0,禁止读/写LCD
LCALL DELY_US
RET
GRET:RET
DELY_2MS:MOV 30H,#4
MS1:MOV 31H,#250
MS2:DJNZ 31H,MS2
DJNZ 30H,MS1
RET
DELY_US:MOV 30H,#30
US:DJNZ 30H,US
RET
DELY:MOV 30H,#5
Y1:MOV 31H,#200
Y2:MOV 32H,#200
Y3:DJNZ 32H,Y3
DJNZ 31H,Y2
DJNZ 30H,Y1
RET
TAB1:DB "NICE TO MEET YOU! "
DB 00
END
每个SZ “MOV P0,#”不同的值有什么含义? 展开
RW EQU P2.1
E EQU P2.2
ORG 000H
LJMP MAIN
MAIN:MOV R0,#5 ;//延时次数
MOV R1,#0 ;//查表初值
LCALL SZ1 ;//清屏初始化设置
LCALL SZ7 ;//设置第一行显示坐标
MOV DPTR,#TAB1 ;//设置段码表地址一行显示段码表
LCALL XR
YS:LCALL DELY
LJMP MAIN;//清屏指令写入
SZ1:CLR RS ;//写指令标志
CLR RW ;//写标志
MOV P0,#01H ;//写入清屏指令
SETB E ;//高电平使能读数据
NOP ;空指令
NOP ;空指令
CLR E ;//下降沿执行指令
LCALL DELY_2MS;//显示开关设置光标开关设置
SZ3:CLR RS ;RS=0,选择指令寄存器
CLR RW ;RW=1,选择读模式
MOV P0,#0CH
SETB E ;E=1,允许读/写LCD
NOP ;空指令
NOP ;空指令
CLR E ;E=0,禁止读/写LCD
LCALL DELY_US;//设置总线位数显示行数点帧数
SZ5:CLR RS ;RS=0,选择指令寄存器
CLR RW ;RW=1,选择读模式
MOV P0,#36H
SETB E ;E=1,允许读/写LCD
NOP ;空指令
NOP ;空指令
CLR E ;E=0,禁止读/写LCD
LCALL DELY_US
RET
;//设置第二行显示坐标
SZ6:CLR RS ;RS=0,选择指令寄存器
CLR RW ;RW=1,选择读模式
MOV P0,#0C0H
SETB E ;E=1,允许读/写LCD
NOP ;空指令
NOP ;空指令
CLR E ;E=0,禁止读/写LCD
LCALL DELY_US
RET
;//设置第一行显示坐标
SZ7:CLR RS ;RS=0,选择指令寄存器
CLR RW ;RW=1,选择读模式
MOV P0,#90H
SETB E ;E=1,允许读/写LCD
NOP ;空指令
NOP ;空指令
CLR E ;E=0,禁止读/写LCD
LCALL DELY_US
RET
;//写入数据
XR: LCALL SZ4
SETB RS ;//数据标志位
CLR RW ;//写入标志位
MOV A,R1
MOVC A,@A+DPTR ;//查表
JZ GRET ;//检测是否显示完全//零为标志位
MOV P0,A ;//并行输出数据
SETB E ;E=1,允许读/写LCD
NOP ;空指令
NOP ;空指令
CLR E ;E=0,禁止读/写LCD
LCALL DELY
INC R1 ;//读下一个字符
SJMP XR
;//设置显示屏和光标移动方向
SZ4:CLR RS ;RS=0,选择指令寄存器
CLR RW ;RW=1,选择读模式
MOV P0,#18H
SETB E ;E=1,允许读/写LCD
NOP ;空指令
NOP ;空指令
CLR E ;E=0,禁止读/写LCD
LCALL DELY_US
RET
GRET:RET
DELY_2MS:MOV 30H,#4
MS1:MOV 31H,#250
MS2:DJNZ 31H,MS2
DJNZ 30H,MS1
RET
DELY_US:MOV 30H,#30
US:DJNZ 30H,US
RET
DELY:MOV 30H,#5
Y1:MOV 31H,#200
Y2:MOV 32H,#200
Y3:DJNZ 32H,Y3
DJNZ 31H,Y2
DJNZ 30H,Y1
RET
TAB1:DB "NICE TO MEET YOU! "
DB 00
END
每个SZ “MOV P0,#”不同的值有什么含义? 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询