基于8051和ADC0809CCN的数据采集毕业设计论文_第1页
基于8051和ADC0809CCN的数据采集毕业设计论文_第2页
基于8051和ADC0809CCN的数据采集毕业设计论文_第3页
基于8051和ADC0809CCN的数据采集毕业设计论文_第4页
基于8051和ADC0809CCN的数据采集毕业设计论文_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

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

文档简介

1、基于8051和adc0809ccn的数据采集设计摘 要以adc0809和8051为核心,该系统有三个部分:数据采集,数据处理和显示,终端接收。具体包括控制、显示、a/d转换器、电平转换接口、个人计算机等。设计中用adc0809进行8路数据的采样,利用mcs-51单片机的串行口发送和接收数据。显示部分由8155、75452、7407和led数码显示器构成。硬件设计应用电子设计自动化工具,软件设计采用模块化编程方法。关键字:数据采集,eda,串行口,模块化编程sumarryto adc0809 and 8051 as the core, the system has three parts: da

2、ta acquisition, data processing and display, the terminal receives. including its control, display, a / d converter, power conversion interface, personal computers. design using adc0809 data for 8 samples, using mcs-51 microcontroller serial port to send and receive data. display in part by the led

3、digital display 8155,75452,7407 and composition. application of electronic design automation of hardware design tools, software design is modular programmingkeywords: data collection, eda, serial port, modular programming目 录摘 要2abstract3前 言3第1章 任务分析与方案确定31.1 信号采集分析31.1.1 信号采集31.1.2 a/d转换器的选取31.2 控制与

4、显示方法分析31.2.1 单片机系统分析31.2.2 显示与键盘分析31.3 传输方式分析3第2章 系统硬件设计32.1 信号调理电路32.2 数据采集电路32.2.1 a/d转换的一般步骤32.2.2 adc0809内部功能与引脚介绍32.2.3 adc0809与mcs-51系列单片机的接口方法32.4 控制器、振荡源和复位电路32.5 键盘与显示电路32.6 通信电路3第3章 软件设计33.1 a/d转换33.2 标度变换33.3 数制转换33.4 键盘程序33.5 led显示程序33.6 通信程序33.6.1 上位机程序33.6.2 下位机程序3结论、讨论和建议3致 谢3参考文献3毕业设

5、计小结3附录3前 言随着计算机技术的飞速发展和普及,数据采集系统在多个领域有着广泛的应用。数据采集是工、农业控制系统中至关重要的一环,在医药、化工、食品、等领域的生产过程中,往往需要随时检测各生产环节的温度、湿度、流量及压力等参数。同时,还要对某一检测点任意参数能够进行随机查寻,将其在某一时间段内检测得到的数据经过转换提取出来,以便进行比较,做出决策,调整控制方案,提高产品的合格率,产生良好的经济效益。 随着工、农业的发展,多路数据采集势必将得到越来越多的应用,为适应这一趋势,作这方面的研究就显得十分重要。在科学研究中,运用数据采集系统可获得大量的动态信息,也是获取科学数据和生成知识的重要手段

6、之一。总之,不论在哪个应用领域中,数据采集与处理将直接影响工作效率和所取得的经济效益。 此外,计算机的发展对通信起了巨大的推动作用.计算机和通信紧密结合构成了灵活多样的通信控制系统,也可以构成强有力的信息处理系统,这样对社会的发展产生了深远的影响。数据通信是计算机广泛应用的必然产物。数据采集系统,从严格的意义上来说,应该是用计算机控制的多路数据自动检测或巡回检测,并且能够对数据实行存储、处理、分析计算以及从检测的数据中提取可用的信息,供显示、记录、打印或描绘的系统。 数据采集系统一般由数据输入通道,数据存储与管理,数据处理,数据输出及显示这五个部分组成。输入通道要实现对被测对象的检测,采样和信

7、号转换等工作。数据存储与管理要用存储器把采集到的数据存储起来,建立相应的数据库,并进行管理和调用。数据处理就是从采集到的原始数据中,删除有关干扰噪声,无关信息和必要的信息,提取出反映被测对象特征的重要信息。另外,就是对数据进行统计分析,以便于检索;或者把数据恢复成原来物理量的形式,以可输出的形态在输出设备上输出,例如打印,显示,绘图等。数据输出及显示就是把数据以适当的形式进行输出和显示。由于rs-232在微机通信接口中广泛采用,技术已相当成熟。在近端与远端通信过程中,采用串行rs-232标准,实现pc机与单片机间的数据传输。在本毕业设计中对多路数据采集系统作了基本的研究。本系统主要解决的是怎样

8、进行数据采集以及怎样进行多路的数据采集,并将数据上传至计算机。第1章 任务分析与方案确定根据系统基本要求,将本系统划分为如下几个部分:l 信号调理电路l 8路模拟信号的产生与a/d转换器l 发送端的数据采集与传输控制器l 人机通道的接口电路l 数据传输接口电路数据采集与传输系统一般由信号调理电路,多路开关,采样保持电路,a/d,单片机,电平转换接口,接收端(单片机、pc或其它设备)组成。系统框图如图1-1所示图1-1 一般系统框图1.1 信号采集分析被测电压为05v直流电压,可通过电位器调节产生。1.1.1 信号采集多路数据采集系统多采用共享数据采集通道的结构形式。数据采集方式有顺序控制数据采

9、集和程序控制数据采集。方案一:顺序控制数据采集,顾名思义,它是对各路被采集参数,按时间顺序依次轮流采样。原理如下图1-2所示,系统的性能完全由硬件设备决定。在每次的采集过程中,所采集参数的数目、采样点数、采样速率、采样精度都固定不变。若要改变这些指标,需改变接线或更换设备方能实现。数据采集时,控制多路传输门开启和关闭的信号来自脉冲分配器,在时钟脉冲的推动下,这些控制信号不断循环,使传输门以先后顺序循环启闭。 图1-2 顺序数据采集原理 方案二:程序控制数据采集,由硬件和软件两部分组成。,据不同的采集需要,在程序存储器中,存放若干种信号采集程序,选择相应的采集程序进行采集工作,还可通过编新的程序

10、,以满足不同采样任务的要求。如图1-3所示。程序控制数据采集的采样通道地址可随意选择,控制多路传输门开启的通道地址码由存储器中读出的指令确定。即改变存储器中的指令内容便可改变通道地址。图1-3 程序控制数据采集原理由于顺序控制数据采集方式缺乏通用性和灵活性,所以本设计中选用程序控制数据采集方式。采集多路模拟信号时,一般用多路模拟开关巡回检测的方式,即一种数据采集的方式。利用多路开关(mux)让多个被测对象共用同一个采集通道,这就是多通道数据采集系统的实质。当采集高速信号时,a/d转换器前端还需加采样/保持(s/h)电路。待测量一般不能直接被转换成数字量,通常要进行放大、特性补偿、滤波等环节的预

11、处理。被测信号往往因为幅值较小,而且可能还含有多余的高频分量等原因,不能直接送给a/d转换器,需对其进行必要的处理,即信号调理。如对信号进行放大、衰减、滤波等。通常希望输入到a/d转换器的信号能接近a/d转换器的满量程以保证转换精度,因此在直流电流电源输出端与a/d转换器之间应接入放大器以满足要求。本题要求中的被测量为05v直流信号,由于输出电压比较大,满足a/d转换输入的要求,故可省去放大器,而将电源输出直接连接至a/d转换器输入端。多路数据采集输入通道的结构图1-4所示。图1-4 多路数据采集输入通道结构注:缓慢变化信号和直流信号,采样保持电路可以省略。1.1.2 a/d转换器的选取1.转

12、换时间的选择转换速度是指完成一次a/d转换所需时间的倒数,是一个很重要的指标。a/d转换器型号不同,转换速度差别很大。通常,8位逐次比较式adc的转换时间为100us左右。由于本系统的控制时间允许,可选8位逐次比较式a/d转换器。2.adc位数的选择a/d转换器的位数决定着信号采集的精度和分辨率。要求精度为0.5%。对于该8个通道的输入信号,8位a/d转换器,其精度为输入为05v时,分辨率为a/d转换器的满量程值 adc的二进制位数量化误差为adc0809是ti公司生产的8位逐次逼近式模数转换器,包括一个8位的逼近型的adc部分,并提供一个8通道的模拟多路开关和联合寻址逻辑,为模拟通道的设计提

13、供了很大的方便。用它可直接将8个单端模拟信号输入,分时进行a/d转换,在多点巡回监测、过程控制等领域中使用非常广泛,所以本设计中选用该芯片作为a/d转换电路的核心。1.2 控制与显示方法分析用单片机作为这一控制系统的核心,接受来自adc0809的数据,经处理后通过串口传送,由于系统功能简单,键盘仅由两个开关和一个外部中断端组成,完成采样通道的选择,单片机通过接口芯片与led数码显示器相连,驱动显示器显示相应通道采集到的数据。1.2.1 单片机系统分析1.复位电路 单片机在开机时都需要复位,以便中央处理器cpu以及其他功能部件都处于一个确定的初始状态,并从这个状态开始工作。51的rst引脚是复位

14、信号的输入端。复位电平是高电平有效,持续时间要有24个时钟周期以上。本系统中单片机时钟频率为6mhz则复位脉冲至少应为4us。方案一:上电复位电路图1-5 上电复位上电瞬间,rst端的的电位与vcc相同,随着电容的逐步充电,充电电流减小,rst电位逐渐下降。上电复位所需的最短时间是振荡器建立时间加上二个机器周期,在这段时间里,振荡建立时间不超过10ms。复位电路的典型参数为:c取10uf,r取8.2k,故时间常数=rc=10108.210=82ms以满足要求。图1-6 外部复位方案二.外部复位电路按下开关时,电源通过电阻对外接电容进行充电,使res端为高电平,复位按钮松开后,电容通过下拉电阻放

15、电,逐渐使ret端恢复低电平。方案三:上电外部复位电路图1-7 外部上电复位 典型的上电外部复位电路是既具有上电复位又具有外部复位电路,上电瞬间,c与rx构成充电电路,rst引脚出现正脉冲,只要rst保持足够的高电平,就能使单片机复位。一般取c=22uf,r=200,rx=1k,此时=2210110=22ms当按下按钮,rst出现5=4.2v时,使单片机复位。2.振荡源 在mcs-51内部有一个用于构成振荡器的高增益反相放大器。引脚xtal1(19)、xtal2(18)分别是此放大器的输入端和输出端。方案一:内部方式与作为反馈元件的片外晶体或陶瓷谐振器一起组成一个自激振荡器。方案二:外部方式

16、外部振荡器信号的接法与芯片类型有关。cmos工艺的mcu其xtal1端接外部时钟信号,xtal2端可悬空。hmos工艺的mcu则xtal2端接外部时钟信号,xtal1端须接地。在mcs-51单片机系列芯片中,用8051或8751芯片可以构成最小系统。因为8051和8751是片内有rom/eprom的单片机,用这种芯片构成的单片及最小系统简单、可靠。8051构成的最小系统特点:l 受集成度所限,只能用于小型控制单元。l 有可供用户使用的大量的i/o口线。l 仅有芯片内部的存储器,故存储器的容量有限。l 8051的应用软件要依靠半导体掩膜技术植入,适于在大批量生产的应用系统中使用。1.2.2 显示

17、与键盘分析 对系统发出命令和输出显示测量结果,主要是由键盘和led数码显示器组成。缓慢变化信号和直流信号,要求用数码管适时地进行十进制显示,由于精度要达到0.5%,所以这里用5只led数码显示器来表示该十进制数,用两只七段数码显示器表示通道号。为实现通道的选取,用键盘实现控制功能。1译码方法用单片机驱动led数码管有很多方法,按显示方式分,有静态显示和动态(扫描)显示,按译码方式可分硬件译码和软件译码之分。方案一:硬件译码硬件译码就是显示的段码完全由硬件完成,cpu只要送出标准的bcd码即可,硬件接线有一定标准。方案二:软件译码 软件译码是用软件来完成硬件的功能,接线灵活,显示段码完全由软件来

18、处理,是目前常用的显示驱动方式。2显示方法 在该单片机系统中,使用7段led显示器构成8位显示器,段选线控制显示的字符,位选线控制显示位的亮或暗。方案一:静态显示静态显示,显示驱动电路具有输出锁存功能,单片机将所要显示的数据送出后就不用再管,直到下一次显示数据需要更新时再传送一次数据。编程容易,管理简单,显示亮度高,显示数据稳定,占用很少的cpu时间。但引线多,线路复杂,硬件成本高。方案二:动态显示动态显示需要cpu时刻对显示器件进行数据刷新,显示数据会有闪烁感,占用的cpu时间多。这两种显示方式各有利弊;静态显示虽然数据稳定,占用很少的cpu时间,但每个显示单元都需要单独的显示驱动电路,使用

19、的硬件较多;动态显示虽然有闪烁感,占用的cpu时间多,但使用的硬件少,能节省线路板空间。当显示装置中有多个多段led时,通常采用动态扫描驱动电路,节省开销。3显示接口芯片的选择方案一:8279接口芯片8279是intel公司的通用可编程键盘和显示器接口电路芯片,内部有显示ram。8279可以实现对键盘和显示器的自动扫描,识别闭合键的键号,完成显示器的动态显示。从而大大节省了cpu处理键盘和显示器的时间,提高了cpu的工作效率。另外,8279与单片机的接口简单,显示稳定,工作可靠。但8279所需外围元件多(显示驱动、译码等)、命令字多,调试困难,占用电路板面积大、综合成本高,在中小系统中常常大材

20、小用。方案二:8155接口芯片采用并行口扩展芯片扩展并行口的方法来设计显示系统。用做显示系统的传统的芯片有8155、8255、8279等。这种方式的优点是速度快,显示数据简单。缺点是,占用单片机口线多。如用8155,其内部集成有:256个字节的sram、一个14位二进制减法计数器和3个并行端口pa、pb和pc。但此方案同样需要驱动显示,同时显示扫描还需占用cpu大量时间。但为设计的简单化带来方便,所以采用该芯片作为显示接口芯片,a口为位选线,b口为段选线。4键盘电路的确定 为了在控制系统中完成采集通道的选择,还需要为该系统设置键盘。由于功能要求简单,仅用两个按键即可完成选择功能,降低了系统的硬

21、件开销,软件处理简单。1.3 传输方式分析1.传输方式的选择串行通信有同步和异步两种工作方式。方案一:同步方式要求发送与接受保持严格同步,由于串行传输逐位按顺序进行,为了约定数据是由哪一位开始传输,需设定同步字符。此方式传输速度快,但硬件复杂。方案二:异步方式,规定了数据传输格式,每个数据均以相同的帧格式传送,每帧信息由起始位、数据位、奇偶效验位和停止位组成。帧与帧间用高电平分隔开,但每帧均需附加位,降低了传输效率。异步通信依靠起始位、停止位保持通信同步。对硬件的要求低,实现起来比较简单、灵活,适用于数据的随机发送/接收,一般适用于509600bps的低速串行通信。2.电平转换芯片选择rs-2

22、32规定的电平和一般微处理器的逻辑电平不一致,必须进行电平转换。方案一:采用mcl488和mcl489芯片的转换接口mcl488和mcl489芯片为早期的rs-232至ttl逻辑电平的转换芯片,需要±12v电压,并且功耗较大,不适合用于低功耗的系统。方案二:采用max232芯片的转换接口max232是maxim公司的产品,包含两路驱动器和接收器的rs-232转换芯片。芯片内部有一个电压转换器,可以把输入的+5v电压转换为rs-232接口所需的±10v电压,尤其适用于没有±12v的单电源系统。由于rs-232信号电平与msc-51型单片机信号电平(ttl电平)不一致

23、,因此采用rs-232标准时,必须进行信号的电平转换。rs-232与ttl电平转换芯片各有特点,此处选用maxim公司的max232芯片。小结:经简单的理论分析,本系统数据采集部分核心采用adc0809,单片机系统选用8051构成的最小系统,用led动态显示采集到的数据,数据传输则选用rs232标准,实现单片机与pc机的通信。第2章 系统硬件设计2.1 信号调理电路信号调理的任务 将被测对象的输出信号变换成计算机要求的输入信号。图2-1 信号调理过程对于多通道数据采集系统的输入通道,设置多路选择开关,可降低硬件开销。如图2-1所示。为避免小信号通过模拟开关造成较大的附加误差,在传感器输出信号过

24、小时,每个通道应设前置放大环节(本文可不加以考虑)。2.2 数据采集电路把连续变化量变成离散量的过程称为量化,也可理解为信号的采样。 把以一定时间间隔t逐点采集连续的模拟信号,并保持一个时间t,使被采集的信号变成时间上离散、幅值等于采样时刻该信号瞬时值的一组方波序列信号,即采样信号。2.2.1 a/d转换的一般步骤1.采样-保持为了能不失真的恢复原模拟信号,采样频率应不小于输入模拟信号的频谱中最高频率的两倍,这就是采样定理,即 由于a/d转换需要一定的时间,所以在每次采样结束后,应保持采样电压在一段时间内不变,直到下一次采样的开始。实际中采样-保持是做成一个电路。2.量化与编码模拟信号经采样-

25、保持电路后,得到了连续模拟信号的样值脉冲,他们是连续模拟信号在给定时刻上的瞬时值,并不是数字信号。还要把每个样值脉冲转换成与它幅值成正比的数字量。以上为a/d转换的一般步骤,在本电路中由adc0809芯片完成。2.2.2 adc0809内部功能与引脚介绍分辨率和精度在第一章中已作了相应的计算和分析。adc0809八位逐次逼近式ad转换器是一种单片cmos器件,包括8位模拟转换器、8通道转换开关和与微处理器兼容的控制逻辑。8路转换开关能直接连通8个单端模拟信号中的任何一个。其内部结构如图2-2所示。图2-2 adc0809内部结构1.adc0809主要性能u 逐次比较型u cmos工艺制造u 单

26、电源供电u 无需零点和满刻度调整u 具有三态锁存输出缓冲器,输出与ttl兼容u 易与各种微控制器接口u 具有锁存控制的8路模拟开关u 分辨率:8位u 功耗:15mwu 最大不可调误差小于±1lsb(最低有效位)u 转换时间()128usu 转换精度:u adc0809没有内部时钟,必须由外部提供,其范围为101280khz。典型时钟频率为640khz2.引脚排列及各引脚的功能,引脚排列如图2-3所示。各引脚的功能如下:in0in7:8个通道的模拟量输入端。可输入05v待转换的模拟电压。d0d7:8位转换结果输出端。三态输出,d7是最高位,d0是最低位。a、b、c:通道选择端。当cba

27、=000时,in0输入;当cba=111时,in7输入。图2-3 a/dc0809引脚ale:地址锁存信号输入端。该信号在上升沿处把a、b、c的状态锁存到内部的多路开关的地址锁存器中,从而选通8路模拟信号中的某一路。start:启动转换信号输入端。从start端输入一个正脉冲,其下降沿启动adc0809开始转换。脉冲宽度应不小于100200ns。eoc:转换结束信号输出端。启动a/d转换时它自动变为低电平。oe:输出允许端。clk:时钟输入端。adc0809的典型时钟频率为640khz,转换时间约为100s。ref(-)、ref(+):参考电压输入端。adc0809的参考电压为5v。vcc、g

28、nd:供电电源端。adc0809使用5v单一电源供电。当ale为高电平时,通道地址输入到地址锁存器中,下降沿将地址锁存,并译码。在start上升沿时,所有的内部寄存器清零,在下降沿时,开始进行a/d转换,此期间start应保持低电平。在start下降沿后10us左右,转换结束信号变为低电平,eoc为低电平时,表示正在转换,为高电平时,表示转换结束。oe为低电平时,d0d7为高阻状态,oe为高电平时,允许转换结果输出。2.2.3 adc0809与mcs-51系列单片机的接口方法adc0809与8051单片机的硬件接口有3种形式,分别是查询方式、中断方式和延时等待方式,本题中选用中断接口方式。由于

29、adc0809无片内时钟,时钟信号可由单片机的ale信号经d触发器二分频后获得。ale引脚得脉冲频率是8051时钟频率的1/6。该题目中单片机时钟频率采用6mhz,则ale输出的频率是1mhz,二分频后为500hz,符合adc0809对频率的要求。由于adc0809内部设有地址锁存器,所以通道地址由p0口的低3位直接与adc0809的a、b、c相连。通道基本地址为0000h0007h。其对应关系如表2-1所示。地址码输入通道cba000in0001in1010in2011in3100in4101in5110in6111in7表2-1 0809输入通道地址控制信号:将p2.7作为片选信号,在启动

30、a/d转换时,由单片机的写信号和p2.7控制adc的地址锁存和启动转换。由于ale和start连在一起,因此adc0809在锁存通道地址的同时也启动转换。在读取转换结果时,用单片机的读信号和p2.7引脚经或非门后,产生正脉冲作为oe信号,用一打开三态输出锁存器。其接口电路如图2-4所示。图 2-4 adc0809与mcs-51的接口电路start信号和oe信号的逻辑表达式为图2-5 adc0809时序图当8051通过对0000h0007h(基本地址)中的某个口地址进行一次写操作,即可启动相应通道的ad转换;当转换结束后,adc0809的eoc端向8051发出中断申请信号;8051通过对0000

31、h0007h中的某个口地址进行一次读操作,即可得到转换结果。注:adc0809的基准电压可通过基准电压芯片供给,如max875,可供给5v基准电压。2.4 控制器、振荡源和复位电路 复位即回到初始状态,是单片机经常进入的工作状态。单片机振荡电路的振荡周期和时钟电路的时钟周期决定了cpu的时序。1复位电路图2-6上电外部复位电路 单片机的复位是靠外部电路实现的。无论是hmos还是chmos型,在振荡器正运行的情况下,rst引脚保持二个机器周期以上时间的高电平,系统复位。在rst端出现高电平的第二个周期,执行内部复位,以后每个周期复位一次,直至rst端变低。本文采用上电外部复位电路,如图2-6所示

32、,相关参数为典型值。2.振荡源图2-7 内部振荡器方式内部方式时钟电路如图2-7所示。外接晶体以及电容、构成并联谐振电路,接在放大器的反馈回路中,内部振荡器产生自激振荡,一般晶振可在212mhz之间任选。对外接电容值虽然没有严格的要求,但电容的大小多少会影响振荡频率的高低、振荡器的稳定性、起振的快速性和温度的稳定性。外接晶体时,和通常选30pf左右;外接陶瓷谐振器时,和的典型值为47pf。2.5 键盘与显示电路1.键盘键盘由一组常开按键开关组成。键盘系统的主要工作包括及时发现有键闭合,并作相应的处理。图2-8 键盘硬件逻辑本系统中采用中断方式的开关代替键盘,完成采集通道的选择。硬件逻辑如图2-

33、8所示。2.显示显示部分为8个共阴极的七段led显示器,8个七段led的adp字段的引脚分别由8个oc门同相驱动器驱动。oc门驱动器用7407,当7407输出低电平时,没有电流流过led,当7407输出为开路状态时,电流经100限流电阻流入led显示器,每个七段led的公共端都接一个反相驱动器,反相驱动器使用75452,当某一字段需要亮时,该led公共端的反相驱动器必须是低电平输出,并且这一字段的同相驱动器必须是高电平输出。单片机通过8155接口芯片的a口位选,经b口确定那些字段led发光。led发光时,驱动电流计算如下,每一字段脉冲电流led正向压降晶体管的饱和压降公共端最大电流原理图如图2

34、-9所示图2-9 显示电路原理图 2.6 通信电路51单片机有一个全双工的串行口,所以单片机和pc之间可以方便地进行串口通讯。进行串行通信时要满足一定的条件,如pc的串口是rs232电平的,而单片机的串口是ttl电平的,两者之间必须有一个电平转换电路,这里用专用芯片max232进行转换,用专用芯片更简单可靠。max232如图2-10所示。它包含两路接收器和驱动器,内部有一个电源电压变换器,可以把输入的+5v电压变换位rs-232输出电平所需的+10v电压。所以,用该芯片接口的串行通信只需单一的+5v电源就可以了。其应用性更强。图2-10(b)中上半部电容、及,是电源变换部分。实际应用中,器件对

35、电源噪声很敏感。因此,对地需要加去耦电容,其值为1.0uf。电容、取同样数值的电解电容,以提高抗干扰能力。(a)(b)图2-10 max232引脚图和电容典型参数图2-10(b)下半部分为发送和接收部分,可直接接ttl/cmos电平的mcs-51型单片机的串行发送端txd;,可直接接ttl/cmos电平的mcs-51型单片机的串行接受端rxd;,可直接接pc机的rs-232串口接受端rxd;,可直接接pc机的rs-232串口发送端txd。硬件原理图如图2-11所示。图2-11 通信接口电路串口通信的硬件连接采用三线制连接串口,就是说和pc的9针串口只连接其中的3根线:第5脚的gnd、第2脚的r

36、xd、第3脚的txd。这是最简单的连接方法,但是对本题来说已经足够了,max232的第11脚和单片机的11号引脚连接,第12脚和单片机的10脚连接,第15脚和单片机的20脚连接。max232的第14脚和pc机串口的2号引脚连接,第13脚和pc机串口的3号引脚连接,第15脚和pc机串口的5号引脚连接。第3章 软件设计 整个系统软件设计分为两个部分,作为主控的pc端的软件设计及作为数据采集器的单片机终端节点的软件设计。系统采用模块化编程,将各部分功能分别实现,主要的功能子程序有:数据采集、标度变换、数制转换、数值显示、发送、接收和部分中断子程序。主程序流程图如图3-1所示。开始系统初始化调用数制转

37、换子程序调用数据采集子程序取相应通道数据调用标度变换子程序调用数据显示子程序调用数据发送子程序图3-1 主程序流程图3.1 a/d转换 中断方式使用eoc信号作为向8051的中断申请。在主程序中,向adc发出首次启动转换信号后,并计数管理转换通道数。当检测到eoc的请求后,转去执行中断服务程序,读取转换结果,并启动下一次转换,后继续执行。图3-2为a/d转换程序流程图。yn开始定义a/d转换缓冲区首地址开中断置通道数置dptr启动转换等待中断各通道采完?中断处理返回关中断 图3-2 数据采集程序流程图以下是8路数据采集程序:adsub:(略)开始取转换量存入a/d转换数据缓冲区通道号+1缓存单

38、元地址+1通道数-1启动下次转换返回图3-3 数据采集中断程序流程图adint:(略)3.2 标度变换 该单片机系统中,被测量经过a/d转换,均统一为0255二进制码,因此要把a/d转换的数码x变换成被测量的实际数值。unex:(略)开始定义标度变换缓冲区r0指向a./d转换缓冲区标度变换变换完毕?返回ny图3-4 标度变换程序流程图3.3 数制转换由于标度变换后得到两个字节的实际数值,不能直接送显示端显示,须经过适当的处理(此处将其转换为5位非压缩bcd码),才能送显示端输出显示。开始置bcd码个数置bcd码存储单元的首地址取数至r4r5通道号左移1位置取数地址指针r0的初值置通道号存储单元

39、置除数存入显示缓冲区显示缓冲区地址+1调用ndiv子程序bcd转换完毕?返回yn图3-5 双字节二进制整数转换成bcd码程序流程图ndiv(r2r3)(r6r7)?16b1f0(r2r3)-(r6r7)ar1(ar1)r2r3(执行减法)(r5)+1r5(上商1)0cr2 r3 r4 r5 c 左环移1位cf0f0=1?c=1?ynyynn(b)-1b=0?返回0f0ync=1?图3-6 无符号双字节数除法程序框图disram:(略)3.4 键盘程序键盘部分软件主要功能是实现对通道号指示缓冲区的数值进行增或减,从而控制通道的选择。开始 psw,acc压栈保护按键2中断(通道减)按键1中断(通道

40、加)psw,acc出栈p1.0=1?p1.1=1?返回yynnp1.1=1? 图3-7键盘中断程序流程图keyint:(略)3.5 led显示程序开始返回指向a口取位选码指定显示位指向b口取显示字符查七段码段选码b口送出调用1ms延时子程准备显示下一位位选yn8位显示完毕?图3-8 led显示程序流程图将内部ram中20h28h单元中的8个分离bcd码,译码后从左至右依次显示出来,编制的程序如下:disp:(略)(略)3.6 通信程序3.6.1 上位机程序1.程序初始化 主要完成串口的选择、波特率及帧结构设置、打开串口以及发送和接收触发的时间控制等。'初始化代码private sub

41、form_load()mscomm.commport=2设置串口2mscomm.settings="2400,n,8,1"波特率2400,无校验,8位数据,一位停止位mscomm.inputlen=0读取接受缓冲区的所有字符mscomm.inbuffersize=1024设置接受缓冲区为1024字节mscomm.outbuffersize=512设置发送缓冲区为512字节mscomm.portopen=true打开串口mscomm.sthreshold=0不触发发送事件mscomm.rthreshold=1每一个字符到接收缓冲区都触发接收事件mscomm.inbufferc

42、ount=0清除发送缓冲区数据mscomm. outbuffercount=0清除接收缓冲区数据text_send.text=“”清空发送文本框text_recv.text=“”清空接收文本框end sub2.发送数据private sub button_send_click()dim x as stringif text_send.text=“”then发送数据不能为空x=msgbox(“发送数据不能为空”,16)exit subend ifif not mscomm.portopen then保证串口打开mscomm.portopen=trueend ifmscomm.output=tex

43、t_send.tex+chr$(13)发送数据for i=1 to 20000000延时nextend sub3.接收数据private sub mscomm_oncomm.()slect case mscomm.commevent检验串口事件错误处理case comeventoverrun数据丢失text_send.text=“”清空发送缓冲区text_recv.text=“”清接收缓冲区text_send.setfous=“”exit subcase comeventrxover接收缓冲区溢出text_send.text=“”清空发送缓冲区text_recv.text=“”清空接收缓冲区t

44、ext_send.setfous=“”exit subcase comeventover发送缓冲区已满text_send.text=“”清空发送缓冲区text_recv.text=“”清空接收缓冲区text_send.setfous=“”exit sub事件处理case comevreceive接收缓冲区内有数据dim str as stringstr= mscomm.input从接收队列中读入字符串text_recv.text=text_recv.text+str读出字符串送显end selectend sub4.清空文本框private sub button_recv_c_click()t

45、ext_recv.text=“”清空接收文本框text_send_setfocusend sub清空发送文本框private sub button_send_c_click()text_send.text=“”清空发送文本框text_send_setfocusend sub上位机实现通信效果的界面如图3-9所示。3.6.2 下位机程序main:movth1,#0f3h图3-9 vb接收界面movtl1,#0f3hmovtmod,#20hy开始禁止串口中断发通道号清中断标志位发送数据清中断标志位发完?发完?全部发完?返回nnyyn发完?发完?清中断标志位全部发完?图3-10数据发送子程序setb

46、esclret1movscon,#50h1.发送程序sendsub:(略)2.接收程序开始返回压栈保护接收数据数据送缓冲区清中断标志位出栈现场恢复数据正确?ny图3-11数据接收子程序数据正确?数据送缓冲区rec:(略)结论、讨论和建议数据采集技术可应用于不同的工农业现场,是一项非常实用的技术。通过对数据采集和传输的初步研究,以8051、adc0809、pc机和一些相关接口建立起这样一个基于单片机的数据采集和传输系统的硬件平台,配合相应的软件实现对8路模拟量的采集与传输。由于时间,水平有限本论文还有许多部分未能详细分析,在此仅作简单了解和认识。信号采集过程中,被测量一般由传感器供给,常为微弱信

47、号,需要对其进行适当的调整。由于此处输入信号满足a/d转换器的输入要求,所以本文并为详细讨论。但在实际工程设计中必不可少。信号调理的任务就是将被测对象的输出信号变换成计算机要求的输入信号。信号调理包括:阻抗匹配、放大电路、隔离电路、滤波等。a.阻抗匹配放大电路与传感器之间往往存在阻抗不匹配的现象,信号要进入a/d转换器也存在阻抗匹配问题,阻抗不匹配会使信号在传输过程中严重畸变,导致严重检测误差,调理过程中必须十分注意阻抗匹配问题,一般阻抗匹配可以由运放组成的跟随器完成。b.信号放大电路信号放大电路是信号调理电路的核心,一般传感器输出的物理信号量幅值很小,需要通过放大调理电路来增加分辨率和敏感性,将输入信号放大

温馨提示

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

评论

0/150

提交评论