AT89C52的简易数字电压表.docx
- 文档编号:8183192
- 上传时间:2023-01-29
- 格式:DOCX
- 页数:14
- 大小:142.62KB
AT89C52的简易数字电压表.docx
《AT89C52的简易数字电压表.docx》由会员分享,可在线阅读,更多相关《AT89C52的简易数字电压表.docx(14页珍藏版)》请在冰豆网上搜索。
AT89C52的简易数字电压表
目录
绪论1
第1章系统总体方案选择与说明2
1.1项目分析及其设计2
1.1.1通道转换方案设计2
1.1.2显示部分方案设计3
第2章系统总体结构与工作原理3
2.1系统结构框图3
2.2工作原理4
第3章硬件设计说明及计算方法4
3.1单片机的选择及时钟电路4
3.2LED显示电路设计与器件选择5
3.3A/D转换模块及转化电路设计7
第4章软件设计与说明8
4.1数字电压表系统软件设计方案确定8
4.2数字电压表应用程序设计11
第5章调试结果及其说明11
5.1调试结果及其说明11
总结12
参考文献14
附录A系统原理图15
附录B系统源程序16
绪论
数字电压表的诞生打破了传统电子测量仪器的模式和格局。
它显示清晰直观、读数准确,采用了先进的数显技术,大大地减少了因人为因素所造成的测量误差事件。
数字电压表是把连续的模拟量(直流输入电压)转换成不连续、离散的数字形式,并加以显示的仪表。
数字电压表把电子技术、计算技术、自动化技术的成果与精密电测量技术密切的结合在一起,成为仪器、仪表领域中独立而完整的一个分支,数字电压表标志着电子仪器领域的一场革命,也开创了现代电子测量技术的先河。
本设计采用了以单片机为开发平台,控制系采用AT89C52单片机,A/D转换采用ADC0809。
系统除能确保实现要求的功能外,还可以方便进行8路其它A/D转换量的测量、远程测量结果传送等扩展功能。
简易数字电压测量电路由A/D转换、数据处理、显示控制等组成。
关键词:
单片机AT89C52A/D转换ADC0809数据处理
模拟式电压表具有电路简单、成本低、测量方便等特点,但测量精度较差,特别是受表头精度的限制,即使采用0.5级的高灵敏度表头,读测时的分辨力也只能达到半格。
再者,模拟式电压表的输入阻抗不高,测高内阻源时精度明显下降。
数字电压表作为数字技术的成功应用,发展相当快。
数字电压表(DigitalVoItMe-ter,DVM),以其功能齐全、精度高、灵敏度高、显示直观等突出优点深受用户欢迎。
特别是以A/D转换器为代表的集成电路为支柱,使DVM向着多功能化、小型化、智能化方向发展。
DVM应用单片机控制,组成智能仪表;与计算机接口,组成自动测试系统。
目前,DVM多组成多功能式的,因此又称数字多用表(DigitalMultiMeter,DMM)。
DVM是将模拟电压变换为数字显示的测量仪器,这就要求将模拟量变成数字量。
这实质上是个量化过程,即将连续的无穷多个模拟量用有限个数字表示的过程,完成这种变换的核心部件是A/D转换器,最后用电子计数器计数显示,因此DVM的基本组成是A/D转换器和电子计数器。
DVM最基本功能是测直流电压,考虑到仪器的多功能化,可将其他物理量,如电阻、电容、交流电压、电流等,都变成直流电压,因此,还应有一个测量功能选择变换器,它包含在输入电路中。
DVM对直流电压直接测量时的测量精度最高,其他物理量在变换成直流电压时,受功能选择变换器精度的限制,测量精度有所下降。
第1章系统总体方案选择与说明
实现数字电压表的方案很多,目前广泛采用的时基于74系列逻辑器件,本设计将介绍基于单片机实现的方案。
1.1项目分析及其设计
方案设计此设计包含两个模块,通道转换和显示部分方案。
1.1.1通道转换方案设计
方案一:
考虑到ADC0808的8路模拟量输入本质上也是模拟开关,因此可以利用其8个模拟通道中的3个作为通道转换器,即根据通道对应的电压测量范围确定对应的电压方法倍数设计对应的放大电路。
方案二:
利用手动开关实现通道转换。
该方案可简化控制程序,消减系统开销。
缩短反应时间,不足之处在于操作麻烦。
综上所述:
方案二所需元件少、成本低且易于实现,则选此方案。
1.1.2显示部分方案设计
方案一:
单片机的P0、P2口分别接74LS248和ULN2003A芯片来驱动四位数码管
方案二:
直接用单片机的P1、P2口驱动数码管,此处把ADC0808的输出端接P1口,因为P1口能够驱动数码管。
综上所述,两个方案都可行,但方案二所需元件少、成本低,则选择此方案。
第2章系统总体结构与工作原理
2.1系统结构框图
根据项目要求,确定该系统的设计方案,图3-1为该系统设计方案的结构框图。
硬件电路由6各部分组成,即单片机、时钟电路、复位电路、LED显示电路、A/D装唤器和测量电压输入电路。
图2-1系统结构框图
2.2工作原理
系统采用12M晶振产生脉冲做AT89C51的内部时钟信号,通过软件设置单片机的内部定时器T0产生中断信号。
利用中断设置单片机的P2.4口取反产生脉冲做AT89C51的时钟信号。
通过键盘选择八路通道中的一路,将该路电压送入ADC0808相应通道,单片机软件设置ADC0808开始A/D转换,转换结束ADC0808的EOC端口产生高电平,同时将ADC0808的EO端口置为高电平,单片机将转换后结果存到片内RAM。
系统调出显示子程序,将保存结果转化为0.00-5.00V分别保存在片内RAM;系统调出显示子程序,将转化后数据查表,输出到LED显示电路,将相应电压显示出来,程序进入下一个循环。
第3章硬件设计说明及计算方法
根据设计要求与思路,确定该系统的设计方案。
硬件电路由5个部分组成,即单片机时钟电路、复位电路、4位显示器电路、A/D转换电路和键盘及测量电路。
3.1单片机的选择及时钟电路
根据初步设计方案的分析,设计这样一个简单的应用系统,可以选择带有EPROM的单片机,应用程序直接存储在片内,不用在外部扩展程序存储器,电路可以简化。
此电路选择Atmel公司生产的AT89C51。
AT89系列与MCS-51系列单片机相比有两大优势:
第一,片内程序存储器采用闪速存储器,使程序的写入更加方便;第二,提供了更小尺寸的芯片,使整个电路体积更小。
它以较小的体积、良好的性价比倍受青睐。
单片机工作的时间基准是由时钟电路提供的。
在单片机的XTAL1和XTAL2两个管脚,接一只晶振及两只电容就构成了单片机的时钟电路。
电路中,电容C1和C2对震荡电路有微调的作用,通常的取值范围位(30+10)pF。
石英晶体选择6MHz或12MHz都可以,其结果只是机器周期时间不同,影响计数器的计数初值,此设计取12MHz。
本设计使用的是CLOCK时钟脉冲触发。
3.2LED显示电路设计与器件选择
单片机应用系统中,通常都需要进行人机对话。
这包括人对应用系统的状态干预与数据输入,以及应用系统向人们显示运行状态与运行结果。
显示器、键盘电路就是用来完成人机对话活动的人机通道。
图3-2-1LED显示管脚
LED显示器的驱动是一个非常重要的问题,由图3-2-1可知,显示电路由LED显示器、段驱动电路和位驱动电路组成。
此设计不采用段驱动芯片和位驱动芯片,直接由单片机的P0,P2口驱动,实验证明可行。
在应用系统中,设计要求不同,使用的LED显示器的位数也不同,因此生产厂家就生产了多种位数、尺寸、型号不同的LED显示器。
在我们的设计中,选择4位一体的共阴极时钟型LED显示器,采用动态显示方式。
图3-2-2LED显示器接口电路原理
采用P0口作为LED的段码输出信号,P2口的低四位作为LED位码的输出控制信号。
硬件电路的连接如图3-2-2所示。
该电路的工作原理:
当P0口输出段码信号的BCD码后,输出具有一定驱动能力的七段字形码,由于4-LED的段码输入管脚是并联在一起的,所以每一位LED的段码输入管脚都能获得这个段码信号。
若要控制在每一时刻只有一位LED被点亮,必须靠位码信号控制。
P2口低四位输出位码信号后接到LED的位码控制端,因此P2口的低四位的位码信号在每一时刻只有一位是“1”,其他位全为“0”,然后按时间顺序改变输出“1”的位置,控制在每一时刻只有一位LED被点亮,达到动态显示的目的。
说明:
1位显示转换通道,2、3和4位显示电压表数值。
3.3A/D转换模块及转化电路设计
A/D转换器的功能是将模拟量转换为与其大小成正比的数字量信号。
能实现这种转换的原理和方法很多,此设计采用ADC0808转换器。
ADC0808是一种逐次逼近型的8位A/D转换器件,片内有8路模拟开关,可输入8个模拟量,单极性,量程为0~+5V。
3.3.1ADC0808简介
1.ADC0808引脚功能
图3-3-1 ADC0808引脚图
(1)IN0~IN7:
8路模拟量输入。
(2)ADDA、ADDB、ADDC:
模拟量输入通道地址选择,其8位编码分别对应IN0~IN7.
(3)ALE:
地址锁存允许,上升沿将通道选择信号存入地址锁存器。
(4)START:
ADC转换启动信号,正脉冲有效,引脚信号要求保持在200ns以上,其上升沿将内部逐次逼近寄存器清零。
(5)EOC:
转换解释信号,可做为中断请求信号或供CPU查询。
(6)CLK:
时钟输入端,要求频率范围在10kHz~1.2MHz.
(7)OE:
允许输出信号。
(8)Vcc:
芯片工作电压。
(9)VREF(+)、VREF(-):
基准参考电压的正、负值。
(10)OUT1~OUT8:
8路数字量输出端。
3.3.2 A/D转换电路设计
集成摸数转换芯片ADC0808实现的A/D转换电路被测信号由ADC0808模拟输入端输入,完成A/D转换后送入单片机,经相应处理后送出显示。
第4章软件设计与说明
进行应用软件设计时可以采用模块化结构设计,其优点是:
①每个模块的程序结构简单,任务明确,易于编写、调试和修改;②程序可读性好,对程序的修改可局部进行,其他部分可以保持不变,易于功能扩充和版本升级;
③易于使用频繁的子程序可以建立子程序,便于多个模块调用;
④便于分工合作,多个程序员同时进行程序的编写和调试工作,加快软件研制进度。
4.1数字电压表系统软件设计方案确定
(1)根据设计要求,根据系统所要完成的功能,设计出图4-1所示的功能模块。
图4-1数字电压表软件设计的模块
(2)程序的设计
①主程序的设计主程序的内容一般包括:
主程序的起始地址、中断服务额程序的起始地址、有关内存单元及相关部件的初始化和一些子程序调用等。
根据设计要求,设计出如图4-2所示的主程序流程图。
图4-2主程序流程图图4-3A/D转换子程序流程图
②A/D转换子程序的设计A/D转换程序的功能是采集数据,再整个系统设计中占有很高的地位。
当系统置好后,单片机扫描转换结束管脚P2.6的输入电平状态,当输入为高电平则转换完成,将转换的数值转换并显示输出。
若输入为低电平,则继续扫描。
程序流程图如图4-3所示。
③数码转换及显示子程序的设计由于人们日常习惯使用十进制数,而计算机的键盘输入、输出以及显示常采用二进制编码的十进制数(即BCD码)或ASCII码。
因此,在程序设计中经常要进行数码转换。
4.2数字电压表应用程序设计
(1)程序起始地址MCS-51系列单片机复位后,(PC)=0000H,而0003H~002BH分别为各中断源的入口地址。
所以,编程序时应在0000H处写一条跳转指令。
当CPU接到中断请求信号并予以响应后,CPU把当前的PC内容压入栈中进行保护,然后转入相应的中断服务程序入口处执行。
(2)LED动态显示延时LED显示器每一位的显示时间是5ms,延时5ms子程序是典型的软件定时程序。
说明:
LED采用7段字形代码,第2位采用把dp置1的方式显示小数点。
第5章调试结果及其说明
5.1调试结果及其说明
首先采用KeilμVision编译器进行源程序编译及仿真调试,调试好程序后将目标文件导入Proteus进行软件调试。
在ProteusISIS编辑窗口中单击开始仿真按钮,4位LED数码管显示相应的电压值。
当通道打到通道0时,滑动变阻器RV1的阻值调至最小位置时,LED显示00.00,正确显示数值;把RV1调至中间位置时,LED显示03.56,同样正确读出数据;当把RV1的阻值调至最大位置时,LED显示05.00,正确读出数据。
同理调试其他通道时,能正确显示通道数和电压值,证明该8路电压表合格。
调试结果如图5-1
图5-1调试结果图
总结
此次学期的单片机课设,我觉得是十分有意义的,而且是十分必要的。
在已度过的大学时间里,我们大多数接触的是专业课。
我们在课堂上掌握的仅仅是专业课的理论知识,如何去锻炼我们的实践能力?
如何把我们所学的专业基础课理论知识运用到实践中去呢?
我想做类似的课程设计就为我们提供了良好的实践平台。
此次单片机课程设计,我做的是电压测量这个基本的设计,虽然设计简单,但是所有的知识点都应用在设计中。
确定课设内容后,我查找大量相关材料,然后知识汇总,把有关课题的内容经过对比与分析,最后来完成课设。
电压测量在很多参考书上都有介绍,但运用到软件中时,出现各种不同的错如,我参考别人的程序,在老师的指导下,根据书本上所讲的有关知识点加以改进,编了一个新的程序,来实现功能。
在编程过程中我运用的是汇编语言,比较C语言来说,感觉比较简洁清晰,函数关系较为清晰,并可以减少程序的冗长。
通过这次课程设计我也发现了自身存在的不足之处,虽然感觉理论上已经掌握,但在运用到实践的过程中仍有意想不到的困惑,经过一番努力才得以解决。
这也激发了我今后努力学习的兴趣,我想这将对我以后的学习产生积极的影响。
总体来说,这次实习使我受益匪浅。
在摸索该如何设计电路使之实现所需功能的过程中,特别有趣,培养了我的设计思维,增加了实际操作能力。
在让我体会到了设计电路的艰辛的同时,更让我体会到成功的喜悦和快乐。
通过这两个星期的学习让我把书本上的知识转换成实际可操作的东西,虽然也做过实验,但课程设计这种系统和具有一定规模收获是更多的。
两周的设计完满结束了,经过自己的努力和同学的帮忙终于有了成果,特别离不开指导老师李老师悉心教导,李老师的精心指导和解说使我受益匪浅,相信他的工作作风和知识筑成都是我们学习榜样,给我很大的启迪。
感谢这些老师不畏辛劳,热心精心的指导。
在这里向他们说声谢谢,你辛苦了。
参考文献
[1]彭为等.单片机典型系统设计实例精讲[M].北京:
电子工业出版社,2006
[2]张毅刚等。
单片机原理与应用设计[M].北京:
电子工业出版社,2008
[3]王迎旭.单片机原理与应用.北京:
机械工业出版社,2004.7
[4]周向红.51系列单片机应用与实践教程.北京:
北京航空航天大学出版社,2008.5
[5]刘国荣.单片机微型计算机技术.北京:
机械工业出版社,1996
[6]周坚.单片机轻松入门(第2版).北京:
北京航空航天大学出版社,2009.1
附录A系统原理图
附录B系统源程序
ORG0000H
SJMPSTART
START:
MOVDPTR,#TAB;段码表首地址
MOVR4,#00H
MOVR5,#30
WAIT:
MOVP3,#0FFH
MOVA,P3
ANLA,#08H
MOV30H,A
CJNEA,#08H,DANLU
XUNHUAN:
MOVA,R4
LJMPLOOP
DANLU:
MOVP3,#0FFH
MOVA,P3
LOOP:
SWAPA
MOVP3,A
SWAPA
ANLA,#07H
MOVR0,A
CLRP2.5
SETBP2.5
CLRP2.5;启动AD转换
JNBP2.6,$;等待转换结束
SETBP2.7
MOVA,#0FFH
MOVP1,A
MOVA,P1;读取AD转换结果
CLRP2.7
MOVB,#51;AD转换结果转换成BCD码
DIVAB
MOVR1,A
MOVA,B
MOVB,#5
DIVAB
MOVR2,A
MOVR3,B
LCALLDISP
MOVA,30H
CJNEA,#08H,RETURN
DJNZR5,RETURN
MOVR5,#30
INCR4
CJNER4,#08H,RETURN
MOVR4,#00H
RETURN:
SJMPWAIT
DISP:
MOVA,R3;显示子程序
MOVCA,@A+DPTR
CLRP2.3
MOVP0,A
LCALLDELAY
SETBP2.3
MOVA,R2
MOVCA,@A+DPTR
CLRP2.2
MOVP0,A
LCALLDELAY
SETBP2.2
MOVA,R1
MOVCA,@A+DPTR
ADDA,#80H
CLRP2.1
MOVP0,A
LCALLDELAY
SETBP2.1
MOVA,R0
MOVCA,@A+DPTR
CLRP2.0
MOVP0,A
LCALLDELAY
SETBP2.0
RET
DELAY:
MOVR6,#20;延时10毫秒
D1:
MOVR7,#250
DJNZR7,$
DJNZR6,D1
RET
TAB:
DB3FH,06H,5BH,4FH,66H
DB6DH,7DH,07H,7FH,6FH
END
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- AT89C52 简易 数字 电压表
![提示](https://static.bdocx.com/images/bang_tan.gif)