1、单片机数字电压表第1章 概 述本次设计是利用单片机的原理和A/D转换来设计一个简易数字电压表。数字电压表的基本工作原理是利用A/D转换电路将待测的模拟信号转换成数字信号,通过相应换算后将测试结果以数字形式显示出来的一种电压表。较之于一般的模拟电压表,数字电压表具有精度高、测量准确、读数直观、使用方便等优点。电压表的数字化测量,关键在于如何把随时连续变化的模拟量转化成数字量,完成这种转换的电路叫模数转换器(A/D)。数字电压表的核心部件就是A/D转换器,由于各种不同的A/D转换原理构成了各种不同类型的DVM。一般说来,A/D转换的方式可分为两类:积分式和逐次逼近式。积分式A/D转换器是先用积分器
2、将输入的模拟电压转换成时间或频率,再将其数字化。根据转化的中间量不同,它又分为U-T(电压-时间)式和U-F(电压-频率)式两种。逐次逼近式A/D转换器分为比较式和斜坡电压式,根据不同的工作原理,比较式又分为逐次比较式及零平衡式等。斜坡电压式又分为线性斜坡式和阶梯斜坡式两种。在高精度数字电压表中,常采用由积分式和比较式相结合起来的复合式A/D转换器。本设计以AT89C51单片机为核心,以逐次比较型A/D转换器ADC0808、液晶显示器LCD为主体,构造了一款简易的数字电压表,能够测量1路051V直流电压,最小分辨率0.2V。 第2章 系统总体方案设计实现数字电压表的方案较多,目前广泛采用的是基
3、于74系列逻辑器件方案,本设计将介绍基于单片机实现的方案。74系列逻辑器件方案采用双积分电路+液晶显示器+逻辑电路+定时采样电路+数据处理实现,被测电压信号由信号输入端加到测量系统,进行预处理后送到后级电路。单片机系统方案采用输入处理电路+ADC0808+AT89C51+液晶显示实现,被测信号由ADC0808模拟输入端输入,电压围为0-51V进行采集,并在4位LED上进行显示,测试精度为0.02V。数字电压表主要由模数转换电路,单片机控制电路,时钟、复位电路和LED显示电路组成。其中数模转换电路由ADC0809芯片构成,将输入的模拟信号进行取样、转换,然后再将转换的数字信号送进单片机;单片机控
4、制电路主要实现对数据进行程序处理;显示电路主要用于将单片机的信号数据转换后显示测量结果。第3章系统方框图与工作原理3.1 系统方框图基于单片机系统的电压表的基本结构如下图所示单片机部分作为控制系统,显示部分显示测量结果,模数转换采集电压以及电阻值发送到单片机,通过改变滑动变阻器的阻值,可以改变电压表的值。3.2 工作原理A/D转换由集成电路0808完成,0808具有8路模拟输入端口,地址线(2325脚)可决定对哪一路模拟输入作A/D转换。22脚为地址锁存控制,当输入为高电平时,对地址信号进行锁存。6脚为测试控制,当输入一个2S宽高电平脉冲时,就开始A/D转换。7脚为A/D转换结束标志,当A/D
5、转换结束时,7脚输出高电平。9脚为A/D转换数据输出允许控制,当OE脚为高电平时,A/D转换数据从端口输出10脚为0808的时钟输入端,利用单片机30脚的六分频晶振频率再通过14024二分频得到1MHz时钟。单片机的P1、P3.0P3.3端口作为四位LED数码管显示控制。P3.5端口用作单路显示/循环显示转换按钮,P3.6端口用作单路显示时选择通道。P0端口作A/D转换数据读入用,P2端口用作0808的A/D转换控制。第4章 各单元硬件设计说明4.1 单片机功能及选用 系统设计使用MCS-51单片机8051芯片。8051芯片由以下部分组成:中央处理器、256单元的部数据存储器、4KB的程序存储
6、器、定时器/计数器、四个八位的I/O口,中断控制系统及时钟电路。图4.1所示为采用双列直插式封装的8051AH芯片管脚图。P0.0-P0.7接ADC0808的OUT1-OUT8,作为数字量的输入端口,P1.0-P1.7接数码显示管,P2.0接ADC0808的时钟信号。 图4.1 AT80C51单片机的引脚图4.2时钟电路与复位电路的设计时钟电路是计算机最核心的部分,它控制着计算机的工作MCS-51单片机允许的时钟频率典型值为12MHZ。80C51单片机部有一个高增益反相放大器,用于构成振荡器。反相放大器的输入端为XTAL1,输出端为XTAL2,分别是80C51的19脚和18脚。在XTAL1和X
7、TAL2两端跨接石英晶体及两个电容就可以构成稳定的自激振荡器。石英晶振起振后要能在XTAL2线上输出一个3V左右的正弦波,使MCS-51片的OCS电路按石英晶振相同频率自激震荡。通常,OCS的输出时钟频率fosc为0.5MHZ16MHZ,典型值为12MHZ电容器C1和C2通常取30pF左右,对震荡频率有微调作用。调节它们可以达到微调震荡周期fosc的目的。单片机的RST管脚为主机提供一个外部复位信号输入端口。复位信号是高电平有效,高电平有效的持续时间应为2个机器周期以上。单片机的复位方式有上电自动复位和手工复位两种。图4-2所示是51系列单片机常用的上电复位电路,只要Vcc上升时间不超过1ms
8、,它们都能很好地工作。复位以后,单片机各部件恢复到初始状态。电阻电容器件的参考值:R1=200,R2=1K,C3=22F。RET按键可以选择专门的复位按键,也可以选择轻触开关。电路图如图4-2所示。图4-2 时钟电路与复位电路4.3LED显示电路设计与器件选择单片机应用系统中,通常都需要进行人机对话。这包括人对应用系统的状态干预与数据输入,以及应用系统向人们显示运行状态与运行结果。显示器、键盘电路就是用来完成人机对话活动的人机通道。LED显示器的驱动是一个非常重要的问题,此设计不采用段驱动芯片和位驱动芯片,直接由单片机的P1,P2口驱动,实验证明可行。在应用系统中,设计要求不同,使用的LED显
9、示器的位数也不同,因此生产厂家就生产了多种位数、尺寸、型号不同的LED显示器。在我们的设计中,选择4位一体的共阳极时钟型LED显示器,采用动态显示方式。图4-2为本系统LED显示电路,采用P1口作为LED的段码输出信号,P2口的低四位作为LED位码的输出控制信号。图4-3 LED显示原理图4.4 A/D转换电路和测量电路设计1.ADC0808引脚功能图 ADC0808引脚图IN0IN7:8路模拟量输入。A、B、C:3位地址输入,2个地址输入端的不同组合选择八路模拟量输入。ALE:地址锁存启动信号,在ALE的上升沿,将A、B、C上的通道地址锁存到部的地址锁存器。D0D7:八位数据输出线,A/D转
10、换结果由这8根线传送给单片机。OE:允许输出信号。当OE=1时,即为高电平,允许输出锁存器输出数据。START:启动信号输入端,START为正脉冲,其上升沿清ADC0808的部的各寄存器,其下降沿启动A/D开始转换。EOC:转换完成信号,当EOC上升为高电平时,表明部A/D转换已完成。ADC0808部结构图 图 ADC0808部结构逐次逼近型A/D转换器ADC0808由八路模拟开关、地址锁存与译码器、比较器、D/A转换器、寄存器、控制电路和三态输出锁存器等组成。A/D转换电路设计图ADC0808与单片机的连接第5章 软件设计与说明5.1系统软件设计(流程图)图5.1为程序软件设计流程图 其中(
11、a)为主程序流程图,(b)为A/D转换子程序流程图。 图中A/D转换子程序是将0808转化后的数字量,需通过转化子程序转化成工程量并通过查表送到P1口送给LED显示。5.2 程序设计 (1)初始化程序系统上电时,初始化程序将70H77H存单元清0,P2口置0。(2)主程序在刚上电时,系统默认为循环显示8个通道的电压值状态。当进行一次测量后,将显示每一通道的A/D转换值,每个通道的数据显示时间为1s左右。主程序在调用显示子程序和测试子程序之间循环,主程序流程图见图5-1图5-1 主程序流程图(3) 显示子程序显示子程序采用动态扫描法实现四位数码管的数值显示。测量所得的A/D转换数据放在70H77
12、H存单元中,测量数据在显示时需转换成为十进制BCD码放在78H7BH存单元中,其中7BH存放通道标志数。寄存器R3用作8路循环控制,R0用作显示数据地址指针。(4)模/数转换测量子程序模/数转换测量子程序用来控制对0808八路模拟输入电压的A/D转换,并将对应的数值移入70H77H存单元。第6章 系统仿真与调试简易数字电压表与“标准”数字电压表测得的绝对误差应在0.2V以。在进行电路的局部调试之后,我又进行了系统整机调试。首先为ADC0808接上+51V的电压,为其它芯片接上+5V的工作电压。另外还要输入待测的模拟电压,该电压从0V电压开始输起,依次增大,直到达到待测电压的上限50V为止,记录
13、测量数据并分析系统性能。6.1 系统仿真调好程序后将目标程序导入Proteus进行软硬件调试,基于单片机实现的数字电压表测试值见表6-1所示。表6-1测试值与真实值标准电压值/V0.005.1010.220.4253040.245.450.0简易电压表测得值/V0.005.2010.220.42530.140.345.450.0绝对误差/V+0.00+0.1+0.00+0.00+0.00+0.1+0.1+0.00+0.00从表中可以看出,电压表测得值误差均在0.2V以,这与采用8位A/D转换器所能达到的理论误差精度相比较接近,因此在一般的应用场合都可以满足要求。6.2 性能分析(1)由于单片机
14、为8位处理器,当输入电压为51V时,输出数据值为255(FFH),因此单片机最大的数值分辨率为0.2V(51 /255)。这就决定了该电压表的最大分辨率(精度)只能达到0.2V。测试时电压数值的变化一般以0.2的电压幅度变化,如要获得更高的精度要求,应采用12位、13位的A/D转换器。(2)简易电压表测得的值基本上均比标准值偏大0.10.2V。这可以通过校正0809的基准电压来解决,因为该电压表设计时直接用7805的供电电源作为基准电压,电压可能有偏差。另外可以用软件编程来校正测量值。6.3调试结论仿真测试表明,系统性能良好,测量读数稳定易读、更新速度合理,直流电压测量围为051V,最小分辨率
15、为0.2V,满足任务书指标要求。但是,该系统也存在一定程度的不足,例如:1、输入电压易发生干扰不稳定,且驱动能力可能存在不足,需在被测信号的输入端加上一部分驱动电路,比如将量程转换电路改成带放大能力的自动量程转换电路,将幅值较小的信号经适当放大后再测量,可显著提高精度;2、输出量可用平均值算法来改善,使测量准确度更高。3、若能将测量的电压值实时保存,使用时将更方便。4、ADC0808可实现对8个通道的输入信号轮流转换,本设计仅仅使用了其中一个通道,造成了较大的资源浪费。若能对电路稍加改进,实现对多路信号的轮流测量并自动保存相应结果,其应用价值将会更大。第7章 设计总结两周的单片机课程设计很快就
16、过去了。在这短短的两周中,我们完成了课题的选择到查找相关资料、确定设计方案、硬件设计、编写程序、调试程序到最后运行成功。虽然期间遇到了很多问题,经历了不少挫折,但是我们最后尝到了成功的甜。最重要的是,我们充分运用了所学知识,也学到了很多书本外的知识。首先,我们从任务书得知本次设计是做一个简易数字电压表,测量围是0-51V,可以通过A/D转换把模拟量转换成数字量。然后我参照单片机应用与实践,把程序分为初始化程序,A/D转换子程序和显示子程序三个大的部分,一个一个的编写,分别调试和仿真。第一次的程序有很多错误,我利用我所学到的单片机知识认真排查错误,同时也向同学请教,终于能够运行成功。在连电路图的
17、时候由于自己的不细心,使得出现了很多本不应该出现的错误,比如刚刚开始发现LED显示管怎么也不亮,我把程序反复研究也没发现问题,最后终于找到原因,原来是我把显示管的电源接反了。在这短短两个星期,虽然有过郁闷、烦躁、苦恼的时候,但最重要的是我们都克服了。我们不仅强化了理论知识,也增强了独立思考问题和团结协作的能力。通过这次课程设计,同时也开阔了我们的视野,加强了我们合作的意识,为我们以后从事相关工作增强了自信心以及经验。在此,我要感我搭档的帮助和支持,当然还有老师的指导。第8章 参考文献1、51系列单片机应用与实践教程 周向红 编 北航2、单片机应用系统设计 何立民 编 北航3、单片机原理及应用
18、王迎旭 主编 机械工业4、51系列单片机设计实例 楼然苗 等编 北航5、51单片机应用系统开发典型实例戴家 等编 中国电力6、单片微型计算机原理及接口技术光东 等编 华中科技大学7、单片机实用系统设计技术 房小翠 编 国防工业附录A:系统电路原理图附录B: 程序清单 ORG 0000H LJMP MAIN ORG 0030HMAIN: MOV SP,#60H ANL P1,#0C0HW1: MOVX R0,A SETB P2.1 CALL DISP CLR P2.1FB: CPL P2.0 ACALL DL JB P3.0,ADC SJMP FBDL: RETWAIT: CALL DISP J
19、MP WAITADC: MOVX A,R0 CALL Y1 MOV R1,#05HDISP1: CALL DISP DJNZ R1,DISP1 JMP W1Y1: CLR C MOV R5,#00H MOV R4,#00H MOV R3,#08HNEXT: RLC A MOV R2,A MOV A,R5 ADDC A,R5 DA A MOV R5,A MOV A,R4 ADDC A,R4 MOV R4,A MOV A,R2 DJNZ R3,NEXT MOV A,R5 ADD A,R5 DA A MOV R5,A MOV A,R4 ADDC A,R4 DA A MOV R4,A RETDISP:
20、 MOV A,#10H MOV P2,A MOV A,R5 ANL A,#0FH MOV DPTR,#TABLE1 MOVC A,A+DPTR MOV P1,A LCALL DELAY MOV A,#20H MOV P2,A MOV A,R5 ANL A,#0F0H SWAP A MOV DPTR,#TABLE2 MOVC A,A+DPTR MOV P1,A LCALL DELAY MOV A,#40H MOV P2,A MOV A,R4 ANL A,#0FH MOV DPTR,#TABLE1 MOVC A,A+DPTR MOV P1,A LCALL DELAY CLR A RETTABLE1:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0D8H,80H,90H,88H,83H,0C6H,0A1H,86H,8EHTABLE2:DB 40H,79H,24H,30H,19H,12H,02H,58H,00H,10H,08H,03H,46H,21H,06H,0EHDELAY: MOV R6,#10DE1: MOV R7,#248 DJNZ R7,$ DJNZ R6,DE1 RET END
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1