完整版多路数据采集系统的设计毕业设计Word文档下载推荐.docx
《完整版多路数据采集系统的设计毕业设计Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《完整版多路数据采集系统的设计毕业设计Word文档下载推荐.docx(37页珍藏版)》请在冰豆网上搜索。
![完整版多路数据采集系统的设计毕业设计Word文档下载推荐.docx](https://file1.bdocx.com/fileroot1/2023-1/27/8027c6fa-317f-4d12-9c2b-5f616bc94a9c/8027c6fa-317f-4d12-9c2b-5f616bc94a9c1.gif)
由于RS-232在微机通信接口中广泛采用,技术已相当成熟。
在近端与远端通信过程中,采用串行RS-232标准,实现PC机与单片机间的数据传输。
在本毕业设计中对多路数据采集系统作了初步的研究。
本系统主要解决的是怎样进行数据采集以及怎样进行多路的数据采集,并将数据上传至计算机[2]。
1.2设计思路
多路数据采集系统采用ADC0809模数转换器作为数据采集单元和AT89C51单片机来对它们进行控制,不仅具有控制方便、简单和灵活性大等优点,而且可以大幅度提高采集数据的灵敏度及指标。
通过MAX232电平转换芯片实现单片机与PC机的异步串行通信,设计中的HD7279实现了键盘控制与LED显示显示功能。
本文设计了一种以AT89C51和ADC0809及RS232为核心的多路数据采集系统。
多路数据采集系统就是通过键盘控制选择通路,将采集到的电压模拟两转换成数字量实时的送到单片机里处理从而显示出采集电压和地址值,最终控制执行单片机与PC机的异步串行通信。
连接好硬件后,给ADC0809的三条输入通路通入直流电压。
4-F键为功能键,4-E键为复位键,F键为确认键。
1-3键为通道选择键,分别采集三个通道的数据值并实时显示出数值和地址值。
结合单片机RS232串口功能还实现了与PC机的异步串行通信功能。
1.2.1电路的基本构成
多路数据采集系统硬件电路由AT89C51单片机最小系统、ADC0809模数转换电路、HD7279键盘控制与LED显示电路、RS232串行通信电路四部分组成。
该电路采用AT89C51单片机最小化应用设计,ADC0809接成的是总线方式电路,P0口是作为系统扩展的地址总线口,其端口总线地址为7FFFH。
图1-1系统硬件方框图1.2.2各硬件模块的功能
1.单片机:
把ADC0809采集过来的数据进行处理实现实时的显示并能实现与PC机的串行通信
2.AD采集:
将采集到得模拟电压值转换成数字量
3.键盘控制:
选择数据采集的通路及控制功能
4.地址数据显示:
显示通路地址值、电压值
5.PC机通信:
结合单片机RS232串口功能,实现八路信号的采集、存储、显示功能
1.3系统设计方案
1.3.1具体设计要求
1.设计89C51最小开发系统板作为本设计的主控模块;
2.实现8路的数据采集并实时显示的功能;
3.能够实现用键盘控制采集通道的选择;
4.实现PC机与数据采集系统通过串口进行通信,并实时显示测量数据。
1.3.2方案论证
针对上述设计要求,有两种方案可供考虑:
方案一:
采用键盘显示芯片HD7279A,在一块印制板上能够同时实现按键和显示功能。
独立的单片机最小系统,采集模块采用ADC0809及外围电路构成。
串行通信采用RS-232标准,芯片MAX232实现了接口转换[3]。
方案二:
采用单片机最小系统、4*4矩阵键盘电路、单独显示电路、采集模块采用ADC0832及外围电路构成。
串行通信采用RS-458标准,芯片MAX487实现了接口转换。
经过以上两种方案的比较,方案一具备了以下优点:
(1)硬件资源使用方便,便于调试,减少了出错的概率;
(2)程序比较简单,模块化,方便检查;
(3)RS-232是常用的的一种物理接口标准且适合短距离(大概十几米)。
(4)ADC0809是八通道输入的模数转换器件,转换精度和速度在本设计中是完全达到要求的。
综上所述,本设计中采用方案一来实现其功能。
第2章系统硬件设计
2.1硬件电路概述
本系统硬件设计电路包括:
键盘显示芯片HD7279A,在一块印制板上能够同时实现按键和显示功能;
独立的单片机最小系统、采集模块采用ADC0809及外围电路构成、串行通信采用RS-232标准、芯片MAX232实现了接口转换。
2.2各单元模块功能介绍及电路设计
2.2.1单片机最小系统设计
图2-1单片机最小系统电路图
单片机最小系统的设计是本设计的核心,通过其外围电路实现了数据的处理及各种控制功能。
它要正常工作必须具备3个条件:
首先供电要正常,其次是复位电路和晶振电路要工作正常[4]。
1、电源与接地端
AT89C51单片机的40脚为电源端,接+5V的电源;
20脚为接地端。
由于只需访问AT89C51的内部程序存储器,故EA接+5V。
2、复位电路
复位电路使单片机初始化操作,作用是使CPU和系统中其它部件在通电的瞬间都处于一个确定的初始状态,并从这个状态开始工作。
本系统采用人工复位电路,在RESET端接一个按钮与电容并联至Vcc(+5V)和一个电阻至接地端。
这样按一下开关就会在RESET端出现一段时间的高电平,至使器件复位。
3、晶振就电路
图中Y1为12MHz晶振,C1、C2为20pf瓷片电容。
晶振主要是决定所产生的时钟频率,电容C1、C2的作用有两个:
其一是使振荡器起振,其二是对振荡器的频率f起微调作用。
2.2.2键盘显示电路设计
图2-2HD7279键盘、显示电路图
按键是控制数据采集通道的选择,数码管能显示出采集通道和数据值。
HD7279的4个使能端、clk、dat、接单片机的4个口,用来控制芯片接受及发送键盘值。
Dig0—dig7为位选端,数码管的哪一位点亮需由写控制字来判断。
Dip、a—g为字型码端,它与数码管的字型码端相连[5]。
2.2.3ADC0809模数转换电路设计
图2-3ADC0809模数转换电路图
图所示为ADC0809与单片机80C51的一种接口电路。
采用线选法规定其端口地址,用单片机的P2.7引脚作为片选信号,因此端口地址为7FFFH.。
片选信号和WR信号一起经“或非”门产生ADC0809的启动信号START和地址所存信号ALE,片选信号和RD信号一起经“或非”门产生ADC0809的输出允许信号OE。
OE=1时选通三态门使输出所存器的转换结果送入数据总线。
ADC0809的EOC信号经反相后接到80C51的INT1引脚用于产生转换完成的中断请求信号。
ADC0809芯片的3位模拟量输入地址码输入端A、B、C分别用矩阵键盘控制[5]。
2.2.4RS-232串口通信电路设计
图2-4RS-232串口通信电路设计
单片机与PC机之间不能直接进行通信,收、发端的数据信号是相对于信号地,由于RS-232信号在正负电平之间摆动,在发送数据时,发送端驱动器输出正电平在+5~+15V,负电平在-5~-15V电平。
发送电平与接收电平的差为2V至3V左右,MAX232实现了其串口电平转换功能[7]。
2.3电路元器件说明与选用
2.3.1AT89C51单片机
AT89C51单片机结构框图如下图2-5所示:
图2-5MCS-51单片机结构框图
AT89C51是一种低功耗、高性能的片内含有4KB快闪可编程可擦除只读存储器(FPEROM-FlashProgrammableandEraseableReadOnlyMemory)的8位CMOS微控制器,使用高密度、非易失存储技术制造,并且与80C51引脚和指令系统完全兼容[8]。
单片机内部包括有中央处理器CPU、时钟电路和中断控制电路、程序存储器、数据存储器、并行口、定时器以及特殊IO部件,CPU通过内部部件总线和其余的模块相连。
中央处理器(CPU)是单片机的核心部件,它由运算器、控制器、中断部件、时钟和定时控制逻辑等组成。
CPU控制数据的处理和整个系统的各种操作。
不同系列的单片机具有不同功能特性的CPU和指令系统,在运算速度、中断、实时控制功能等方面差别很大,CPU及其指令系统的功能决定了单片机主要的功能技术指标。
从编程的角度看,AT89C51的CPU对用户开放的寄存器主要有以下几个:
累加器ACC、寄存器B、程序计数器PC、数据指针DPTR(由DPH和DPL两个8位寄存器组成),程序状态寄存器PSW、堆栈指针SP。
2.3.2模数转换芯片ADC0809
图2-6ADC0809内部结构图、原理图
1.基本结构、接口技术
ADC0809是CMOS单片型逐次逼近式AD转换器,它由8路模拟开关、地址锁存与译码器、比较器、8位开关树型DA转换器、逐次逼近寄存器、三态输出锁存器等其它一些电路组成。
因此,ADC0809可处理8路模拟量输入,且有三态输出能力,既可与各种微处理器相连,也可单独工作。
输入输出与TTL兼容。
ADC的功能是将输入模拟量转换位与其成比例的数字量,它是智能化测量控制仪表的一种重要组成器件。
按其工作原理,有比较式、积分式以及电荷平衡(电压—频率转换)式等。
在实际使用中,应根据具体情况选用合适的ADC芯片。
不同的芯片具有不同的联结方式,其中最主要的输入、以及控制信号的联结方式。
从输入端来看,有单端输入的,也有差动输入的。
差动输入有利于克服共模干扰。
ADC芯片的启动转换信号有电平和脉冲两种型式。
设计时应特别注意,对要求用电平启动转换的芯片,如果在转换过程中撤去电平信号,芯片将停止转换而得到错误的结果[9]。
ADC转换完成后,将发出结束信号,以示主机可以从转换器读取数据。
结束信号也用来向CPU发出申请。
CPU响应中断后,在中断服务子程序中读取数据。
也可用延时等待和查询转换是否结束的方法来读取数据。
2.主要特性
ADC0809对输入模拟量要求:
信号单极性,电压范围是0-5V,若信号太小,必须进行放大;
输入的模拟量在转换过程中应该保持不变,如若模拟量变化太快,则需在输入前增加采样保持电路。
地址输入和控制线:
4条ALE为地址锁存允许输入线,高电平有效。
当ALE线为高电平时,地址锁存与译码器将ABC三条地址线的地址信号进行锁存,经译码后被选中的通道的模拟量进转换器进行转换。
A,B和C为地址输入线,用于选通IN0-IN7上的一路模拟量输入通路。
ADC0809的工作过程是:
首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。
此地址经译码选通8路模拟输入之一到比较器。
START上升沿将逐次逼近寄存器复位。
下降沿启动AD转换,之后EOC输出信号变低,指示转换正在进行。
直到AD转换完成,EOC变为高电平,指示AD转换结束,结果数据已存入锁存器,这个信号可用作中断申请。
当OE输入高电平时,输出三态门打开,转换结果的数字量输出到数据总线上。
2.3.3键盘显示芯片HD7279A
图2-7HD7279芯片实物、原理图
1.基本特性
HD7279是一片具有串行接口,可同时驱动8位共阴数码管(或64只独立LED)的智能显示驱动芯片。
该芯片同时还可以连接多达64键的键盘矩阵,单片即可完成LED显示、键盘接口的全部功能。
它的主要特点是串行接口,各位独立控制译码、不译码且有消隐和闪烁属性;
通过左移、右移指令能方便地实现显示数码的左、右移动及循环移动。
内含64键键盘控制接口及去抖动电路。
IHD7279的工作性能和控制指令HD7279采用串行方式与微处理器通讯。
串行数据从DATA引脚送入芯片,并由CLK端同步,当片选信号变为低电平后,DATA引脚上的数据在CLK引脚的上升沿被写入HD7279的缓冲器。
HD7279内部含有译码器,可直接接收BCD码获16进制码,并同时具有2种译码方式,此外,还具有多种控制指令,消隐、闪烁、左移、右移、段寻址等。
HD7279具有片悬信号,可方便地实现多于8位的显示。
2.典型应用
HD7279A典型应用:
仪器仪表,工业控制器,条形显示器,控制面板
采用串行方式与微处理器通讯,串行数据从DATA引脚送入芯片,并由CLK端同步。
当片选信号变为低电平后,DATA引脚上的数据在CLK引脚的上升沿被写入HD7279A的缓冲寄存器。
典型应用图见2-8
HD7279A应连接共阴式数码管。
应用中,无需用到的键盘和数码管可以不连接,省去数码管或对数码管设置消隐属性均不会影响键盘的使用。
如果不用键盘,则典型电路图中连接到键盘的8只10K下拉电阻均可以省去。
如果使用了键盘,则电路中的8只10K下拉电阻均不得省去。
除非不接入数码管,否则串入DP及SA-SG连线的8只200Ω电阻均不能省去。
HD7279A需要一外接的RC振荡电路以供系统工作,其典型值为R=1.5KΩ,C=15pF。
如果芯片无法正常工作,首先检查振荡电路。
在印制电路板布线时,所有元件,尤其是振荡电路的元件应尽量靠近HD7279A,并尽量使电路连线最短。
HD7279A的RESET复位端在一般应用情况下,可以直接与正电源连接,在需要较高可靠性的情况下,可以连接一外部的复位电路,或直接由MCU控制。
在上电或RESET端有低电平变为高电平后,HD7279A大约需要经过18-25MS的时间才会进入正常工作状态。
上电后,所有的显示均为空,所以显示位的显示属性均为‘显示’及‘不闪烁’。
当有键按下时,KEY引脚输出变为低电平,此时如果接收到‘读键盘’指令,HD7279A将输出所按下键的代码。
程序中,尽可能地减少CPU对HD7279A的访问次数,可以使得程序更有效率。
因为芯片直接驱动LED显示,电流较大,且为动态扫描方式,故如果该部分电路电源连线较细较长,可能会引入较大的电源噪声干扰,将HD7279A的正负电源端上并入去耦电容可以提高电路的抗干扰能力。
注意:
如果有2个按键同时按下,HD7279A将只能给出其中一个键的代码,因此HD7279A不适于应用在需要2个或2个以上键同时按下的场合。
图2-8HD7279A应用图
2.2.4RS-232C串口通信
图2-9RS-232接口图、MAX232电平转换芯片
目前RS-232是PC机与通信工业中应用最广泛的一种串行接口。
RS-232被定义为一种在低速率串行通讯中增加通讯距离的单端标准。
RS-232采取不平衡传输方式,即所谓单端通讯。
收、发端的数据信号是相对于信号地。
典型的RS-232信号在正负电平之间摆动,在发送数据时,发送端驱动器输出正电平在+5~+15V,负电平在-5~-15V电平。
当无数据传输时,线上为TTL,从开始传送数据到结束,线上电平从TTL电平到RS-232电平再返回TTL电平。
接收器典型的工作电平在+3~+12V与-3~-12V。
由于发送电平与接收电平的差仅为2V至3V左右,所以其共模抑制能力差,再加上双绞线上的分布电容,其传送距离最大为约15米,最高速率为20kbs。
RS-232是为点对点(即只用一对收、发设备)通讯而设计的,其驱动器负载为3~7kΩ。
所以RS-232适合本地设备之间的通信[10]。
在串行通讯时,要求通讯双方都采用一个标准接口,使不同的设备可以方便地连接起来进行通讯。
RS-232-C接口(又称EIARS-232-C)是目前最常用的一种串行通讯接口。
它的全名是"
数据终端设备(DTE)和数据通讯设备(DCE)之间串行二进制数据交换接口技术标准"
该标准规定采用一个25个脚的DB-25连接器,对连接器的每个引脚的信号内容加以规定,还对各种信号的电平加以规定。
后来IBM的PC机将RS-232简化成了DB-9连接器,从而成为事实标准。
而工业控制的RS-232口一般只使用RXD、TXD、GND。
第3章系统软件设计
3.1软件功能
多路数据采集系统具有采集、存储、显示及与PC机通信等功能,开机时在最高位显示P,按下对应键号实现相应的功能。
本设计使用ADC0809作为采集器,并把采集到的电压模拟量转换为数字量,送到单片机AT89C51进行处理。
可完成LED显示、键盘接口的全部功能的HD7279实现数据显示和键盘控制。
用键盘进行控制采集通道的选择,4-F键为功能键,4-E键为复位键,F键为确认键。
当按下“1”键选通ADC0809的1通路将实时采集到电压值通过模数转换并送到单片机AT89C51进行处理处理,显示出此时的数据和地址值。
当按下“2”键选通ADC0809的2通路将实时采集到电压值通过模数转换并送到单片AT89C51进行处理处理,显示出此时的数据和地址值。
当按下“3”键选通ADC0809的3通路将实时采集到电压值通过模数转换并送到单片机AT89C51进行处理处理,显示出此时的数据和地址值。
在显示出各通路采集到的电压值和地址值的同时还实现了与PC机的串行通信。
RS-232是PC机与通信工业中应用最广泛的一种串行接口,在单片机与PC机通信之间用MAX232芯片实现了串口电平转换。
通过数值的发送,能在串口调试助手中显示出相应的数据和地址值。
3.2各部分程序设计
3.2.1主程序
主程序是对单片机的初始化及各种子程序的调用,其中初始化包括键盘显示HD7279及串行口的初始化,子程序的调用包括键盘、数据采集、串口发送等程序的调用[11]。
图4-1主程序流程图
3.2.2键盘扫描程序
对键盘进行扫描,扫描到相应按键按下则执行相应操作,只有在按下确认键后采集通道才被选通。
图4-2键盘扫描程序流流程图
3.2.3ADC0809采集程序
ADC0809与单片机是总线连接方式,端口地址为0x7fff。
在通路选定后,转换开始时变低,只有在EOC变为高电平是转换才结束,继而从端口读出相应的值。
图4-3AD采集程序流程图
3.2.4发送程序
中央处理器CPU和外界的信息交换称为通信。
串行通信通过串行口来实现。
串行通信有两种基本方式:
异步通信方式和同步通信方式。
本设计采用的是异步通信方式,是按字符传送的。
串行通信是本次设计的重要组组成部分,采用串行RS-232标准,实现了PC机与单片机间的通信并将数据显示出来,就是通过串行发送程序的编写而实现的。
图4-4发送程序流程图
3.2.5数据处理及显示程序设计
对读出的数据值进行一定的处理,拆字后通过HD7279显示芯片,显示出数据及地址值。
voidwork_num(void)数据处理程序
{ucharii=0;
num=num0*100;
num=num*5256;
for(ii=0;
ii<
3;
ii++)
{buf[ii]=num%10;
num=num10;
}
}
voiddisp_num(void)HD7279显示程序
{ucharii;
{cs=1;
if(ii==2){send(0x80+ii);
send(128+buf[ii]);
}
else
{send(0x80+ii);
send(buf[ii]);
}
cs=1;
}
3.2.5延时子程序设计
根据设计的实际需要延时适当的时间,延时子程序如下所示:
voiddel_ms(uchard)ms延时程序
{ucharii;
while(d)
{for(ii=0;
=1;
ii++);
d--;
第4章系统的调试与故障分析
4.1硬件调试
硬件调试主要是针对主控板中单片机模块和外部输入、输出模块进行调试。
这一部分硬件调试主要分成两大块:
上电前的调试和上电后的调试。
4.1.1上电前的调试
在上电前,必须确保电路中不存在断路或短路情况,这一工作是整个调试工作的第一步,也是非常重要的一个步骤。
在这部分调试中主要使用的工具是万用表,用来完成检测电路中是否存在断路或者短路情况等。
在买好所需元器件后,我把每一个不管大小元器件都认真的检测了一下,在确保好的的情况下,开始焊接电路。
完成焊接后,通过万用表的检测,没有发现短路和断路的地方了,电路基本正常。
4.1.2上电后的调试
在确保硬件电路正常,无异常情况(断路或短路)方可上电调试,上电调试的目的是检验电路是否接错,同时还要检验原理是否正确。
在本次毕业设计中,上电调试主要是检测单片机部分与外部输入、输出电路是否接对。
本次调试需要通过软硬件联调来实现。
一、显示电路的调试
通过编写按键显示程序来对此部分硬件电路进行测试,其程序见附录4。
二、ADC0809数据采集的调试
在确保按键显示软件及硬件的前提下,通过ADC0809数据采集程序的编写来对此部分硬件电路进行测试。
其程序见附录4。
三、RS-232串口通信的调试
在确保ADC0809各通道采集数据基本正确的前提下,通过通信发送程序的编写来对此部分硬件电路进行测试。
4.2故障分析
本项毕业设计是由我一人完成的,一个真正的系统都是由个部分小的系统模块合并起来的,只有确保了各子模块无误的情况下才能进行整个系统的联体调试。
故障与分析:
1.HD7279A键盘显示模块一开始数码管并没有显示,而且HD7279A芯片没有烧,我就把与单片机相接的P2.0-P2.3端改接成了P1.0-P1.3端,得到了正确的结果。
分析可能是仿真头的