通道数据采集器(课程设计)_第1页
通道数据采集器(课程设计)_第2页
通道数据采集器(课程设计)_第3页
通道数据采集器(课程设计)_第4页
通道数据采集器(课程设计)_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、精选优质文档-倾情为你奉上摘要:本次课程设计采用的是单片机AT89C51和模数转换芯片ADC0808的温度采集系统。用电位器模拟输入电压,经过AT89C51控制ADC0808将输入模拟电压转换成数字信号,再按给定的公式将电压值转换成温度值,并通过显示模块4位显示数码管显示出来。本论文主要描述了硬件设计部分和软件设计部分,硬件部分更是详细分析了本模拟采集器的各个部分的电路原理,以及各个模块之间的线路连接。并列出了所有的元器件,以及实现数据采集功能的相应程序。该设计出了一个简单实用的数据采集器,具有成本低,可靠性高,扩展功能强等优点。关键词:AT89C51 ADC0808 数据采集目录1. 概述.

2、1 1.设计数据采集器的意义.1 2.数据采集器的主要功能.12. 硬件电路设计及描述.1 1.方案选择及设计思想.2 2.设计方案的框图.3 3.工作原理.3 4.电路中主要芯片的引脚对应的功能.3 4.1主控芯片AT89C51.3 5.原理图及连接关系.35.1数据输入模块.35.2模数转换模块.45.3主控电路.45.4显示模块.6 6.元件清单.73. 软件设计流程.7 1.系统模块层次图.7 2.程序流程图.7 3.程序源代码.84. 测试.115. 总结.116. 参考文献.111. 概述1. 设计数据采集器的意义 数据采集器是一种具有现场实时数据采集、处理功能的自动化设备。具备实

3、时采集、自动存储、实时显示、即时反馈、自动处理、自动传输功能。为现场数据的真实性、有效性、实时性、可用性提供了保证。 数据采集器在各个领域中都有广泛的运用,以后有可能接触到这些设备,有必要深入地分析其工作原理、电路原理,同时设计一个简单、实用的数据采集器。完成这个课程设计也是让我们在学习了模拟电路、数字电路、微机原理、单片机等相关课程理论知识有一个融会贯通的过程。加深对理论知识的理解,以及学会理论知识实际应用的处理方法。为设计一个电子系统吸取经验,为今后的自动化(电气工程)综合设计和毕业设计打下坚固的基础。 同时也是为了培养我们的动手能力,我们在即将毕业的前期积累宝贵的实践经验。为以后工作培养

4、良好的工作态度。以分组的形式,更是让的我们深入理解了团队合作的重要性。3 数据采集器的主要功能 我们的数据采集器采用的主要元件是AT89C51和ADC0808模数转换芯片。其主要功能是模拟采集信号,并对信号进行处理,最终显示出来采集结果。本次设计的要求是采集温度的信号。通过对电压信号的采集,按公式计算出对应的温度。 首先我们的模拟信号采用电位器产生,供给ADC0808,ADC0808有8路数据输入,也就是8路模拟电压信号。在AT89C51的控制下,实现按键转换要求通道的电压值。温度值 T(C)与电压 U(V)对应关系:T=15.4V。通过AT89C51的计算输出结果,显示在4位共阳极数码管上。

5、2. 硬件电路设计及描述1. 方案选择及设计思想 在查阅资料的时候,我们重点查阅了两个方案的资料。 方案一:在AT89C51的控制下,指定某通道将电压信号发生器产生的输入电压信号输入ADC0808转换器,转换成数值信号输入到AT89C51进行数据处理,然后输出并行信号,通过MAX232将并行信号转换成串行信号,再经过串口RS232输入到上位计算机。通过计算机显示出采集模拟稳定信号的数值。 方案二:在AT89C51的控制下,指定某通道将电位器产生的输入电压信号输入ADC0808转换器,转换成数值信号后输入AT89C51进行数据处理,然后输出并行信号。使用四位数码显示管来做独立的显示设备将输出信号

6、显示出来。两套方案的比较,在模拟信号部分,两套方案均产生0-5V的可调电压,方案一采用的是电压信号发生器,方案采用电位器产生可变电压(0-5v),我个人认为和小组成员都觉得用电位器较电压信号更加简单,具有很强的可操作性,可在后期工作中将电位器集成在电路板上,使模拟信号有良好的可移动性。在控制器和模数转换芯片上,两套方案均采用相同的设计思想。两套方案最大的区别在于显示电路上,方案一采用计算机作为上位机,将单片机输出的并行好通过通信芯片MAX232转换成串行信号后,显示在计算机上。方案二则采用独立的显示设备四位数码显示管。可以采用并行动态扫描的方式接入单片机直接读取并行信号。方案一中的需要设计单独

7、的通信模块,使得电路较方案二更加复杂,而且需要在计算机上编写相应的程序,工作量之大。不符合我们简单实用的设计思想。综上所述,我们选择了方案二。在本次课程设计中,根据设计要求,我们组的出发点是设计简单实用的数据采集器,将各个部分模块化,以此为设计思想,尽可能的简化电路设计,使其具有很强的可操作性和可移动性。方案二电路简单实用,成本低,完全符合我们的设计初衷。因此我们选择了方案二。2.设计方案的框图完成信号显示电路主控电路AT89C51采集电路AD0809 按键部分启动信号模拟信号3.工作原理 模拟信号有电位器产生0-5V的可调电压。上电以后,AT89C51输出启动信号给ADC0808,ADC08

8、08开始转换第一通道的模拟信号。转换完成以后发出完成信号给AT89C51,转换后的并行数据由P1口输入单片机,单片机接收数据后由程序按温度值 T(C)与电压 U(V)对应关系:T=15.4V完成换算,最后由P0口输出显示数据,由四位数码显示管显示。ADC0808内部自带8路数据选择器,由单片机控制片选信号,完成按键选择信号的功能。4.电路中主要芯片的引脚对应的功能4.1主控芯片AT89C51 AT89C51与AT89S52相仿,具有如下特点:40个引脚,8k Bytes Flash片内程序存储器,256 bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优

9、先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。 此外,AT89S52设计和配置了振荡频率可为0Hz并可通过软件设置省电模式。空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式,以适应不同产品的需求。 VCC: 供电电压。GND:接地。PO口:PO口为一个8位漏极开路双向I/O口,每脚可吸收8TTL门流。当PI口的管脚第一次写入1时,被定义为高祖输入。PO能够用于外部程

10、序数据存储器,他可以被定义为数据/地址的第八位。在FIASH编程时,PO作为原码输入口,当FIASH进行校验时,PO输出原码,此时PO外部必须被拉高。 P1口:P1口是一个内部提供上拉电阻的八位双向I/O口,P1口缓冲器能接受输出4TTL门电流。P1口管教写入1时,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接受。 P2口:P2口为一个内部上拉电阻的8为双向I/O口,P2口缓冲器可接受,输出4个TTL门电流,当P2口被写1时,其管脚内部上拉电阻被拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉

11、低,并输出电流,这是由于内部上拉的缘故,P2口作为外部程序存储器或16位地址外部存储器进行存取时,P2口输出地址的高八位。在给出地址1时,他利用内部上拉优势,当对外部8位存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接受高八位地址信号和控制信号。 P3口:P3口管脚时八个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入1后,他们被内部上拉为高电平,并用做输入,作为输入由于外部下拉位低电平,P3口将输出电流这是由于上拉的缘故。P3口也可作为AT89S52的一些特殊功能口,P3口同时为闪烁编程和编程校验接受一些控制信号。 RST:复位输入。

12、当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。 ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡频率的1/6.因此它可用作对外部输出地脉冲或用于定时目的。然而要注意的是:每当用做外部数据存储器时,将跳一个ALE脉冲。而想禁止ALE脉冲的输出可在SFR8EH地址上置0.此时ALE只有执行MOVX,MOVC指令是ALE才起作用。另外该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。 PSEN:外部程序存储器的选通信号,再由外部程

13、序存储器取值期间,每个机器周期两次/PSEN有效。但在访问外部存储器时,这两次有效地/PSEN信号将不出现。EA/VPP:当EA低电平时,则在此期间外部存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA保持高电平时,此间内部程序存储器,在FLASH编程器件,此引脚也用于施加12v编程电源(VPP)。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器输出。5.原理图及连接关系 5.1数据输入模块 本次采集器设计的输入的模拟信号比较简单,采用滑动变阻器,外接+5V电压作为输入模拟信号,标示为RV1分

14、别接入模数转换芯片ADC0808的IN0-IN7(26,27,28,1,2,3,4,5号管脚)。完全符合输入模拟信号0-5V的调节范围,有效可靠的模拟电压信号。 5.2模数转换模块模拟信号通过输入端IN0IN7:8路模拟量输入端。ADDA,ADDB,ADDC三个是数据选择控制端输入片选信号与P3.1,P3.2,P3.3连在一起,由A,B,C和IN0-IN7构成3-8数据器,通过AT89C51中的按键程序控制片选信号。START是 AD转换启动脉冲输入端,输入一个正脉冲(至少100ns宽)使其启动(脉冲上升沿使0808复位,下降沿启动A/D转换)。ALE是地址锁存允许信号,输入,高电平有效。将A

15、LE和START连在一起与P3.4相连,在A/D转换完成后正脉冲的处于高电平,即可控制地址锁存器。该脉冲依靠编写的单片机中断程序模拟一个正脉冲控制。OE端口是数据输出允许信号,由单片机输入高电平控制。当AD转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。OUT1-OUT8是A/D转换的输出数字端口,与P1口相连。连接方式是OUT1-OUT2和P1.7-P1.0。12和16号管脚是接基准电压分别接VCC和GND。另外10号端口是时钟频率大小不得超过640KHZ。本次设计中我们采用终端输出脉冲来模拟这个时钟脉冲,但是效果不好,所以采用外接500KHZ的信号。5.3 主控电路 这是单

16、片机部分的复位电路和时钟脉冲电路。复位电路采用电平复位的方式,晶振的频率为11.0592MHZ。连接方式如图分别连到单片机的19,18,9好脚。这是AT89C51单片机主控部分的接法,其中P3.1到P3.7与A/D转换芯片相连,做控制口。在A/D部分已经详细介绍了连法。P2.0-P2.3是四位数码显示管的控制端。P2.5和P2.6是按键的控制端。P0.0-P0.7是显示的数据输出端与四位数码管的A-G相连。 这个是简单的按键部分,P2.4按键选通转换那一路,执行的方式是按一下显示下一路,按0-7路的方式循环。5.4显示模块温度显示部分,我们使用的是四位数码管(共阳极),其中标示的是P0.0-P

17、0.7和A-DP的连接方式,是数据输出端。P2.0-P2.3与1-4相连,做控制端口,控制那一位显示。RP1是排阻,阻值单个是1K。因为PO口是用来做数据端的,必须串上拉电阻。通道标号显示部分,通过4511与P3.1-P3.3连接译码,驱动数码管(共阴极)显示通道标号。6.元件清单 本次课程设计所用元件清单如下:元器件名称数量(个)ADC08081AT89C51145111单个数码显示管174HC24511K排阻11K滑动变阻器810uF电容133P电容2按键开关2510电阻110K电阻112M晶振14位一体数码显示管1三软件设计流程 1.系统模块层次图按键模块显示模块主控制器A/D模块模拟信

18、号2. 程序流程图 开始 If(K!)调用数据处理子程序 初始化 开始A/D转换调用显示子程序 否 地址+ 是地址小于8 结束3 程序源代码#include<reg51.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned int/#define input P1/#define TT P0sbit START=P34;sbit CLK=P35;sbit OE=P36;sbit EOC=P37;sbit E=P30;sbit AA=P31;sbit BB=P32;sbit CC=P33

19、;sbit K1=P24;sbit P07=P07;uchar t1=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;uchar a,b;/void delay1(); void display(uint temp1);/*延时1 */void delay1(void) for(a=248;a>0;a-); for(b=248;b>0;b-);/*延时2*/void delay2() int i; for(i=5000;i>0;i-);/*A/D转换程序*/uchar AD()uchar dat;if(!EOC) START

20、=1; START=0; while(!EOC); START=1; START=0; dat=input; return dat;/*加地址,选择模拟通道*/void get_add(uchar add) CC=add/4; BB=add%4/2; AA=add%2; delay2();/*动态扫描程序*/void display(uint temp1) uint aa,bb,cc,dd; aa=temp1%10; temp1/=10; bb=temp1%10; temp1/=10; cc=temp1%10; dd=temp1/10; P2=0xf1; P0=t1dd; delay1();

21、P2=0xf2; P0=t1cc; delay1(); P2=0xf4; P0=t1bb&0X7F; delay1(); P2=0xf8; P0=t1aa; delay1();/*电压显示转温度显示函数*/void c_u(int aa) aa=aa*15.4*5*10/255; display(aa);/*主程序*/void main(void) uchar rr,tt; TMOD=0x02; TR0=1; ET0=1; IT0=1; EX0=1; EA=1; tt=0; while(1) get_add(tt); AD(); rr=input; c_u(rr); if(!K1) w

22、hile(!K1); tt+;tt=tt%8; /*中断时钟脉冲*/void timer() interrupt 1 CLK=CLK;4. 测试 在仿真成功以后,我们开始进行对电路板开始布线,并检查元器件时候有损坏。完成了检查工作之后,便开始焊接元件。在电路焊接完成后,在没有加电的情况下对电路进行测试,对照电路原理图检查电路中是否有虚焊和漏焊。在完成了上述基本的检查之后,给电路上电,对各个部分的电路进行了检查。1 模拟信号的测试 模拟信号采用的是8个电位器,电源接0-5V,输出的电压经过电压表的测试与设计要求中的相符合。当电位器值满时,理论电压为5V,用电压表测出值为4.98V。与所要求的值误差不大。2 单片机电路测试 在接上电源以后,首先对整个电路的核心部位AT89C51进行了测试,他的稳定是至关重要的,因为他控制着整个电路板的运行。AT89C51的电压输入点测试电压为3.44V,说明其驱动的电压是正常的。3 数据采集电路的测试 给系统接上电源以后,对本次设计的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论