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

📄 eight interrupt.a51

📁 这是一个八路循环的模拟电压转换电路,将模拟信号在数码管上显示出来
💻 A51
字号:
 ;调试基本成功,但是,个别通道数据不匹配
 ;而且,不能实时检测数据。为什么?
        ORG 0000H
        SJMP START
        ORG 0030H
        LJMP START
        ORG 0003H
        LJMP INT0
;******************
;初始化各个变量
;******************
START:  CLR A
        MOV R0,#30H ;初始化30H-3BH
        MOV R2,#0DH
        MOV R3,#08H ;设置8路采样记数值
LOOP0:  MOV @R0,A
        INC R0
        DJNZ R2,LOOP0  
        NOP
        NOP
        NOP      
        MOV A,#0FFH
        MOV P0,A
        MOV P1,A
        MOV P2,A
        MOV P3,A
        MOV R0,#30H  ;让R0重新指向数据缓冲区首位
        MOV DPTR,#7FF8H
        
MAIN:   SETB F0
        MOVX @DPTR,A
        SETB EA
        SETB EX0
        SETB IT0        
NEXT:   JB F0,NEXT
        DJNZ R3,MAIN
        NOP    
        NOP
        NOP
        
;**********************
;主程序
;**********************
LOOP:   NOP
        NOP
        NOP
        LCALL DISPLAY
        NOP
        NOP
        NOP
        SJMP LOOP
;*********************
;显示控制子程序
;*********************
DISPLAY:MOV R3,#08H
        MOV R0,#30H
        MOV 3BH,#00H ;显示通道路数初值
DISPLP1:LCALL PROC
        NOP
        NOP
        NOP
        MOV R4,#0AAH ;每路显示时间控制
DISPLP2:LCALL DISP   ;调用显示4位
        NOP
        NOP
        NOP
        DJNZ R4,DISPLP2
        INC R0         ;显示下一路
        INC 3BH        ;显示通道数加1
        DJNZ R3,DISPLP1
        RET
        NOP
        NOP
        NOP

;*********************
;;AD转换子程序中断方式
;*********************

INT0:   NOP
        NOP
        NOP
        MOVX A,@DPTR
        MOV @R0,A
        INC DPTR
        INC R0
        CLR F0
        RETI
        NOP
        NOP
        NOP
  
;*********************
;数据处理子程序
;*********************
PROC:   MOV A,@R0
        MOV B,#51 
        DIV AB
        MOV 3AH,A
        XCH A,B
        MOV B,#10
        MUL AB
        JB OV,BCD1
        MOV B,#51
        DIV AB
        MOV 39H,A
        XCH A,B
        AJMP BCD2
        NOP
        NOP
        NOP
BCD1:   MOV B,#51
        DIV AB
        ADD A,#5
        MOV 39H,A
        XCH A,B
        ADD A,#5
BCD2:   MOV B,#10
        MUL AB
        JB OV,BCD3
        MOV B,#51
        DIV AB
        MOV 38H,A
        AJMP BCD4
        NOP
        NOP
        NOP
BCD3:   MOV B,#51
        DIV AB
        ADD A,#5
        MOV 38H,A
BCD4:   RET
        NOP
        NOP
        NOP
;*******************
;显示子程序 
;*******************
DISP:   MOV A,3BH
        MOV DPTR,#TABLE
        MOVC A,@A+DPTR
        MOV P1,A
        MOV A,#0FEH
        MOV P2,A
        LCALL DELAY
        NOP
        NOP
        NOP
        MOV A,3AH
        MOV DPTR, #TABLE
        MOVC A,@A+DPTR
        ORL A,#80H
        MOV P1,A
        MOV A, #0FDH
        MOV P2,A
        LCALL DELAY
        NOP
        NOP
        NOP
        MOV A,39H
        MOV DPTR, #TABLE
        MOVC A,@A+DPTR
        MOV P1,A
        MOV A, #0FBH
        MOV P2,A
        LCALL DELAY
        NOP
        NOP
        NOP
        MOV A,38H
        MOV DPTR, #TABLE
        MOVC A,@A+DPTR
        MOV P1,A
        MOV A, #0F7H
        MOV P2,A
        LCALL DELAY
        NOP
        NOP
        NOP
        RET
        NOP
        NOP
        NOP
TABLE:  DB 3FH,06H,5BH,4FH,66H
        DB 6DH,7DH,07H,7FH,6FH
DELAY:  MOV R6,#14H    
D0:     MOV R7,#19H
D1:     DJNZ R7,D1
        DJNZ R6,D0
        RET
        NOP
        NOP
        NOP
        END

⌨️ 快捷键说明

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