?? 小車液晶顯示.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 + -