多路数据采集器设计报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

多路数据采集器设计

1.设计要求

所设计的数据采集器,共有16路信号输入,每路信号都是直流0~20mV信号,每秒钟采集一遍,将其数据传给上位PC计算机。本采集器地址为50H。要求多路模拟开关用4067,A/D转换用ADC0809,运算放大器用OP07,单片机用89C51,通信用RS232接口,通信芯片用MAX232。

与PC机的RS232串口进行通信。

设计采集器的电原理图,用C51语言编制采集器的工作程序。

2.方案设计

按要求,设计数据采集器方案如下所示:

数据采集器采用AT89C51单片机作为微控制器,模拟开关4067的地址A、B、C、D分别与P1.0~P1.3连接,通过控制P1口输出来选择输入信号,将直流信号依次输入ADC0809的模拟信号输入端,ADC0809共有8路输入通道,在使用模拟开关时,仅将模拟开关的输出端连接到ADC0809的1路输入通道即可,本方案中使用0通道。ADC0809的转换结果通过P0口传给单片机,单片机将采集结果通过串行通信RS232接口上传给上位PC机,实现数据的采集。

数据采集器方案示意图

3.电路原理图

a)AT89C51单片机电路

本实验中选取8位单片机AT89C51作为微控制器,需要片外11.0592MHz的振荡器,4K字节EPROM,128字节RAM,与51单片机有很好的兼容性。在本此实验中程序及数据不多,故无需另加外部程序存储器。单片机部分的电路如下所示:

AT89C51单片机电路

b)数据输入部分

数据输入部分由模拟开关4067实现多路信号的切换。CD4067是单16路(单刀16位)模拟开关,各开关由外部输入二进制的地址码A、B、C、D来切换。其中脚10、11、14和13是地址码A(LSB)、B、C、D(MSB)的输入端;脚2~9和16~23是开关的输入/输出端(开关位);脚1是开关的输出/输入公共端(开关刀);脚15为控制端,低电平有效(选通),高电平禁止(开关开路)。

输入脚A、B、C、D分别与单片机P1.0~P1.3相连,改变P1输出即可切换输入通道,控制脚与P2.4相连。输出脚1后接电压放大电路。

c)电压调理放大电路

电压调理电路

由于输入信号均为0~20mV的微弱电压信号,而模数转换器ADC0809的输入量要求为0~5V 直流电压,所以必须后接电压放大电路。放大器选用OP07,将0~20mV电压放大到0~5V,其放大倍数为250倍,一般情况下,放大器的放大倍数最好小于200倍,安全起见,选用两个OP07进行两级放大,前级放大25倍,后级放大10倍,放大电路如上图所示。

d)模数转换部分

ADC0809数模转换电路

模数转换元件选用ADC0809,其主要特性有:

8路8位A/D转换器,即分辨率8位;

具有转换起停控制端;

转换时间为100s;

单个+5V电源供电;

模拟输入电压范围0~+5V,不需零点和满刻度校准;

工作温度范围为-40~85;

低功耗,约15mW。

选择参考电压为+5V,当输入电压为+5V时,转换数据为#FFH,当输入电压为0V时,转换数据为#00H。

ADC0809片内没有时钟,用于51单片机系统时,时钟信号可由51单片机ALE端口经过一个2分频电路获得。一般情况下,ALE信号频率是51单片机时钟频率的1/6。若采用11.0592MHz 的晶振,则ALE的输出频率为1.8432MHz,经2分频后为921.6KHz,这个频率符合ADC0809对时钟频率的要求。

2分频电路

由于多路输入信号切换由模拟开关4067实现,所以ADC0809的8路输入开关实际只使用1路,为方便起见,使用0通道输入,所以电路中将A、B、C脚接地处理,并且将IN1~IN7同样做接地处理。IN0与电压放大输出相连。

转换结果的读取有3种方法:

延时法:

不利用EOC信号,启动A/D转换,等待130us后读取转换结果。

查询法:

将EOC信号接到IO口,检测EOC, 若EOC=0, 则A/D转换没有结束, 继续检测; 当EOC=1 时, A/D 转换已经结束,可读取A/D转换结果。

中断法:

将EOC信号接到INT0口,利用中断程序获取结果。实际应用中,通常采用跳变触发方式。EOC经过一个反向器接到单片机INT0上。启动A/D转换后,单片机可以做其它工作, A/D转换结束时, EOC端产生一个由低到高的正跳变, 经反向器传输到INT0,若此时单片机的CPU处于开中断状态,并且允许INT0中断, 又没有高一级的或同一级的其他中断正在服务,则CPU立即执行中断服务程序, 在中断服务程序中读取A/D转换结果。

本次试验中,采取中断法实现转换结果的读取。

e) 串行通信部分

串行数据通信

单片机串口通信采用RS232C 标准,由于RS232C 标准采用正负电压表示逻辑状态,与TTL 以高低电平表示逻辑状态的规定不同,必须使用电平转换器件进行装换,本方案采用Maxim 公司的MAX232芯片实现接口的电平转换。MAX232的11、12脚分别与单片机P3.0、P3.1脚相连,13、14脚与电脑串口相连接。

串行口工作于工作方式1下,使用定时器1作为波特率发生器,定时器1工作于定时器方式2下,由于系统使用11.0592MHz 晶振,所以取初值为FDH ,得,系统工作的波特率为9600bps 。 4. 软件设计

程序流程如下图所示,详细程序见附录一。

TMOD x SCON x ⎧⎪

⎪定时器模式设置,=020通信方式设置,=050程序流程图

5.仿真实验

采用Proteus7.1可以很方便地进行单片机单路的仿真,本方案中需要用到串口通讯仿真,由两个MAX232器件连接模拟单片机和PC机的通信,如下图所示,左边虚线框中Max232与单片机相连,右边实线框中Max232与PC机相连,模拟上位机。

串口通信模拟电路

测试输入信号由Proteus中电压探针工具提供,如图所示:

各通道相应测试输入电压值如下表所示:

测试输入电压值

串口通信调试时实现方式有两种:

1)通过虚拟串口软件VSPDXP5.0设置两个相关联的串口如COM3和COM4,在Proteus中

增加一个虚拟串口控件COMPIM,通过串口调试软件如串口调试小助手进行串口调试,

其过程如下:

相关文档
最新文档