1、单片机课程设计多通道数据采集系统的课程设计报告姓名: 学号: 班级:指导老师: 授课老师: - 11 - 11 -目录1.1 摘要.21.2系统分析.31.3系统设计.31.4 程序代码.82.1 实验感想.122.2 参考文献.121.1摘要 不论对于何种测控系统,数据采集传输模块都是重中之重。本文主要介绍了基于80C51单片机的多通道数据采集系统,该采集系统以80C51单片机为核心,通过芯片ADC0809,采用查询方式,采集该芯片的模拟量输入信号,并通过智能显示芯片HD7295A,控制驱动8位共阴数码管,将单片机采集到的数据显示出来。1.2系统分析 在设计系统时首先完成单片机基本电路的设计
2、,包括单片机的复位电路与晶振电路。再以单片机的P0口作为数据总线,接入ADC0809的数字量输出引脚,而外部模拟量输入信号则通过ADC0809的输入引脚接入单片机,单片机则通过位选信号与读写选通信号,经过与非门电路对其进行连接控制。同时单片机以PI口的某些引脚作为控制信号与7279相连,用来驱动控制8位共阴数码管,通过软件设将读入的数据显示出来。在连接电路完成程序设计时,要注意单片机各部分的时序,从而赋予各部分合理的初始化命令。其系统的模块组成部分如下:ADC0809数据转换模块8051单片机 复位模块7295驱动显示模块晶振模块撤消修改1.3系统设计 基于单片机的多通道数据采集系统其设计要分
3、为两部分组成,一是硬件电路设计,二是软件设计,故其系统设计分两部分分别介绍。但是在试验时,我们是利用试验箱进行试验的,故单片机基本电路在实验箱上已被设计好,在实验时仅须注意数码管显示电路与AD转换电路即可。 A.硬件电路设计: 数码管显示电路是利用7295A芯片直接与单片机相连,当接收到单片机的控制指令时,直接驱动8位共阴数码管,显示单片机发送的数据。 HD7279A是一片具有串行接口,可同时驱动8位共阴数码管(或64只独立LED)的智能显示驱动芯片,该芯片还可同时连接多达64键的键盘矩阵。HD7279A内部含译码器,可直接接受16进制码。(1) 其具体连接电路图如下所示:abcdefgdpV
4、DDVDDNCVSSNCCSCLKDATAKEYCLK0RCRESETDIG7DIG6DIG5DIG4DIG3DIG2DIG1DIG0DPSASBSCSDSESFSG7279A25242322212019181716151413121110123456789262728VCCVCC200200200200200200200200VCC80C51单片机P2.7P1.6P1.7P1.3R303.3KC3015PF 注意在实验时,要将系统各跳线器接在初始设置状态(参见附录)(JT40打在左边,JD18打在右边),J2的P3.0,P3.1打在右边。这样7279才能准确驱动数码管显示单片机发送的数据。其
5、工作时时序电路如下所示:(2) AD转换电路:AD转换电路是利用芯片ADC0809,将其与单片机直接相连。单片机直接读取经过其转换的数字量信号,再将其发送到7279芯片,驱动数码管直接显示单片机输出的信号。 实验ADC0809电路如下图所示。实验采用外设与存储器同一编址,在使用中可直接将外设当作数据存储器访问。第0路ADC地址为2f00H(即:CS AD信号对应A15A3为0010 1111 0000 0)。EOC(A/D转换结束信号输出端)取反后接单片机P1.7,若采用查询方式完成模/数转换,只需查询P1.7即可。本实验CLOCK信号由CPLD Lattice3128分频产生(12MHz晶振
6、12分频)。其工作时时序电路如下所示:B.软件设计:其软件设计部分主要就是数码管显示部分和AD转换部分的程序设计。(1) 数码管显示程序:数码管显示电路的时序,其程序流程图为:变量定义堆栈指针初始化IO口 初始化延时7279复位显示字符送A调用SEND 子程序程序代码如下:CLK BIT P1.6DAT BIT P1.7CS BIT P2.7ORG 000HJMP STARTORG 100HSTART: MOV SP,#2FH ;定义堆栈 MOV P1,#11011011B ;I/O口初始化 MOV R7,#50START_DELAY: MOV R6,#255START_DELAY1:DJNZ
7、 R6,START_DELAY1 DJNZ R7,START_DELAY MOV A,#10100100B ;发复位指令 CALL SEND SETB CS XIANSHI:MOV A,#10000010b CALL SEND MOV A,#00000111b CALL SENDMOV A,#10000001b CALL SEND MOV A,#00001000b CALL SENDMOV A,#10000000b CALL SEND MOV A,#00001001b CALL SENDhh:JMP XIANSHISEND: MOV R0,#8 CLR CS CALL LONG_DELAYSE
8、ND_LOOP: MOV C,ACC.7 MOV DAT,C SETB CLK RL A CALL SHORT_DELAY CLR CLK CALL SHORT_DELAY DJNZ R0,SEND_LOOP CLR DAT RETLONG_DELAY: MOV R7,#80DELAY_LOOP: DJNZ R7,DELAY_LOOP RETSHORT_DELAY:MOV R7,#6SHORT_LP: DJNZ R7,SHORT_LP RETEND(2) AD转换程序:由AD转换的时序电路,其软件流程图如下:ALE与START接在一起,MOV DPTR, #02f00H ; A/DNOPNOP
9、MOVX DPTR,A ; 启动查询P1.7即可:JNB P1.7,$MOVX A,DPTR ; 读入结果1.4程序代码 ADHEX DATA 050H DBUF DATA 060H BIT_COUNT DATA 070H TIMER DATA 072H TIMER1 DATA 073H TIMER2 DATA 074HDATA_IN DATA 020H DATA_OUT DATA 021H CLK BIT P1.6 DAT BIT P1.7 ORG 0000H LJMP MAIN ORG 0100H MAIN: clr a setb p1.7 MOV R0,#DBUF MOV DPTR,#0
10、2f00H ; A/D NOP NOP NOP MOVX DPTR,A ; 启动转换 JNB P1.7,$ NOP NOP NOP MOVX A,DPTR ; 读入结果 NOP NOP NOP MOV R7,A MOV ADHEX,A CALL MUL500 ; ADHEX*500/256 CALL HB2 ; 转换成bcd CALL TODISP ; 拆开显示 NOP CALL DISPLAY CALL delay LJMP MAINDISPLAY: ANL P2,#00H ; CS7279有效 MOV DATA_OUT,#10100100B ; A4H,复位命令CALL SEND MOV DATA_OUT,#11001000B ; 译码方式0,0位显示 CALL SEND MOV DATA_OUT,DBUF CALL SEND MOV DATA_OUT,#11001001B ; 译码方式0,1位显示 CALL SEND MOV DATA_OUT,DBUF+1 CALL SEND MOV DATA_OUT,#11001010B ; 译码方式0,2位显示 CALL SEND
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1