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

📄 3200t.asm

📁 一个关于蓝海微芯LJK——ZN——3200的演示程序
💻 ASM
字号:
COM       DATA  29H 
XH        DATA  30H
XL        DATA  31H
YH        DATA  32H
YL        DATA  33H
XH_L      DATA  34H
XL_L      DATA  35H
YH_L      DATA  36H
YL_L      DATA  37H
NUMBRH    DATA  38H
NUMBRL    DATA  39H 
TIMER0    DATA  3AH ;延时时间的初值
TIMER1    DATA  3BH ;调用延时子程序的次数
COLOR     DATA  3CH	
        ORG 0000H
 	LJMP MAIN
 	
MAIN:  MOV SP,#60H
       LCALL INIT_SIO
       ;LCALL NEW_BUDE
;-------------------------------
       ;MOV SCON,#50H
       ;MOV TMOD,#20H
       ;MOV TH1,#0FFH
       ;MOV TL1,#0FFH
       ;MOV PCON,#80H
       ;SETB TR1
;-------------------------------
       ;SETB P3.5
       LCALL SCREEN_CLR
       LCALL DELAY100    
       LCALL BMP
       LCALL DELAY20
       LCALL SCREEN_CLR
       LCALL DELAY1s 
       LCALL DOT
       ;LCALL DELAY1s
       LCALL LINE
       ;LCALL DELAY1s
       LCALL CIRCLE
       ;LCALL DELAY1s
       ;LCALL DELAY01
       LCALL SQURE
       ;LCALL DELAY1s
       LCALL INV
       ;LCALL DELAY1s
       LCALL LIGHT_OFF
       LCALL DELAY1S
       LCALL LIGHT_ON
       ;LCALL DELAY01
       LCALL BEEP_ON
       LCALL DELAY1S
       LCALL BEEP_OFF
       ;LCALL DELAY01
       LCALL HAZ
       ;LCALL DELAY01
       LCALL WRITE24C16
       LCALL DELAY10
       LCALL READ24C16
       LCALL DELAY10
       ;clr  p3.5
        MOV R7,#0BH
	       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
LCON2:         AJMP $
			 
       

       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

;*****************************************************
;*     清屏(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 91 00 00 00 00 00 00 A5 F0)  *
;*****************************************************
BMP:MOV COM,#91H
    LCALL COMMD_HEAD
    MOV NUMBRH,#00H
    MOV A,NUMBRH
    LCALL SEND_BYTE
    MOV NUMBRL,#02H
    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,#0ffH
    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,#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,#20H
    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,#20H
    MOV A,YL
    LCALL SEND_BYTE
    MOV COLOR,#0ffH
    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,#0ffH
    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
;*****************************************************
;写24c16
;*****************************************************
WRITE24C16:
    MOV COM,#21H
    LCALL COMMD_HEAD
    MOV A,#00H
    LCALL SEND_BYTE
     MOV A,#10H
    LCALL SEND_BYTE
     MOV A,#05H
    LCALL SEND_BYTE
     MOV A,#11H
    LCALL SEND_BYTE
     MOV A,#22H
    LCALL SEND_BYTE
     MOV A,#33H
    LCALL SEND_BYTE
     MOV A,#44H
    LCALL SEND_BYTE
     MOV A,#55H
    LCALL SEND_BYTE
    LCALL COMMD_END
    RET
;*****************************************************
;读24c16
;*****************************************************
READ24C16:
    MOV COM,#22H
    LCALL COMMD_HEAD
    MOV A,#00H
    LCALL SEND_BYTE
    MOV A,#10H
    LCALL SEND_BYTE
    MOV A,#05H
    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
;-------------------------------------------------------------------
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

END

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -