简易直流电压表设计_第1页
简易直流电压表设计_第2页
简易直流电压表设计_第3页
简易直流电压表设计_第4页
简易直流电压表设计_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

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

文档简介

1、资料内容仅供您学习参考,如有不当之处,请联系改正或者删除目录1设计方案错误!未指定书签。2设计总体框图错误!未指定书签。2.1硬件部分错误!未指定书签。2.2软件部分错误!未指定书签。2.2.1主程序设计错误!未指定书签。2。2.2A/D转换子程序错误!未指定书签。2。2。3数据处理子程序错误!未指定书签。3设计单元电路错误!未指定书签。3o1模数转换单元错误!未指定书签。3olo1ADC0808引脚说明错误!未指定书签。3olo2ADC0808通道选择错误!未指定书签。3.1。3ADC0808的工作原理:错误!未指定书签。3.2数据处理及控制单元错误!未指定书签。3o34位一体七段数码管错误

2、!未指定书签。4电路原理说明错误!未指定书签。4。1模数转换错误!未指定书签。4。2数据处理及控制错误!未指定书签。5参考文献错误!未指定书签。6结论及心得错误!未指定书签。7附录错误!未指定书签。7.1 调试报告错误!未指定书签。7.2 元器件清单错误!未指定书签。1 / 20资料内容仅供您学习参考,如有不当之处,请联系改正或者删除简易直流电压表的设计1设计方案本设计主要采用AT89C51芯片和ADC0808芯片来完成一个简易的数字电压表,能够对输入的05V的模拟直流电压进行测量,并通过一个4位一体的7段LED数码管进行显示,测量误差约为0.02V.该电压表的测量电路主要由三个模块组成:A/

3、D转换模块、数据处理模块及显示控制模块。A/D转换主要由芯片ADC0808来完成,它负责把采集到的模拟量转换为相应的数字量再传送到数据处理模块。数据处理则由芯片AT89c51来完成,其负责把ADC0808传送来的数字量经一定的数据处理,产生相应的显示码送到显示模块进行显示;另外它还控制着ADC0808芯片的1:作.显示模块主要由7段数码管组成,显示测量到的电压值。2设计总体框图2.1硬件部分本实验采用AT89C51单片机芯片配合ADC0808模/数转换芯片构成一个简易的数字电压表,原理电路如图1所示。该电路通过ADC0808芯片采样输入口IN7输入的。5V的模拟量电压,经过模/数转换后,产生相

4、应的数字量经过其输出通道DOD7传送给AT89c51芯片的POD。AT89C51负责把接收到的数字量经过数据处理,产生正确的7段数码管的显示段码,并通过其P1口传送给数码管。同时它还通过其三位I/O口P3.0、P3。1、P3。2产生位选信号,控制数码管的亮灭。另外,AT89c51还控制着ADC0808的工作.其ALE管脚为ADCO8O8提供了1MHz工作的时钟脉冲;P2.3控制ADC0808的地址锁存端(ALE);P2.4控制ADC0808的启动端(START);P2.5控制ADC0808的输出允许端(OE);P3.7控制ADC0808的转换结束信号(EOC).系统框图如图2所示。- U2XT

5、4L2-2- R$T2£L_ro orco UO 1 凶1 ro NfiCQ 庐O 3伏口3 roro office *AMPN力由0 r-z.ig P2.2/A10 rZ.2L/A1 P2.<V<M2 rz.a/Aa P2.G,m rz.T/A-n3Q Pg口 二 I U137 POE3d PO3近 P(HIU3»«.r.-:-»u/21 P。22 PZ1P2224 PZ22: P2428 PA” P维AnaogrsewALE EAPSjCVKD P3 i;rD P3.Z/1MTO PS.STH rs.-vra P3.5/T1 rs.ejM

6、KP3 7荷采块膨奥 ADC0808 数集 ,Di2=2LIW产2,44P22 MP23 3P25石 f" mP27 21Pig 7Pig flPOU rcli-2CL二器WMT4书;: UUUUUUUU oaoaoaoaeocSTAKT'CLOCK数据处理及控制模块PP02>输出显示显示模块4位一体LED数码管LED位控制信号图2系统框图2.2软件部分2o2o1主程序设计本设计采用C语言编程.首先是初始化,主要是针对定时器TO,设置其工作方式,装入计数初值,允许中断等。准备1:作做好后便启动ADC0808对IN7脚输入进的。5V电压模拟信号进行数据采集并转换成相对应的

7、。255十进制数字量。6 / 20调用A/D转换子程序数据处理255十进制数字量转换成0.?05.00壮的数据,输出到显示子程序进行显示。整个主程序就是在A/D转换/据-如里4调用显示程序上整个程序流程框图如图3所示.图3主程序流程图2. 2.2A/D转换子程序启动ADC0808对模拟量输入信号进行转换,通过判断EOC(P1.6引脚)来确定转换是否完成,若EOC为0,则继续等待;若EOC为1,则把OE置位,将转换完成的数据存储至ljAT89c51中。程序流程图如图4所示。图4数据处理子程序流程图2.2。 3数据处理子程序数据处理子程序主要根据标度变换公式1-1,把0255十进制数转换为0.00

8、5.00V<4?=4+(月濯-4)整二套(1T)“wU模拟测量值;模拟输入最小值;4:模拟输入最大值;及:模数转换后的值;既:模/数转换后的最小值;以:模/数转换后的最大值。,在本设计中,根据要求知;4=0匕4二5匕死二0,从二255,则公示1-1可化简为;4=4+出-4)铺"鉴=黑"2)"IU326272821INOIN1IN2IN3IN4IN5IN6IN7CLOCK<STARTEOC1025242322ADDA ADDB ADDCALEOUT1OUT2OUT3OUT4OUT5OUT6OUT7OUT82120191881514171器,主要由856R

9、电阻分压1216VREF(+)VREF(-)OEADC0808图 5ADC0808的引脚图(l)INOIN7:8路模拟量输入通道.(2)A、B、C:模拟通道地址线。这3根地址线用于对8路模拟通道的选择,其译码关系如表1一1所示,其中,A为低地址,C为高地址,引脚图中为ADDA,ADDB和ADDC。7 / 20资料内容仅供您学习参考,如有不当之处,请联系改正或者删除(3)ALE:地址锁存允许信号。对应ALE上跳沿,A、B、C地址状态送入地址锁存器中。(4)START:转换启动信号。START上升沿时,复位ADC0808;START下降沿时启动芯片,开始进行A/D转换;在A/D转换期间,START

10、应保持低电平。本信号有时简写为ST。(5) D7DO:数据输出线。为三态缓冲输出形式,可以和单片机的数据线直接相连。D。为最低位,D7为最|'n'jo(6) OE:输出允许信号。用于控制三态输出锁存器向单片机输出转换得到的数据。OEH),输出数据线呈高阻;OE=1,输出转换得到的数据。(7) CLK:时钟信号。ADC0808的内部没有时钟电路,所需时钟信号由外界提供,因此有时钟信号引脚。通常使用频率为500KHz的时钟信号.(8)EOC:转换结束信号。EOC=0,正在进行转换;EOC=1,转换结束。使用中该状态信号即可作为查询的状态标志,又可作为中断请求信号使用。(9)Vcc:

11、+5V电源,GND:地。(10)Vref:参考电压。参考电压用来与输入的模拟信号进行比较,作为逐次逼近的基准。其典型值为+5V(Vref(+)=+5V,Vref()=0V)。3.1.2ADC0808通道选择表1ADC0808通道选择表C(ADDC)C(ADDB)C(ADDC)选择的通道000IN0001IN1010IN2011IN3100IN4101IN5110IN6111IN7多路模拟开关可选通8路模拟通道,允许8路模拟量分时输入,并共用一个A/D转换器进行转换.地址锁存与译码电路完成对A、B、C三个地址位进行锁存与译码,如表1所示.3o1o3ADC0808的工作原理:首先输入3位地址,并使

12、ALE=1,将地址存入地址锁存器中。此地址经译码选通8路模拟输入之一到比较器。START上升沿将逐次逼近寄存器复位.下降沿启动A/D转换,之后EOC输出信号变低,指示转换正在进行。直到A/D转换完成,EOC变为高电平,指示A/D转换结束,结果数据已存入锁存器,这个信号可用作中断申请。当OE输入高电平时,输出三态门打开,转换结果的数字量输出到数据总线上。WRA/D启动寄存器清“铲START图6ADC0808信号的时序配合地址悚存3o2数据处理及控制单元此处采用AT89c51,它所需要实现的功能,一是将模数转换后的数据经过处理并显示于4位一体的LED上,二是提供LED的位控信号,选择所应显示数据的

13、一位8段数码管,三是提供高电平将ADC0808的锁存器打开,使得数字信号能够输出给单片机。PDIP匚匚匚匚匚匚匚匚匚匚匚匚UUVCCR_O(A£X>)PH>1CAD,)2CA£»j IFHJ3(AXX3)ZJPO4(AO4)DFH)5UR6CA£») 在7CAO7)EyvvFMPALEflPR.OGIF-SfcWZP2/(A.1S>二Ipze(Ai,PJL5(A.13>PN4(A.12>Z)P?3CAT1)ZlAZ2CA1O>ZlP71<Aa) A20(JMO图7AT89C51的引脚AT89C51的引脚

14、说明如下:(1) VCC:电源电压;(2) GND:接地;(3)P0口:P0口是一组8位漏极开路双向I/O口,每位引脚可驱动8个TTL逻辑门路口管脚写“1”时,被定义为高阻抗输入。在访问外部数据存储器或程序存储器时,它可以被定义为数据总线和地址总线的低八位。在FLASH编程时,P0口作为原码输入口;当FLASH进行校验时,P0输出原码,此时P0外部必须接上拉电阻。(4)RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。(5)/PSEN:外部程序存储器的选通信号(6) XTAL1:片内高增益反向放大器的输入及内部时钟工作电路的输入.(7) XTAL2:片内高增益反向放

15、大器的输出端。3o34位一体七段数码管本实验的显示模块主要由一个4位一体的7段LED数码管构成,用于显示测量到的电压值.它是一个共阴极的数码管,每一位数码管的原理图如图所示。每一位数码管的a,b,c,d,e,f,g和dp端都各自连接在一起,用于接收AT89c51的P0口产生的显示段码。1,2,3,4引脚端为其位选端,用于接收AT89C51的P1口产生的位选码.图8为一位数码管的原理图。10 / 20资料内容仅供您学习参考,如有不当之处,请联系改正或者删除共阴3.8就ajk八八ABCDEFGDPoooooooo764219105图8一位数码管的原理图。4电路原理说明4.1模数转换如图1电路原理图

16、所示,三个地址位ADDA、ADDB,ADDC均接高电平+5V电压,因而所需测量的外部电压可由ADC0808的IN7端口输入.由于ADC0808在进行A/D转换时需要有CLK信,本设计中利用AT89C51的定时中断产生一个100KHZ的脉冲,由P1.4口送给ADC0808的时钟端,通过软件给其输入一个正脉冲,可立即启动A/D转换。在软件设计中,由于我们对单片机知识还没能很熟练的掌握,用中断方式较复杂,且这个程序CPU1作量不大,查询方式对速度不会产生影响,所以我们采用查询方式,确保仿真的进度和准确度。在A/D转换开始之前,逐次逼近寄存器的SAR的内容为0,在A/D转换过程中,SAR存放“试探”数

17、字量,在转换完毕后,它的内容即为A/D转换的结果数字量.逻辑控制与定时电路在START正脉冲启动后工作,没来一个CLK脉冲,该电路就可能告知向SAR中传送一次试探值,对应输出U0与U1比较,确定一次逼近值,经过8次逼近,即可获得最后转换的结果数字量。此处,EOC端口的信号显示ADC0808的状态,开始A/D转换时,EOC为低电平,转换结束后,输出高电平。9 / 20U2IQ/TM1POCWCOPO"91P02/J3D2X7A12PO期闻电P04©POZgP0J&W6R$TPO.WDFP2o>neP21加P2.2/A10PSENP2.3ZA11ALEP2.4ZA

18、12EAP2.5/A13PZ0/A14PZ7/A15P1J0P3.0fRX£>P4.1P3.4/TX£>P12P3.20MTDP15F3.3SHHF1.4P3ATOF10P30/F1FMP3.U皿F"P3.7/RD:上29-.皿,一到二Pio4P112P123-P134-P145-P15n-PI。7-PITB-ATS0051.sd90dw8Xgd8VJlodsdU1FQ?»14F。!215F84,FO45-12F056-11FC67-10Rxe,popOEVR6FWVR£f(+)HiikjxirP2C-17-P2114uUUIQ&g

19、t;AUCOUT?ADDCOUTCAODBOUI5AODAE公15-F23批F2<18-F2r.-u-OLHQFC>20-UUIOIN/F272LUUIZIND.pie?uu11iNaIM4enr111。IP166-IM2sr加TIN1CLOCKIND1户仅10-.,ieM2"22-24"2*5q2218口_2O”£XI>图9运行中的电路图10 / 20资料内容仅供您学习参考,如有不当之处,请联系改正或者删除5参考文献1胡乾坤,李广斌,李玲,喻红。单片微型计算机原理与应用.华中科技大学出版社,20052朱清慧,张凤瑞,翟天嵩,王志奎。Proteu

20、s教程。清华大学出版社,20083李广弟.单片机基础。北京航空航天大学出版社,19944谭运光。单片机开发手册。华龄出版社,19946结论及心得我选择的是简易直流电压表,这个所用到的芯片都是我们比较熟悉的,89c51和0808模/数转换器。总的来说,这次课设完成得还算顺利,因为老师给的题目都很经典,加之所要实现的功能也很简单,因而我们能够获得的资源就比较丰富。一开始我在网上查了一些资料,但是大部分都是汇编的,而且相当长,所连接的图也是极其复杂。由于汇编部分的知识掌握得不太好,考虑到运行有问题不便修改,我最终决定放弃这些现有的程序,转去研究C。C的程序一目了然,并不像汇编那样涉及到口地址,存储单

21、元什么的,因而结合起电路图来看很快就能弄清楚各个芯片端口的作用。然而课设的过程中仍然遇到了一个大问题一一中断,定时<>这个是最令人头疼的部分,怎么计算定时时间,怎么设置控制字,方式字,何时开中断,怎样开中断,如何选择定时器的工作方式等等,对于概念倒还能敷衍过去,但到了实地操作却是相当茫然。一开始本打算请教同学,毕竟若是看课本的话,得费上好些时间,而且这个设计里也没涉及到太多的定时(后来分析知道,其实只是为0808模/数转换提供脉冲而已)。可是左问右问的之后,发觉其他同学也称自己不太清楚。没办法,最后只能是“自己动手,丰衣足食”。中断的响应过程,中断控制,定时/计数器的TCON,TM

22、OD,以及各种工作方式,特别是应用程序设计那一块的例子,我一一详尽地看了一遍,并在与同学的讨论中对该部分的重难点大致有了个了解,然后便开始对该C程序的一步步分析。11 / 20资料内容仅供您学习参考,如有不当之处,请联系改正或者删除现在看来,整个课设的过程中,读程序那一段时是受益最多的了.其实一开始也尝试过用汇编,但是网上现成的程序放入仿真后,LED没有任何显示,经过同学们的多番讨论与修改后,其显示仍然与参考电压表不一致,最终只好作罢。在跟同学的讨论过程中,我是强烈地感觉到“书到用时方恨少,事非经过不知难”,平常看似简单的问题,遇到复杂的调用程序就能难住我们一大片人,比如说,程序的执行顺序,函

23、数调用后如何返回,返回至哪里,RET与RETI有什么区别,如果两个定时器同时工作应该选用什么方式,计数器与定时器的区别,某一段语句执行完共用了多长时间等等。其实这些都不难,究其原因,还是我们平常的基础知识掌握得不够牢固。貌似这是大学里的最后一次课设了,其实一直觉得这种形式的学习很不错,同学们在设计的过程中都会有种主动学习的欲望。但是在看程序,连电路的过程中,我们还是能够学习那些编程人的思路的这一点对于加深我们对于每个知识点的理解非常有帮助。另外,由于是仿真,假如在读程序的时候有某些地方看不明白,不知道它是用来干嘛的,那我们可以将其去掉然后观察结果并与正确结果对比,大约就可以有些头绪了。比如说我

24、这个C里,一开始我也不清楚中断是干嘛用的,分析了半天,然后在网上查了些资料,貌似是为0808提供工作脉冲的.为了进一步确定,我将程序中有关中断的部分都删掉再放入89c51中,并直接给0808提供一个100KHz的CLOCK后运行,结果完全正确。由此证明了最初的猜测。7附录7.1调试报告由于此次设计的程序较简单,因而其在keil里运行的时候很顺利。但是当将程序加入连接好的电路中并开始仿真时,LED没有任何显示。在仔细检查了程序中调用显示函数的子程序并确定其无误后,我开始检查电路的各个接口。原来是4位一体的数码管选择错误,程序里本来用的是公阴级,而我却选择了CA的共阳极.将正确元件换上后,LED有

25、了显示,但是显示极其不稳定.我推想应该是程序中某些参数设置得不够恰当,于是摸索着分别将定时器的计数初值改为TH0=(65536-500)/256,TH0=(65536300)/256,TH0=(65536-100)/256,并试着改变延迟_nop_()函数的个数,直到最后发觉LED已能稳定显示为止。当我移动可变电阻改变输入电压时,发现电源+15V用得不对,因为利用0808设计的电压表的量程只有+5V。,超过了就显示不出来了,所以最12/20资料内容仅供您学习参考,如有不当之处,请联系改正或者删除终选择了+5V的电源.再次调试,运行结果正确,LED的显示与参照电压表的示数一致。源程序如下:13

26、/ 20资料内容仅供您学习参考,如有不当之处,请联系改正或者删除#include<reg52oh>#include"intrinsoh"调用_nop_();延时函数用unsignedcharcodedispbitcode=0x3f,0x06,0x5b,0x4f,0x660x6d,0x7d,0x07,0x7f,0x6f;共阴数码管7段值unsignedchardispbuf4;unsignedchargetdata;unsignedinttemp;sbitCLK=PlA4;sbitST=PlA5;sbitOE=PlA7;sbitEOC=PlA6:sbitP10=PlA0;sbitPll=PlAl;sbitP12=PlA2;sbitP13=PlA3;sbitP07=P0A7:voidTimelnitial();voidDelay(unsignedinti):voidTimelnitial()TMOD=0x01;定时器TO工作在方式1,16位定时器/计数器TH0=(65536-100)/256;装入计数初值高位TL0=(65536100)%256;装入计数初值低位EA=1;开中断ET0=l;允许TO中断TR0=l;启动定时器TO)voidDelay(unsig

温馨提示

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

评论

0/150

提交评论