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

📄 主程序.asm

📁 数字电压表
💻 ASM
字号:
        AD_WR     EQU P3.2      ;AD0804启动命令
        AD_OUT_L  EQU P3.7      ;AD0804低四位数据输出控制端
        AD_OUT_H  EQU P3.1      ;AD0804高四位数据输出控制端
;----------------------------------------------
        ORG     0000H
        AJMP    MAIN
        ORG     0030H
MAIN:
        LCALL   ADC_demo
        AJMP    MAIN
;---------------ADC0804转换显示----------------
ADC_demo:
        LCALL   ADC_START
        LCALL   ADC_READ
        LCALL   CPU_DO
        RET
;---------------ADC0804启动--------------------
ADC_START:
        CLR     AD_WR
        LCALL   D1MS
        RET
;---------------ADC0804读开始------------------
ADC_READ:
        SETB    AD_WR         ;ADC0804读启动
        LCALL   D1MS
        CLR     AD_OUT_L      ;读低四位数据
        NOP
        MOV     R1,P1         ;存放单片机从ADC读取的低四位数据
        NOP
        SETB    AD_OUT_L
        LCALL   D1MS
        NOP
        CLR     AD_OUT_H      ;读高四位数据
        NOP
        MOV     R3,P1         ;存放单片机从ADC读取的高四位数据
        NOP
        SETB    AD_OUT_H
        RET
;---------------数据处理显示------------------
CPU_DO:
        MOV     A,R1          ;低四位处理
        ANL     A,#0FH
        MOV     R1,A
        MOV     A,R3          ;高四位处理
        ANL     A,#0FH
        SWAP    A
        ORL     A,R1
L1:
        CLR     C
        MOV     R5,#00H       ;十进制转换后的低位寄存器
        MOV     R4,#00H       ;十进制转换后的高位寄存器
        MOV     R0,#08H       ;十进制转换次数
NEXT:
        RLC     A             ;十进制转换
        MOV     R2,A
        MOV     A,R5
        ADDC    A,R5
        DA      A
        MOV     R5,A
        MOV     A,R4
        ADDC    A,R4
        DA      A
        MOV     R4,A
        MOV     A,R2
        DJNZ    R0,NEXT       ;循环
L2:
        MOV     A,R5
        ADD     A,R5
        DA      A
        MOV     R5,A
        MOV     A,R4
        ADDC    A,R4
        DA      A
        MOV     R4,A
;---------------显示子程序---------------------
DISP:
        MOV     A,R4
        ANL     A,#0FH
        CLR     P3.3          ;左显示
        MOV     DPTR,#TAB0
        MOVC    A,@A+DPTR
        MOV     P1,A
        LCALL   D1MS
        LCALL   D1MS
        MOV     A,R5
        ANL     A,#0F0H
        SWAP    A             
        SETB    P3.3          ;左结束
        CLR     P3.4          ;中显示
        MOV     DPTR,#TAB1
        MOVC    A,@A+DPTR
        MOV     P1,A
        LCALL   D1MS
        LCALL   D1MS
        MOV     A,R5
        ANL     A,#0FH
        SETB    P3.4          ;中结束
        CLR     P3.5          ;右显示
        MOV     DPTR,#TAB0
        MOVC    A,@A+DPTR
        MOV     P1,A
        LCALL   D1MS
        LCALL   D1MS
        SETB    P3.5          ;右结束
        RET
;---------------延时子程序---------------------
D1MS:
        MOV     R7,#80        ;延时1MS
        DJNZ    R7,$
        RET
;7段数码管0~9数字的共阴显示代码
;无小数点
TAB0: DB 0FCH,60H,0DAH,0F2H,66H,0B6H,0BEH,0E0H,0FEH,0F6H
;有小数点
TAB1: DB 0FDH,61H,0DBH,0F3H,67H,0B7H,0BFH,0E1H,0FFH,0F7H
;         0   1    2    3   4    5    6    7    8    9
END

⌨️ 快捷键说明

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