基于单片机的智能数字电压表的设计_第1页
基于单片机的智能数字电压表的设计_第2页
基于单片机的智能数字电压表的设计_第3页
基于单片机的智能数字电压表的设计_第4页
基于单片机的智能数字电压表的设计_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、目录前言1第章方案选择及总体设计21.1设计目的21.2作品要求21.3实验器材31.4总体设计31.5模块方案选择与认证3第2章 硬件设计及电路图42.1.AT89S52的主要性能42.2.ADC0832功能特点72.3. 显示部分82.4电源电路82.5复位电路92.6时钟电路:92.7系统原理图9第三章 系统程序设计103.1软件总体框架设计10第四章 实物制作12实物的制作:12第五章 调试说明135.1.软件调试:135.2.硬件调试135.3.实物的调试13参考文献14附件一15前言单片机是一种面向控制的大规模集成电路模块,具有功能强、体积小、可靠性高、价格低廉等特点,在工业控制、

2、数据采集、智能仪表、机电一体化、家用电器等领域得到了广泛的应用,极大的提高了这些领域的技术水平和自动化程度,在一定程度上限制了这类产品的普及和推广。在电量的测量中,电压、电流和频率是最基本的三个被测量,其中电压量的测量最为经常。而且随着电子技术的发展,更是经常需要测量高精度的电压,所以数字电压表就成为一种必不可少的测量仪器。数字电压表(Digital Voltmeter)简称DVM,它是采用数字化测量技术,把连续的模拟量(直流或交流输入电压)转换成不连续、离散的数字形式并加以显示的仪表。由于数字式仪器具有读数准确方便、精度高、误差小、灵敏度高和分辨率高、测量速度快等特点而倍受青睐。第章方案选择

3、及总体设计1.1设计目的 通过制作简易数字电压表,加深对所学专业知识的认识,提高对单片机的应用能力,提高收集文献,资料的能力,从而达到综合运用所学的知识进行电子产品设计,制作与调试。 1.2作品要求 基本功能: 1)电压测量范围0-5V 2)能用数码管显示电压值 3)测量精度是0.1V1.3实验器材 AT89S51芯片,AT89S52芯片,共阴极数码管,晶振,排线电阻(10K),电阻(10K),极性电容一个(10uF),无极性电容两个(30pF),05V电源,若干导线。1.4总体设计本设计从各个角度分析了由单片机组成的数字电压表的设计过程及各部分电路的组成及其原理,并且分析了程序如何驱动单片机

4、进而使系统运行起来的原理及方法。框图如下:量程控制电路A/D转换器AD0832模拟电压输入89S52单片机电压显示器电源电路1.5模块方案选择与认证根据设计要求,系统可分为A/D转换模块,接口模块,显示模块。 A/D转换模块: 方案一:采用ADC0804转换芯片,是一个8位、单通道的A/D转换器,因其价格低廉而在要求不高的场合得到广泛应用。ADC0804主要特点是:模数转换时间大约100us;方便的TTL或CMOS标准接口;可以满足差分电压输入;具有参考电压输入端;内含时钟发生器;单电源工作时输入信号电压范围是0V5V;不需要调零。方案二:采用ADC0832转换芯片,功耗低,性能价格比较高,适

5、宜在袖珍式的智能仪器仪表中使用。其主要特点是:8位分辨率,其最高分辨级可达 256级,可以适应一般的模拟量转换要求。逐次逼近型,5V单电源供电,输入模拟信号电压范围为05V,输入输出电平与TTL和CMOS兼容。在250KHZ时钟频率时,转换时间为32 us,具有两个可供选择的模拟输入通道。芯片具有双数据输出可作为数据校验,减少数据误差,转换速度快且稳定性强。通过DI数据输入端,可以容易地实现通道功能的选择。由于模拟转换电路的种类繁多,通过对精度,转换速度和稳定性方面考虑,固选择方案二采用ADC0832为本次设计的转换芯片。接口模块:方案一:采用AT89S51单片机作为系统的控制单元,通过A/D

6、转换器将模拟量转换为数据量送入单片机中,再由单片机送到显示模块。此方案各类功能易于实现,成本低,功耗低,显示稳定。方案二:采用AT89S52拥有AT89S51的基本特点之外,此外AT89S52可通过软件设置省电模式。空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。在烧写过程中由于AT89S51结果未能测试成功,经过几次的烧写,测试结果还是不如意;当我们烧写AT89S52时,测试成功。同时,由于市场的条件限制,我们通过比较,选择了方案二。第2章 硬件设计及电路图2.1.AT89S52的主

7、要性能(1)与MCS-51单片机产品兼容 (2)8K字节在系统可编程Flash存储器 (3)1000次擦写周期 (4)全静态工作:0Hz33MHz (5)32个可编程I/O口线 (6)3个16位定时器/计数器 (7)5个中断源 (8)全双工UART串行通道 (9)低功耗空闲和掉电模式 (10)掉电后中断可唤醒 (11)灵活的ISP编程 (12)4.0-5.5V电压工作范围AT89S52芯片有40条引脚,双列直插式封装引脚如下图所示:Vcc(40):电源+5V Vss(20): 接地XTAL1(19)和XTAL2(18):使用内部振荡电路时,用来接石英晶体和电容;使用外部时钟时,用来输入时钟脉冲

8、。P0口(3932):是一组8位漏极开路行双向I/O口,也既地址/数据总线复用口。可作为输出口使用时,每位可吸收电流的方式驱动8个TTL逻辑电路,对端口写“1”可作为高阻抗输入输入端用。在访问外部数据存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。在Flash编程时,PO口接收指令字节,而在程序校验时,输出指令字节,校验时,要求接上拉电阻。P1口(18):是一个内部有上拉电阻的8位双向I/O口,P1的输入缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输出口。作输入口时,因为内部存在上拉电阻,某

9、个引脚被外部信号拉低时输出一个电流(I)。Flash编程和程序校验期间,P1口接收8位地址。P2口(2128):是一个带有内部上拉电阻的8位双向I/O口,P2的输入缓冲极可以驱动(输入或输出电流)4个TTL逻辑门电路。对端口“1”,通过内部的上拉电阻把端口拉到高电平,此时和作为输出口,作输出口时,因为存在内部上拉电阻,某个引脚被外部信号拉低时会输出一个电流。在访问外部存储器或1位地址的外部数据存储器(例如执行MOVXDPTR指令)时,P2口送出高8位地址数据。在访问8位地址的外部数据存储器(如执行MOVXRI指令)时,P2口线的内容(也既特殊功能寄存器(SFR)区中R2寄存器的内容),在整个访

10、问期间不改变。Flash编程或校验时,P2亦接收高地址和其他控制信号。 P3口(1017):是一组带有内部上拉电阻的8位双向I/O口,P1的输入缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对P3口写入“1”时,它们被内部上拉电阻拉高并可作为输出端口。作输出端口时,被外部拉低的P3口将用上拉电阻输出电流。P3口除可作为一般的I/O口线外,更重要的用途是它的第二功能,如图2-4所示:P3口还接收一些用于Flas 闪速存储器编程和程序校验的控制信号。ALE/(30):地址锁存信号输出端。在访问片外丰储器时,若ALE为有效高电平,则P0口输出地址低8位,可以用ALE信号作外部地址锁存信号,也可

11、作系统中其它芯片的时钟源。第二功能是对EPROM编程时的编程脉冲输入端。RST/VPD(9):复位信号输入端。AT89S52接能电源后,在时钟电路作用下,该脚上出现两个机器周期以上的高电平,使内部复位。第二功能是VPD,即备用电源输入端。当主电源Vcc发生故障,降低到低电平规定值时,VPD将为RAM提供备用电源,发保证存储在RAM中的信号不丢失。AT89S52通常采用上电自动复位和开关手动复位,我们采用的就是这种方法。/Vpp(31):内部和外部程序存储器选择线。=0时访问外部ROM 0000HFFFFH;=1时,地址0000H0FFFH空间访问内部ROM,地址1000HFFFFH空间访问外部

12、ROM。(29):片外程序存储器选通信号,低电平有效。2.2.ADC0832功能特点ADC0832是美国国家半导体公司生产的串行接口8位A/D转换器,通过3线接口与单片机连接,功耗低,性价比高,适宜在袖珍的智能仪器仪表中使用。ADC0832为8位分辨率A/D转换芯片,其最高分辨率可达256级,可以适应一般的模拟量转换要求。芯片具有双数据输出可作为数据校验,以减少误差,转换速度快且稳定性强。独立的芯片使能输入,使多器件连接和处理器控制变得更加方便。通过DI数据输入端,可以轻易地实现通道功能的选择。其主要特点如下:(1)8位分辨率,逐次逼近型,基准电压为5V;(2)5V单电源供电;(3)输入模拟信

13、号电压范围为05V;(4)输入和输出电平与TTL和CMOS兼容;(5)在250Khz的时钟频率时,转换时间为32us;(6)具有2个可供选择的模拟输入通道;(7)功耗低(15mw);(8)支持SPI方式。 1外部引脚及其说明 ADC0832有DIP和SOIC;两种封装,DIP封装的ADC0832引脚排列如下图所示:各引脚说明:(1) CS:片选端,低电平有效;(2) CH0、CH1:两路模拟信号输入端;(3) DI:两路模拟信号输入选择控制端;(4) DO:模拟转换结果串行输出端;(5) CLK:串行时钟输入端;(6) VCC/Vref:电源端和基准电压输入端;(7) GND:电源地;2单片机

14、对ADC0832的控制原理 一般情况下,ADC0832与单片机的接口应为4条数据线,分别是CS、CLK、DI、DO。当ADC0832未工作时,其CS端应为高电平,此时芯片被禁用,CLK和DI、DO的电平可任意。当要进行A/D转换时,需先将CS置低,并且保持低电平直到转换完全结束。此时芯片开始转换工作,同时由处理器向芯片时钟输入端CLK提供脉冲,DI在第一个时钟脉冲到来之前为高电平,表示启动位。在第二、第三个时钟脉冲到来之前,DI端输入2位数据用于选择通道功能,其功能表项见下表。输入形式配置位选择通道CH0CH1CH0CH1差分输入00+01+单端输入10+11+到第三个时钟脉冲到来之后,DI端

15、就失去作用,此后DO端则开始利用,数据输出DO进行转换数据的读取。从第4个时钟脉冲开始由DO端输出转换数据的最高位D7,随后每一个脉冲DO端输出下一位数据。直到第11个脉冲发出最低位数据DO,一个字节的数据输出完成。也正是从此位开始输出下一个反向字节的数据,既从第11个时钟脉冲输出DO,随后输出的8位数据,到第19个脉冲时数据输出完成,也标志着一次A/D转换的结束。最后将CS置高电平禁用芯片,将转换好的数据进行处理就可以了。2.3. 显示部分 显示部分使用型号为“LG5641BH 0.56”LED数码管,该型号数码管为4位一体数码管,共12个引脚,其中8个为段选,4个为位选。如下图所示:共阳极

16、 4位数码管 LG5641BH 0.56 四联共阳 红 从左到右 从上倒下像这个图片,对于共阳极的LG5641BH来说,是怎么读的呢?图上的六条指针从左至右怎么读呢?正面看的话,上面6脚,下面6脚,共12脚上面从左到右是1,a,f,2,3,b下面从左到右是e,d,dp,c,g,4其中1,2,3,4是4个数码管的位选2.4电源电路在电路部分,电源采用5V直流电源VDD供电,为AT89S51单片机、芯片DS1302及晶振供电。由在接电源的时候一定要注意正负极,如果接反了的话,容易将稳压管烧坏。 图24电源电路2.5复位电路单片机的复位方式主要有上电自动复位和按钮手动复位。为了保证单片机系统有效复位

17、,要求RST端脚维持高电平大于10MS以上。电阻和电容的值随时钟频率的不同而变化。图25复位电路2.6时钟电路:时钟电路是外部时钟和内部时钟组成。内部是由单片机本身及外部12MHZ的晶振和两个电容构成工作主频时钟电路,这样外电源断开时钟也不会停止。图6时钟电路2.7系统原理图单片机AT89S51是本系统的核心部分,根据以上各功能模块得到应用电路总原理图。原理图如2.9所示:图2.7系统原理图第三章 系统程序设计3.1软件总体框架设计系统软件的总体框架,主程序采用死循环结构,在其中调用了三个子程序,为AD转换子程序,数据处理子程序,动态显示子程序, 在系统上电开始测量前,要用万用表的电压档对被测

18、电压进行估测,然后以此选择适当的量程,防止过大电压烧坏A/D转换器。选择好量程之后就可以对系统上电测量了。系统上电即初始化,首先,单片机片选A/D转换器,然后发出信号启动A/D转换。此时单片机内部定时/计数器也开始工作,不断扫描A/D转换结束端口有无结束信号。若有,即启动信号采集,对A/D转换器的数据输出口送来的数值进行存储,数据处理完之后,利用查表法将电压数值送显示器显示出来。流程如图3.1.1所示,数据处理子程序流程图如图3.1.2所示转换值×2高8位放R7,低8位放R6调用数位分离子程序图3.1_2 时序图返回开始系统初始化启动A/D转换采集A/D转换值显示电压数值END图3.

19、1_1 软件总体框架第四章 实物制作实物的制作:1、打印菲林纸是整个电路板制作过程中至关重要的一步,打印时确保打印出的电路图清晰。 2、 钢锯据条一片,木工细砂纸一张。用钢锯据条裁减覆铜板到合适大小,注意在裁减时留点余量,不要小了,毕竟据条也是有厚度的用木工砂纸打磨使边界光滑平整。3、在实验室做好数字电压表电路的印刷电路板,最后检查印刷电路板有无断线,是否和PCB一致。把打印好的转印纸有字的一面平铺到覆铜板上。先加热塑机到120度,将包装好的铜板通过热塑机,重复压两次,以防电路板断线,等板子冷了之后将纸撕掉,就可以看见完整的电路图了。如果发现有断线地方就用信号笔在断线的地方补画一下,等板干了再

20、腐蚀。 4、腐蚀。三氯化铁或盐酸双氧水,这里用三氯化铁。用三氯化铁溶液进行腐蚀,用开水来融化三氯化铁,在反应中用开水来维持温度,我用化学上说的水浴,也就是在容器下放一个水盆来盛开水,在反应中不断的要它加快它的腐蚀速度。要时刻注意腐蚀的进度,特别是在线宽小的时候,腐蚀刚完成就要马上拿开并冲洗干净,用布擦干。5、钻孔。钻孔。首先选择好合适的钻头,以钻普通接插件孔为例,选择0.95mm的钻头,安装好钻头后,将电路板平放在钻床平台上,打开钻床电源,将钻头压杆慢慢往下压,同时调整电路板位置,使钻孔中心点对准钻头,按住电路板不动,压下钻头压杆,这样就打好一个孔。提起钻头压杆,移动电路板,调整电路板其它钻孔

21、中心位置,以便钻其它孔,注意此时钻孔为同型号。对于其它型号的孔,更换对应规格的钻头后,按上述同样的方法钻孔。7、除去后就是焊接了。在焊接之前,最好在面包板上按照原理图检查连接元件,看功能是否实现,如果功能实现了,就按照安装图焊接元件。在制作电路板的时候,我们先将小的元件焊上去,按跳线电阻电容晶振发光二极管的顺序焊接,接着再把芯片底座按键排插,等大点的元件焊上去,最后才将LED的排插焊上去,在焊晶振的时候我们特别注意了,我们使它紧靠电路板,是为了让它的工作频率更稳定,提高它的抗干扰能力。焊接过程中要快,避免烧坏元件,焊盘要光亮,大小适当。焊好之后检查有没有虚焊漏焊或者短路的地方。至此电路板制作完

22、毕。第五章 调试说明5.1.软件调试:启动ADK51软件,输入程序,并保存为××.ASM文件。建立项目:执行“文件/新建项目”在弹出的加入模块窗口中选择程序的文件名,点击“打开”保存项目。双击项目窗口中模块下的××.ASM文件,打开项文件。编译程序:点击“项目/全部编译”,如出现错误,则修改程序,再重复以上步骤,直到编译成功。将编译好的程序烧写到芯片中:打开SU*软件,首先点击菜单栏的器件,选择AT89S51,其次点击菜单栏编辑运行,依次添加擦除(erase)、再次检查擦除(blackerase)、编译、运行,发现在烧制过程中,擦除等正确,但结果显示是失

23、败,经几次烧制最终AT89S51烧坏了,于是立即采用另一个方案,将芯片换成AT89S52,按照上面烧制过程将程序烧写到AT89S52中,(注意在器件中要选择AT89S52)。接上电源,刚开始的时候除了不能显示其他的功能都能实现,经过多次修改软件最终基本能正常显示。5.2.硬件调试(1)正确接入+5V直流电源,若亮则表明AT89S52以及输出部分电路都能够正常工作。供电之后,数码管出现一闪一闪的。检查电路没有坏。看程序,也没有错误,运行编译都正常,将电路板接触加固,以防虚焊,稍作改正之后仍不行,数码管状态没有改变。再次检查电路板、元器件及程序,。输入信号,测试正确,可以显示正确结果。调试完毕。样

24、机所用的基本电源为5V,经测量,其电压值,符合要求。根据硬件电气原理图和装配图检查了样机线路正确。元器件的型号、规格和安装符合要求。在不插入AT89S52芯片的情况下,对样机各插件上的引脚的电压进行了测量,大部分正常,少数由于虚焊所致,断电、重焊、再测,达到要求。(2)实践:对照电路原理图和装配图将制作出来的实物做全面的检查(例如:芯片和元器件的放置、线路的连接、焊接的情况等等),确认无误后把+5V直流电源正确接入电路,用导线将一个1.2V的电压接入电路,在数码管上可以正确显示为1.2V,但有些闪烁。5.3.实物的调试做好板后烧程序进AT89S51单片机中。又换了一个1.5V的电池,数码管可以

25、正确显示,精度为0.1,原先出现的数码管闪烁现象仍旧出现,经过多次测试发现问题依旧,我们组员一致判定这是由器件受到干扰所致,这种干扰可以是相邻器件的干扰、或是接入电路线过长干扰、若用手去接触ADC0932的CH0通道引脚也会造成干扰。如果操作错误或过多,复位电路就不再起作用,这时数码管不再显示任何数据,即使有信号接入也不会显示数值,此时可通过拔掉电源线使电路进行强制复位,复位后恢复正常,没有介入信号时数码管显示00.00,接入信号正常显示。参考文献1. 梅丽风.单片机原理几接口技术.北京: 清华大学出版社 主编王艳秋,2004.22. 梅丽凤. 单片机原理及接口技术.北京:清华大学出版社, 2

26、004 3. 张迎新.单片微型记数机原理,应用接口技术.北京:国防工业出版社,19934. 李兴富.单片机原理及应用技术.华南理工大学出版社,20015.何立民.单片机应用系统设计.北京:北京航空航天大学出版社,20046.江思明. PROTEL电路设计教程.北京:清华大学出版社,20037.李刚民.单片机原理及实用技术M.北京:高等教育出版社,2005附件一17源程序:org 0 CLK BIT P3.4 DO BIT P3.5 DI BIT P3.6 CS BIT P3.7 wanwei equ 30h qianwei equ 31h baiwei equ 32h shiwei equ 3

27、3h gewei equ 34h MOV SP,#60HMAIN: LCALL ADC LCALL PROCESS LCALL DISPLAY SJMP MAIN;*;功能:进行一次AD转换;入口参数:无;占用资源:A,R7;返回值:A(转换值);*ADC: CLR CS MOV A,#03H;启动位1,端口设置为10; MOV R7,#03H;3次循环LOOP1: CLR CLK RRC A MOV DI,C NOP SETB CLK DJNZ R7,LOOP1 CLR CLK NOP SETB CLK MOV R7,#8;读取8位数据LOOP2: SETB CLK NOP CLR CLK

28、MOV C,DO ;高位先移入 RLC A DJNZ R7,LOOP2 SETB CS ;关闭芯片 RET;*;功能:数据处理;入口参数:A;占用资源:B,HEX_TO_BCD;返回值:5个单元(同HEX_TO_BCD);*PROCESS: MOV B,#2 ; 转换值*2,即(0.02*100) MUL AB MOV R7,B MOV R6,A LCALL HEX_TO_BCD;数位分离 RET;*;功能:数码管动态显示;入口参数:5个单元;占用资源:A,DPTR,P1,P2,DELAY2MS;返回值:无;*DISPLAY: MOV DPTR,#TAB ; 数码管显示 MOV A,gewei

29、 ;显示百分位 MOVC A,A+DPTR ;查段码表 MOV P1,A ;送段码 MOV P2,#0FEH ;送位码 LCALL DELAY2MS MOV P2,#0FFH ;除残影 MOV A,shiwei ;显示十分位 MOVC A,A+DPTR MOV P1,A MOV P2,#0FDH LCALL DELAY2MS MOV P2,#0FFH MOV A,baiwei ;显示个位 MOVC A,A+DPTR ORL A,#80H ;小数点 MOV P1,A MOV P2,#0FBH LCALL DELAY2MS MOV P2,#0FFH MOV A,qianwei ;显示十位 MOVC A,A+DPTR MOV P1,A MOV P2,#0F7H LCALL DELAY2MS MOV P2,#0FFH RET;*;功能:16位数位分离;入口参数:二进制数高8位放R7,低8位放R6;占用资源:R1R7,5个RAM单元,F0;返回值:5个RAM单元;*HEX_TO_BCD: MOV R5,#2

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论