免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课程设计说明书 no.25数据采集系统的设计1.课程设计的目的计算机控制系统课程设计是自动化专业的一个重要实践教学环节。在课程设计过程中,学生通过一个较完整的设计过程,可以加深对本门课程所学理论知识的理解与应用,提高学生对所学理论知识的综合运用能力,使学生对计算机控制系统有一个整体认识,掌握计算机控制系统的设计方法。通过课程设计,还可以培养学生独立工作能力,为将来毕业设计打好基础。2.方案论证2.1设计要求设计一个数据采集系统。其主要功能有:可实现1-16通道单端模拟量输入,输入电压范围为0-10v,分辨率为12位。并且实时显示通道号和相应的输入电压值。要求:完成软、硬件设计。16路模拟量输入信号的控制,可通过多路开关来实现;a/d转换器要选择分辨率为12位,输入电压值要经过标度变换、转换为bcd码后送去显示。2.2方案选择系统硬件电路如图:ad574将010v 模拟信号转换为00ff 数字信号并传送单片机, 然后由单片机进行数据存储及数据处理,最终由led 显示器显示。完成对模拟信号的采集。图1系统电路结构框图3.系统硬件电路设计3.1硬件系统设计原理如图2所示,本系统中,以at89s51单片机为运算和控制的核心,它具有4个8位并行的i/o端p0-p3,其中由p0口控制数码管显示,p1口控制信号输入。16路模拟量采集由两个cd4051完成,a/d转换由ad574完成。图2系统连线结构图3.2 硬件系统各个电路的设计3.2.1多路模拟开关电路设计(1).多路模拟开关的选取目前采用cmos工艺的多路开关应用最为广泛。尽管模拟开关种类很多,但其功能基本相同,只是在通道数、开关电阻、漏电流、输入电压及方向切换等性能参数有所不同。多路模拟开关主要有4选1、8选1、双4选1、双8选1和16选1等,它们之间除通道和外部管脚排列有些不同,其电路结构、电源组成及工作原理基本相同。常用单端、双端八路模拟开关cd4051的引脚图如图3所示。图3 cd4051引脚图 vdd为正电源,vee为负电源,vss为地,要求vdd+|vee|18v。用两个cd4051扩展成16通道的多路模拟开关如图4所示,16通道的多路模拟开关真值表见表1。图4 16通道的多路模拟开关表1 十六通道的cd4051多路模拟开关真值表输入状态选中通道号a3a2a1a000000000110010200113010040101501106011171000810019101010101111110012110113111014111115(2)a/d转换器的选取ad574是美国模拟器件公司(analog devices)推出的单片高速12位逐次逼近型a/d转换器,转换时间25s。自带三态缓冲器,可以直接与8位或16位的微机相连,且能与cmos及ttl电平兼容。由于ad574内置基准电压源及时钟发生器,这使它在不需要任何外部电路和时钟信号的情况下完成一切a/d转换功能。可以采用12v和15v两种电源电压,应用非常方便。图5所示为ad574a的内部结构框图。ad574a为28引脚双列直插式封装,其引脚配置如图6所示。图5 ad574内部结构图3.2.2 ad574的引脚功能图6 ad574引脚图vl:数字逻辑部分电源+5v。:数据输出格式选择信号引脚。当 =1(+5v)时,双字节输出,即12条数据线同时有效输出;当=0(0v)时,为单字节输出,即只有高8位或低4位有效。:片选信号端,低电平有效。a0:字节选择控制线。在转换期间:a0=0,ad574a进行全12位转换。在读出期间:当a0=0时,高8位数据有效;a0=1时,低4位数据有效,中间4位为“0”,高4位为三态。因此当采用两次读出12位数据时,应遵循左对齐原则。:读数据/转换控制信号,当=1,adc转换结果的数据允许被读取;当=0,则允许启动a/d转换。ce:启动转换信号,高电平有效。可作为a/d转换启动或读数据的信号。vcc、vee:模拟部分供电的正、负电源,为12v或15v。ref out:10v内部参考电压输出端。ref in:内部解码网络所需参考电压输入端。bip off:补偿调整。接至正负可调的分压网络,以调整adc输出的零点。10vin、20vin:模拟量10v及20v量程的输入端口,信号的另一端接至ag引脚。dg:数字公共端(数字地)。ag:模拟公共端(模拟地)。它是ad574a的内部参考点,ag和dg在封装时已连接在一起。db0db11:数字量输出。sts:输出状态信号引脚。转换开始时,sts达到高电平,转换过程中保持高电平。转换完成时返回到低电平。ad574a的控制信号的组合控制功能如表2所示。表2 ad574a的控制信号的组合控制功能表cea0工作状态0禁止1禁止1000启动12位转换1001启动8位转换101接1脚(+5v)12位并行输出有效101接地0高8位并行输出有效101接地1低4位加上尾随4个0有效必须指出端与ttl电平不兼容,故只能用通过布线接至+5v或0v上。另外a0在数据输出期间不能变化。如果要求ad574a以独立方式工作,只要将ce、端接入+5v,和a0接至0v,将作为数据读出和数据转换启动控制。当=1时,数据输出端出现被转换后的数据,=0时,即启动一次a/d转换。在延时0.5s后sts=1表示转换正在进行。经过一次转换周期tc(典型值为25s)后sts跳回低电平表示a/d转换完毕,可以从数据输出端读取新的数据。启动ad574a转换的时序图如图7所示,ad574a的读周期时序图如图8所示 。图7 ad574的时序图ad574a有单极性和双极性两种模拟信号转换方式,这主要通过改变ad574a引脚8、10、12的外接电路来实现。图8所示为单极性转换电路,可实现输入信号010v或020v的转换,其系统模拟信号的地线应与引脚9相连,使其地线的接触电阻尽可能小,图9为双极性转换电路,可实现输入信号-5v+5v或-10v+10v的转换。图8单极性转换电路图9 双极性转换电路3.2.3 ad574与单片机连接图10中将转换结束状态线sts与单片机的p1.1相连,故该接口采用查询方式。由于ad574a片内有时钟,故无需外加时钟信号。由于ad574a内部含有三态锁存器,故可直接与单片机数据总线接口。ad574a是12位向左对齐输出格式,所以将低4位db30接到db118,第一次读出高8位db114,第二次读出低4位,此时db74为0000。图10中,片选信号由p0.7控制,由于图中高8位地址p2.7p2.0未使用,故只使用低8位地址,采用寄存器寻址方式。设启动ad574a的地址是7ch,读取高8位数据的地址为7eh,读取低4位数据的地址为7fh。图10 8051与ad574连线图3.3单片机模块3.3.1 at89s51单片机的简介at89s51 是一个低功耗,高性能cmos 8位单片机,片内含8k bytes isp(in-system programmable)的可反复擦写1000次的flash只读程序存储器,器件采用atmel公司的高密度、非易失性存储技术制造,兼容标准mcs-51指令系统及80c51引脚结构,芯片内集成了通用8位中央处理器和isp flash存储单元,功能强大的微型计算机的at89s51可为许多嵌入式控制应用系统供给高性价比的解决方案。at89s51具有如下特点:40个引脚,8k bytes flash片内程序存储器,128 bytes的随机存取数据存储器(ram),32个外部双向输入/输出(i/o)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(wdt)电路,片内时钟振荡器。此外,at89s52设计和配置了振荡频率可为0hz并可通过软件设置省电模式。空闲模式下,cpu暂停工作,而ram定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存ram的数据,停止芯片其它功能直至外中断激活或硬件复位。同时该芯片还具有pdip、tqfp和plcc等三种封装形式,以适应不一样产品的需求。at89s51与at89c51相比,外型管脚完全相同,at89c51的hex程序无须任何转换可直接在at89s51运行,结果一样。at89s比at89c51新增了一些功能,支持在线编程和看们狗是其中主要特点。它们之间主要区别在于以下几点:1.引脚功能:管脚几乎相同,变化的有,在at89s51中p1.5,p1.6,p1.7具有第二功能,即这3个引脚的第二功能组成了串行isp编程的接口。2.编程功能:at89c51仅支持并行编程,而at89s51不但支持并行编程还支持isp再线编程。在编程电压方面,at89c51的编程电压除正常工作的5v外,另vpp需要12v,而at89s51仅仅需要4-5v即可。3.烧写次数更高:at89s51标称烧写次数是1000次,实为1000-10000次,这样更有利开始学习者反复烧写,降低学习成本。4.工作频率更高:at89c51极限工作频率是24mhz,而at89s51最高工作频率是33mhz,(at89s51芯片有两中型号,支持最高工作频率分别为24mhz和33mhz)从而具有更快的计算速度。5.电源范围更宽:at89s51工作电压范围,达4-5.5v,而at89c51在底于4.8v和高于5.3v的时侯则无法正常工作。 6.抗干扰性更强:at89s51内部集成看门狗计时器(watchdog timer),而at89c51需外接看门狗计时器电路,或者用单片机内部定时器构成软件看门狗来实现软件抗干扰。3.3.2at89s51引脚及功能介绍at89s51引脚图如下图11所示:图11 at89s51引脚图at89s51芯片的40个引脚功能为:vcc: 电源电压。gnd: 接地。rst: 复位输入。当rst变为高电平并保持2个机器周期时,将使单片机复位。wdt溢出将使该引脚输出高电平,设置sfr auxr的disrto位(地址8eh)可打开或关闭该功能。diskrto位缺省为reset输出高电平打开状态。xtal1: 反向振荡放大器的输入及内部时钟工作电路的输入。xtal2: 来自反向振荡放大器的输出。p0口: 一组8位漏极开路型双向i/o口。也即地址/数据总线复用口。作为输出口用时,每位能驱动8个ttl逻辑门电路,对端口写“1”可作为高阻抗输入端用。在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。在flash编程时,p0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。p1口: 一个带内部上拉电阻的8位双向i/o口,p1的输出缓冲级可驱动(吸收或输出电流)4个ttl逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(iil)。flash编程和程序校验期间,p1接收低8位地址。p1口部分端口引脚及功能如表3所示。表3 p1口特殊功能p1口引脚特殊功能p1.5mosi(用于isp编程)p1.6mosi(用于isp编程)p1.7sck(用于isp编程)p2口: 一个带内部上拉电阻的8位双向i/o口。p1的输出缓冲级可驱动(吸收或输出电流)4个ttl逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(iil)。在访问外部程序存储器或16位地址的外部数据存储器时,p2口送出高8位地址数据。在访问8位地址的外部数据存储器时,p2口线上的内容在整个访问期间不改变。flash编程和程序校验期间,p2亦接收低8位地址。p3口: 一个带内部上拉电阻的8位双向i/o口。p3的输出缓冲级可驱动(吸收或输出电流)4个ttl逻辑门电路。对p3口写“1”时,它们被内部的上拉电阻把拉到高电并可作输入端口。作输入端口使用时,被外部拉低的p3口将用上拉电阻输出电流(iil)。p3口除了作为一般的i/o口线外,更重要的用途是它的第二功能,如表3所示。p3口还接收一些用于flash闪速存储器编程和程序校验期间的控制信号。表4 p3口特殊功能p3口引脚特殊功能p3.0rxd(串行输入口)p3.1txd(串行输出口)p3.2(外部中断0)p3.3(外部中断1)p3.4t0(定时器0外部输入)p3.5t1(定时器1外部输入)p3.6(外部数据存储器写选通)p3.7(外部数据存储器读选通)psen/:程序储存允许输出是外部程序存储器的读先通信号,当at89s51由外部程序存储器取指令(或数据)时,每个机器周期两次psen/有效,即输出两个脉冲。当访问外部数据存储器,没有两次有效的psen/信号。ea/vpp:外部访问允许。欲使cpu仅访问外部程序存储器,ea端必须保持低电平,需注意的是:如果加密位lb1被编程,复位时内部会锁存ea端状态。flash存储器编程时,该引脚加上+12v的编程电压vpp。注:i/o口的读写p0p3口都可以作为普通的i/o口来使用。当作为输入口使用时,必须先向该口的锁存器中写入“1”,然后再从引脚缓冲器中读入引脚状态,这样的读入结果才正确。当作为输出口使用时,可能要经常修改输出口各引脚的状态,为此在at89s51单片机的指令系统中,设置有“读-修改-写”指令。例如,逻辑与指令“anl p1,a”就属于这类指令。该指令的执行过程是:cpu先读入p1上的数据,然后与累加器a中的数据按位进行逻辑与操作,最后将与的结果送回p1口,完成对p1口各位状态的修改。这类指令中,读入p1口的数据是前一次写入p1口输出锁存器的数据,而不是p1口的实际状态,两者不一定相同。例如,用p1的一根线去驱动一个晶体管的基极,当向此口线写入“1”时,晶体管导通,并把引脚上的电平拉成低电平“0”。这时若从引脚上读取数据(引脚缓冲器),会读错成“0”,而不是先前输出的“1”。为此,在p0p3口每一根线的结构上都设有一个读锁存器缓冲器,当执行这类指令时,读入的数据时锁存器的输出状态。3.4 复位电路设计res引脚是复位信号的输入端,复位信号是高电平有效,其有效时间应持续24个振荡周期(即两个机器周期)以上。若使用频率为6mhz的晶振,则复位信号持续时间应超过4us,才能完成复位。复位操作有上电自动复位和按键手动复位两种方式。本设计采用上电复位,如图12所示。图12 上电复位电路图上电自动复位电路是在加电瞬间电容通过充电来实现的。在通电瞬间,电容c3通过电阻充电rst端出现正脉冲,用以复位。上电瞬间,rst端的的电位与vcc相同,随着电容的逐步充电,充电电流减小,rst电位逐渐下降。上电复位所需的最短时间是振荡器建立时间加上二个机器周期,在这段时间里,振荡建立时间不超过10ms。3.5 晶振电路设计at89s51芯片内部有一个高增益反相放大器,用于构成振荡器。反相放大器的输入端为xtal1,输出端为xtal2,两端跨接石英晶体及两个电容就可以构成稳定的自激振荡器,如图13所示。电容器c1和c2通常取30pf左右,可稳定频率并对振荡频率有微调作用。本设计中采用6mhz的晶振构成单片机的时钟电路。晶振频率也就是振荡电路的脉冲频率,也称振荡频率。(振荡脉冲频率范围为024mhz)图13 晶振电路电路图此振荡器由xtal1端向内部时钟电路提供一定的频率时钟源信号。另外,振荡器的工作还可由软件控制,当对单片机内电源控制寄存器pcon中的pd位置1时,可停止振荡器的工作,使单片机进入省电工作状态,此振荡器称为内部振荡器。晶振频率是单片机的一项重要性能指标。因为单片机的时钟信号是通过振荡信号分频得到的,所以竞争频率直接影响时钟信号的频率。晶振频率高,系统的时钟频率就高,单片机运行速度也就快。然而晶振频率高对存储器等的速度和印刷电路板的工艺要求也高。晶振频率不但影响速度,而且对单片机的工作电流也有一定影响,所以在选择晶振频率是,要兼顾速度、功耗和线路工艺。片内振荡器对构成并联谐振电路的外接电容c1和c2要求并不严格,外接晶体时,c1和c2的典型值为30pf左右。而且,在设计印刷电路板时,晶体(或陶瓷谐振器)和电容应尽可能安装得靠近单片机,以减少寄生电容,保证振荡器的稳定和可靠性。3.6输出电路设计输出电路采用数码管显示,显示方法为动态扫描显示。动态显示驱动:数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划“a,b,c,d,e,f,g,dp”的同名端连在一起,另外为每个数码管的公共极com增加位选通控制电路,位选通由各自独立的i/o线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通com端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的的com端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位数码管的点亮时间为12ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的i/o端口,而且功耗更低。显示部分的原理图如下图14所示,利用8255a扩展的4位led动态显示器接口电路。图中将所有位的段选线相应地并联在一起,pb口作为段数端口,经同相驱动器后接显示器各个极,形成段选线的多路复用,而pa3pa0作为扫描口线,经反相驱动器75452接显示器公共阴极。在每一时刻使pa3pa0中有一位为高电平,即4位显示器中仅有一位公共阴极位低电平,其他位为高电平,同时,段选线上输出相应位要显示的字符字型码。这样同一时刻,4位led中只有选通那一位显示出字符,而其他位熄灭的。同样,下一时刻,只让下一位的选线处于选通状态,而其他位处于关闭状态,同时,在段选线上输出相应位将要显示字符的字型码。如此循环下去,就可以使4位显示出要显示的字符。图14 输出电路连线图4.软件系统设计4.1主程序流程图图14主程序流程图4.2 a/d转换流程图图15 a/d转换子程序流程图4.3 a/d转换数据处理程序本设计中,以查询方式实现a/d转换。查询方式a/d转换程序如下:org 0200hstart:movdptr, #9000hmovp1, #0ffhmovr0, #07chmovxr0, aloop: jbp1.1, loop incr0incr0movxa, r0movxdptr, aincr0incdptrmovxa, r0movxdptr, ahere:ajmphere ret4.4显示子程序根据led显示器的结构原理,显示不同的字符需要不同的字形码。本设计选用共阴极数码管,由pa口控制led信号灯的显示。数码管显示的真值表如下表所示:表4 数码管显示真值表显示字符共阴极接法共阳极接法显示字符共阴极接法共阳极接法03fhc0hc39hc6h106hf9hd5eha1h25bha4he79h86h34fhb0hf71h8eh466h99hp73h8ch56dh92hu3ehc1h67dh82ht31hceh707hf8hy6eh91h87fh80hh76h89h96fh90hl38hc7ha77h88h“灭”00hffhb7ch83hled显示程序为:display: mov dptr,#numtabmov r0,#2dp1: mov r2,#150;设置动态显示次数loop3: mov a,#0eh;选通点亮第1位数码管mov p0,amov a,r1movc a,a+dptrmov p2,aacall dimssetb p0.0;选通点亮第2位数码管clr p0.1mov a,50hmovc a,a+dptrmov p2,aclr p2.7acall dimssetb p0.1;选通点亮第3位数码管clr p0.2mov a,51hmovc a,a+dptrmov p2,aacall dimssetb p0.2;选通点亮第4位数码管clr p0.3mov a,52hmovc a,a+dptrmov p2,aacall dimssetb p0.3djnz r2,loop3djnz r0,dp1retdims: mov r7,#00djnz r7,$ret4.5 多路数据采集系统主程序具体程序如下:st bit p3.5oe bit p3.4 eoc bit p3.3org 0000hajmp startorg 0030hstart: mov r5,#0 sett: mov a,r5 mov r1,a mov 50h,a mov 51h,a mov 52h,a lcall display inc r5cjne r5,#10, sett ;自检完毕ad: mov r1, #00 ;开始检测16路数据mov r4, #0c3h mov p1, #0c3h lcall wait ;检测并显示第1路数据mov r4, #0e3h mov p1, #0e3h lcall wait ;检测并显示第2路数据mov r4, #0d3hmov p1, #0d3h lcall wait ;检测并显示第3路数据mov r4, #0f3h mov p1, #0f3h lcall wait ;检测并显示第4路数据 mov r4, #0cbh mov p1, #0cbh lcall wait ;检测并显示第5路数据mov r4, #0ebh mov p1, #0ebh lcall wait ;检测并显示第6路数据mov r4, #0fbh mov p1, #0fbh lcall wait ;检测并显示第7路数据mov r4, #0c7h mov p1, #0c7h lcall wait ;检测并显示第8路数据mov r4, #0c7h mov p1, #0c7h lcall wait ;检测并显示第9路数据mov r4, #0e7h mov p1, #0e7h lcall wait ;检测并显示第10路数据 mov r4, #0d7h mov p1, #0d7h lcall wait ;检测并显示第11路数据mov r4, #0f7hmov p1, #0f7hlcall wait ;检测并显示第12路数据mov r4, #0cfh mov p1, #0cfh lcall wait ;检测并显示第13路数据mov r4, #0efh mov p1, #0efh lcall wait ;检测并显示第14路数据mov r4, #0dfh mov p1, #0dfh lcall wait ;检测并显示第15路数据mov r4, #0ffh mov p1, #0ffh lcall wait ;检测并显示第16路数据ljmp lop;返回并继续循环检测wait: inc r1;启动ad,检测数据,数据处理,数据显示调用子程序setb tr0lcall dimsclr p3.5setb p3.5clr p3.5jnb eoc,$setb oemov a,p1clr oelcall loop2clr tr0lcall displayret;数据处理程序loop2: mov b, #0ffh ;数据处理程序div abmov 51h, amov 52h, bmov b, #0ahmul abmov 53h, bmov 54h, amov a, #16mul bamov 55h, bmov 56h, amov a, 54hadd a, bmov 57h, amov r0, aret;显示子程序display: mov dptr,#numtabmov r0,#2dp1: mov r2,#150;设置动态显示次数loop3:mov a,#0eh;选通点亮第1位数码管mov p0,amov a,r1movc a,a+dptrmov p2,aacall dimssetb p0.0;选通点亮第2位数码管clr p0.1mov a,50hmovc a
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论