ImageVerifierCode 换一换
格式:DOCX , 页数:15 ,大小:111.84KB ,
资源ID:8835002      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/8835002.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(课程设计数字电压表.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

课程设计数字电压表.docx

1、课程设计数字电压表目 录0. 前言 11. 简易数字电压表的基本理论 12. 方案设计 23. 硬件电路的工作原理 23.1 ADC0808 23.2单片机最小系统 33.2.1 复位电路 43.2.2 时钟电路 53.3 LED显示电路 54. 软件编程 64.1 主程序 64.2 初始化程序 74.3 A/D转换子程序 74.4 显示子程序 75. 系统调试和结果分析 76. 结论及进一步设想 8参考文献 9附录1 元件清单 10课设体会 11简易数字电压表摘要: 本文介绍的是数字电压表的发展背景,并且基于单片机设计一个简易数字电压表,能够测量05V的直流电压,并且通过四位数码管显示。使用

2、元件比较少,运用单片机STC89C51、A/D转换器ADC0809和数码管。ADC0809采集连续模拟量(直流输入电压),将其转换成离散的数字形式。数字量输入到单片机STC89C52中加以处理,并且通过LED显示出来,从而实现电压的测量与显示。关键词:ADC0809;STC89C52;电压测量0. 前言传统的指针式刻度电压表功能单一,进度低,容易引起视差和视觉疲劳,因而不能满足数字化时代的需要。采用单片机的数字电压表,将连续的模拟量如直流电压转换成不连续的离散的数字形式并加以显示,从而精度高、抗干扰能力强,可扩展性强、集成方便,还可与PC实时通信。数字电压表是诸多数字化仪表的核心与基础。以数字

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

4、压表的发展就着眼在高精度和低成本这两个方面。1. 简易数字电压表的基本理论根据设计要求选用高精度A/D转换器ADC0809进行数据转换,针对ADC0809对模拟输入信号的要求,对输入信号进行量程转换并进行调理。通过单片机STC89C52和A/D转换器ADC0809完成数据转换及传输,是系统的核心内容。阐述了ADC0809工作原理并对A/D 转换电路、参考电压电路、复位电路、时钟电路等电路进行具体设计。 本设计从各个角度分析了由单片机组成的数字电压表的设计过程及各部分电路的组成及其原理,并且分析了程序如何驱动单片机进而使系统运行起来的原理及方法。 软件的设计包括了对主程序、模数转换程序和显示程序

5、的设计,给出了程序流程图。最后根据软硬件设计方案对系统进行了调试。2. 方案设计简易数字电压表电路的基本组成如图1所示。图1 简易数字电压表电路的原理框图根据设计要求,采用的方案如下。硬件部分实现采集模拟电压,转换为数字量,并且显示功能,包括信号采集转换模块、显示模块;软件部分实现将8位二进制数转化为十进制数并且在数码管上显示出来。主要设计思想是选择AT89C51单片机为核心控制器件,A/D转换采用ADC0809实现,与单片机的接口为P0口和P2口的低四位引脚,电压显示采用4位的LED数码管,LED数码的段选输入,由并行端口P1产生;位选输入,用并行端口P2高四位产生。3. 硬件电路的工作原理

6、3.1 ADC0808 现实世界的物理量很多都是模拟量,能把模拟量转化成数字量的器件称为模/数转换器(A/D转换器),A/D转换器是单片机数据采集系统的关键接口电路,按照各种A/D芯片的转化原理可分为计数比较型,逐次逼近型,双重积分型等等。双积分式A/D转换。ADC0809是CMOS单片型逐次逼近式A/D转换器,内部结构如图所示,它由8路模拟开关、地址锁存与译码器、比较器、8位开关树型A/D转换器、逐次逼近寄存器、逻辑控制和定时电路组成。ADC0808芯片有28条引脚,采用双列直插式封装。因为在Proteus软件中ADC0809无法仿真,所以使用功能相近的ADC0808代替,其引脚图如图1所示

7、。图2 ADC0808 下面说明各个引脚功能: IN0-IN7(8条):8路模拟量输入线,用于输入和控制被转换的模拟电压。 地址输入控制(4条): ALE:地址锁存允许输入线,高电平有效,当ALE为高电平时,为地址输入线,用于选择IN0-IN7上那一条模拟电压送给比较器进行A/D转换。 ADDA,ADDB,ADDC:3位地址输入线,用于选择8路模拟输入中的一路。 START:START为“启动脉冲”输入法,该线上正脉冲由CPU送来,宽度应大于100ns,上升沿清零SAR,下降沿启动ADC工作。 EOC: EOC为转换结束输出线,该线上高电平表示A/D转换已结束,数字量已锁入三态输出锁存器。3.

8、2单片机最小系统STC89C52系列单片机的复位电路的极性电容C1直接影响单片机的复位时间,一般采用10-30uF,单片机最小系统容值越大需要的复位时间越短。89C52单片机的晶振X1可以采用6MHz或者11.0592MHz,在正常工作的情况下可以采用更高频率的晶振,52单片机的晶振振荡频率直接影响单片机的处理速度,频率越大处理越快。52单片机系统的起振电容C2、C3一般采用15-33pF,并且电容离晶振越近越好,晶振离单片机越近越好。P0口作为输出口时需要上拉电阻,阻值一般为10K。其他接口内部有上拉电阻,作为输出口不需要外加上拉电阻。最小系统包含晶振电路、复位电路、电源电路。74HC573

9、锁存器:主要用于对数码管、按键的控制,这里只用到了数据锁存的功能,当输入的数据传输完毕,在输出端仍然保持数据。保证了投入硬币后能让显示的数字保存一段时间,同时也完成了对硬币数量的累加功能。在LED和数码管显示方面,要维持一个数据的显示,往往要持续的快速的刷新。尤其是在四段八位数码管等这些要选通的显示设备上。在人类能够接受的刷新频率之内,大概每三十毫秒就要刷新一次。这就大大占用了处理器的处理时间,消耗了处理器的处理能力,还浪费了处理器的功耗。锁存器的使用可以大大的缓解处理器在这方面的压力。当处理器把数据传输到锁存器并将其锁存后,锁存器的输出引脚便会一直保持数据状态直到下一次锁存新的数据为止。这样

10、在数码管的显示内容不变之前,处理器的处理时间和IO引脚便可以释放。可以看出处理器处理的时间仅限于显示内容发生变化的时候,这在整个显示时间上只是非常少的一个部分。而处理器在处理完后可以有更多的时间来执行其他的任务。这就是锁存器在LED和数码管显示方面的作用:节省了宝贵的MCU时间。图3 单片机最小系统3.2.1 复位电路单片机在启动运行时都需要复位,使CPU和系统中的其他部件都处于一个确定的初始状态,并从这个状态开始工作。MCS-51单片机有一个复位引脚RST,采用施密特触发输入。当震荡器起振后,只要该引脚上出现2个机器周期以上的高电平即可确保时器件复位1。复位完成后,如果RST端继续保持高电平

11、,MCS-51就一直处于复位状态,只要RST恢复低电平后,单片机才能进入其他工作状态。单片机的复位方式有上电自动复位和手动复位两种,是51系列单片机统常用的上电复位和手动复位组合电路,只要Vcc上升时间不超过1ms,它们都能很好的工作。图4 复位电路3.2.2 时钟电路 单片机中CPU每执行一条指令,都必须在统一的时钟脉冲的控制下严格按时间节拍进行,而这个时钟脉冲是单片机控制中的时序电路发出的。CPU执行一条指令的各个微操作所对应时间顺序称为单片机的时序。MCS-51单片机芯片内部有一个高增益反相放大器,用于构成震荡器,XTAL1为该放大器的输入端,XTAL2为该放大器输出端,但形成时钟电路还

12、需附加其他电路本设计系统采用内部时钟方式,利用单片机内部的高增益反相放大器,外部电路简单,只需要一个晶振和 2个电容即可。图5 时钟电路 3.3 LED显示电路动态显示驱动:数码管动态显示接口是单片机中应用最为广泛的一种显示方式动态驱动是将所有数码管的8个显示笔划a,b,c,d,e,f,g,dp的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码

13、管就不会亮。通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位数码管的点亮时间为12ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。图6 LED数码管电路4. 软件编程根据设计方案,应用Proteus软件进行了模拟仿真,设计的主要思想是模块化,总体分为主程序模块、数据采集模块、数据显示模块。程序通过主程序调用子程序来完成所需要的各种功能。主程序流程如图 所示。

14、4.1 主程序图7 主程序框图4.2 初始化程序所谓初始化,是对将要用到的MCS_51系列单片机内部部件或扩展芯片进行初始工作状态设定,初始化子程序的主要工作是设置定时器的工作模式,初值预置,开中断和打开定时器等。4.3 A/D转换子程序A/D转换子程序用来控制对输入的模块电压信号的采集测量,并将对应的数值存入相应的内存单元,其转换流程图如图 所示。 否是 图8 A/D转换子电路框图4.4 显示子程序显示子程序采用动态扫描实现四位数码管的数值显示,在采用动态扫描显示方式时,要使得LED显示的比较均匀,又有足够的亮度,需要设置适当的扫描频率,就能够产生比较好的显示效果。5. 系统调试和结果分析

15、根据方案设计结果,进行了设计电路的实际联接。图中左侧的是Proteus中提供的电压表,用来验证仿真结果,并且进行对比。仿真结果如下:图9 仿真结果仿真说明本设计还存在误差,但是误差较小,基本满足需要。结果可采用图形、表格等形式给出,通过分析实验结果,得到结论。应详细说明分析的过程。表1测试数据表Proteus中提供的电压表值本设计的电压表测试值+1.101.098+1.801.803+2.502.490+3.703.705+5.005.0006. 结论及进一步设想由上所述,本次设计是一个简易数字电压表,基本完成了课程设计的任务要求,通过软件仿真验证了正确性,达到了要求。但设计中的不足之处仍然存

16、在。这次设计是我第一次设计电路, Proteus实现了仿真,并且焊接电路。在这过程中,我对电路设计,单片机的使用等都有了新的认识。通过这次设计学会了Proteus和Keil软件的使用方法,掌握了从系统的需要、方案的设计、功能模块的划分、原理图的设计和电路图的仿真的设计流程,积累了不少经验。 基于单片机的数字电压表使用性强、结构简单、成本低、外接元件少。在实际应用工作应能好,测量电压准确,精度高。系统功能、指标达到了课题的预期要求、系统在硬件设计上充分考虑了可扩展性,经过一定的改造,可以增加功能。本文设计主要实现了简易数字电压表测量一路电压的功能,详细说明了从原理图的设计、电路图的仿真再到软件的

17、调试。 通过本次设计,我对单片机这门课有了进一步的了解。无论是在硬件连接方面还是在软件编程方面。本次设计采用了AT89C51单片机芯片,与以往的单片机相比增加了许多新的功能,使其功能更为完善,应用领域也更为广泛。设计中还用到了模/数转换芯片ADC0808,以前在学单片机课程时只是对其理论知识有了初步的理解。通过这次设计,对它的工作原理有了更深的理解。在调试过程中遇到很多问题,硬件上的理论知识学得不够扎实,对电路的仿真方面也不够熟练。总之这次电路的设计和仿真,基本上达到了设计的功能要求。在以后的实践中,我将继续努力学习电路设计方面的理论知识,并理论联系实际,争取在电路设计方面能有所提升。参考文献

18、1 刘复华.单片机及其应用系统.北京:清华大学出版社,19922 黄红霞.基于电涡流传感器的硬币识别研究.湖北理工学院学报,2012,28(5)3 杨立业.简单程序实现数码管的动态显示.燕山大学学报2010,19(4)4 薛邵武.单片机在投币电话中的应用.电子技术,1996,9(4):13-155 田磊.公交投币系统的设计.安徽建筑工业学院毕业设计,2010,6(7)附录1 元件清单 元件名称型号数量单片机STC89C521A/D转换器ADC08091数码管7SEG MPX4 CC1电阻10K2电容1nF2极性电容1.0uF1按钮1排电阻1电位器1 课设体会在这次的智能仪器课程设计中,通过教材

19、、图书馆查阅资料、上网查阅资料等方式,了解单片机的工作原理、设计方法、程序的编写和调试,并且用Proteus软件进行仿真。在数字显示模块,将以前数字电路所学的知识应用其中,从各个方面用所学知识和新学到的知识综合运用,从而解决各个问题。并且在仿真中,通过不懈的调试,终于将电路仿真结果实现了。在这一阶段的课程设计中,我对以前所学的知识了解有了加深,将数字电路的知识和单片机的知识有机的结合起来,并且应用于实际当中,完成了课设的任务。在本次课程设计中,我了解到完成一个设计任务,可以通过分块设计的方式实现,这样既提高了效率,还减小了设计的难度,方便更改、调试。当需要实现完整的功能时,在组合起来,完成所要

20、求的任务。在这次课程设计中,通过不同的电路组合、同样的电路不同的程序就能实现不能的功能。在这种实践中,真正用自己所学的知识来解决各种问题,更加锻炼了自己动手能力。从拿到设计的题目开始,分析,构思,整理,选用器件,模块设计,一步一步,都碰到很多的困难。在碰到困难时学会耐心思考,用自己的能力,尽力自己解决问题。在仿真的过程中,自己连接电路图以及编写程序,这都使我受益匪浅,我对Keil,Proteus等软件的运用更加纯熟,寻找各种元件也更快更准,完成仿真也更加快速准确,并且对如何测量数据也有了一定的了解。单片机能实现的功能真的很强大,博大精深,课程设计中学到了很多平时没有学到的东西,并且应用到了实际

21、应用中,这次课程设计给了我一个很好的学习、实践的机会。为将来的毕业设计做了一个很好的铺垫,加深我对单片机的认识和使用,提高了实际操作的能力。在这个过程中,课程设计能够顺利完成,得到了很多同学直接或者间接的帮助。我考虑设计方案、芯片的选择、数据采集及程序的调试都有同学对我进行帮助。同时我也得到了冯志刚老师的帮助和悉心教导,帮我理清设计思路、扫清障碍、提供传感器。刘老师严谨的态度和耐心的教导,给我很深的印象。再此我要进行感谢,感谢他们无私的帮助使我学习到了更多的知识,以及解决问题的办法。从最开始的方案设计阶段到软件仿真阶段,再到最后的开发板操作阶段,都很难是一个人的智慧和能力所能成功完成的,除了自

22、己的努力外,还有他人的努力。这让我更加认识到了,同伴的重要性以及团队配合的力量。做了很多努力,最终才能取得成功,顺利完成了设计项目。所有的付出,都是有回报的。这两周的智能仪器课程设计既是在学习,也是在实践,真的很有意义,让我受益匪浅。 2014年1月 10日完成/-/ AD0809 by yyw#include reg51.hsbit ST_ALE=P30; sbit EOC=P31; /EOC connect to P3.1 sbit OE=P32; /OE conect to P3.2sbit CLK=P33; /CLK connect to P3.3时钟脉冲输入端。要求时钟频率不高于64

23、0KHZ。unsigned char CHANNEL; /AD channel variableunsigned char LED10=0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F; /共阴极unsigned char CHECK4=0xEF,0xDF,0xBF,0x7F; /choose LED channelvoid display() unsigned long temp; /长形 unsigned char DATA,digit4; /字符型 unsigned int k,l; /int型 DATA=P0; /save AD dat

24、a temp=DATA; /the temporary variable temp=temp*1000/51; /AD formula:D=A*5/255 digit0=temp/1000; /the thousands place digit1=temp%1000/100; /the hundreds place digit2=temp%1000%100/10; /the tens place digit3=temp%1000%100%10; /the ones place DATA=P2; /save P2 for(k=0;k1000;k+) for(l=0;l4;l+) P2=P2|0x

25、F0; /avoid LED residual按位或 P1=LEDdigitl+0x80*(l=0); /LED code P2=DATA&CHECKl; /choose LED channel按位与 P2=DATA; /restore P2 void main() CHANNEL=0xF8; /AD channel 0 ST_ALE=0; /START and ALE default OE=0; /OE default TMOD=0x02; /T0 operate in mode 2 TH0=0xFF; /auto load value16 TL0=0xFF; /default value

26、EA=1; /all interrupt enable ET0=1; /T0 interrupt enable ET0=1 允许T0 中断 TR0=1; /T0 run while(1) P2=CHANNEL; /choose AD channel ST_ALE=1; /lock the AD channel address ST_ALE=0; /AD run while(EOC=0); /wait until AD over OE=1; /enable to transmit AD data display(); /view the AD result and diaplay LED OE=0; /forbit to transmit AD data if(CHANNEL=0xFF) CHANNEL=0xF7; /AD channel loop CHANNEL+; /next AD channel void T1_TIME() interrupt 1 using 0 CLK=CLK; /CLK 500 kHz 按位取反

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1