《基于AT89C52单片机的简易数字电压表课程设计》由会员分享,可在线阅读,更多相关《基于AT89C52单片机的简易数字电压表课程设计(20页珍藏版)》请在金锄头文库上搜索。
1、目录绪论1第1章 系统总体方案选择与说明21.1 项目分析及其设计21.1.1 通道转换方案设计21.1.2 显示部分方案设计3第2章 系统总体结构与工作原理32.1 系统结构框图32.2 工作原理4第3章 硬件设计说明及计算方法43.1 单片机的选择及时钟电路43.2 LED显示电路设计与器件选择53.3 A/D转换模块及转化电路设计7第4章 软件设计与说明84.1 数字电压表系统软件设计方案确定84.2 数字电压表应用程序设计11第5章 调试结果及其说明115.1 调试结果及其说明11总结12参考文献14附录A 系统原理图15附录B 系统源程序16绪论 数字电压表的诞生打破了传统电子测量仪
2、器的模式和格局。它显示清晰直观、读数准确,采用了先进的数显技术,大大地减少了因人为因素所造成的测量误差事件。数字电压表是把连续的模拟量(直流输入电压)转换成不连续、离散的数字形式,并加以显示的仪表。数字电压表把电子技术、计算技术、自动化技术的成果与精密电测量技术密切的结合在一起,成为仪器、仪表领域中独立而完整的一个分支,数字电压表标志着电子仪器领域的一场革命,也开创了现代电子测量技术的先河。本设计采用了以单片机为开发平台,控制系采用AT89C52单片机,A/D转换采用ADC0809。系统除能确保实现要求的功能外,还可以方便进行8路其它A/D转换量的测量、远程测量结果传送等扩展功能。简易数字电压
3、测量电路由A/D转换、数据处理、显示控制等组成。关键词: 单片机 AT89C52 A/D转换 ADC0809 数据处理模拟式电压表具有电路简单、成本低、测量方便等特点,但测量精度较差,特别是受表头精度的限制,即使采用0.5级的高灵敏度表头,读测时的分辨力也只能达到半格。再者,模拟式电压表的输入阻抗不高,测高内阻源时精度明显下降。数字电压表作为数字技术的成功应用,发展相当快。数字电压表(Digital VoIt Me-ter,DVM),以其功能齐全、精度高、灵敏度高、显示直观等突出优点深受用户欢迎。特别是以A/D转换器为代表的集成电路为支柱,使DVM向着多功能化、小型化、智能化方向发展。DVM应
4、用单片机控制,组成智能仪表;与计算机接口,组成自动测试系统。目前,DVM多组成多功能式的,因此又称数字多用表(Digital Multi Meter,DMM)。DVM是将模拟电压变换为数字显示的测量仪器,这就要求将模拟量变成数字量。这实质上是个量化过程,即将连续的无穷多个模拟量用有限个数字表示的过程,完成这种变换的核心部件是A/D转换器,最后用电子计数器计数显示,因此DVM的基本组成是A/D转换器和电子计数器。DVM最基本功能是测直流电压,考虑到仪器的多功能化,可将其他物理量,如电阻、电容、交流电压、电流等,都变成直流电压,因此,还应有一个测量功能选择变换器,它包含在输入电路中。DVM对直流电
5、压直接测量时的测量精度最高,其他物理量在变换成直流电压时,受功能选择变换器精度的限制,测量精度有所下降。第1章 系统总体方案选择与说明实现数字电压表的方案很多,目前广泛采用的时基于74系列逻辑器件,本设计将介绍基于单片机实现的方案。1.1 项目分析及其设计方案设计此设计包含两个模块,通道转换和显示部分方案。1.1.1 通道转换方案设计方案一:考虑到ADC0808的8路模拟量输入本质上也是模拟开关,因此可以利用其8个模拟通道中的3个作为通道转换器,即根据通道对应的电压测量范围确定对应的电压方法倍数设计对应的放大电路。方案二:利用手动开关实现通道转换。该方案可简化控制程序,消减系统开销。缩短反应时
6、间,不足之处在于操作麻烦。综上所述:方案二所需元件少、成本低且易于实现,则选此方案。1.1.2 显示部分方案设计方案一:单片机的P0、P2口分别接74LS248和ULN2003A芯片来驱动四位数码管方案二:直接用单片机的P1、P2口驱动数码管,此处把ADC0808的输出端接P1口 ,因为P1口能够驱动数码管。综上所述,两个方案都可行,但方案二所需元件少、成本低,则选择此方案。第2章 系统总体结构与工作原理2.1 系统结构框图根据项目要求,确定该系统的设计方案,图3-1为该系统设计方案的结构框图。硬件电路由6各部分组成,即单片机、时钟电路、复位电路、LED显示电路、A/D装唤器和测量电压输入电路
7、。 图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显示电路,将相应电
8、压显示出来,程序进入下一个循环。第3章 硬件设计说明及计算方法 根据设计要求与思路,确定该系统的设计方案。硬件电路由5个部分组成,即单片机时钟电路、复位电路、4位显示器电路、A/D转换电路和键盘及测量电路。3.1 单片机的选择及时钟电路 根据初步设计方案的分析,设计这样一个简单的应用系统,可以选择带有EPROM的单片机,应用程序直接存储在片内,不用在外部扩展程序存储器,电路可以简化。此电路选择Atmel公司生产的AT89C51。AT89系列与MCS-51系列单片机相比有两大优势:第一,片内程序存储器采用闪速存储器,使程序的写入更加方便;第二,提供了更小尺寸的芯片,使整个电路体积更小。它以较小的
9、体积、良好的性价比倍受青睐。单片机工作的时间基准是由时钟电路提供的。在单片机的XTAL1和XTAL2两个管脚,接一只晶振及两只电容就构成了单片机的时钟电路。电路中,电容C1和C2对震荡电路有微调的作用,通常的取值范围位(30+10)pF。石英晶体选择6MHz或12MHz都可以,其结果只是机器周期时间不同,影响计数器的计数初值,此设计取12MHz。本设计使用的是CLOCK时钟脉冲触发。3.2 LED显示电路设计与器件选择单片机应用系统中,通常都需要进行人机对话。这包括人对应用系统的状态干预与数据输入,以及应用系统向人们显示运行状态与运行结果。显示器、键盘电路就是用来完成人机对话活动的人机通道。
10、图3-2-1 LED显示管脚LED显示器的驱动是一个非常重要的问题,由图3-2-1可知,显示电路由LED显示器、段驱动电路和位驱动电路组成。此设计不采用段驱动芯片和位驱动芯片,直接由单片机的P0,P2口驱动,实验证明可行。在应用系统中,设计要求不同,使用的LED显示器的位数也不同,因此生产厂家就生产了多种位数、尺寸、型号不同的LED显示器。在我们的设计中,选择4位一体的共阴极时钟型LED显示器,采用动态显示方式。图3-2-2 LED显示器接口电路原理采用P0口作为LED的段码输出信号,P2口的低四位作为LED位码的输出控制信号。硬件电路的连接如图3-2-2所示。该电路的工作原理:当P0口输出段
11、码信号的BCD码后,输出具有一定驱动能力的七段字形码,由于4-LED的段码输入管脚是并联在一起的,所以每一位LED的段码输入管脚都能获得这个段码信号。若要控制在每一时刻只有一位LED被点亮,必须靠位码信号控制。P2口低四位输出位码信号后接到LED的位码控制端,因此P2口的低四位的位码信号在每一时刻只有一位是“1”,其他位全为“0”,然后按时间顺序改变输出“1”的位置,控制在每一时刻只有一位LED被点亮,达到动态显示的目的。说明:1位显示转换通道,2、3和4位显示电压表数值。3.3 A/D转换模块及转化电路设计A/D转换器的功能是将模拟量转换为与其大小成正比的数字量信号。能实现这种转换的原理和方
12、法很多,此设计采用ADC0808转换器。ADC0808是一种逐次逼近型的8位A/D转换器件,片内有8路模拟开关,可输入8个模拟量,单极性,量程为0+5V。3.3.1 ADC0808简介1. ADC0808引脚功能图3-3-1ADC0808引脚图(1) IN0IN7:8路模拟量输入。(2) ADDA、ADDB、ADDC:模拟量输入通道地址选择,其8位编码分别对应IN0IN7.(3) ALE:地址锁存允许,上升沿将通道选择信号存入地址锁存器。(4) START:ADC转换启动信号,正脉冲有效,引脚信号要求保持在200ns以上,其上升沿将内部逐次逼近寄存器清零。(5) EOC:转换解释信号,可做为中
13、断请求信号或供CPU查询。(6) CLK:时钟输入端,要求频率范围在10kHz1.2MHz.(7) OE:允许输出信号。(8) Vcc:芯片工作电压。(9) VREF(+)、VREF(-):基准参考电压的正、负值。(10) OUT1OUT8:8路数字量输出端。3.3.2A/D转换电路设计集成摸数转换芯片ADC0808实现的A/D转换电路被测信号由ADC0808模拟输入端输入,完成A/D转换后送入单片机,经相应处理后送出显示。第4章 软件设计与说明进行应用软件设计时可以采用模块化结构设计,其优点是:每个模块的程序结构简单,任务明确,易于编写、调试和修改;程序可读性好,对程序的修改可局部进行,其他
14、部分可以保持不变,易于功能扩充和版本升级;易于使用频繁的子程序可以建立子程序,便于多个模块调用;便于分工合作,多个程序员同时进行程序的编写和调试工作,加快软件研制进度。4.1 数字电压表系统软件设计方案确定(1)根据设计要求,根据系统所要完成的功能,设计出图4-1所示的功能模块。 图4-1 数字电压表软件设计的模块(2)程序的设计主程序的设计 主程序的内容一般包括:主程序的起始地址、中断服务额程序的起始地址、有关内存单元及相关部件的初始化和一些子程序调用等。根据设计要求,设计出如图4-2所示的主程序流程图。 图4-2 主程序流程图 图4-3 A/D转换子程序流程图 A/D转换子程序的设计 A/
15、D转换程序的功能是采集数据,再整个系统设计中占有很高的地位。当系统置好后,单片机扫描转换结束管脚P2.6的输入电平状态,当输入为高电平则转换完成,将转换的数值转换并显示输出。若输入为低电平,则继续扫描。程序流程图如图4-3所示。数码转换及显示子程序的设计 由于人们日常习惯使用十进制数,而计算机的键盘输入、输出以及显示常采用二进制编码的十进制数(即BCD码)或ASCII码。因此,在程序设计中经常要进行数码转换。 4.2 数字电压表应用程序设计(1)程序起始地址 MCS-51系列单片机复位后,(PC)=0000H,而0003H002BH分别为各中断源的入口地址。所以,编程序时应在0000H处写一条跳转指令。当CPU接到中断请求信号并予以响应后,CPU把当前的PC内容压入栈中进行保护,然后转入相应的中断服务程序入口处执行。(2)LED动态显示延时 LED显示器每一位的显示时间是5ms,延时5ms子程序是典型的软件定时程序。说明:LED采用7段字形代码,第2位采用把dp置1的方式显示小数点。第5章 调试结果及其说明5.1 调试结果及其说明