⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 demo.asm

📁 一个关于蓝海微芯LJK——ZN——3200的演示程序
💻 ASM
📖 第 1 页 / 共 2 页
字号:
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 + -