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

📄 新建 文本文档 (2).txt

📁 用单片机89c51及AD转换0809设计多路数据采集系统
💻 TXT
字号:
;******************************1.采用单片机89c51及AD转换0809设计多路数据采集系统

            2.多通道输入信号由5V电压分压到IN0---IN9

           3.采集的数据由4位数码管动态显示

         4.必须具有上电自检功能及外接电源,公共地线端口

求大虾们给设计出电路原理图和PCB图,万分感谢!!!!!!*******

;*                                   *

;*      主程序和中断程序入口         *

;*                                   *

;*************************************

        ORG     0000H

                LJMP    START

        ORG     0003H

                RETI

        ORG     000BH

                RETI

                ORG     0013H

                RETI

                ORG     001BH

                RETI

        ORG     0023H

                RETI

        ORG     002BH

                RETI

;

;*************************************

;*                                   *

;*       初始化程序中的各变量        *

;*                                   *

;*************************************

CLEARMEMI     CLR     A

                MOV     P2,A

                MOV     R0,#70H

                MOV     R2,#0CH

LOOPMEM:        MOV     @R0,A

                INC     R0

                DJNZ    R2,LOOPMEM

                MOV     A,#0FFH

                MOV     P0,A

                MOV     P1,A

                MOV     P3,A

                RET

;

;*************************************

;*                                   *

;*  主程序                       *

;*                                   *

;*************************************

START:          LCALL   CLEARMEMIO      ;初始化

MAIN:           LCALL   DISPLAY        ;显示数据一次

                LCALL   TEST           ;测量一次

                AJMP    MAIN

                NOP         ;PC值出错处理

                NOP

                NOP

                LJMP    START

;

DISPLAY:        MOV     R3,#08H         ;8路信号循环显示控制

                MOV     R0,#70H         ;显示数据初址70H~77H

                MOV     7BH,#00H        ;显示通道路数

DISLOOP1:       MOV     A,@R0           ;显示数据转为三位BCD码存入7AH、79H、78H

                MOV     B,#100

                DIV     AB

                MOV     7AH,A

                MOV     A,#10

                XCH     A,B

                DIV     AB

                MOV     79H,A

                MOV     78H,B

                MOV     R2,#0FFH      ;每路显示时间控制 4MS*255

DISLOOP2:       LCALL   DISP          ;调四位显示程序

                DJNZ    R2,DISLOOP2

                INC     R0            ;显示下一路

                INC     7BH           ;通道显示数加一

                DJNZ    R3,DISLOOP1

                RET

;

DISP:           MOV     R1,#78H       ;共阳显示子程序,显示内容在78H—7BH

                MOV     R5,#0FEH      ;数据在P1输出,列扫描在P3.0-P3.3

PLAY:           MOV     P1,#0FFH

                MOV     A,R5

                ANL     P3,A

                MOV    A,@R1

                MOV    DPTR,#TAB

                MOVC   A,@A+DPTR

                MOV    P1,A

                LCALL  DL1MS

                INC    R1

                MOV    A,P3

                JNB    ACC.3,ENDOUT

                RL     A

                MOV    R5,A

                MOV    P3,#0FFH

                AJMP   PLAY

ENDOUT:         MOV    P3,#0FFH

                MOV    P1,#0FFH

                RET

TAB:            DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH

;

;

DL1MS:          MOV R6,#14H      ;1MS延时子程序

DL1:            MOV R7,#19H

DL2:            DJNZ R7,DL2

                DJNZ R6,DL1

                RET

;




TEST:           CLR     A          ;模数转换子程序

                MOV     P2,A

                MOV     R0,#70H    ;转换值存放首址

                MOV     R7,#08H    ;转换8次控制

                LCALL  TESTART     ;启动测试

WAIT:           JB     P3.7,MOVD   ;等A/D转换结束信号

                AJMP   WAIT

;

TESTART:        SETB    P2.3       ;测试启动

                NOP

                NOP

                CLR     P2.3

                SETB    P2.4

                NOP

                NOP

                CLR     P2.4

                NOP

                NOP

                NOP

                NOP

                RET

;

;

MOVD:           SETB    P2.5       ;取A/D转换数据

                MOV     A,P0

                MOV     @R0,A

                CLR     P2.5

                INC     R0

                MOV     A,P2       ;通道地址加1

                INC     A

                MOV     P2,A

                CJNE    A,#08H,TESTCON    ;等8路A/D转换结束

                JC      TESTCON

                CLR     A                 ;结束恢复端口

                MOV     P2,A

                MOV     A,#0FFH

   

⌨️ 快捷键说明

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