📄 小车液晶显示.asm
字号:
PING: PUSH 03H
MOV START,#0F8H ;写入命令(11111000)
MOV COM,#80H ;设定显示位置
LCALL LCDWRITE
MOV START,#0FAH
MOV DPTR,#TAB1
MOV R3,#2
PING1: LCALL DIS8
DJNZ R3,JS1
POP 03H
RET
JS: PUSH 03H
MOV START,#0F8H ;写入命令(11111000)
MOV COM,#80H ;设定显示位置
LCALL LCDWRITE
MOV START,#0FAH
MOV DPTR,#TAB2
MOV R3,#2
JS1: LCALL DIS8
DJNZ R3,JS1
POP 03H
RET
QJ: PUSH 03H
MOV START,#0F8H ;写入命令(11111000)
MOV COM,#80H ;设定显示位置
LCALL LCDWRITE
MOV START,#0FAH
MOV DPTR,#TAB3
MOV R3,#2
QJ1: LCALL DIS8
DJNZ R3,QJ1
POP 03H
RET
FH: PUSH 03H
MOV START,#0F8H ;写入命令(11111000)
MOV COM,#80H ;设定显示位置
LCALL LCDWRITE
MOV START,#0FAH
MOV DPTR,#TAB3
MOV R3,#2
FH1: LCALL DIS8
DJNZ R3,FH1
POP 03H
RET
CHUXIAN:PUSH 03H
MOV START,#0F8H ;写入命令(11111000)
MOV COM,#80H ;设定显示位置
LCALL LCDWRITE
MOV START,#0FAH
MOV DPTR,#TAB5
MOV R3,#5
CHUXIAN1:
LCALL DIS8
DJNZ R3,CHUXIAN1
CHUXIAN2:MOV START,#0F8H ;写入命令(11111000)
MOV COM,#88H ;设定显示位置
LCALL LCDWRITE
MOV START,#0FAH
MOV DPTR,#TAB6
MOV R3,#5
CHUXIAN3:
LCALL DIS8
DJNZ R3,CHUXIAN3
CHUXIAN4:
MOV START,#0F8H ;写入命令(11111000)
MOV COM,#90H ;设定显示位置
LCALL LCDWRITE
MOV START,#0FAH
MOV DPTR,#TAB11
MOV R3,#5
CHUXIAN5:
LCALL DIS8
DJNZ R3,CHUXIAN5
MOV START,#0F8H ;写入命令(11111000)
MOV COM,#98H ;设定显示位置
LCALL LCDWRITE
MOV START,#0FAH
MOV DPTR,#TAB12
MOV R3,#5
CHUXIAN6:
LCALL DIS8
DJNZ R3,CHUXIAN6
POP 03H
RET
HT: PUSH 03H
MOV START,#0F8H ;写入命令(11111000)
MOV COM,#80H ;设定显示位置
LCALL LCDWRITE
MOV START,#0FAH
MOV DPTR,#TAB4
MOV R3,#2
HT1: LCALL DIS8
DJNZ R3,HT1
POP 03H
RET
SJ: PUSH 03H
MOV START,#0F8H ;写入命令(11111000)
MOV COM,#90H ;设定显示位置
LCALL LCDWRITE
MOV START,#0FAH
MOV DPTR,#TAB8
MOV R3,#3
SJ1: LCALL DIS8
DJNZ R3,SJ1
POP 03H
RET
DIS8: CLR A
MOVC A,@A+DPTR
INC DPTR
MOV COM,A
LCALL LCDWRITE
CLR A
MOVC A,@A+DPTR
INC DPTR
MOV COM,A
LCALL LCDWRITE
RET
TING5S:CLR P0.0
CLR P0.1
MOV R5,#8
DDD1: MOV R6,#00H
DDD2: MOV R7,#00H
DJNZ R7,$
DJNZ R6,DDD2
DJNZ R5,DDD1
RET
TAB1: DB "平衡 "
TAB2: DB "结束 "
TAB3: DB "前进 "
TAB4: DB "后退 "
TAB5: DB "1.静态平衡"
TAB6: DB "3.动寻平衡"
TAB7: DB "返回"
TAB8: DB "时间:"
TAB9: DB "请放重物到AC之间"
TAB10: DB "按任意键继续 "
TAB11: DB "2.小车寻迹"
TAB12: DB "4.动态平衡"
LCDWRITE: ;模块写入子程序
MOV A,COM ;送待发数据命令A
ANL A,#0F0H ;屏蔽低4位
MOV HDATA,A ;将高4位送HDATA单元
MOV A,COM ;取低4位
SWAP A ;高低4位互换
ANL A,#0F0H
MOV LDATA,A ;将低4位送LDATA单元
MOV A,START ;取起始字节
LCALL SENDBIT ;发送
LCALL DL1MS ;延时1ms
MOV A,HDATA
LCALL SENDBIT
LCALL DL1MS
MOV A,LDATA
LCALL SENDBIT
LCALL DL1MS
RET
SENDBIT: ;串行字节数据发送子程序
MOV R7,#08H ;发送8位
SEND_1: RLC A
MOV STD,C ;数据送数据线
CLR SCLK ;产生同步时钟
SETB SCLK
DJNZ R7,SEND_1 ;未发送完8位继续
RET
DL1MS: ;延时子程序
PUSH 00H ;0.1MS
PUSH 01H
PUSH 02H
MOV R2,#01H
WA_PA: MOV R0,#01H
WA_PB: MOV R1,#0fH
DJNZ R1,$
DJNZ R0,WA_PB
DJNZ R2,WA_PA
POP 02H
POP 01H
POP 00H
NOP
RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -