课程设计(论文)简易数字直流电压表的设计.doc

上传人:仙人指路1688 文档编号:3927113 上传时间:2023-03-28 格式:DOC 页数:23 大小:370.50KB
返回 下载 相关 举报
课程设计(论文)简易数字直流电压表的设计.doc_第1页
第1页 / 共23页
课程设计(论文)简易数字直流电压表的设计.doc_第2页
第2页 / 共23页
课程设计(论文)简易数字直流电压表的设计.doc_第3页
第3页 / 共23页
课程设计(论文)简易数字直流电压表的设计.doc_第4页
第4页 / 共23页
课程设计(论文)简易数字直流电压表的设计.doc_第5页
第5页 / 共23页
点击查看更多>>
资源描述

《课程设计(论文)简易数字直流电压表的设计.doc》由会员分享,可在线阅读,更多相关《课程设计(论文)简易数字直流电压表的设计.doc(23页珍藏版)》请在三一办公上搜索。

1、 电子制作课程考核报告课程名称 简易数字直流电压表的设计 学生姓名 学号 1313014041 所在院(系) 物理与电信工程 专业班级 电子信息工程1302 指导教师 完成地点 PC PROTEUS 2015年 6 月 13 日简易数字直流电压表的设计摘要 本文介绍一种基于AT89C51单片机的简易数字电压表的设计。该设计主要由三个模块组成:A/D转换模块,数据处理模块及显示模块。A/D转换芯片为ADC0808,它主要负责把采集到的模拟量转换为数字量再传送到数据处理模块。数据处理则是由芯片AT89C51来完成,主要负责把ADC0808传送来的数字量经过一定的数据处理,产生相应的显示码送到显示模

2、块进行显示;并且,它还控制着ADC0808芯片工作。该系统的数字电压表电路简单,所用的元件较少,成本低,且测量精度和可靠性较高。此数字电压表可以测量0-200V的模拟直流输入电压值,并通过数码管显示。 关键词 单片机;数字电压表;AT89C51;ADC0808目 录1 引言2 总体设计方案2.1设计要求2.2 设计思路2.3 设计方案3 详细设计3.1 A/D转换模块3.2 单片机系统3.3 时钟电路3.4 LED显示系统设计3.5 总体电路设计4 程序设计4.1 程序设计总方案4.2 系统子程序设计5 仿真5.1 软件调试5.2 显示结果及误差分析结 论参考文献附录1 引言数字电压表简称DV

3、M,它是采用数字化测量技术,把连续的模拟量转换成不连续、离散的数字形式并加以显示的仪表。由于数字式仪器具有读数准确方便、精度高、误差小、测量速度快等特而得到广泛应用1。 最近的几十年来,随着半导体技术、集成电路(IC)和微处理器技术的发展,数字电路和数字化测量技术也有了巨大的进步,从而促使了数字电压表的快速发展,并不断出现新的类型4。数字电压表从1952年问世以来,经历了不断改进的过程,从最早采用继电器、电子管和形式发展到了现在的全固态化、集成化(IC化),另一方面,精度也从0.01%-0.005%。目前,数字电压表的内部核心部件是A/D转换器,转换的精度很大程度上影响着数字电压表的准确度,因

4、而,以后数字电压表的发展就着眼在高精度和低成本这两个方面3。本文是以简易数字直流电压表的设计为研究内容,本系统主要包括三大模块:转换模块、数据处理模块及显示模块。其中,A/D转换采用ADC0804对输入的模拟信号进行转换,控制核心AT89C51再对转换的结果进行运算处理,最后驱动输出装置LCD显示数字电压信号11。【关键词】数字电压表;单片机;AT89C51; ADC0808 2 设计总体方案2.1设计要求 以AT89C51单片机为核心器件,组成一个简单的直流数字电压表。采用1路模拟量输入,能够测量0-200V之间的直流电压值。电压显示用7SEG-MPX4-CC-BLUE,至少能够显示一位小数

5、。 2.2 设计思路 根据设计要求,选择AT89C51单片机为核心控制器件。A/D转换采用ADC0808实现,与单片机的接口为P1口和P2口的高四位引脚。电压显示采用7SEG-MPX4-CC-BLUE数码管显示。LED数码的段码输入,由并行端口P0产生:位码输入,用并行端口P2低四位产生。2.3 设计方案硬件电路设计由6个部分组成; A/D转换电路,AT89C51单片机系统,LED显示系统、时钟电路、复位电路以及测量电压输入电路。硬件电路设计框图如图1所示。 时钟电路 A/D转换电路测量电压输入显示系统AT89C51 P1 P2 P2 P0 图1 数字电压表系统硬件设计框图3 硬件电路设计3.

6、1 A/D转换模块现实世界的物理量都是模拟量,能把模拟量转化成数字量的器件称为模/数转换器(A/D转换器),A/D转换器是单片机数据采集系统的关键接口电路,按照各种A/D芯片的转化原理可分为逐次逼近型,双重积分型等等。双积分式A/D转换器具有抗干扰能力强、转换精度高、价格便宜等优点。与双积分相比,逐次逼近式A/D转换的转换速度更快,而且精度更高,比如ADC0809、ADC0808等,它们通常具有8路模拟选通开关及地址译码、锁存电路等,它们可以与单片机系统连接,将数字量送到单片机进行分析和显示。一个n位的逐次逼近型A/D转换器只需要比较n次,转换时间只取决于位数和时钟周期,逐次逼近型A/D转换器

7、转换速度快,因而在实际中广泛使用1。3.1.1 逐次逼近型A/D转换器原理逐次逼近型A/D转换器是由一个比较器、A/D转换器、存储器及控制电路组成。它利用内部的寄存器从高位到低位一次开始逐位试探比较。转换过程如下:开始时,寄存器各位清零,转换时,先将最高位置1,把数据送入A/D转换器转换,转换结果与输入的模拟量比较,如果转换的模拟量比输入的模拟量小,则1保留,如果转换的模拟量比输入的模拟量大,则1不保留,然后从第二位依次重复上述过程直至最低位,最后寄存器中的内容就是输入模拟量对应的二进制数字量5。其原理框图如图2所示:顺序脉冲发生器逐次逼近寄存器ADC电压比较器输入电压输入数字量图2 逐次逼近

8、式A/D转换器原理图3.1.2 ADC0808主要特性ADC0808是CMOS单片型逐次逼近式A/D转换器,带有使能控制端,与微机直接接口,片内带有锁存功能的8路模拟多路开关,可以对8路0-5V输入模拟电压信号分时进行转换,由于ADC0808设计时考虑到若干种模/数变换技术的长处,所以该芯片非常适应于过程控制,微控制器输入通道的接口电路,智能仪器和机床控制等领域。 ADC0808主要特性:8路8位A/D转换器,即分辨率8位;具有锁存控制的8路模拟开关;易与各种微控制器接口;可锁存三态输出,输出与TTL兼容;转换时间:128s;转换精度:0.2%;单个+5V电源供电;模拟输入电压范围0- +5V

9、,无需外部零点和满度调整;低功耗,约15Mw ADC0808的内部结构3.2单片机系统3.2.1 AT89C51性能AT89C51是美国ATMEL公司生产的低电压,高性能CMOS8位单片机,片内含有4KB的可反复擦写的只读程序存储器和128字节的随机存储器。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容,由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,它为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。 AT89C51功能性能:与MCS-51成品指令系统完全兼容;4KB可编程闪速存储器;寿命

10、:1000次写/擦循环;数据保留时间:10年;全静态工作:0-24MHz;三级程序存储器锁定;128*8B内部RAM;32个可编程I/O口线;2个16位定时/计数器;5个中断源;可编程串行UART通道;片内震荡器和掉电模式6。 3.2.2 AT89C51各引脚功能AT89C51提供以下标准功能:4KB的Flash闪速存储器,128B内部RAM,32个I/O口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内震荡器及时钟电路,同时,AT89C51可降至0Hz静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口

11、及中断系统继续工作,掉电方式保存RAM中的内容,但震荡器停止工作并禁止其他所有工作直到下一个硬件复位。AT89C51采用PDIP封装形式,引脚配置如图5所示7。图4 AT89C51的引脚图AT89C51芯片的各引脚功能为:P0口:这组引脚共有8条,P0.0为最低位。这8个引脚有两种不同的功能,分别适用于不同的情况,第一种情况是89C51不带外存储器,P0口可以为通用I/O口使用,P0.0-P0.7用于传送CPU的输入/输出数据,这时输出数据可以得到锁存,不需要外接专用锁存器,输入数据可以得到缓冲,增加了数据输入的可靠性;第二种情况是89C51带片外存储器,P0.0-P0.7在CPU访问片外存储

12、器时先传送片外存储器的低8位地址,然后传送CPU对片外存储器的读/写数据。P0口为开漏输出,在作为通用I/O使用时,需要在外部用电阻上拉。P1口:这8个引脚和P0口的8个引脚类似,P1.7为最高位,P1.0为最低位,当P1口作为通用I/O口使用时,P1.0-P1.7的功能和P0口的第一功能相同,也用于传送用户的输入和输出数据。P2口:这组引脚的第一功能与上述两组引脚的第一功能相同即它可以作为通用I/O口使用,它的第一功能和P0口引脚的第二功能相配合,用于输出片外存储器的高8位地址,共同选中片外存储器单元,但并不是像P0口那样传送存储器的读/写数据。P3口:这组引脚的第一功能和其余三个端口的第一

13、功能相同,第二功能为控制功能,每个引脚并不完全相同,如下表2所示:表2 P3口各位的第二功能P3口各位第二功能P3.0 RXT(串行口输入)P3.1 TXD(串行口输出)P3.2/INT0(外部中断0输入)P3.3/INT1(外部中断1输入)P3.4T0(定时器/计数器0的外部输入)P3.5T1(定时器/计数器1的外部输入)P3.6/WR(片外数据存储器写允许) P3.7/RD(片外数据存储器读允许)Vcc为+5V电源线,Vss接地。ALE:地址锁存允许线,配合P0口的第二功能使用,在访问外部存储器时,89C51的CPU在P0.0-P0.7引脚线去传送随后而来的片外存储器读/写数据。在不访问片

14、外存储器时,89C51自动在ALE线上输出频率为1/6震荡器频率的脉冲序列。该脉冲序列可以作为外部时钟源或定时脉冲使用。/EA:片外存储器访问选择线,可以控制89C51使用片内ROM或使用片外ROM,若/EA=1,则允许使用片内ROM, 若/EA=0,则只使用片外ROM。/PSEN:片外ROM的选通线,在访问片外ROM时,89C51自动在/PSEN线上产生一个负脉冲,作为片外ROM芯片的读选通信号。RST:复位线,可以使89C51处于复位(即初始化)工作状态。通常89C51复位有自动上电复位和人工按键复位两种。XTAL1和XTAL2:片内震荡电路输入线,这两个端子用来外接石英晶体和微调电容,即

15、用来连接89C51片内OSC(震荡器)的定时反馈回路。3.3 时钟电路 时钟电路设计 ADC0808在使用时,外围电压的连接比较简单,只需要对参考电压和时钟输入端进行设计即可。通常情况下,时钟的输入可以选用RC谐振电路,ADC0808可以进行A/D转换的时钟频率为1001460KHZ,典型值为640KHZ,这里选用R=10K欧姆.C=150PF的谐振电路,利用公式1/(1.1RC)计算后,此时的时钟频率约为606KHZ,与典型值十分接近。图5 时钟电路3.4 LED显示系统设计。图6 LED与单片机接口间的设计电压值的显示:最常用到的二进制转换成BCD码的方法是用除法。先用得到的16位二进制数

16、除以10000,得到的商就是模拟电压值的整数部分(模拟电压的输入为0-2V,所以整数部分只有1位),得到的余数是模拟电压值的小数部分;接下来用余数除以1000,商是十分位,余数作为被除数再除以100,商为百分位,余数再除以10,商为千分位。这样就将16位的二进制数转换成了4位BCD码。最后在通过程序将小数点左移两位,扩大100倍。3.5 总体电路设计经过以上的设计过程,可设计出基于单片机的简易数字直流电压表硬件电路原理图如图11所示。图7 简易数字电压表电路图4 程序设计4.1 程序设计总方案 根据模块的划分原则,将该程序划分初始化模块,A/D转换子程序和显示子程序,这三个程序模块构成了整个系

17、统软件的主程序,如图12所示。开始初始化调用A/D转换子程序调用显示子程序结束图8 数字式直流电压表主程序框图4.2 系统子程序设计4.2.1 初始化程序所谓初始化,是对将要用到的MCS_51系列单片机内部部件或扩展芯片进行初始工作状态设定,初始化子程序的主要工作是设置定时器的工作模式,初值预置,开中断和打开定时器等9。4.2.2 A/D转换子程序A/D转换子程序用来控制对输入的模块电压信号的采集测量,并将对应的数值存入相应的内存单元,其转换流程图如图13所示。开始启动转换A/D转换结束?输出转换结果数值转换显示结束图9 A/D转换流程图4.2.3 显示子程序显示子程序采用动态扫描实现四位数码

18、管的数值显示,在采用动态扫描显示方式时,要使得LED显示的比较均匀,又有足够的亮度,需要设置适当的扫描频率,当扫描频率在70HZ左右时,能够产生比较好的显示效果,一般可以采用间隔10ms对LED进行动态扫描一次,每一位LED的显示时间为1ms10。在本设计中,为了简化硬件设计,主要采用软件定时的方式,即用定时器0溢出中断功能实现11s定时,通过软件延时程序来实现5ms的延时。5 仿真5.1 软件调试 软件调试的主要任务是排查错误,错误主要包括逻辑和功能错误,这些错误有些是显性的,而有些是隐形的,可以通过仿真开发系统发现逐步改正。Proteus软件可以对基于微控制器的设计连同所有的周围电子器件一

19、起仿真,用户甚至可以实时采用诸如LED/LCD、键盘、RS232终端等动态外设模型来对设计进行交互仿真。Proteus支持的微处理芯片包括8051系列、AVR系列、PIC系列、HC11系列及Z80等等。Proteus可以完成单片机系统原理图电路绘制、PCB设计,更为显著点的特点是可以与u Visions3 IDE工具软件结合进行编程仿真调试8。本系统的调试主要以软件为主,其中,系统电路图的绘制和仿真我采用的是Proteus软件,而程序方面,采用的是C语言,用Keil软件将程序写入单片机。5.2 显示结果及误差分析5.2.1 显示结果1. 当IN0口输入电压值为0V时,显示结果如图14所示,测量

20、误差为0V。 图10 输入电压为0V时,LED的显示结果2.当IN0输入电压值为87V时,显示结果如图15所示。测量误差为0.1V。图11 输入电压为86V时,LED的显示结果3. 当IN0口输入电压值为156V时,显示结果如图16。测量误差为0.0V。图12 输入电压为156V时,LED的显示结果5.2.2 误差分析通过以上仿真测量结果可得到简易数字电压表与“标准”数字电压表对比测试表,如下表4所示:表4 简易数字电压表与“标准”数字电压表对比测试表标准电压值/V简易电压表测量值/V绝对误差/V00.003635.90.18484.00124124.10.1200200.00由于单片机AT8

21、9C51为8位处理器,当输入电压为5.00V时,ADC0808输出数据值为255(FFH),因此单片机最高的数值分辨率为0.0196V(5/255)。这就决定了电压表的最高分辨率只能到0.0196V,因为量程扩大20倍,所以分辨率减小,从上表可看到,测试电压一般以0.1V的幅度变化。 从上表可以看出,简易数字电压表测得的值基本上比标准电压值偏大0-0.1V,这可以通过校正ADC0808的基准电压来解决。因为该电压表设计时采用分压使2V作为电压,所以电压可能有偏差。结 论经过一段时间的努力,基于单片机的简易数字电压表基本完成。但设计中的不足之处仍然存在。这次设计是我第一次设计电路,并用Prote

22、us实现了仿真。在这过程中,我对电路设计,单片机的使用等都有了新的认识。通过这次设计学会了Proteus和Keil软件的使用方法,掌握了从系统的需要、方案的设计、功能模块的划分、原理图的设计和电路图的仿真的设计流程,积累了不少经验。本文设计主要实现了简易数字电压表测量一路电压的功能,详细说明了从原理图的设计、电路图的仿真再到软件的调试。其中有苦也有乐。苦的是自己的知识太贫乏,到处找资料,问同学;乐的是在付出过程中,我学到了许多的东西。在整个设计过程中,经常经常出现这样那样的问题,但是最后还是都得以解决,这个过程是值得我回味的,尤其是当看到自己的设计课题成功时,心中有一种成就感。挫折是一份财富,

23、经历是一份拥有。这次实习必将成为我人生旅途上一个非常美好的回忆!通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。此次课程设计,学到了很多课内学不到的东西,比如独立思考解决问题,出现差错的随机应变,都受益非浅,今后的课程设计应该更轻松,自己也都能扛的起并高质量的完成项目。鉴与参考,在这次课程设计中我的程序和设计原理是网上查了些相关的资料,这样提高了效率,才使我在规定的时间内顺利地完成了设计的任务。参考文献1 郭吕超. A/D转换器设计数字电压表.

24、武汉大学,20011,.2宋凤娟,孙军,李国忠.基于89C51单片机的数字电压表设计J .工业控制计算机,2007,(04).3ADC0808工作原理其程序, 百度文库,20124数码时钟电路的设计, 5AT89C51中文资料,百度文库附 录程序代码#include #include #define uchar unsigned char #define uchar unsigned char #define uint unsigned int sbit START=P30; sbit OE=P31; sbit EOC=P32; sbit P07=P07; sbit CLK=P34; ucha

25、r data led4; uint data tvdata; uchar code tv=0xfe,0xfd,0xfb,0xf7; uchar code a=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f; void delay(void) /延时程序 uint i; for(i=0;i2000) tvdata=2000; led0=tvdata%10; led1=tvdata/10%10; led2=tvdata/100%10; led3=tvdata/1000; for(k=0;k4;k+) P2=tvk; i=ledk; P0=ai;

26、if(k=2) P07 =1; delay(); void main(void) ET0=1; EA=1; TMOD=0x02; TH0=216; TL0=216; TR0=1; while(1) START=1; START=0; /启动转换 while(EOC=0); OE=1; tvdata=P1; tvdata*=20-0.01; OE=0; ledxianshi(); delay(); void t0(void) interrupt 1 using 0 CLK=CLK; 成绩评定表学生姓名: 贾晋 学号: 1313014041 班级:电子1302类别合计分值各项分值评分标准实际得分合计得分备注实践完成情况5010遵守课堂纪律,无旷课、迟到、早退、违反实验室纪律等情况。20对EDA设计软件使用熟练程度,设计流程的熟练程度与电路的工艺能力。20按设计要求完成了全部任务,能完整演示其设计内容,符合要求。报告完成情况5020报告文字通顺,内容翔实,论述充分、完整,立论正确,结构严谨合理,报告整体格式规范。20设计流程正确,论证严谨,逻辑性强;符号统一;图表完备、符合规范要求。10能对整个设计过程进行全面的总结,得出有价值的结论或结果;参考文献数量在3篇以上,格式符合要求,在正文中正确引用。总评成绩: 分 指导教师: (签字)日 期: 年 月 日

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号