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

📄 16311.asm

📁 16311driver
💻 ASM
字号:
;例如:
fill:
      mov  r0,#VFD_BUFF ;缓冲区开始地址
      mov	a,#0aah
contfill:      
      mov	@r0,a
      inc	r0
      cjne	a,#26,contfill  ;填充完为止
      call  display_sub
      ret
;    上述程序调用DISPLAY_SUB
;    显示结果为13G的VFD上比画相间显示
;
;下面有DISLAY_SUB  READKEY_SUB 两个程序可直接调用,搞请缓冲区的地址即可
;住你好运!!!!!!!
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; 	UPD16311 COMMUNICATION DISPLAY PART
;	USED : R0,R6,C,A
;	RAM  : DISPLAY BUFFER 31H---40H
;	CONTANST: VFD_BUFF equ31H
;
DISPLAY_SUB:
		SETB    VFD_STB    
                MOV     A,#DISPLAYMODE;写模式
                ACALL   SEND_16311
                SETB    VFD_STB
;
                MOV     A,#WRITEDATA    ; 40H 写显示缓冲区命令
                ACALL   SEND_16311
                SETB    VFD_STB
;
                MOV    R6,#0dH		; 13 GRIDS 送显示缓冲区的数到16311
                MOV    R0,#VFD_BUFF     ; 31H 缓冲区开始地址
                MOV     A,#DISPLAYADDR  ; 0C0H
                ACALL    SEND_16311	; DISPLAY RAM ADDRESS
DISPLAYRAM:                     	; DISPLAY RAM
                MOV    A,@R0
                ACALL   SEND_16311
;
                inc     r0
                mov     a,@r0
                acall   send_16311
;
                mov     a,#00h
                acall   send_16311
;
                inc     r0
                DJNZ   R6,DISPLAYRAM
                SETB   VFD_STB
;          acall   readsw_sub  读16311的SW1-4
;readsw_sub:
;                setb   vfd_stb
;                MOV    A,#readsw
;                ACALL   SEND_16311
;                acall   rxdata
;                mov     c,acc.0
;                setb    vfd_stb
;                mov     mute_psw,c
;                mov     mute_port,c
;----------------------------------------------------
;                MOV     C,MUTE_PSW       ;////
;                JC      MUTELPON1        ;////控制显示模式
                MOV     A,#DISPLAY1
                setb    led_ct
                JNB     standby_PSW,MUTELPON2
;                SJMP    MUTELPON2  ;/////
;MUTELPON1:
                MOV     A,#DISPLAY2  ;///
                clr     led_ct
;               CPL     C
;               MOV     ACC.3,C
MUTELPON2:
                ACALL   SEND_16311
                SETB    VFD_STB
;-----------------------------------------------------
writeled        data    41h
disp_led12345:  setb     vfd_stb  ;写LED功能
                mov      a,#writeled
                call     send_16311
;                mov      a,ledout_buff
;                anl      a,#1fh
                mov      a,#1fh
                mov      c,standby_psw
                cpl      c
                mov      acc.4,c  ; led5 pin46
                call     send_16311
                setb     vfd_stb
;-----------------------------------------------------
                ret
;00000000000000000000000000000000000000000000000000000000000000000000000000000000000000
; 	UPD16311 COMMUNICATION READ KEYBOARD PART
;	USED : R0,R6,C,A
;	RAM  : KEYBUFFER  42H/43h
;	CONTANST: KEY_BUFF equ41H
;       KEYBUFFER NUMBER 读两个字节的键盘
READKEY_SUB:

                MOV    R0,#KEY_BUFF;键盘缓冲区的起始地址
                MOV    R6,#02H		; KEYBUFFER NUMBER
                MOV    A,#READKEY       ; 42H 读键盘命令
                ACALL   SEND_16311
READLP:
                acall   rxdata
                MOV    @R0,A
                INC    R0
                DJNZ   R6,READLP
                SETB   VFD_STB
                RET
;.......................................................................
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
DISPLAYMODE     DATA    0cH    ; 13 GRIDS & 15 SEGMENTS
DISPLAYADDR     DATA    0C0H   ; 00H--2FH
DISPLAY1  DATA    8FH    ; 14/16   10000 ONOFF XXXB 1/16 2 4 10 11 12 13 14 /16
DISPLAY2  DATA    87H    ; 14/16   10000 ONOFF XXXB 1/16 2 4 10 11 12 13 14 /16
WRITEDATA       DATA    40H    ; COMMAND : 0100YYXXB
READKEY         DATA    42H    ;
readsw          data    43h
;*********************************************************************
; DISPLAY   RAM
;  S1           S8   | S9            S16  | S17     S20
; LOW    00H   HIGH  | LOW    01H    HIGH | 02H (LOW)             G1
; LOW    03H         | LOW    03H         | 04H (LOW)             G2
;                 .................                               Gn
; LOW    2DH   HIGH  | LOW    2EH    HIGH | 2FH (LOW)            G16
; ********************************************************************
;KEY  MATRIX
;KEY1      KEY4  KEY1     KEY4
;    S1/KS1         S2/KS2
;   ......................
;    S11/KS11       S12/KS12
;   B0 B1 B2 B3   B4 B5 B6 B7
;************************************************************************
;SEND OR RECEIVE  DATA  LOW  IS FIRST
;************************************************************************
SEND_16311:;发送八位子程序
                 CLR    VFD_STB;在此清了VFD——STB脚
                 
                 MOV    R7,#08H
                 CLR    C
SENDLP:
                 CLR    VFD_CLK
                 RRC    A
                 MOV    VFD_DATA,C
                 NOP
                 SETB   VFD_CLK
                 NOP
                 DJNZ   R7,SENDLP
                 SETB   VFD_DATA;   很重要
                 RET
;----------------------------------------------------------------
;USED	:A,R0,B
;A: DISPLAY DATA   R0, DISPLAY ADDRESS
;
;VFD_BCD:
;		RET
;------------------------------------------------------
rxdata:;接收八位
                MOV    R7,#08H
                CLR    C
                CLR    A
RECLP:
                CLR     VFD_CLK
                RRC     A
                MOV    C,VFD_DATA
                MOV    ACC.7,C
                SETB    VFD_CLK
                NOP
                DJNZ   R7,RECLP
                ret
;quequequequequequequequequequequequequequequequequequequequequequequequequequequequequequequequequequequequequequequequequequequequequequequequequequequequequequequequequequequequequequequequequequ

⌨️ 快捷键说明

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