📄 demo.asm
字号:
MOV A,YL
LCALL SEND_BYTE
MOV XH,#01H
MOV A,XH
LCALL SEND_BYTE
MOV XL,#00H
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
LCALL COMMD_END
RET
;*****************************************************
;* 画圆(F0 5A 94 01 60 01 20 01 00 01 A5 F0) *
;*****************************************************
CIRCLE:MOV COM,#94H
LCALL COMMD_HEAD
MOV XH,#01H
MOV A,XH
LCALL SEND_BYTE
MOV XL,#60H
MOV A,XL
LCALL SEND_BYTE
MOV YH,#01H
MOV A,YH
LCALL SEND_BYTE
MOV YL,#20H
MOV A,YL
LCALL SEND_BYTE
MOV A,#01H
LCALL SEND_BYTE
MOV A,#00H
LCALL SEND_BYTE
MOV A,#01H
LCALL SEND_BYTE
LCALL COMMD_END
RET
;********************************************************
;*画矩形(F0 5A 95 00 00 00 00 00 99 00 99 01 01 A5 F0)*
;********************************************************
SQURE:MOV COM,#95H
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
MOV A,YL
LCALL SEND_BYTE
MOV XH,#00H
MOV A,XH
LCALL SEND_BYTE
MOV XL,#99H
MOV A,XL
LCALL SEND_BYTE
MOV YH,#00H
MOV A,YH
LCALL SEND_BYTE
MOV YL,#99H
MOV A,YL
LCALL SEND_BYTE
MOV A,#01H
LCALL SEND_BYTE
MOV A,#01H
LCALL SEND_BYTE
LCALL COMMD_END
RET
;*****************************************************
;*区域反色(F0 5A 96 01 50 01 00 02 00 01 99 A5 F0) *
;*****************************************************
INV:MOV COM,#96H
LCALL COMMD_HEAD
MOV XH,#01H
MOV A,XH
LCALL SEND_BYTE
MOV XL,#50H
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 XH,#02H
MOV A,XH
LCALL SEND_BYTE
MOV XL,#00H
MOV A,XL
LCALL SEND_BYTE
MOV YH,#01H
MOV A,YH
LCALL SEND_BYTE
MOV YL,#99H
MOV A,YL
LCALL SEND_BYTE
LCALL COMMD_END
RET
;*****************************************************
;* 背光关(F0 5A 36 00 a5 F0) *
;*****************************************************
LIGHT_OFF:
MOV COM,#36H
LCALL COMMD_HEAD
MOV A,#00H
LCALL SEND_BYTE
LCALL COMMD_END
RET
;*****************************************************
;* 背光开(F0 5A 36 01 a5 F0) *
;*****************************************************
LIGHT_ON:
MOV COM,#36H
LCALL COMMD_HEAD
MOV A,#01H
LCALL SEND_BYTE
LCALL COMMD_END
RET
;*****************************************************
;* 蜂鸣器关(F0 5A 35 00 A5 F0) *
;*****************************************************
BEEP_OFF:
MOV COM,#35H
LCALL COMMD_HEAD
MOV A,#00H
LCALL SEND_BYTE
LCALL COMMD_END
RET
;*****************************************************
;* 蜂鸣器开(F0 5A 35 01 A5 F0) *
;*****************************************************
BEEP_ON:
MOV COM,#35H
LCALL COMMD_HEAD
MOV A,#01H
LCALL SEND_BYTE
LCALL COMMD_END
RET
;*****************************************************
;* 显示汉字或ASCII码
;*F0 5A 89 4C 43 44 B2 E2 CA D4 B3 CC D0 F2 A5 F0
; ( L C D 测 试 程 序 )
;*****************************************************
HAZ:
MOV COM,#89H
LCALL COMMD_HEAD
MOV R7,#11
MOV DPTR,#TAB
NEXT_HAZ:
CLR A
MOVC A,@A+DPTR
LCALL SEND_BYTE
INC DPTR
DJNZ R7,NEXT_HAZ
LCALL COMMD_END
RET
;*****************************************************
;*设置时间(F0 5A 11 05 02 07 27 16 38 00 A5 F0) *
;*****************************************************
SETTIME:MOV COM,#11H
LCALL COMMD_HEAD
MOV YEAR,#05H
MOV A,YEAR
LCALL SEND_BYTE
MOV MOUTH,#11H
MOV A,MOUTH
LCALL SEND_BYTE
MOV WEEK,#06H
MOV A,WEEK
LCALL SEND_BYTE
MOV DATE,#26H
MOV A,DATE
LCALL SEND_BYTE
MOV HOUR,#14H
MOV A,HOUR
LCALL SEND_BYTE
MOV MINUTE,#25H
MOV A,MINUTE
LCALL SEND_BYTE
MOV SECOND,#01H
MOV A,SECOND
LCALL SEND_BYTE
LCALL COMMD_END
RET
;***************************************************************
;* 自动显示时间(F0 5A 17 11 00 01 00 01 00 01 00 A5 F0 )
;***************************************************************
DISTIME:
MOV COM,#17H
LCALL COMMD_HEAD
MOV A,#11H
LCALL SEND_BYTE
MOV A,#00H
LCALL SEND_BYTE
MOV A,#01H
LCALL SEND_BYTE
MOV A,#00H
LCALL SEND_BYTE
MOV XH,#01H
MOV A,XH
LCALL SEND_BYTE
MOV XL,#00H
MOV A,XL
LCALL SEND_BYTE
MOV YH,#01H
MOV A,YH
LCALL SEND_BYTE
MOV YL,#00H
MOV A,YL
LCALL SEND_BYTE
LCALL COMMD_END
RET
;***************************************************************
;* 关闭显示时间(F0 5A 17 00 00 01 00 01 00 01 00 A5 F0 )
;***************************************************************
OFFTIME:
MOV COM,#17H
LCALL COMMD_HEAD
MOV A,#00H
LCALL SEND_BYTE
MOV A,#00H
LCALL SEND_BYTE
MOV A,#01H
LCALL SEND_BYTE
MOV A,#00H
LCALL SEND_BYTE
MOV XH,#01H
MOV A,XH
LCALL SEND_BYTE
MOV XL,#00H
MOV A,XL
LCALL SEND_BYTE
MOV YH,#01H
MOV A,YH
LCALL SEND_BYTE
MOV YL,#00H
MOV A,YL
LCALL SEND_BYTE
LCALL COMMD_END
RET
;*****************************************************
;* 选择页(F0 5A 39 01 A5 F0) *
;*****************************************************
PAG:
MOV COM,#39H
LCALL COMMD_HEAD
MOV A,PAGNO
LCALL SEND_BYTE
LCALL COMMD_END
RET
;*****************************************************
;* 数据包头+命令 *
;*****************************************************
COMMD_HEAD:
MOV A,#0F0H
LCALL SEND_BYTE
MOV A,#5AH
LCALL SEND_BYTE
MOV A,COM
LCALL SEND_BYTE
RET
;*****************************************************
;* 数据包尾 *
;*****************************************************
COMMD_END:
MOV A,#0A5H
LCALL SEND_BYTE
MOV A,#0F0H
LCALL SEND_BYTE
RET
;*****************************************************
;* 串口发送一个字节 *
;*****************************************************
SEND_BYTE: CLR ES
MOV SBUF,A
JNB TI,$
CLR TI
SETB ES
RET
;*****************************************************
TAB:DB "LCD测试程序"
;*****************************************************
;*****************************************************
;* 延时 *
;*****************************************************
DELAY: PUSH TIMER1 ;延时TIMER1*1 ms for 12MHz
PUSH TIMER0
DELAY1: MOV TIMER0,#250 ;循环一次需要4个机器周期,时间为4*1μS
DELAY2: NOP ; 1个周期
NOP ; 1个周期
DJNZ TIMER0,DELAY2 ;2个周期
DJNZ TIMER1,DELAY1
POP TIMER0
POP TIMER1
RET
NOP
;-------------------------------------------------------------------
DELAY01: NOP; 延时 1 ms
PUSH TIMER1
MOV TIMER1,#01H
LCALL DELAY
POP TIMER1
RET
NOP
;---------------------------------------------------------------------
DELAY10: NOP; 延时 10 ms
PUSH TIMER1
MOV TIMER1,#10
LCALL DELAY
POP TIMER1
RET
NOP
;--------------------------------------------------------------------
DELAY20: NOP; 延时 20 ms
PUSH TIMER1
MOV TIMER1,#20
LCALL DELAY
POP TIMER1
RET
NOP
;--------------------------------------------------------------------
DELAY30: NOP; 延时 30 ms
PUSH TIMER1
MOV TIMER1,#30
LCALL DELAY
POP TIMER1
RET
NOP
;-------------------------------------------------------------------
DELAY100: NOP; 延时100 ms
PUSH TIMER1
MOV TIMER1,#100
LCALL DELAY
POP TIMER1
RET
NOP
;-------------------------------------------------------------------
DELAY250: NOP; 延时 250 ms
PUSH TIMER1
MOV TIMER1,#250
LCALL DELAY
POP TIMER1
RET
NOP
;---------------------------------------------------------------------
DELAY500: NOP; 延时 500 ms
PUSH TIMER1
MOV TIMER1,#250
LCALL DELAY
LCALL DELAY
POP TIMER1
RET
NOP
;--------------------------------------------------------------------
DELAY1S: NOP; 延时 1 sec
PUSH TIMER1
MOV TIMER1,#250
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
POP TIMER1
RET
;------------------------------------------------------------------
LCOM:
PUSH DPL
PUSH DPH
PUSH ACC
JB RI,LCOM1
SJMP LCON2
LCOM1:
SETB 24H.0
MOV R7,#6
MOV R0,#50H
LCOM1_1: MOV A,SBUF
MOV @R0,A
INC R0
CLR RI
DJNZ R7,LCON3
SJMP LCON2
LCON3: JB RI,LCOM1_1
SJMP LCON3
NOP
LCON2: POP ACC
POP DPH
POP DPL
RETI
TAB0: DB 0F0H, 5AH, 3AH, 00H, 01H, 31H, 01H, 92H, 02H, 06H, 02H, 92H, 02H, 27H, 0A5H, 0F0H;第0页第1号键
TAB12:DB 0F0H, 5AH, 3AH, 01H, 01H, 34H, 00H, 56H, 01H, 33H, 02H, 51H, 01H, 64H, 0A5H, 0F0H;第1页第2号键
TAB20:DB 0F0H, 5AH, 3AH, 02H, 00H, 36H, 00H, 30H, 00H, 17H, 00H, 84H, 00H, 44H, 0A5H, 0F0H;第2页第0号键
TAB21:DB 0F0H, 5AH, 3AH, 02H, 01H, 37H, 01H, 28H, 00H, 15H, 01H, 82H, 00H, 44H, 0A5H, 0F0H;第2页第1号键
TAB22:DB 0F0H, 5AH, 3AH, 02H, 02H, 38H, 02H, 22H, 00H, 14H, 02H, 77H, 00H, 44H, 0A5H, 0F0H;第2页第2号键
TAB23:DB 0F0H, 5AH, 3AH, 02H, 03H, 39H, 00H, 30H, 00H, 70H, 00H, 84H, 00H, 96H, 0A5H, 0F0H;第2页第3号键
TAB24:DB 0F0H, 5AH, 3AH, 02H, 04H, 3AH, 01H, 28H, 00H, 70H, 01H, 84H, 00H, 96H, 0A5H, 0F0H;第2页第4号键
TAB25:DB 0F0H, 5AH, 3AH, 02H, 05H, 3BH, 02H, 23H, 00H, 66H, 02H, 77H, 00H, 94H, 0A5H, 0F0H;第2页第5号键
TAB26:DB 0F0H, 5AH, 3AH, 02H, 06H, 3CH, 00H, 30H, 01H, 25H, 00H, 84H, 01H, 54H, 0A5H, 0F0H;第2页第6号键
TAB27:DB 0F0H, 5AH, 3AH, 02H, 07H, 3DH, 01H, 27H, 01H, 24H, 01H, 81H, 01H, 53H, 0A5H, 0F0H;第2页第7号键
TAB28:DB 0F0H, 5AH, 3AH, 02H, 08H, 3EH, 02H, 23H, 01H, 23H, 02H, 77H, 01H, 52H, 0A5H, 0F0H;第2页第8号键
TAB29:DB 0F0H, 5AH, 3AH, 02H, 09H, 3FH, 00H, 30H, 01H, 77H, 00H, 81H, 02H, 06H, 0A5H, 0F0H;第2页第9号键
TAB2A:DB 0F0H, 5AH, 3AH, 02H, 0AH, 40H, 01H, 27H, 01H, 77H, 01H, 81H, 02H, 07H, 0A5H, 0F0H;第2页第10号键
TAB2B:DB 0F0H, 5AH, 3AH, 02H, 0BH, 41H, 02H, 23H, 01H, 77H, 02H, 78H, 02H, 07H, 0A5H, 0F0H;第2页第11号键
TAB30:DB 0F0H, 5AH, 3AH, 03H, 0CH, 42H, 00H, 83H, 00H, 59H, 01H, 99H, 01H, 01H, 0A5H, 0F0H;第3页第0号键
TAB31:DB 0F0H, 5AH, 3AH, 03H, 0DH, 43H, 00H, 83H, 01H, 19H, 01H, 99H, 01H, 60H, 0A5H, 0F0H;第3页第1号键
TAB32:DB 0F0H, 5AH, 3AH, 03H, 0EH, 44H, 00H, 83H, 01H, 84H, 01H, 99H, 02H, 26H, 0A5H, 0F0H;第3页第2号键
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -