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

📄 dvm.txt

📁 利用仿真系统中的键盘控制A/D 0809进行电压转换
💻 TXT
字号:
ORG     0000H
AJMP    MAIN
MAIN:  MOV     DPTR,#8001H     ;74245清0
        MOV     A,#00H
        MOV     DPTR,#8002H     ;74374清0
        MOV     A,#00H
        MOVX    @DPTR,A
        MOV     R3,#00H
        MOV     R4,#00H
        MOV     R2,#11011111B
KEY0:  ACALL   KEXAM
        JZ      KEY0
        ACALL   DL10mS
        ACALL   KEXAM
        JZ      KEY0
KEY1:  MOV     DPTR,#8002H     ;列地址
        MOV     A,R2
        MOVX    @DPTR,A
KEY10:  MOV     DPTR, #8001H    ;行地址
        MOVX     A,@DPTR
        CPL     A
        ANL     A,#0FH
        JNZ     KEY2
KEY11:  MOV     A,R3
        ADD     A,#04H
        MOV     R3,A
        MOV     A,R2
        RR      A
        MOV     R2,A
        JB      ACC.1,KEY1
        AJMP    MAIN
KEY2:  CPL     A
KEY3:  INC     R4
        RRC     A
        JC      KEY3



KEY4:  ACALL   DL10mS
        ACALL   KEXAM
        JNZ     KEY4
        MOV     A,R4
        ADD     A,R3
        MOV     30H,A
KEY5:  CJNE A,#01H,KEY6
        AJMP  CH0
KEY6:  CJNE A,#02H,KEY7
        AJMP  CH1
KEY7:  CJNE A,#03H,KEY0
        AJMP  CH01
CH0:   MOV DPTR,#9000H                ;IN0通道采样
        MOV A,#00H
LOP:   LCALL  DA1
        LCALL  PTDS                    ;采样值送显示缓冲区
DIS1:   LCALL  DISPLAY                 ;显示
        LCALL  DL10ms
        LCALL  KEXAM
		JZ     DIS1
        LJMP   MAIN
CH1:   MOV DPTR,#9001H                ;IN1通道采样
        MOV A,#01H
        LJMP  LOP
CH01:   MOV DPTR,#9000H                ;自动扫描
        MOV A,#00H                     ;IN1通道采样
        LCALL  DA1
        LCALL  PTDS                    ;采样值送显示缓冲区
        MOV R1,#20H
SLOOP:  LCALL  DISPLAY                 ;显示
        LCALL  DL10ms
        DJNZ   R1,SLOOP
        MOV DPTR,#9001H
        MOV A,#01H
        LCALL  DA1
        LCALL  PTDS
        MOV R1,#20H
SLOOP2: LCALL  DISPLAY
        LCALL  DL10ms
        DJNZ   R1,SLOOP2
        LCALL  KEXAM
		 JZ     CH01
        LJMP   MAIN
KEXAM: MOV     DPTR,#8002H            ; 列地址
        MOV     A,#00H
        MOVX    @DPTR,A
        MOV     DPTR,#8001H            ; 列地址
        MOVX    A,@DPTR
        CPL     A
        ANL     A,#0FH
        RET

DA1:    MOVX  @DPTR,A                 ;起动A/D转换
        LCALL DL100US
        MOVX  A,@DPTR                 ;读数
        MOV   R0,#30H                   ;送采样值缓冲区首址
        RET

PTDS:   MOV  R5,A                      ; 采样值送显示缓冲区
        ACALL  PDS                     ;采样值暂存子程序
        MOV  A,R5
        SWAP  A
PDS:    ANL  A,#0FH
        MOV  @R0,A                     ;采样值入暂存单元
        INC  R0                          ;指向下一暂存单元
        RET

DL100US:MOV   01H, #0FH                ; 转换延时子程序
        MOV   00H, #20H
DLOOP:  DJNZ  00H, DLOOP
        DJNZ  01H, DLOOP
        RET

DL10ms: MOV     11H,#08H               ;按键/显示延时子程序
DL:     MOV     10H,#0FFH
DL0:    DJNZ    10H,DL0
        DJNZ    11H,DL
        RET

DISPLAY:MOV   R0, #31H
        MOV   R7, #2                    ; 共2个八段管
        MOV   R6, #00100000b            ; 从左边开始显示
        MOV   DPTR, #OUTBIT
        MOV   A, #0
        MOVX  @DPTR, A                ; 关所有八段管
LOOP:  MOV   DPTR,#TAB
        MOV   A,@R0
        MOVC  A,@A+DPTR
        MOV   DPTR, #OUTSEG
        MOVX  @DPTR, A
        MOV   DPTR, #OUTBIT
        MOV   A, R6
        MOVX  @DPTR, A                ; 显示一位八段管
        CALL  DL10ms
        MOV   A, R6                     ; 显示下一位
        RR    A
        MOV   R6, A
        DEC   R0
        DJNZ  R7, LOOP
        RET

TAB:    DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,
        DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H,
        ;DB 0FFH,3FH,06H,66H,07H,71H,5BH,6DH,7FH,
        ;DB 79H,4FH,7DH,6FH,5EH,39H,7CH,77H,
        END

⌨️ 快捷键说明

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