📄 demo.asm
字号:
COM DATA 29H
XH DATA 30H
XL DATA 31H
YH DATA 32H
YL DATA 33H
NUMBRH DATA 38H
NUMBRL DATA 39H
TIMER0 DATA 3AH ;延时时间的初值
TIMER1 DATA 3BH ;调用延时子程序的次数
COLOR DATA 3CH
KEYNO DATA 3DH
KEYVALUE DATA 3EH
X2H DATA 40H
X2L DATA 41H
Y2H DATA 42H
Y2L DATA 43H
PAGNO DATA 44H
YEAR DATA 45H
MOUTH DATA 46H
WEEK DATA 47H
DATE DATA 48H
HOUR DATA 49H
MINUTE DATA 4AH
SECOND DATA 4BH
ORG 0000H
LJMP MAIN
ORG 0023H
LJMP LCOM
ORG 0030H
MAIN: ;LCALL DELAY1S
;LCALL DELAY1S
;LCALL DELAY1S
ST: MOV SP,#60H
SETB EA
LCALL INIT_SIO
;LCALL NEW_BUDE
;-------------------------------
;SETB EA
;MOV SCON,#50H
;MOV TMOD,#20H
;MOV TH1,#0FFH
;MOV TL1,#0FFH
;MOV PCON,#80H
;SETB ES
;SETB TR1
;-------------------------------
setb p3.5
LCALL DELAY01
LCALL SCREEN_CLR
LCALL DELAY01
;clr p3.5
LCALL DELAY20
MOV NUMBRH,#00H
MOV NUMBRL,#00H
LCALL BMP
LCALL DELAY20
LCALL TOUCH
LCALL DELAY20
MOV DPTR,#TAB0
LCALL TX
LCALL DELAY20
MOV DPTR,#TAB12
LCALL TX
LCALL DELAY20
MOV PAGNO,#00H
LCALL PAG
LCALL DELAY20
MOV DPTR,#TAB20
LCALL TX
LCALL DELAY20
MOV DPTR,#TAB21
LCALL TX
LCALL DELAY20
MOV DPTR,#TAB22
LCALL TX
LCALL DELAY20
MOV DPTR,#TAB23
LCALL TX
LCALL DELAY20
MOV DPTR,#TAB24
LCALL TX
LCALL DELAY20
MOV DPTR,#TAB25
LCALL TX
LCALL DELAY20
MOV DPTR,#TAB26
LCALL TX
LCALL DELAY20
MOV DPTR,#TAB27
LCALL TX
LCALL DELAY20
MOV DPTR,#TAB28
LCALL TX
LCALL DELAY20
MOV DPTR,#TAB29
LCALL TX
LCALL DELAY20
MOV DPTR,#TAB2A
LCALL TX
LCALL DELAY20
MOV DPTR,#TAB2B
LCALL TX
LCALL DELAY20
MOV PAGNO,#00H
LCALL PAG
LCALL DELAY100
clr p3.5
KEY: JNB 24H.0,$
CLR 24H.0
MOV A,53H
CJNE A,#31H,KEY
MOV NUMBRH,#00H
MOV NUMBRL,#01H
LCALL BMP
LCALL DELAY20
MOV PAGNO,#01H
LCALL PAG
LCALL DELAY100
KEY1: JNB 24H.0,$
CLR 24H.0
MOV A,53H
CJNE A,#34H,KEY1
MOV NUMBRH,#00H
MOV NUMBRL,#02H
LCALL BMP
LCALL DELAY100
MOV PAGNO,#02H
LCALL PAG
LCALL DELAY100
KEY2: JNB 24H.0,$
CLR 24H.0
MOV A,53H
CJNE A,#36H,K11
MOV NUMBRH,#00H
MOV NUMBRL,#04H
LCALL BMP
LCALL DELAY100
LCALL LIGHT_OFF
LCALL DELAY1S
LCALL LIGHT_ON
LCALL DELAY20
MOV NUMBRH,#00H
MOV NUMBRL,#02H
LCALL BMP
LCALL DELAY20
SJMP KEY2
K11: CJNE A,#37H,K22
MOV NUMBRH,#00H
MOV NUMBRL,#03H
LCALL BMP
LCALL DELAY100
LCALL BEEP_ON
LCALL DELAY1S
LCALL BEEP_OFF
LCALL DELAY20
MOV NUMBRH,#00H
MOV NUMBRL,#02H
LCALL BMP
LCALL DELAY20
LJMP KEY2
K22: CJNE A,#38H,K33
LCALL SCREEN_CLR
LCALL DELAY100
LCALL DISTIME
LCALL DELAY1S
LCALL DELAY1S
LCALL DELAY1S
LCALL DELAY1S
LCALL DELAY1S
LCALL DELAY1S
LCALL DELAY1S
LCALL DELAY1S
LCALL OFFTIME
LCALL DELAY20
LCALL SCREEN_CLR
LCALL DELAY100
MOV NUMBRH,#00H
MOV NUMBRL,#02H
LCALL BMP
LJMP KEY2
SJMP $
K33: CJNE A,#39H,K44
MOV NUMBRH,#00H
MOV NUMBRL,#05H
LCALL BMP
LCALL DELAY1S
MOV NUMBRH,#00H
MOV NUMBRL,#02H
LCALL BMP
LCALL DELAY20
LJMP KEY2
K44: CJNE A,#3AH,K55
MOV NUMBRH,#00H
MOV NUMBRL,#06H
LCALL BMP
LCALL DELAY1S
MOV NUMBRH,#00H
MOV NUMBRL,#02H
LCALL BMP
LCALL DELAY20
LJMP KEY2
K55: CJNE A,#3BH,K66
MOV NUMBRH,#00H
MOV NUMBRL,#07H
LCALL BMP
LCALL DELAY100
LCALL LINE
LCALL DELAY1S
LCALL DELAY1S
MOV NUMBRH,#00H
MOV NUMBRL,#02H
LCALL BMP
LCALL DELAY20
LJMP KEY2
K66: CJNE A,#3CH,K77
MOV NUMBRH,#00H
MOV NUMBRL,#08H
LCALL BMP
LCALL DELAY100
LCALL CIRCLE
LCALL DELAY1S
MOV NUMBRH,#00H
MOV NUMBRL,#02H
LCALL BMP
LCALL DELAY20
LJMP KEY2
K77: CJNE A,#3DH,K88
LCALL SCREEN_CLR
LCALL DELAY1S
MOV NUMBRH,#00H
MOV NUMBRL,#02H
LCALL BMP
LCALL DELAY20
LJMP KEY2
K88: CJNE A,#3EH,K99
MOV NUMBRH,#00H
MOV NUMBRL,#09H
LCALL BMP
LCALL DELAY100
LCALL SQURE
LCALL DELAY1S
MOV NUMBRH,#00H
MOV NUMBRL,#02H
LCALL BMP
LCALL DELAY20
LJMP KEY2
K99: CJNE A,#3FH,KAA
MOV NUMBRH,#00H
MOV NUMBRL,#10H
LCALL BMP
LCALL DELAY100
LCALL HAZ
LCALL DELAY1S
MOV NUMBRH,#00H
MOV NUMBRL,#02H
LCALL BMP
LCALL DELAY20
LJMP KEY2
KAA: CJNE A,#40H,KBB
MOV NUMBRH,#00H
MOV NUMBRL,#11H
LCALL BMP
LCALL DELAY20
LCALL FONT
LCALL DELAY20
MOV COM,#89H
LCALL COMMD_HEAD
MOV A,#4CH
LCALL SEND_BYTE
MOV A,#43H
LCALL SEND_BYTE
MOV A,#44H
LCALL SEND_BYTE
LCALL COMMD_END
LCALL DELAY1S
MOV NUMBRH,#00H
MOV NUMBRL,#02H
LCALL BMP
LCALL DELAY20
LJMP KEY2
KBB: CJNE A,#41H,KCC
MOV NUMBRH,#00H
MOV NUMBRL,#00H
LCALL BMP
LCALL DELAY20
LJMP ST
KCC: LJMP KEY2
AJMP $
;*****************************************************
;* 串口初始化,波特率9600 *
;*****************************************************
INIT_SIO:
MOV SCON,#50H
MOV TMOD,#20H
MOV TH1,#0FAH
MOV TL1,#0FAH
MOV PCON,#80H
SETB TR1
RET
;*****************************************************
;* 修改波特率(F0 5A 15 00 E1 00 A5 F0) 57600 *
;*****************************************************
NEW_BUDE:
MOV COM,#15H
LCALL COMMD_HEAD
MOV A,#00H
LCALL SEND_BYTE
MOV A,#0E1H
LCALL SEND_BYTE
MOV A,#00H
LCALL SEND_BYTE
LCALL COMMD_END
RET
;*******************************************************
TX: MOV R7,#16
TX1: MOV A,#00H
MOVC A,@A+DPTR
LCALL SEND_BYTE
INC DPTR
DJNZ R7,TX1
RET
;*****************************************************
;* 清屏(F0 5A 82 00 A5 F0) *
;*****************************************************
SCREEN_CLR:
MOV COM,#82H
LCALL COMMD_HEAD
MOV A,#00H ;00代表蓝色,01代表白色
LCALL SEND_BYTE
LCALL COMMD_END
RET
;*****************************************************
;* 触摸值(F0 5A 3B 01 A5 F0) *
;*****************************************************
TOUCH:
MOV COM,#3BH
LCALL COMMD_HEAD
MOV A,#01H ;00代表坐标,01代表键值
LCALL SEND_BYTE
LCALL COMMD_END
RET
;*****************************************************
;* 选择字库(F0 5A 83 02 48 48 A5 F0) *
;*****************************************************
FONT:
MOV COM,#83H
LCALL COMMD_HEAD
MOV A,#02H
LCALL SEND_BYTE
MOV A,#48H
LCALL SEND_BYTE
MOV A,#48H
LCALL SEND_BYTE
LCALL COMMD_END
RET
;*****************************************************
;* 显示图像(F0 5A 91 00 00 00 00 00 00 A5 F0) *
;*****************************************************
BMP:MOV COM,#91H
LCALL COMMD_HEAD
MOV A,NUMBRH
LCALL SEND_BYTE
MOV A,NUMBRL
LCALL SEND_BYTE
MOV XH,#00H
MOV A,XH
LCALL SEND_BYTE
MOV XL,#00H
MOV A,XL
LCALL SEND_BYTE
MOV YH,#00H
MOV A,YH
LCALL SEND_BYTE
MOV YL,#00H
MOV A,YL
LCALL SEND_BYTE
LCALL COMMD_END
RET
;*****************************************************
;* 画点(F0 5A 92 01 10 01 00 01 10 A5 F0) *
;*****************************************************
DOT:MOV COM,#92H
LCALL COMMD_HEAD
MOV XH,#01H
MOV A,XH
LCALL SEND_BYTE
MOV XL,#10H
MOV A,XL
LCALL SEND_BYTE
MOV YH,#01H
MOV A,YH
LCALL SEND_BYTE
MOV YL,#00H
MOV A,YL
LCALL SEND_BYTE
MOV COLOR,#01H
MOV A,COLOR
LCALL SEND_BYTE
MOV A,#10H
LCALL SEND_BYTE
LCALL COMMD_END
RET
;*****************************************************
;* 画线(F0 5A 93 01 00 01 20 02 00 01 20 01 A5 F0) *
;*****************************************************
LINE:MOV COM,#93H
LCALL COMMD_HEAD
MOV XH,#00H
MOV A,XH
LCALL SEND_BYTE
MOV XL,#00H
MOV A,XL
LCALL SEND_BYTE
MOV YH,#00H
MOV A,YH
LCALL SEND_BYTE
MOV YL,#00H
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -