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

📄 test.asm

📁 三星VFD显示程序 下载密码123456
💻 ASM
字号:
             ;P1          EQU  DB(N)         ;Hardware setting
       ;P3.6        EQU  RS
       ;P3.7        EQU  R/W
       ;P3.5        EQU  E
       ;R0          时间延迟寄存器
       ;R1          显示采样数据存储器首地址寄存器
       ;R2          指令、数据码寄存器
       ;R3          时间延迟寄存器
       ;R4          时间延迟寄存器
       ;R5          时间延迟寄存器
       ;R6          VFD显示字符个数寄存器
       ;R7          循环记数的个数寄存器
       ;10H         VFD固定位数(20位)寄存器
       ;20H-24H     键盘设定电流值存储器(可VFD显示的转化值)5位
       ;30H-34H     采集电流值存储器(可VFD显示的转化值} 5位
       ;40H-44H     采集电压值存储器(可VFD显示的转化值} 5位
       ;50H-54H     负载电阻精确值存储器(可VFD显示的转化值}  5位
       ORG      0000H
       AJMP     START
START: ORG      0100H               ;以下为调用测试部分,采样值均为假设值
       MOV      20H, #20H
       MOV      21H, #20H
       MOV      22H, #31H
       MOV      23H, #32H
       MOV      24H, #33H           ;键盘设定调用测试123

       MOV      30H, #20H
       MOV      31H, #20H
       MOV      32H, #31H
       MOV      33H, #32H
       MOV      34H, #33H           ;采集电流调用测试 123

       MOV      40H, #20H
       MOV      41H, #20H
       MOV      42H, #31H
       MOV      43H, #32H
       MOV      44H, #33H           ;采集电压调用测试123

       MOV      50H, #20H
       MOV      51H, #20H
       MOV      52H, #31H
       MOV      53H, #32H
       MOV      54H, #33H           ;负载电阻调用测试 123

       AJMP     STAR
STAR:  ACALL    PR3                 ;Initializing
       MOV      R2,#0FH             ;Flash mode    动态显示模式  R2为控制命令寄存器
       ACALL    PR1                 ;调用指令控制
       MOV      R2,#85H             ;Add(1,6)第一行第6个位置开始显示
       MOV      DPTR,#TAB           ;Character data
       MOV      R6,#0AH             ;count 显示的字母个数
       ACALL    PR4                 ;Display"WELCOME!!"  调用显示控制
       MOV      R2,#0C2H            ;Add(2.1)第2行第三个位置开始显示
       MOV      R6,#12H             ; count 显示的字母个数,R6为显示字数寄存器
       ACALL    PR4                 ; display "WAITING INPUT"
       ACALL    TIM1                ;时间延迟
       MOV      10H,#14H             ;displacement count 20个位置数量
RLOOP: MOV      R2,#1CH             ;right  display
       ACALL    PR1                 ;调用指令控制
       ACALL    TIM2
       DJNZ     10H,RLOOP            ;loop 判断整体20个位置是否移动完全
       MOV      R2,#01H             ;clear screen
       ACALL    PR1

STAR1: MOV      R2,#0EH             ;normal display mode 正常显示模式
       ACALL    PR1
       MOV      R2,#80H             ;add(1.1) 第一行第1个位置显示
       MOV      DPTR,#TAB1          ;character  tab
       MOV      R6,#04H             ;count 显示字体数量
       ACALL    PR4                 ;display"SET:"
       ACALL    TIM3
       MOV      R2,#84H             ;add(1.5) 第一行第5个位置显示
       MOV      R1,#20H             ;取键盘设定值的存储器20H首地址
       MOV      R6,#05H             ;count 显示字体数量 5位
       ACALL    PR5                 ;display键盘设定值
       ACALL    TIM3
       MOV      R2,#8AH             ;add(1.11) 第一行第11个位置显示
       MOV      DPTR,#TAB2          ;character  tab
       MOV      R6,#04H             ;count 显示字体数量
       ACALL    PR4                 ;display"OUT:"
       ACALL    TIM3
       MOV      R2,#8EH             ;add(1.15) 第一行第15个位置显示
       MOV      R1,#30H             ;取采样电流值的存储器30H首地址
       MOV      R6,#05H             ;count 显示字体数量 5位
       ACALL    PR5                 ;display采样电流输出
       ACALL    TIM3
       MOV      R2,#0C0H            ;Add(2.1) 第二行第1个位置显示
       MOV      DPTR,#TAB3          ;character  tab
       MOV      R6,#04H             ;count 显示字体数量
       ACALL    PR4                 ;display" VOL:"
       ACALL    TIM3
       MOV      R2,#0C4H            ;add(2.5) 第二行第5个位置显示
       MOV      R1,#40H             ;取采样电压值的存储器40H首地址
       MOV      R6,#05H             ;count 显示字体数量 5位
       ACALL    PR5                 ;display采样电电压输出
       ACALL    TIM3
       MOV      R2,#0CAH            ;Add(2.11) 第二行第11个位置显示
       MOV      DPTR,#TAB4          ;character  tab
       MOV      R6,#04H             ;count 显示字体数量
       ACALL    PR4                 ;display" RES:"
       ACALL    TIM3
       MOV      R2,#0CEH            ;add(2.15) 第二行第15个位置显示
       MOV      R1,#50H             ;取负载电阻值的存储器50H首地址
       MOV      R6,#05H             ;count 显示字体数量  5位
       ACALL    PR5                 ;display负载电阻值输出
       ACALL    TIM3
       AJMP     STAR1               ;返回动态显示界面

PR0:   ANL      P3,#00H             ;p3 set to 0 控制信号全为低电平
       ClR      P3.6                ;RS=0
       SETB     P3.7                ;R/W=1
P01:   ORL      P1,#0FFH            ;p1 set to1(input)
       SETB     P3.5
       MOV      A,P1                ;Read p1
       CLR      P3.5
       ACALL    TIM4
       JB       ACC.7,P01           ;Judge BF判断VFD是否繁忙
       RET

PR1:   LCALL    PR0                 ;Write instruction program
       MOV     A,R2
       CLR     P3.6                 ;RS=0
       CLR     P3.7                 ;R/W=1
       SETB    P3.5                 ;E=1      打开写入命令口
       ACALL   TIM3
       MOV     P1,A                 ;将指令写入DB口
       CLR     P3.5                 ;E=0      关闭写入命令口
       ACALL   TIM4
       RET

PR2:   LCALL  PR0                   ;Write data program
       MOV    A,R2
       SETB   P3.6                  ;RS=1
       CLR    P3.7                  ;R/W=0
       SETB   P3.5                  ;E=1      打开写入数据口
       ACALL  TIM2
       MOV    P1,A                  ;将数据写入DB口
       CLR    P3.5                  ;E=0      关闭写入数据口
       ACALL  TIM4
       RET
PR3:   ANL      P3,#00H              ;Initialization program
       ANL      P1,#00H              ;DB口清零
       MOV      R7,03H               ;loop count
P31:   MOV      R2,#38H              ;Function control 控制指令
       ACALL    PR1                  ;写入控制指令
       ACALL    TIM4
       DJNZ     R7,P31
       MOV      R2,#01H              ;Clear screen
       ACALL    PR1                  ;写入控制指令
       MOV      R2,#06H              ;Input mode setting  8输入方式
       ACALL    PR1
       MOV      R2,#0EH              ;Display mode setting 显示方式
       ACALL    PR1
       RET

PR4:   ACALL     PR1
P41:   CLR       A
       MOVC     A,@A+DPTR            ;Write to display  查表显示
       MOV      R2,A
       ACALL    PR2                  ;调用写数据控制模块
       INC      DPTR                 ;指针向下进行
       DJNZ     R6,P41               ;查询字体信息是否显示完毕
       RET
PR5:   ACALL     PR1
P51:   CLR       A                    ;Write  to display 内部ROM调用
       MOV      A,@R1
       MOV      R2,A
       ACALL    PR2                   ;调用写数据控制模块
       INC      R1                    ;指针向下进行
       DJNZ     R6,P51                ;查询字体信息是否显示完毕
       RET

TIM1:  MOV      R5,#05H              ;Time delay
TT1:   ACALL    TIM2
       DJNZ     R5,TT1
       RET
TIM2:  MOV      R4,#0FFH
TT2:   ACALL    TIM3
       DJNZ     R4,TT2
       RET
TIM3:  MOV      R3,#25H
       ACALL    TIM4
TT3:   DJNZ     R3,TT3
TIM4:  MOV      R0,#0FFH
TT4:   DJNZ     R0,TT4
       RET

TAB:   DB       57H,45H,4CH,43H,4FH,4DH,45H,20H,21H,21H    ;WELCOME!!
       DB       57H,41H,49H,54H,49H,4EH,47H,20H,20H        ;WAITING
       DB       49H,4EH,50H,55H,54H,0A5H,0A5H,0A5H,0A5H    ;INPUT....
TAB1:  DB       53H,45H,54H,3AH                            ;SET:
TAB2:  DB       4FH,55H,54H,3AH                            ;OUT:
TAB3:  DB       56H,4FH,4CH,3AH                            ;VOL:
TAB4:  DB       52H,45H,53H,3AH                            ;RES:
       END

⌨️ 快捷键说明

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