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

📄 pt6311 16311 程序(汇编版和c语言版).txt

📁 PT6311 16311 程序(汇编版和C语言版)和16312本样原理
💻 TXT
📖 第 1 页 / 共 2 页
字号:

PT6311 16311 程序(汇编版和C语言版)

--------------------------------------------------------------------------------
 
程序名:PT6311程序 
设计:   

       VFD显示是除LED、LCD等显示外的又一类显示,具有亮度高等特点,广泛用于功率放大器、空调、VCD等的显示。 
       PT6311是台湾普诚公司的一片集成电路,功能强大。支持12段16位~20段8位VFD显示屏,自带12×4键盘矩阵。点击看详细资料 
      本站程序包括A(汇编)版和C(C语言)版! 
A版程序: 
;程序说明:本程序摸拟功放:按K1-显示"DVD",按K2-显示"VCD",按K3-显示"TAPE",按K4-显示"CD/LD"
                        ;按K5-显示"89C51",按K6-显示"591MCU",按K7-显示"HAIER",按K8-显示"88888888" 
          STB         EQU     P0.0
          CLK         EQU     P0.1
          DO           EQU     P0.3
          DI             EQU     P0.2
;************* 以上端口可根据你的端口定义*********************
          ADDR         EQU     3FH
          TXBUF       EQU     31H
          FONT          EQU     32H
          RXBUF       EQU     33H
          TIME1         EQU     48H
          TIMEF         EQU     2FH.4
          TIME           EQU     34H     ;定时时间寄存器
          DISPLAY_H   EQU     3CH    ;UPD16311显示字模高字节寄存器。
          DISPLAY_M   EQU     3DH    ;UPD16311显示字模二字节寄存器。
          DISPLAY_L   EQU     3EH    ;UPD16311显示字模低字节寄存器。
          ZG                   EQU     10H     ;"G"字模寄存器16
          ZH                   EQU     11H     ;"H"字模寄存器17
          ZI                      EQU     12H     ;"I"字模寄存器18
          ZJ                    EQU     13H     ;"J"字模寄存器19
          ZK                   EQU     14H     ;"K"字模寄存器20
          ZL                   EQU     15H     ;"L"字模寄存器21
          ZM                  EQU     16H     ;"M"字模寄存器22
          ZN                  EQU     17H     ;"N"字模寄存器23
          ZO                  EQU     18H     ;"O"字模寄存器24
          ZP                  EQU     19H     ;"P"字模寄存器25
          ZQ                  EQU     1AH     ;"Q"字模寄存器26
          ZR                  EQU     1BH     ;"R"字模寄存器27
          ZS                  EQU     1CH     ;"S"字模寄存器28
          ZT                   EQU     1DH     ;"T"字模寄存器29
          ZU                  EQU     1EH     ;"U"字模寄存器30
          ZV                  EQU     1FH     ;"V"字模寄存器31
          ZW                 EQU     20H     ;"W"字模寄存器32
          ZX                  EQU     21H     ;"X"字模寄存器33
          ZY                  EQU     22H     ;"Y"字模寄存器34
          ZZ                  EQU     23H     ;"Z"字模寄存器35
          ZADD           EQU     24H     ;"+"字模寄存器36
          ZSUBB         EQU     25H     ;"_"字模寄存器37
          ZOR              EQU     26H     ;"/"字模寄存器38
          ZAC3            EQU     27H     ;".1"字模寄存器39
          ZDOT            EQU     28H     ;"."
          ZNO               EQU     29H     ;" "空格 
           ORG     0000H
           AJMP    START
           ORG     0030H 
START:     MOV     TXBUF,#0AH      ;设置显示模式
                  LCALL   WRCOM
                  MOV     R2,#19          ;处理共11个单元
                  MOV     ADDR,#0C0H
                  LCALL   CLRVFD          ;调用清屏子程序 
                  MOV    TXBUF,#41H       ;清除LED口数据
                  CLR    STB
                  LCALL  WR6311
                  MOV    TXBUF,#0FFH
                  LCALL  WR6311
                  SETB   STB
                  MOV     ADDR,#0C6H
                  MOV     R2,#7
                  LCALL   CLRVFD
                  MOV     70H,#0DH        ;以下是要向VFD控制器PT6311
                  MOV     71H,#ZV
                  MOV     72H,#0DH
                  MOV     73H,#9
                  MOV     74H,#8
                  MOV     75H,#0
                  MOV     76H,#0
                  MOV     ADDR,#0C3H      ;显示的起始单元
                  MOV     TIME,#100       ;间隔显示时间
                  MOV     R2,#7
                  LCALL   JT_FONT 
MAIN:      ACALL  SCAN      ;读键值
                  AJMP   MAIN
;*****************************键盘扫描程序***********************
;连发就通过延时后至SCAN3
;单发就通过判断键是否松开
SCAN:       ACALL   RDKEY
                   MOV     TIME1,#6
                   JNZ     SCAN0
                   AJMP    SCAN3 
SCAN0:      MOV     A,TXBUF 
                    CJNE    A,#01H,K2  ;00000001;
                    CLR     TIMEF      ;清除标志,显示就不延时!
                    LCALL   CLRMZ
                    LCALL   DVDDISP
                    AJMP    SCANEND 
K2:             CJNE    A,#02H,K3  ;00000010
                    SETB    TIMEF
                    LCALL   CLRMZ
                    LCALL   VCDDISP
                    AJMP    SCANEND 
K3:         CJNE    A,#04H,K4  ;00000100
            CLR     TIMEF
            LCALL   CLRMZ
            MOV     70H,#ZT
            MOV     71H,#0AH
            MOV     72H,#ZP
            MOV     73H,#0EH
            MOV     ADDR,#0C3H
            MOV     R2,#4
            LCALL   JT_FONT
            AJMP    SCANEND 
K4:      CJNE    A,#08H,K5  ;00001000
            SETB    TIMEF
            LCALL   CLRMZ
            MOV     70H,#0CH
            MOV     71H,#0DH
            MOV     72H,#ZOR
            MOV     73H,#ZL
            MOV     74H,#0DH
            MOV     ADDR,#0C3H
            MOV     R2,#5
            LCALL   JT_FONT
            AJMP    SCANEND 
K5:     CJNE    A,#10H,K6  ;00010000
            CLR     TIMEF 
            LCALL   CLRMZ
            MOV     70H,#8
            MOV     71H,#9
            MOV     72H,#0CH
            MOV     73H,#5
            MOV     74H,#1
            MOV     ADDR,#0C3H
            MOV     R2,#5
            LCALL   JT_FONT 
            AJMP    SCANEND 
K6:      CJNE    A,#20H,K7  ;00101111
            SETB    TIMEF
            LCALL   CLRMZ
            MOV     70H,#5
            MOV     71H,#9
            MOV     72H,#1
            MOV     73H,#ZM
            MOV     74H,#0CH
            MOV     75H,#ZU
            MOV     ADDR,#0C3H
            MOV     R2,#6
            LCALL   JT_FONT
            AJMP    SCANEND 
K7:      CJNE    A,#40H,K8
            CLR     TIMEF
            LCALL   CLRMZ
            MOV     70H,#ZH
            MOV     71H,#0AH
            MOV     72H,#ZI
            MOV     73H,#0EH
            MOV     74H,#ZR
            MOV     ADDR,#0C3H
            MOV     R2,#5
            LCALL   JT_FONT
            AJMP    SCANEND 
K8:     CJNE    A,#80H,SCANEND
            SETB    TIMEF
            LCALL   CLRMZ
            MOV     70H,#8
            MOV     71H,#8
            MOV     72H,#8
            MOV     73H,#8
            MOV     74H,#8
            MOV     75H,#8
            MOV     76H,#8
            MOV     ADDR,#0C3H
            MOV     R2,#7
            LCALL   JT_FONT
SCANEND:    ACALL    RDKEY
                    MOV      A,RXBUF
                    JNZ      SCANEND
SCAN3:      RET 
DVDDISP:    MOV     70H,#0DH
                    MOV     71H,#ZV
                    MOV     72H,#0DH
                    MOV     ADDR,#0C3H
                    MOV     R2,#3
                    LCALL   JT_FONT
                    RET
VCDDISP:    MOV     70H,#ZV
                    MOV     71H,#0CH
                    MOV     72H,#0DH
                    MOV     ADDR,#0C3H
                    MOV     R2,#3
                    LCALL   JT_FONT
                    RET
TVDISP:     MOV     70H,#ZT
                    MOV     71H,#ZV
                    MOV     ADDR,#0C3H
                    MOV     R2,#2
                    LCALL   JT_FONT
                    RET
;************************************************************
;************************读键子程序**************************
;************************************************************
RDKEY:          MOV     TXBUF,#42H
                        CLR     STB
                        ACALL   WR6311
                        ACALL   RDDISP1
                        MOV     TXBUF,RXBUF
                        SETB    STB
                        RET 
RDDISP1:      SETB    CLK
                        MOV     R4,#8
RDDISP1A:       CLR     CLK
                SETB    C
                JB      DO,RDDISP1B
                CLR     C 
RDDISP1B:       NOP
                RRC     A
                NOP
                SETB    CLK
                DJNZ    R4,RDDISP1A
                MOV     RXBUF,A
                RET 

D100ms:     MOV    R5,TIME1
D2001:      MOV    R6,#75
D2002:      MOV    R7,#100
            DJNZ   R7,$
            DJNZ   R6,D2002
            DJNZ   R5,D2001
            RET 
;***************清"米"字显示区***************
CLRMZ:      MOV     ADDR,#0C3H
                    MOV     R2,#7
                    LCALL   CLRVFD
                    RET
;*********************显示一个字符子程序***********************
MZ_DISPLAY:MOV     A,FONT
           MOV     B,#3
           MUL     AB         ;3字节(每个字符由3个字节组成)
           MOV     57H,A
           MOV     DPTR, #TAB_FONT 
           MOVC    A,    @A+DPTR
           MOV     DISPLAY_H, A 
           INC     DPTR
           MOV     A,57H
           MOVC    A,    @A+DPTR
           MOV     DISPLAY_M, A 
           INC     DPTR
           MOV     A,57H
           MOVC    A,    @A+DPTR
           MOV     DISPLAY_L, A 
           MOV     TXBUF,  #40H  ; 设置“写数据到显示RAM”命令。
           LCALL   WRCOM 
           MOV     TXBUF,  ADDR     ; 设置“RAM显示地址”命令。
           LCALL   WRADDR 
           MOV     TXBUF,DISPLAY_H; 选定的字符送数码管显示。
           LCALL   WR6311
           MOV     TXBUF,DISPLAY_M
           LCALL   WR6311
           MOV     TXBUF,DISPLAY_L
           LCALL   WR6311 
           SETB    STB 
           MOV     TXBUF,  #8BH    ; 设置“显示控制”命令字。
           LCALL   WRCOM
           RET 
DISP:      MOV     TXBUF,  #40H  ; 设置“写数据到显示RAM”命令。
           LCALL   WRCOM
           MOV     TXBUF,  ADDR     ; 设置“RAM显示地址”命令。
           LCALL   WRADDR
           MOV     TXBUF,70H; 选定的字符送数码管显示。
           LCALL   WR6311
           MOV     TXBUF,71H
           LCALL   WR6311
           SETB    STB 
           MOV     TXBUF,  #8BH ; 设置“显示控制”命令字。
           LCALL   WRCOM
           RET
;***********************静态字符显示子程序************************* 
JT_FONT:   MOV     R1,#70H
           MOV     FONT,@R1
LOOP:      LCALL   MZ_DISPLAY
                   INC     R1
                   MOV     FONT,@R1
                   INC     ADDR
                   INC     ADDR
                   INC     ADDR
                   JB      TIMEF,III
                   LCALL   DELAY$     ;调整显示速度
III:               DJNZ    R2,LOOP
                   RET
;************************************************************
;*******************写命令子程序*****************************
;************************************************************          
WRCOM:    CLR         STB        
                  ACALL       WR6311
                  SETB        STB
                  RET
;******************写地址子程序******************************
WRADDR:   CLR         STB
          ACALL       WR6311
          RET
;********************写一个字节子程序************************
WR6311:   MOV         R0,#8
          MOV         A,TXBUF      ;要发送的数放在TXBUF
WR6311A:  CLR         CLK
          RRC         A      ;右环移
          SETB        DI
          JC          WR6311B
          CLR         DI
WR6311B:  SETB        CLK
          DJNZ        R0,WR6311A
          RET
;***************显示屏清屏子程序****************************
CLRVFD:   MOV         TXBUF,#40H
          LCALL       WRCOM
          MOV         TXBUF,ADDR
          LCALL       WRADDR 
          MOV         TXBUF,#0
          LCALL       WR6311 
          MOV         TXBUF,#0
          LCALL       WR6311
       
          MOV         TXBUF,#0
          LCALL       WR6311 
          SETB        STB
          MOV         TXBUF,#8CH        ;亮度控制
          LCALL       WRCOM
          INC         ADDR
          INC         ADDR
          INC         ADDR
          DJNZ        R2,CLRVFD
          RET 
DELAY$:   MOV   R7,TIME
DELAY$_1: MOV   R6,#5
DELAY$_2: MOV   R5,#245      ;20us  
          DJNZ  R5,$         ;980us
          DJNZ  R6,DELAY$_2
          DJNZ  R7,DELAY$_1
          RET
;HL-D013段码表
TAB_FONT:
          DB  49H,0CEH,00H      ;---0
          DB  08H,04H ,00H      ;---1
          DB  30H,0CCH ,00H     ;---2
          DB  38H,8CH ,00H      ;---3
          DB  28H,05H ,00H      ;---4
          DB  78H,88H ,00H      ;---5
          DB  78H,0C8H ,00H     ;---6
          DB  08H,0CH  ,00H     ;---7
          DB  78H,0CCH ,00H     ;---8
          DB  78H,8CH  ,00H     ;---9 
          DB  29H,06H ,00H      ;---A
          DB  2AH,8DH ,00H      ;---B
          DB  40H,0C8H ,00H     ;---C
          DB  0AH,8DH ,00H      ;---D

⌨️ 快捷键说明

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