📄 lcd1301.asm
字号:
;文件名:LCD1301.ASM
;程序功能:显示“OK"程序
RS bit P3.5
RW bit P3.6
E bit P3.7
LCD EQU P1
MAIN: ;主程序
MOV LCD,#00000001B ;清屏并光标复位
ACALL WR_COMM ;调用写入命令子程序
ACALL INIT_LCD ;调用初始化子程序
MOV LCD,#82H ;写入显示起始地址
ACALL WR_COMM ;调用写入命令子程序
MOV LCD,#'s' ;显示"o"
ACALL WR_DATA ;调用写入数据子程序
MOV LCD,#'p' ;显示"k"
ACALL WR_DATA
MOV LCD,#'r' ;显示"r"
ACALL WR_DATA
MOV LCD,#'i' ;显示"i"
ACALL WR_DATA
MOV LCD,#'n' ;显示"n"
ACALL WR_DATA
MOV LCD,#'g' ;显示"g"
ACALL WR_DATA ;调用写入数据子程序
JMP $ ;维持当前输出状态
INIT_LCD: ;LCD初始化设定
MOV LCD,#00111000B ;设置8位、2行、5x7点阵
ACALL WR_COMM ;调用写入命令子程序
MOV LCD,#00001111B ;显示器开,光标允许闪烁
ACALL WR_COMM ;调用写入命令子程序
MOV LCD,#00000110B ;文字不动,光标自动右移
ACALL WR_COMM ;调用写入命令子程序
RET
;----------------------------
WR_COMM: ;写入命令子程序
CLR RS ;RS=0,选择指令寄存器
CLR RW ;RW=0,选择写模式
CLR E ;E=0,禁止读/写LCM
ACALL CHECK_BF ;调用判LCM忙碌子程序
SETB E ;E=1,允许读/写LCM
RET
CHECK_BF: ;判断是否忙碌子程序
MOV LCD,#0FFH ;此时不接受外来指令
CLR RS ;RS=0,选择指令寄存器
SETB RW ;RW=1,选择读模式
CLR E ;E=0,禁止读/写LCM
NOP ;延时1微秒
SETB E ;E=1,允许读/写LCM
JB LCD.7,CHECK_BF ;忙碌循环等待
RET
WR_DATA: ;写入数据子程序
SETB RS ;RS=1,选择数据寄存器
CLR RW ;RW=0,选择写模式
CLR E ;E=0,禁止读/写LCM
ACALL CHECK_BF ;调用判断忙碌子程序
SETB E ;E=1,允许读/写LCM
RET
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -