基于单片机多路数据采集系统 下载本文

3.3 A/D转换子程序

先送通道号地址到ADDA、ADDB、ADDC,由ALE信号锁存通道号地址后,让START有效,并启动A/D转换。A/D转换完毕,EOC端发出 一正脉冲,申请转换完毕,打开输出锁存器三态门,8位数据便读入到CPU中。

3. 4 中值滤波子程序

中值滤波是对某一参数连续采样N次,然后把N次采样值从小到大或从大到小排列,再取中间值作为本次采样值。

3.5 LED显示子程序

采用动态扫描法来实现四位数码管的数值显示。测量所得的A/D转换数据放在内存单元中。其中LED第一位显示通道数,第二、三位显示电压值,第四位显示电压符号。

第四章 器件说明

4.1 A/D转换电路说明

多路数据采集系统,通过多路模拟开关控制多路之间的切换,实现单片A/D芯片对多路数据信号的逐个采集。

模数转换的核心是模数转换器(ADC),即A/D芯片。它将输入的模拟信号进行量化,即把连续的模拟信号转换为计算机能处理的离散数字信号。因此,数据采集系统的性能在很大程度上取决于A/D芯片的性能。A/D芯片的主要参考指标是:量化误差、零位偏置误差、增益误差和非线性误差等。

4.2 单片机89C52说明

89C52是INTEL公司MCS-51系列单片机中最基本的产品,它采用INTEL公司可靠的CHMOS工艺技术制造的高性能8位单片机,属于标准的MCS-51的HCMOS产品。它结合了HMOS的高

速和高密度技术及CHMOS的低功耗特征,它继承和扩展了MCS-48单片机的体系结构和指令系统。

89C52内置中央处理单元、128字节内部数据存储器RAM、32个双向输入/输出(I/O)口、2个16位定时/计数器和5个两级中断结构,一个全双工串行通信口,片内时钟振荡电路。

此外,89C52还可工作于低功耗模式,可通过两种软件选择空闲和掉电模式。在空闲模式下冻结CPU而RAM定时器、串行口和中断系统维持其功能。掉电模式下,保存RAM数据,时钟振荡停止,同时停止芯片内其它功能。

89C52是典型的单片机,由CPU系统,外围功能单元和一体化的I/O端口3部分组成。CPU系统:包括CPU,时钟系统和总线控制逻辑3部分。CPU包含运算器和控制器,专门为面向控制对象,嵌入式特点而设计,有突出控制功能的指令系统。时钟系统:包含振荡器,外接谐振元件,可关闭振荡器或CPU时钟。总线控制逻辑:主要用于管理外部并行总线时序及系统的复位控制,外部引脚有RET、ALE、EA和PSEN。外围功能单元包括ROM程序存储器,RAM数据存储器,I/O端口和SFR特殊功能寄存器4部分。89C52基本功能单元包括定时/计数器、中断系统和串行接口3个基本功能单元。

AT89C52引脚图

4.3 ADC0809说明

ADC0809 由一个8 路模拟开关、一个地址锁存与译码器、一个A/D 转换器和一个三态输出锁存器组成。多路开关可选通8 个模拟通道,允许8 路模拟量分时输入,共用A/D 转换器进行转换。三态输出锁器用于锁存A/D 转换完的数字量,当OE 端为高电平时,才可以从三态输出锁存器取走转换完的数据。ADC0809 各脚功能如下:

D7-D0:8 位数字量输出引脚。 IN0-IN7:8 位模拟量输入引脚。 VCC:+5V 工作电压。 GND:地。

REF(+):参考电压正端。 REF(-):参考电压负端。 START:A/D 转换启动信号输入端。 ALE:地址锁存允许信号输入端。 (以上两种信号用于启动A/D 转换). EOC:转换结束信号输出引脚,开始转换时为低电平,当转换结束时为高电平。 OE:输出允许控制端,用以打开三态数据输出锁存器。 CLK:时钟信号输入端(一般为500KHz)。

ADC0809引脚图

4.4 LED显示器

本LED显示器可自动轮流显示8路输入模拟电压的数字值,最小分辨精度为0.1V,最大显示数值为255(输入为5V时),模拟输入最大值为4.9V。

表一 LED数码显示器的字形(段)码 字形码(共阳极) 字形码(共阴极) C0H F9H A4H B0H 99H 92H 82H F8H 80H 90H 88H 83H C6H A1H 86H 8EH FFH 3FH 06H 5BH 4FH 66H 6DH 7DH 07H 7FH 6FH 77H 7CH 39H 5EH 79H 71H 00H 显示字形 0 1 2 3 4 5 6 7 8 9 A B C D E F 熄灭 第五章 软件设计与说明

系统软件主要功能是对整个计算机系统进行调度、管理、监视及服务等。它能够使系统的各种资源得到合理的调度和高效的使用,并能监视系统的运行状态,一旦出现故障就能自动保护现场信息使之不受破坏,并诊断出故障部位。它还可以帮助用户调试程序、查找程序中的错误等。

5.1 主程序的设计

主程序主要是用来各个子程序进行调用和控制来达到采集数据的功能。这里我们设计的主程序主要对按键扫描子程序(KEY)和A/D转换子程序(ADC),以及LED显示子程序进