基于单片机数字电压表设计_第1页
基于单片机数字电压表设计_第2页
基于单片机数字电压表设计_第3页
基于单片机数字电压表设计_第4页
基于单片机数字电压表设计_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

1、西安文理学院课程设计报告引言在电量的测量中,电压、电流和频率是最基本的三个被测量,其中电压量的测量最为经常。而且随着电子技术的发展,更是经常需要测量高精度的电压,所以数字电压表就成为一种必不可少的测量仪器。数字电压表简称DVM,它是采用数字化测量技术,把连续的模拟量转换成不连续、离散的数字形式并加以显示的仪表。由于数字式仪器具有读数准确方便、精度高、误差小、测量速度快等特而得到广泛应用1。 传统的指针式刻度电压表功能单一,进度低,容易引起视差和视觉疲劳,因而不能满足数字化时代的需要。采用单片机的数字电压表,将连续的模拟量如直流电压转换成不连续的离散的数字形式并加以显示,从而精度高、抗干扰能力强

2、,可扩展性强、集成方便,还可与PC实时通信。数字电压表是诸多数字化仪表的核心与基础2。以数字电压表为核心,可以扩展成各种通用数字仪表、专用数字仪表及各种非电量的数字化仪表。目前,由各种单片机和A/D转换器构成的数字电压表作全面深入的了解是很有必要的。最近的几十年来,随着半导体技术、集成电路(IC)和微处理器技术的发展,数字电路和数字化测量技术也有了巨大的进步,从而促使了数字电压表的快速发展,并不断出现新的类型3。数字电压表从1952年问世以来,经历了不断改进的过程,从最早采用继电器、电子管和形式发展到了现在的全固态化、集成化(IC化),另一方面,精度也从0.01%-0.005%。目前,数字电压

3、表的内部核心部件是A/D转换器,转换的精度很大程度上影响着数字电压表的准确度,因而,以后数字电压表的发展就着眼在高精度和低成本这两个方面4。本文是以简易数字直流电压表的设计为研究内容,本系统主要包括三大模块:转换模块、数据处理模块及显示模块。其中,A/D转换采用ADC0808对输入的模拟信号进行转换,控制核心AT89C51再对转换的结果进行运算处理,最后驱动输出装置LED显示数字电压信号5。第 2 页1 设计总体方案1.1设计要求:完成系统的硬件电路设计与软件设计;采用汇编或C语言编程;采用Proteus、KeilC等软件实现系统的仿真调试。1.2设计思路根据设计要求,选择AT89C51单片机

4、为核心控制器件。A/D转换采用ADC0808实现,与单片机的接口为P1口和P2口的高四位引脚。电压显示采用4位一体的LED数码管。LED数码的段码输入,由并行端口P0产生:位码输入,用并行端口P2低四位产生。1.3 设计方案主要设计如图1.1:电压采集模数转换单片机处理数码管显示图1.1 设计方案1.3.1主控芯片选用单片机AT89C51和A/D转换芯片ADC0808实现电压的转换和控制,用四位数码管显示出最后的转换电压结果。1.3.2显示部分选用一个四联的共阴极数码管。1.4电路设计原理模拟电压经过档位切换到不同的分压电路筛减后,经隔离干扰送到A/D转换器进行A/D转换。然后送到单片机中进行

5、数据处理。处理后的数据送到LED中显示。同时通过串行通讯与上位通信。硬件电路及软件程序。而硬件电路又大体可分为A/D转换电路、LED显示电路,程序的设计使用C语言编程,利用Keil和PROTEUS 软件对其编译和仿真。一般I/O接口芯片的驱动能力是很有限的,在LED显示器接口电路中,输出口所能提供的驱动电流一般是不够的尤其是设计中需要用到多位LED,此时就需要增加LED驱动电路。在本设计中采用RESPACK上拉电阻来增加驱动能力。数据处理及控制模块AT89C51P1P3显示模块4位一体LED数码管数据采集模块ADC0808控制信号输出显示AnalogDigitalLED位控制信号P2P0图1.

6、2 原理电路本实验采用AT89C51单片机芯片配合ADC0808模/数转换芯片构成一个简易的数字电压表,原理电路如图1.2所示。该电路通过ADC0808芯片采样输入口IN0输入的05 V的模拟量电压,经过模/数转换后,产生相应的数字量经过其输出通道D0D7传送给AT89C51芯片的P1口。AT89C51负责把接收到的数字量经过数据处理,产生正确的7段数码管的显示段码,并通过其P0口传送给数码管。同时它还通过其四位I/O口P2.0、P2.1、P2.2、P2.3产生位选信号,控制数码管的亮灭。P3.0控制ADC0808的启动端(START)和地址锁存端(ALE);P3.1控制ADC0808的输出允

7、许端(OE);P3.2控制ADC0808的转换结束信号(EOC)。2 程序设计2.1 程序设计总方案 根据模块的划分原则,将该程序划分初始化模块,A/D转换子程序和显示子程序,这三个程序模块构成了整个系统软件的主程序,如图2.1所示。开始初始化调用A/D转换子程序调用显示子程序结束图2.1 数字式直流电压表主程序框图2.2 系统子程序设计2.2.1 初始化程序所谓初始化,是对将要用到的MCS_51系列单片机内部部件或扩展芯片进行初始工作状态设定,初始化子程序的主要工作是设置定时器的工作模式,初值预置,开中断和打开定时器等9。2.2.2 A/D转换子程序A/D转换子程序用来控制对输入的模块电压信

8、号的采集测量,并将对应的数值存入相应的内存单元,其转换流程图如图2.2所示。开始启动转换A/D转换结束?输出转换结果数值转换显示结束图2.2 A/D转换流程图2.2.3 显示子程序显示子程序采用动态扫描实现四位数码管的数值显示,在采用动态扫描显示方式时,要使得LED显示的比较均匀,又有足够的亮度,需要设置适当的扫描频率,当扫描频率在70HZ左右时,能够产生比较好的显示效果,一般可以采用间隔10ms对LED进行动态扫描一次,每一位LED的显示时间为1ms。在本设计中,为了简化硬件设计,主要采用软件定时的方式,即用定时器0溢出中断功能实现11s定时,通过软件延时程序来实现5ms的延时。3 硬件电路

9、设计3.1数字芯片A/D转换技术电路原理图如图3.1所示,三个地址位ADDA,ADDB,ADDC均接地,因而所需测量的外部电压可由ADC0808的IN0端口输入。51系列单片机数字显示A/D转换 输入电压 图3.1 A/D转换原理图在A/D转换开始之前,逐次逼近寄存器的SAR的内容为0,在A/D转换过程中,SAR存放“试探”数字量,在转换完毕后,它的内容即为A/D转换的结果数字量。3.1.1 ADC0808模数转换芯片简介ADC0808模数转换芯片如图3.2 图3.2 ADC0808模数转换芯片ADC0808是采样分辨率为8位的、以逐次逼近原理进行模/数转换的器件。其内部有一个8通道多路开关,

10、它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。ADC0808是ADC0809的简化版本,功能基本相同。一般在硬件仿真时采用ADC0808进行A/D转换,实际使用时采用ADC0809进行A/D转换。3.1.2引脚功能(外部特性)ADC0808芯片有28条引脚,采用双列直插式封装,如右图所示。各引脚功能如下: 15和2628(IN0IN7):8路模拟量输入端。 8、14、15和1721:8位数字量输出端。 22(ALE):地址锁存允许信号,输入,高电平有效。 6(START): AD转换启动脉冲输入端,输入一个正脉冲(至少100ns宽)使其启动(脉冲上升沿使080

11、9复位,下降沿启动A/D转换)。 7(EOC): AD转换结束信号,输出,当AD转换结束时,此端输出一个高电平(转换期间一直为低电平)。 9(OE):数据输出允许信号,输入,高电平有效。当AD转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。 10(CLK):时钟脉冲输入端。要求时钟频率不高于640KHZ。 12(VREF(+)和16(VREF(-):参考电压输入端 11(Vcc):主电源输入端。 13(GND):地。 2325(ADDA、ADDB、ADDC):3位地址输入线,用于选通8路模拟输入中的一路。3.2 单片机的数据处理技术A/D转换完毕后,单片机的P1.6口接收到一高

12、电平,立马通过P3将OE置1,ADC0808的三态输出锁存器被打开,转换完的数字信号经过与D0D7相连的P0口进入AT89C51。AT89C51根据公式将数字信号转换为模拟量,然后利用程序获取模拟量的每一位,分别通过P2口输出到LED上。与此同时,AT89C51会通过P2.0P2.3口选择用哪一段LED显示所传出的数据。例如,当P2.0P2.3=1110,则LED接收到的数据会在第四段LED上显示。 另外,AT89C51一旦获得了数据后便会将ST置0,即模数转换器停止转换,知道LED获得新的数据并显示出来,ST才会重新置1。由于AT89C51转换速率很快(微妙量级),所以不会影响其接收新的数据

13、。3.2.1 AT89C51单片机简介AT89C51单片机如图3.3图3.3 AT89C51单片机AT89C51是51系列单片机的一个型号,它是ATMEL公司生产的。AT89C52是一个低电压、高性能CMOS 8为单片机。将通用的微处理器和Flash存储器结合在一起,可反复擦写的Flash存储器可有效地降低开发成本。AT89C51有PDIP、PQFP/TQFP及PLCC等三种封装形式,以适应不同产品的需求。3.2.2主要功能特性:低功耗空闲和掉电模式,软件设置睡眠和唤醒功能。兼容MCS51指令系统,8K可反复擦写(1000次)Flash ROM。3个16位可编程定时/计数器中断,时钟频率0-2

14、4MHz。32个双向I/O口,256B内部RAM。2个串行中断,可编程UART串行通道。2个外部中断源,共6个中断源。2个读写中断口线,3级加密位。3.3单片机控制的数码管显示技术3.3.1 LED基本结构LED是发光二极管显示器的缩写。LED由于结构简单、价格便宜、与单片机接口方便等优点而得到广泛应用。LED显示器是由若干个发光二极管组成显示字段的显示器件。在单片机中使用最多的是七段数码显示器。LED七段数码显示器由8个发光二极管组成显示字段,其中7个长条形的发光二极管排列成“日”字形,另一个圆点形的发光二极管在显示器的右下角作为显示小数点用,其通过不同的组合可用来显示各种数字。LED引脚排

15、列如下图3.4所示:图3.4 LED引脚排列3.3.2 LED显示器的选择在应用系统中,设计要求不同,使用的LED显示器的位数也不同,因此就生产了位数,尺寸,型号不同的LED显示器供选择,数码管有两种:一种共阴极、另一种为共阳极,本次课程设计用的是共阴极。在本设计中,选择4位一体的数码型LED显示器。本系统中前一位显示电压的整数位,即个位,后两位显示电压的小数位。如图3.5所示,是一个共阴极接法的4位LED数码显示管,其中a,b,c,d,e,f,g为4位LED各段的公共输出端,1、2、3、4分别是每一位的位数选端,dp是小数点引出端,4位一体LED数码显示管的内部结构是由4个单独的LED组成,

16、每个LED的段输出引脚在内部都并联后,引出到器件的外部。图3.5 共阴极4位一体数码显示管 3.3.3 LED译码方式译码方式是指由显示字符转换得到对应的字段码的方式,对于LED数码管显示器,通常的译码方式有硬件译码和软件译码方式两种。硬件译码是指利用专门的硬件电路来实现显示字符码的转换。软件译码就是编写软件译码程序,通过译码程序来得到要显示的字符的字段码,译码程序通常为查表程序。本设计采用的是共阴极LED,其对应的字符和字段码如下表3.6所示。表3.6 共阴极字段码表 显示字符共阴极字段码03FH106H25BH34FH466H56DH67DH707H87FH96FH 4 硬件连接4.1 模

17、拟输入电路模拟输入电路如图4.1所示图4.1模拟输入电路通过可变电阻一端接电源+5V,一端接地GND,在并联一个标准电压表,通过改变电阻的阻值,从而改变所测电压值,实现电压的模拟信号输入。4.2 ADC0808芯片与单片机接口电路ADC0808芯片与单片机接口电路如图4.2图4.2ADC0808芯片与单片机接口电路ADC0808的输出接到P1口,OUT1对应的是最高位,START与ALE可以接在一起。在这里,START接P3.0,OE接P3.1,EOC接P3.2,ClOCK接P3.4。4.3 显示电路显示电路如图4.3图4.3显示电路通过P0口控制四位共阴极数码管段选,通过P2口的低四位控制位

18、选。值得注意的是P0需要接上拉电阻,否则P0会处于高阻态。4.4 总电路设计原理:将模拟量通过IN0输入,经过ADC0808芯片转换,得到数字量输出到单片机P0口,经过单片机处理后,送到四位共阴极数码管上显示。5 仿真5.1软件调试 软件调试的主要任务是排查错误,错误主要包括逻辑和功能错误,这些错误有些是显性的,而有些是隐形的,可以通过仿真开发系统发现逐步改正。Proteus软件可以对基于微控制器的设计连同所有的周围电子器件一起仿真,用户甚至可以实时采用诸如LED/LCD、键盘、RS232终端等动态外设模型来对设计进行交互仿真。Proteus支持的微处理芯片包括8051系列、AVR系列、PIC

19、系列、HC11系列及Z80等等。Proteus可以完成单片机系统原理图电路绘制、PCB设计,更为显著点的特点是可以与u Visions3 IDE工具软件结合进行编程仿真调试。本系统的调试主要以软件为主,其中,系统电路图的绘制和仿真我采用的是Proteus软件,而程序方面,采用的是汇编语言,用Keil软件将程序写入单片机。5.2显示结果及误差分析仿真结果如下:当输入电压在0-5V时,输入电压为2.60,显示结果为2.658,如图5.1所示,误差为+0.058。图5.1输入电压2.60显示结果当输入电压大于5V时,发光二极管会闪烁,LED灯则总显示5.097,如图5.2()()。第 14 页西安文

20、理学院课程设计报告(a)(a)图5.2输入电压大于5V显示结果误差分析由于使用ADC0808本身存在5/255的误差,所以使得数码管显示的电压值和输入电压显示在标准电压表上的电压值存在误差。结 论经过一段时间的努力,毕业论文-基于51单片机的数字电压表的设计基本完成。但设计中的不足之处仍然存在。这次设计是我第一次设计电路,并用Proteus实现了仿真。在这过程中,我对电路设计,单片机的使用等都有了新的认识。通过这次设计学会了Proteus和Keil软件的使用方法,掌握了从系统的需要、方案的设计、功能模块的划分、原理图的设计和电路图的仿真的设计流程,积累了不少经验。基于单片机的数字电压表使用性强

21、、结构简单、成本低、外接元件少。测量电压准确,精度高。系统功能、指标达到了课题的预期要求、系统在硬件设计上充分考虑了可扩展性,经过一定的改造,可以增加功能。本文设计主要实现了数字电压表测量一路电压的功能,详细说明了从原理图的设计、电路图的仿真再到软件的调试。通过本次设计,我对单片机这门课有了进一步的了解。无论是在硬件连接仿真方面还是在软件编程方面。本次设计采用了AT89C51单片机芯片,与以往的单片机相比增加了许多新的功能,使其功能更为完善,应用领域也更为广泛。设计中还用到了模/数转换芯片ADC0808,以前在学单片机课程时只是对其理论知识有了初步的理解。通过这次设计,对它的工作原理有了更深的

22、理解。在调试过程中遇到很多问题,硬件上的理论知识学得不够扎实,对电路的仿真方面也不够熟练。总之这次电路的设计和仿真,基本上达到了设计的功能要求。在以后的实践中,我将继续努力学习电路设计方面的理论知识,并理论联系实际,争取在电路设计方面能有所提升。致谢经过两周时间的不懈努力,本次课程设计已经接近尾声,由于是初次尝试设计电路,知识及经验的匮乏,难免遇到很多困难,如果没有导师的督促指导以及同学们的支持,很难顺利的完成此次课程设计。从开始选题到论文的顺利完成,都离不开老师、同学、朋友给以的帮助,在这里请接受我的谢意!首先,在本次毕业设计过程中,从构思、资料收集到最后定稿的各个环节给予细心指引与教导,使

23、我对课程的多方面的知识有了深刻的认识,使我得以最终完成课程设计,在此表示衷心感谢。其次,感谢一起做课程设计的组员,还有帮助我的同学们,感谢你们给我的鼓励,感谢你们在我遇到困难时所给的帮助,正是有了你们的帮助和鼓励,此次课程设计才得以顺利的完成。最后,本次设计得以顺利完成,也要感谢导师组的老师,他们在本文写作阶段给出了许多宝贵意见。导师们的高深精湛的造诣与严谨求实的治学精神将永远激励着我。参考文献1于殿泓、王新年.单片机原理与程序设计实验教程.西安电子科技大学出版社,2007年5月2谢维成、杨加国.单片机原理与应用及C51程序设计实例.电子工业出版社,2006年3月3魏立峰.单片机原理及应用技术.北京大学出版社,2005年4宋凤娟,孙军,李国忠.基于89C51单片机的数字电压表设计J .工业控制计算机,2007年5张

温馨提示

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

评论

0/150

提交评论