📄 1602.ams
字号:
;///////////////////////////////////////////////////
;P2接1602的数据位
;1602第1行显示 " guangxi beihai"
; 第2行显示" subingen "
;//////////////////////////////////////////////////
RS EQU P3.5;
RW EQU P3.6;
E EQU P3.7;
ORG 0000H
SETB E;
MOV P2,#01H; 清屏并光标复位
ACALL COMW; 写入
MOV P2,#00111000B; 显示模式设置,8位总线,2行,5*7
ACALL COMW; 写入
MOV P2,#00001100b; 开显示。光标和闪烁
ACALL COMW; 写入
MOV P2,#06H; 文字不动,光标自动右移
ACALL COMW; 写入
MOV P2,#80H;写入的起始位置,第1行第1列
ACALL COMW;
MOV R1,#0fH;要写入16个字符
MOV DPTR,#TABLE1;查表,取字符
MOV R0,#00H;从第1个写起
ACALL ST;
MOV P2,#0C0H;写入的起始位置,第2行第1列
ACALL COMW;
MOV R1,#0fH;要写入16个字符
MOV DPTR,#TABLE2;
MOV R0,#00H;
ACALL ST;
MOV P2,#80H;
ACALL COMW;
SJMP $;
ST: MOV A,R0;从第1个写起
MOVC A,@A+DPTR;取字符,载入数据
ACALL RAMW;
INC R0;写下一个
MOV A,R1;
SUBB A,R0; R0与R1相减,判断是否显示完
JNZ ST;未显示完,返回接着显示
RET;
COMW: CLR RS; 指令和显示地址写入子程序
ACALL WRITE;
RET
RAMW: MOV P2,A;数据写入子程序
SETB RS; RS=1,下面再将RW=0,即为写入数据
ACALL WRITE;
RET;
WRITE: CLR RW; 与上面两个子程序子程序配合使用
CLR E;E由1变到0执行写操作
ACALL BF;忙检测
SETB E;
RET;
BF: MOV P2,#0FFH;
CLR RS;
SETB RW; RS=0, RW=1 ,读忙信号
CLR E;
NOP;等待
SETB E;读取
JB P2.7,BF;P2.7=1,忙;
RET
TABLE1: DB' guangxi beihai'
TABLE2: DB' subingen '
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -