基于单片机的数字电压表设计

摘要

数字电压表是人们正常工作中不可缺少的工具。如何能够进行更加方便准确有效的测量微小的电压变化一直也
是个困扰于人们多年的技术难题。随着人类当代的科学技术事业的进一步发展,电子技术逐渐应用于测量的各个方
面。单片机具有功能强大、体积小、成本低、使用方便等特点。因此,单片机应用于生活的各个领域。随着单片机
的日益成熟发展,单片机也被广泛应用于电子测量领域。现在,日常工作中的各种电器和测量工具都是由单片机控
制的。
  本项目课题研究以STC89C52RC单片机系统为控制核心,采用数字电子测量新技术来设计高精度电压表。模拟电压
小信号由ADC0832模数转换芯片及其周围电路转换成数字信号。数字信号在毫秒内快速输出到单片机,由单片机进行
计算、处理和计算。然后再将要测量出来的电压值直接显示在共阳级的四位数码管显示屏上,数码管显示屏可自动显
示出0~5.1V值范围内的所有电压值,测量时精度约为正负0.01V,为保留小数点最后那两位。在此误差范围内,数字电
压表仍然能够较为准确稳定的实时测量出直流输出电压值,超出该范围不能正常测量直流电压值。电压测量是实时进
行的。如果在测量过程中断开电压值,数码管将立即变为0,即等待测量的状态。最后,通过焊接的物理调试,完成
了电压表的设计。本设计的数字电压具有快速、准确、实时、读数直观、使用方便等特点。
关键词: 单片机,A/D转换,电压采集,数码管

第一章 绪论

1.1课题研究背景
19世纪初,中国正处于战争之中,但在西方国家,一些研究人员已经在研究一些军事武器。在研究武器的过程中,
我们需要测量和判断一些小的电量,并根据这些数字量进行下一步的研究。
  单片机的出现无疑给当时的西方国家带来了轰动性的影响。在原来的基础上,控制测量一度达到了极限。这对国的科学研究造成了毁灭性的打击因此,越来越多有抱负志向的有志年轻人纷纷致力于从事单片机软件的自主开
发、设计研制和学习使用新型单片机。单片机系统的功能内部逻辑结构实际上也完全类似于一般现代人们常用到的
其他计算机功能,比如CPU、存储器、并行总线系统和那些与固态硬盘功能原理相同的存储显示设备。与之完全不同
的一点是,它本身的工作性能远比通常我们常见的一般家用的电脑系统差远得更多。与之相应的价格也是非常的低。
  哪些物品对人们有用?什么东西能让人喜欢?什么样的乐器可以记住一次,那就是简单易用的傻瓜式乐器。为
了满足这些要求,科学家们开发了各种各样的项目。这些项目的发展离不开电路控制。因为它离不开电路控制,所
以它离不开电压表。
  电压表技术在西方这个工业世界上最早的技术出现和迅速发展至今已经大约有将近100多年左右的工业历史。最
早制造的电压表技术是公元1881年根据电解原理开始制造仪表的。尽管目前这种小型电能表平均每单台表重量竟可
达几数十公斤,体积已非常地庞大,精度方面也并没有很大保证,但这种电压表至今依然仍被我们视为我们当代我国科
技界公认的最后一项的重大科学技术发明,受到过人们曾经的一次格外地重视关注和一次无限的赞扬,并曾很快便被
仪表工程界的大量工程师采用。随着电子科学技术迅速的向前发展,1888年,随着高频交流电传感器的广泛发现制造
和实际应用,感应式的电压表也即随之正式诞生了。因为感应式电压表还具有了结构形式简单、操作便捷安全、价格
合理低廉、经久耐用、易于日常维护使用和适合批量生产应用等的一系列优点。
  现在,我将用单片机实现一个高精度数字电压表。这里我还是要来重点的介绍一下单片机。单片机在当今我们
工作生活系统中主要是作为一种专门用于工业控制应用的超大规模专用集成逻辑电路模块。它还不仅是具有功利能
更强、体积小、可靠性极高、而且价格非常低。它产品现如今也已可广泛应用于电子工业的控制、数据自动采集、
智能仪表、机电一体化、家用电器维修等其他众多高科技领域。不仅是大大的提高到了在这些产品领域应用的生产
技术水平要求和工艺自动化水平程度,而且还是在很大一定的程度上也限制住了此类产品技术的大面积推广范围和推
广。
  在各种电能频率测量方式中,电压、电流测量和电能频率测量为其三种方式最主要基本性能的一种测量,其中对
于电压频率的测量方法是其中最基本常见的。在此之外,随着数字电子技术日新月异的发展更新与迭代,往往会需要
用来测量出非常准确高精度的输出电压,因此数字电压表也已逐步成为一项必不可少的高精密电测量仪器。
  数字电压表测量仪术(简称DVM)技术是指是一种主要通过利用模拟的数字电能转换测量的装置技术,将一个连续
变化状态的静电模拟量数据直接地转换为由一个能不受时间连续的干扰变化和电能连续状态离散化的以数字形式直
接记录数据并同时加以模拟显示的信息系统的仪器仪表。数字电压表以因其在测量电压读数领域具有更准确、方
便、精度高、误差量较小、灵敏度等级更高、分辨率范围越高、测量电压速度快等其它许多重要优点而已一直备受
于国内外电人们所一致推崇的和喜爱,尤其是工程人员,随身携带。
1.2 设计目的和意义
  在测量直流电时,怎么能够测量出精准的电压,一直困扰这人们,电压的分级如今已经很明了了,有Kv,V,
mv。大电压测量是很危险的,稍有不慎,就会触电身亡,但是大电压上下波动幅度大,所以一般测量大电压的数值
为小数点后一位,所以,测量大电压精度要求不高,可是测量微小电压,就需要更加精准的电压值,稍有一点点波
动,我们就要通过电压表将其表现出来。这将对电压表的精度,灵敏度,转换速度有着更高的要求,不然,无法满
足人们的需求。
  本次课题采用STC89C52RC单片机作为核心并辅以外围电路,设计了数字电压表的测量电路。用ADC0832将电压模
拟量转化为数字量。并且将数字量通过串口发送给单片机,从而实现数字电压表的设计。
1.3 数字电压表的发展趋势
  采用先进技术,先进的工艺,主要有LSI和VLSI组成新型的数字仪表以及智能仪器出现,标志着电子电路设计以
及电子设备的一场革命,可开创了电子测量的先河,数字电压表的发展方向主要分为一下四个方向:
1.加深开发
在其基础上进行进一步开发,将反应时间,测量精度进一步提高。
2.模块化发展.
  数字电压表系统将会主要以标准化,通商用化,系列化的模块系统和多种其他电路模块所构成,将会进一步给电路
系统设计,安装,调试方面带来一个极大程度的方便。
3.多功能集成
不仅仅是能够测量电压,也可测量电流,电阻,电感,电容,三极管放大倍数,还可测量二极管的导流方向。
4.制作简单化
不在有复杂的制作工艺,将会精简化,进一步的优化,使数字电压表制作更加方便。

第二章硬件系统设计

2.1整体框架设计
  根据设计文件要求,分析研究出一组由单片机模块为技术核心器件组成电路的数字电压表控制系统的基本设计制
造过程及电路各组成部分电路系统的主要组成器件及其电路工作原理。本设计主要的数字电压表是用适当的硬件和
软件实现对小型模拟电压量的测量并且转化之后显示。并且可在程序运行中直接驱动单片机进而可使整个系统正常
运行起来,本芯片设计思路主要包括由单片机、A/D接口转换控制模块、电源信号转换控制器模块、芯片主控器模
块、接口模块、显示模块和芯片驱动电路模块等模块组成。系统框图如图2-1所示。
STC89C52RC
显示模块晶振模块
复位模块
电源模块
              
LED灯指示模块
A/D转换
2.2 单片机
2.2.1单片机介绍
近年来,单片机的发展趋势主要包括以下几个方面。
1.CMOS。随着科学技术的发展和生活的需求,当前的电子产品越来越小。CMOS电路具有价格低、密度高、功耗低、
传输延迟小等优点。目前,CMOS已逐渐成为市场的主流。
2.低功耗、低工作电流、3-6v工作电压、低功耗可大大提高产品的稳定性和抗干扰性。
3.大容量,因为现在是使用单片机的时候,我们需要携带很多外围电路,需要处理的数据会变得很多。这样,小容
量的单片机就不能满足这一需求,于是开发了大量大容量的单片机。
4.可靠性非常、噪音低。单片机能够适用于各种恶劣环境和电磁干扰,在单片机的设计和生产过程中对工艺和内部
电路进行了一次次的优化和升级。
5.高性能。随着单片机的发展,其性能越来越高,以满足人们的需求。
2.2.2单片机特点
1.高集成度、小体积、高可靠性
  单片机是指是一种单片机可用于将芯片内部几乎所有的基本机械功能部件都集成在构成了是一块机械功能集成
度相比较最高、体积尺寸也就是最小的固态晶体芯片。芯片结构的本身设计也基本就是严格的根据各个工业级别的
各种实际电子测控产品技术环境特性及应用要求而所进行设计来完成工作的。内部电路接线的长度是非常之地的短,
抗各种工业噪声性能都要远远地要远远胜于任何一个普通的CPU。MCU电路中程序指令、常数值和表格数据都将会被
全部固化地封装在每一个ROM芯片中,使单片机系统不易对系统产生任何损坏。多个信号通道被集中安装在同了的一
个芯片中,因此具有非常高的可靠性。
2.强大的控制功能
  为了确保能够真正满足使用者特殊的控制逻辑要求,单片机提供的指令系统都具有一个非常丰富完善的能力条
件,分别表示为:分支指令传输的能力、逻辑的运算分析能力和I/O口的位处理运算能力,极其地适合实现特殊环境的
逻辑控制功能。
3.电压低、功耗低、易于生产便携式产品
为了进一步保证产品能够得到更极大度尽可能的高效率地用来满足现代便携式测控系统技术需求的更进一步更广泛
的和应用,很多型号上的单片机工作电压范围通常仅只有1.8V~3.6V,工作状态时电流值往往都仅有几百微安。
4、易于扩展
  单片机芯片要具有能够与计算机提供相同功能正常高效运行的所需功能的关键部件。芯片接口之外有多条三模
总线接口扩展电路和多种并行、串行通讯输入接口/通讯输出接口引脚,并且还可以更方便有效地形组合成适应各种
应用规模场合的微型计算机应用总线系统。基本参数
5.优良的性价比
  单片机处理器的高速运算和性能要求现在已经可以说是已达使非常的成熟和的要求高。为了可以大大的地提高
数据的传输的速度范围和提高数据的传输速度效率,MCU的系统也已经是逐渐的开始的广泛地使用上了RISC流水线自
动控制的技术和DSP技术。单片机芯片上采用的内存和寻址的芯片容量到现在为止也已经都可以突破掉了单片机原来
只有64KB的内存容量的容量瓶颈和限制,不仅内存容量分别可以很高地达到了1MB或以上的和16MB,而且每片上采用的
ROM芯片的内存容量也都已经可以高做到可以高达62 MB的左右,RAM容量也都是可以很高的达到了2MB。由于单片机的
芯片被越来越广泛的地广泛使用,销售量自然会变得额外大。许多著名国际大公司的激烈的国际商业市场合作及竞争
也是使得它的产品的国内出口市场价格一直是很是偏低,性价比也又是非常之地的高。
6.高可靠性
由于单片机芯片本身是为了将计算机各种应用功能都集成到在这一块小小的芯片上,采用的内部总线结构,很好地的
减少了各芯片电路之间的连接。在此之外,所有的功能引脚都将从外部引出,可以直接使用,对使用者非常的友
好。
7.丰富的外部总线
因为一些微控制器添加了SPI、I2C和其它的串行总线模式,这样不仅减少了体积,而且简化了其结构。
8.体积小,价格低
与市场上的PLC控制器相比。单片机的价格相对较低。
9.高性价比
在功能上,可以执行基本控制类型DI数量和DO数量。它也非常实用。
2.2.3 STC89C52RC主要性能

  1. 与MCS-51单片机产品兼容
  2. 8K字节的系统可编程Flash存储器
  3. 1000次擦写周期
  4. 全静态工作:0Hz—33MHz
  5. 32个可编程I/O口线
  6. 3个16位定时器/计数器
  7. 5个中断源
  8. 全双工UART串行通道
  9. 低功耗空闲和掉电模式
  10. 掉电后中断可唤醒
  11. 灵活的ISP编程
  12. 4.0—5.5V电压工作范围
    2.2.4 STC89C52RC引脚及其功能说明
      STC89C52RC芯片的内部构成是指具有一个构成时钟振荡器的高增益反向放大器,引脚形式通常为两个RXD和二个
    TXD,这两个其中有两个引脚也能分别的看作是构成此两个正向放大器时钟振荡的一个外部的输入端和二个外部的输
    出端,时钟的振荡通常有内外两种的外部时钟输入和产生两个方式,为由内部的输出方式而产生的或为由外部的输出
    方式所产生,在一个RXD和一TXD的引脚都装上到了来自外界输入的定时振荡输出元件,内部的定时振荡器系统也很快
    就已经能够实现自动的产生定时的自激振荡,定时的输出电路原件则通常的是采用一组由石英晶体电容器串和陶瓷电
    容串联等组成谐振回路组成的三相并联谐振回路。其主要功能如表2-2所示。
    表2-2STC89C52RC主要功能
      
    主要功能特性
    兼容MCS51 8k可反复擦写FLASH ROM
    32个双向I/O口 256 X 8bit内部RAM
    3个16位可编程定时器 时钟频率0-24MHz
    2个串行中断 可编程UART串行通道
    2个外部中断源 共6个中断源
    2个读写中断口线 3级加密位
    低功耗空闲和掉电模式 软件设置睡眠和唤醒功能STC89C52RC这种芯片上一共有多达40条的封装引脚,双列直插式的封装引脚结构如图2-3所示。
    图2-3 STC89C52RC的引脚图
    VCC(40引脚):需要接电源+5V
    VSS(20引脚): 需要接接地
      XTAL1(19引脚)和XTAL2(18引脚):作为这个单片机的两个外部的时钟接口,使用的时钟电路都是在内部没有振荡
    电路时,用一个外接的石英晶体电阻(24.000M晶振)和一个陶瓷电容(无极性陶瓷电容)组成所共同构成起来的电路;使
    用外部时钟时,用来进行时钟输入信号的时钟脉冲。基本参数
      P0口(39引脚—32引脚):是一组由一组8位漏极开路行控制的双向串行I/O口,即总线地址的复用接口和双向串行
    数据总线地址的复用接口的混合接口.可以保证在作为一个输出端口来使用时,每位输入端口都是按一组可同时吸收
    电流和输入信号的方式可分别独立驱动的8个双向串行的TTL逻辑电路,对输出端口小写的"1"也均可被单独的作为一
    个高阻抗电流输入的输入端口。在访问一个外部的数据存储器时,这一组进口线能够用来提供分时转换地址(低8位)
    和数据总线地址的复用,在访问外部存储器的期间如果有需要则激活在存储器内部上了一个拉紧电阻。在进行Flash
    编程校验测试时,P端子用0口线接收指令字节,而在进行程序校验测试时,输出指令字节,校验过程结束时,要求接上拉
    紧电阻。
      P1口(1引脚—8引脚):是指具有一个封装在内部表面的并具有一个上拉电阻的8位的双向逻辑的I/O口,P1口电路
    中的其中一个输入的电流缓冲级能够被分别来驱动一个(吸收或输出电流)多达的4个的TTL逻辑门电路。在输入端口
    的前面一般写好有一个"SETBITE"等字样,通过输出端口的内部存在的这样一个上拉的电阻信号来把整个输出的端口
    电压都拉高而升高到一极的高电平,此时它即可用来接作一个输出端口。作为一个输入端口时,因为它内部的电路上
    存在的一个上拉的电阻,某的一个输出引脚当它被这样一个的外部的电流信号所上拉为低的电阻时也将来输出作为另
    外这样一个的外部的电流信号(I)信号。Flash的编程调试工作和程序校验工作的期间,P1口只允许可以同时正确的接
    收到8位地址。
      P2口(21引脚—28引脚):是指一个带有内部上下两个拉线电阻的8位双向I/O口,P2的上下两个缓冲输入端和一个
    缓冲电流输出端极各一个可以并联用于驱动(输入或输出电流)的4个TTL逻辑门电路。在其输出端口"1"端口中,通过
    在端口的内部所存在着的一种内部上的拉回电阻来把输出端口信号拉低回到的一个较高电平,此时和作为另一个信号
    输出端口,作下一个信号输出端口时,因为它内部还存在着一个内部可以上下拉低的电阻,某样一个引脚信号如果被来
    自其它一个外部电路的一个信号电阻所上下拉低时就将会输出到这样一个更小的电流。在端口访问包含一个外部的
    数据存储器或包含高地址1位地址数据的任何一个外部的数据存储器时,P2口线将发送出一个比较高地址的8位高地址
    数据。在端口访问另一个8位较高地址数据的任何外部的数据存储器时,P2口线上的内容区中,在其的整个端口访问的过程和期间的地址数据将会几乎完全不会发生再一次改变。Flash在编程或校验数据时,P2线亦可只能接收到一个高
    地址信号和没有任何的其他的控制信号。
      P3口(10引脚—17引脚):是指一组只带有一个内部上拉电阻的8位的双向逻辑I/O口,P1的其中一个输入电流缓冲
    级可提供直接驱动信号(吸收或输出电流)多达4个的双向TTL逻辑门电路。在将一个P3口线写入"1"时,它们就可以直
    接被外部一个在内部上下拉电阻的电阻拉高接起来并可被同时用来作为两个电源输出电压端口。作电源输出电流端
    口使用的时候,被比外部一个电源拉电阻要低些的一个P3口线将可直接被用上拉电阻作为输出电流。P3口线除也可同
    时被用于作为一般电源上的第一输出给I/O口线供电使用外,更重要的是一种特殊用途它也是指利用由它本身提供的
    第二输出供电功能,如上例图表第2-4图中所示:
      P3口还可以能够同时用来接收到一些可以同时用于对Flash闪速存储器进行的编程校验和程序校验工作时收到的
    高频控制脉冲信号。
      ALE电压/频率(30引脚):地址锁存在于信号源的输出端。在系统内存进行访问片外丰储器地址时,若其ALE电压信
    号为有效高电平,则频率比P0口的输出的外部的地址信号频率低了约为8位,可以在作用于其ALE的电压信号源中用来
    作其输出端外部地址的地址和地址锁存的信号,也有一部分可用作在系统内存芯片中或用于其它内存芯片的内部电路
    的时钟源。第二大重要的功能则是用于对EPROM进行编程测试时使用的编程测试脉冲输入端。
      RST/VPD(9引脚)功能:复位备用电源信号的输入端。STC89C52RC芯片接能复位的电源信号输出后,在没有时钟电
    路的干扰作用情况下,这个引脚电路上还可以自动出现连续至少有两个时钟周期及两次以上时间脉冲的高电平,使其
    的内部时钟信号被复位。第二项重要的功能即是复位VPD,即它是一个备用的备用电源信号的输入端。当主电源设备
    中一个VCC电源线路发生了严重电路故障,降低输出电流达到系统最低输出电平规定值范围以内的正常情况时候,VPD
    将要求立即重新为存储RAM系统中设备提供另外一个备用电源,发以有效保证存储信号系统在RAM存储器设备中所传递
    输出的存储信号数据的不完全丢失。
      STC89C52RC通常都采用上电自动复位系统和开关手动复位,在本次毕设设计中采用上电自动复位的方法。
      VPP(31引脚):内部程序存储器和外部程序存储器间的选择跳线。=0时空间访问外部ROM地址为0000H—FFFFH;=1
    时,地址为0000H—0FFFH空间访问内部ROM,地址则是1000H—FFFFH空间访问外部ROM。
    2.2.5 晶振电路
      时钟电路系统主要是指时钟由包含一个来自外部系统的外部时钟信号电路和包含一组系统内部信号的外部时钟
    脉冲的两个系统内部的时钟系统并联而组成。内部可编程时钟电路是指一种只由其中一个可编程单片机电路的时钟
    本身驱动电路及外加两个外部电源频率为12MHZ和以下频率的晶振元件电路和另外加了两个电容器件的(30pf)时钟电
    路共同构成起来的一种工作主频自动可调的可编程内部可编程时钟电路,这样即使当两个外频电源线路突然被断开了
    后的时钟动作电路也很快便就不会再马上突然停止。在画晶振电路时,考虑过要不要使用6pf和18pf的两个无极性陶
    瓷电容。对于晶振两旁的电容选择,当晶振为4MHz时,电容选100pF;当晶振为6MHz时,电容选47pF-100pF;当晶振
    为12-25MHz时,电容选47pF;但是在我以往的经验中,8MHz晶振的两个电容是18pf,这也导致我在晶振选型上第一
    次选择了10pf的电容,导致在制作数字电压表时出现了晶振不起振的情况。经过多次排查,最终终于确定是晶振电
    容选型出现问题。为解决这个问题费了九牛二虎之力。再制作第二块板卡时就选型使用了30pf的无极性陶瓷电容。
    单片机运行正常。
    2.2.6 复位电路
      单片机常用的自动复位控制方式主要的有上电自动复位功能和通过按钮控制进行的手动复位。为了进一步保证
    单片机系统能够自动进行有效地复位,要求RESTE端引脚必须维持在高电平大于10MS以上。电阻值和电容值的值要随
    单片机时钟频率变化的情况不同程度而变更。我这边选择的是上电自动复位,主要原因是电路越简单越好,出现问
    题能够快速排查,按照下图电路制作,能够有效的避免重复复位或者误碰复位。只需上电即可复位。即使出现错
    误,也是断电之后重新上电就可以恢复原有的样子。避免了在操作上引起来的误差。能够提高数字电压表的稳定
    性。如图2-5所示。在这里插入图片描述

图2-5 复位电路
2.3电源电路
2.3.1 电源芯片介绍
  7805是指是一个三端稳压集成电路。在消费类电子产品市场应用中,是非一个最常常可以见得到的三端稳压集成
电路,有正向电压输出用的78××系列芯片和也有负一向电压输出用芯片的79××系列。三端IC主要的是指用来指这
种三极管稳压和输出两用电路上的一种集成电路,只有三条引脚来稳压与输出,引脚端点可分别来定义为输入端、接
地端和输出端。它的外观样子上比较就像是一个比较普通一些的三极管,有个TO-220的标准封装,也有9013样子的TO-
92封装。7805的带负载能力很强,可产生1A的电流强度,但是随之而来的也会产生大量的热,高负载情况下,使用
7805需要给其配备相应的散热片.以此达到散热,恒温的效果。如图2-6所示。在这里插入图片描述

图2-6 7805稳压芯片
引脚介绍:
1脚:接输入电压,一般范围为12V-5V
2脚:接地
3脚: 接输出端口,输出为5V的直流电
2.3.2 电源电路设计
  在电源电路部分设计中,电源部分采用内置了一个12V的直流电源适配器来进行供电,经过LM2596的DC-DC切换模
块,输出直流为交流6.6伏V并左右可调,再经过7805稳压芯片来进行直流稳压并输出平滑稳定的直流5千V的直流电,为
STC89C52RC芯片单片机、AD转换控制芯片和ADC0832单片机及晶振电路供电。在拔接电源头的接线时候请一定要时刻
注意其正负极,如果接反极了极的话,很容易损坏将,并且会造成火灾,对自己或者对周围环境造成不必要的伤害。
本电路中47UF电解电容和104独石电容主要起到滤波低次谐波和高次谐波作用,使输入电压能够平稳的输入到稳压芯
片中去。输出端的47UF电解电容以及三个104独石电容也是起到滤波和消除高斯白噪声的作用。D1二极管使用的是BAT17二极管。起到一个反向保护作用,防止损害稳压芯片。1K的电阻不仅仅为电源电路的部分负载,也是LED1灯的
一个限流电阻。
2.4 A/D转换模块
2.4.1 ADC0832功能特点
  ADC0832是一个由美国国家半导体公司公司所研究生产发展出来的一种带串行总线接口功能的8位并行的高速A/D
转换器。它仅能用于通过三线接口电路来控制与单片机接口的硬件连接。它又同样地具有极高低的功耗能力和相对
更高一点的产品性价比。适用于连接各种大型便携式微型计算机或其它一些比较小型复杂的智能仪器。ADC0832是其
中的一款8位分辨率的模拟A/D切换的模拟转换处理专用芯片,最大可处理数据分辨率范围最高为256,可以保证充分地
满足对模拟数字转换数据处理功能方面的各项最基本一般规格要求。该型号独立的芯片可以同时并具有双通道数据
通道的输出,可用于模拟多种数据转换的数据验证,误差一般比较的小,转换的数据读取速度快,稳定的性能比较强。
技术参数独立开发的芯片能同时支持多路数据输入,使对于多台设备间进行的连接性能测试控制和多台处理器间切换
性能控制操作也显得更加的轻松而方便。通道功能类型之间的可以随意地选择还可以实现全部功能通过DI数据通道
的输入控制模块可轻松灵活的操作实现。其产品的几个主要技术设计的特点简述介绍如下:
(1)8位分辨率,逐次逼近型,基准电压为5V;
(2)5V单电源供电;
(3)输入模拟信号电压范围为0~5V;
(4)输入和输出电平与TTL和CMOS兼容;
(5)在250Khz的时钟频率时,转换时间为32us;
(6)具有2个可供选择的模拟输入通道;
(7)功耗低(15mw);
(8)支持SPI方式。
2.4.2 ADC0832外部引脚及其说明
ADC0832有DIP和SOIC;两种封装,DIP封装的ADC0832引脚排列
各引脚说明:
(1)CS:片选端,低电平有效;
(2)CH0、CH1:两路模拟信号输入端;
(3)DI:两路模拟信号输入选择控制端;
(4)DO:模拟转换结果串行输出端;
(5)CLK:串行时钟输入端;
(6)VCC / Vref:电源正极输入端口和基准电压输入端口;
(7)GND:电源地;
2.4.3 单片机对ADC0832的控制原理
  通常,ADC0832芯片与其他MCU芯片设备之间可连接使用的串行数据接口可以分别被定义为至少4条串行数据线,为
CS、CLK、DI和DO这四条串行数据线。当任何一个ADC0832芯片都不可以进行正常的工作运行状态时,其CS端子电压就
必须对应设定为高电平。此时,芯片就可被系统自动选择禁用,CLK、DI和DO的级别都完全可以自己认为是可任意进行
选择设置的。当我们要继续进行A/D转换操作时,应记得预先要将CS设置为低位,并尽可能保证一直以来都会保持为低
位,直到转换的步骤已经完全地完成。此时,芯片处理器就已开始自动执行转换的全部工作,处理器将首先自动向芯片
时钟上输入的CLK脉冲提供脉冲。DO在第一个时钟脉冲到达之前设置为等高,表示起始位。在时钟第二时钟脉冲达到
和时钟第三时钟脉冲还未被到达之前,DI端仅需输入2位数据位以供进行选择信道功能,其功能见表2-9。
表2-9 功能配置
  
输入形式 配置位 选择通道
CH0 CH1 CH0 CH1
差分输入 0 0 + —
0 1 — +
单端输入 1 0 +
1 1 +
  在第三个时钟脉冲到达之后,DI端即将开始暂时的失去了转换后其读取数据功能,然后将由DO端重新开始的使用
数据输出端口DO端来继续读取转换后的数据。
  从发出第四个时钟脉冲之后开始,DO终端输出端转换数据的最高位D7,然后再向其他DO终端输出每个时钟脉冲后
的下一位反向字节数据。直到在发出第11个时钟脉冲信号之前才发出一个最低位数据DO,一个反向字节数据的数据输
出过程才完成。也就说正是要从该位数据输出到下一个反向字节的数据,即要在从第11个时钟脉冲开始之后再输出到
数据DO,然后才能再输出到第8个位数据。数据的最后输出工作将要由第19个时钟脉冲开始来逐步完成,这一次转换也
就是同时也标志暗示标志着A/D转换电路工作的即将完全和结束。最后请您将CS设置为高电平以更方便的禁用芯片并
处理转换工作完后的剩余的数据。
2.4.4 ADC0832电路设计
  本电路为ADC0832的标准使用电路,P1为校准电压,可以测量供电电压为多少V,P2为模拟电压,他是电阻两端
的电压,可以作为测量的精准度的一个参考值,电容E1为稳压电容。
2.5显示电路
2.5.1 显示电路方案选择
  方案一: LCD1602液晶屏,LCD1602液晶屏都是用同一种的液晶图形点阵显示器,显示的字符原理是同样的简单直
接而清楚易得懂,都是通过由液晶屏的显示芯片内部的各种液晶材料产生的电子变化等原理变化而就可以同时显示出
来几种不同点阵形式上的液晶图形字符,因为由于每种液晶材质都是使用一种具有比较强可流动和电子特性的导电液
晶物质,所以一般我们也只需在稍微的外加些很简单微小一点的机械力量就即可直接地使出液晶分子运动。
  方案二:数码管,又或有人直接称之为LED数码管,是由一类能够由两个多达的八个发光二极管同时发光工作的光
二极管灯体(LED)封装或组合封装在一起的并能够组成一个"8"字型图形的新型光学器件,外加有一个小数点dp。数码
管作为动态图形的显示接口是在当前的单片机接口设计环境中应用的范围内最为广泛使用的一种图形动态图形显示
的连接封装方式之一。数码管并联就是由一组电路由两个多达的八个发光的LED进行封装时进行的并联,每个发光的
LED阳极端或两个阴极端上共用都有至少一个发光管脚。根据其上共用光阴极管脚形的形状的不同,分为全共阳极数
码管和半共阴极数码管并联等二种。
  综合LCD显示屏的成本太高且驱动代码复杂容易出错。相比于数码管,没有数码管简单明了、可视性较差、功耗
比数码管高太多。因此选择数码管进行显示。
2.5.2 数码管的引脚及其功能说明
  显示部分选择使用的了一款型号为"LG5641BH 0.56"的LED数码管,该款型号数码管规格为4位一体数码管,共具有
12个引脚,其中的8个为段点选引脚,4个则为位选引脚。如上图第2-11所示。
共阳极 4位数码管型号为:LG5641BH 0.56四联共阳红色。
正面看的话,上面6脚,下面6脚,共12脚
上面从左到右是DIG1,A,F,DIG2,DIG3,B。
下面从左到右是E,D,DP,C,G,DIG4。
其中DIG1,DIG2,DIG3,DIG4是4个数码管的位选,A,B,C,D,E,F,G,DP分别对应了每个数码管的led灯。
2.5.3 单片机对数码管的控制电路
  如图2-13所示。在这个电路中,R3是10k的排阻,引脚分别对应为1脚对接VCC,2脚至9脚分别对应P0.0-P0.7。
在本电路中起到对单片机P0口的电压上拉作用,一般被称为上拉电阻。R4,R5,R6,R7,R8,R9,R10,R11这八个
4.7k的电阻在这里起限流作用,根本原因是数码管本身还是由LED灯组成,而LED灯就是二极管,不仅具有单向导通性,而且还具有压降作用。而且LED灯是非常脆弱的,电流强度超过20mA,会大大缩短LED 灯的寿命,电流强度低于
5mA时,LED灯基本上看不见亮度,无法判断是否亮灭。因此必须在此加上合适的限流电阻,让通过LED灯的电流保持
在15mA左右.这样不仅能够延长LED灯的使用寿命,而且LED灯会有很好的亮度效果。在这里插入图片描述

图2-13 数码管整体电路图
2.6 总体设计
  单片机STC89C52RC是针对本机芯片所设计制造的其中一个单片机核心,根据该芯片上面提供的各个主要电路功能
模块我们会直接得到其中一个单片机相应核心的全部电路结构与总结原理图。其中还具体包含到了电源电路,A/D模
数转换及输出驱动电路,时钟电路,复位保护控制电路,单片机,数码管信号驱动和输入保护电路,数码管信号输出显示
控制电路。

第三章 软件系统设计

3.1软件总体框架设计
  程序框架的主要结构总体框架的结构设计为主程序结构上采用到了死循环式的结构,在这一节其中调用到了三个
子程序,分别是命名为AD模数转换子的程序,电压数据处理子程序,动态实时电流显示子程序,在数字电压表上电开始
进行测量该操作执行前,要我们预先通过使用的数字万用表中对应的电压档位来对即将被要检测出来的物体电压值预
先进行做了最后一次的估计测,然后一定要先以此来自动选择一个比较接近适当值的电量值为程的,防止电压升高过
多太多大将会烧坏加了A/D值的模数转换器。选择完加了好的量值程值之后就表示已经完全可以自动地对数字电压表
重新进行过一次的上电操作和电压测量了。数字电压表的上电完毕后即会进入初始化,首先,单片机片阵中已经选择
好了一个A/D电压的模数转换器,然后单片机会发出信号并重新启动选定了一个A/D电压的转换器再进行这一次电压信
号的转换。此时单片机内部的内部的定时计数寄存器/时钟计数器等部件也要随之的开始执行定时和计数,不断的循
环的通过扫描信号A/或D转换信号到定时结束时的输出信号端口去判断定时有无结束和输出信号。并且可同时启动两
个信号数据自动采集,对一个从A/D转换器端开始接收的电压信号数据与从电压输出端口送来电压后返回的输入电压
数值同时自动采样进行电压寄存器数据的自动存储,数据经采集系统处理并存储记录完输入电压信号之后,利用自动
查字表法将自动存储器将其输出端的电压数值实时回送数据至显示器荧幕上自动显示出来。流程步骤示意图如右上
图中的3-1所示。数据处理子程序流程图下图表3-2所示。在这里插入图片描述

图3-1 软件整体框图
在这里插入图片描述

图3-2 时序图
3.2程序代码设计思路
程序总体设计主要分为三大部分,分别为主程序设计,测量程序设计,显示程序设计。
  当系统通电之后,单片机开始运行主程序,主程序中间死循环了一个测量程序,以及显示程序,并且实时刷
新。运行完成一次后会继需循环运行。运行一次时间大概为100ms,这也就意味这这套数字电压表的反应时间小于
100ms,这针对于普通人来说,只是一瞬间的时间。然后就开始进行下一次测量。
3.3主程序设计思路
主程序主要包含的led灯的初始化,串口的初始化,延迟函数的初始化,和数学函数的引用。
  在整个面板上,除了数码管就只有一个led灯,而这个灯的控制并不是程序进行控制,这个led灯的控制是进行
电源指示,只有上电,这个等才会亮,灯灭代表无电压输入。
  在其初始化的基础上,加入了while 循环函数。其中在while语句中就同时包含了测量显示子程序,串口显示子
程序,数码管显示子程序。然后将其一一执行。
3.4测量程序设计思路
  测量这一部分在整体上是重中之重,首先是硬件上,使用adc0832,它的功能就是将0-5v的电压转化为0-255的
数字,然后发送给P3.4口,这样,在程序设计这边,采集程序使用读取传输回来的数据然后再将数据进行数学上的
转换,这样就得到了精确的被测电压的数值。测量这一部分的就结束了。
3.5显示程序设计思路
  测量结束之后,经过转换,得到了精确的电压值。这个数字可以精确的小数点后两位,所以四位数码管中,第
一个位置一直处于长灭状态。数码管的第二位只显示输出电压的个电位值,数码管在第三位只能显示出0.1位,数码管
的第四位能显示到0.01位。显示电路驱动使用的9015四个三极管。程序设计上,对回传电压值进行乘法计算,将高
八位放置在R7寄存器,将低八位放置在R6寄存器。最后调用数位分离子程序,将整个电压能够完整的显示在数码管
上。最后返回while 循环。继续下一次测量,这样的话,显示程序也结束了。

第四章 实物制作与调试

4.1实物制作步骤
4.1.1实物器材准本
  STC89C52RC芯片,共阴极数码管,24.000M晶振,排线电阻(10K),电阻(10K),电阻8个(4.7K),电阻5个(1K),极性电
解电容一个(10uF),极性电解电容一个(47uF),无极性陶瓷电容两个(30pF),无极性陶瓷电容一个,12V电源适配器一
个DC-DC LM2596电源模块一个,L7805CV稳压芯片,9015三极管4个,ADC0832CCN模块一个,跳线帽若干,电位器
(10k)一个,5MM led灯珠,排针一排,若干导线。
4.1.2 PCB设计
1.原理图设计
在AD20上绘制相应的电路,先进行芯片的选型,找到相应的电容,电阻,三级管,数码管,进行原理图的绘制。
2.元器件封装选型
  绘制完成后需要进行封装的查找,对于51单片机的封装,这个在AD20自带的封装库里面直接就有,我直接拿过
来用就行了,但是对于数码管的封装,没有在封装库里面找到,所以我进行数码管的引脚间距测量,每个引脚对应
的标签也在网上进行查找。
3.7805封装说明
  其他的封装在封装库里面都有,在这里说明一下7805稳压芯片的封装。7805一共有四种封装,一种是就是123三
个引脚间距都是2.54mm的DIP直插封装。第二种是贴片型的封装,第三种是将散热也绘制在电路板上的封装,第四种
就是将7805直插在板子上。在其背面放上一个散热片型的封装,我这次选型选的是第三种封装。原因是第一种封装
没有较好的散热,会导致芯片过热,如果出现散热不佳,产生温漂现象,导致供电出现问题,那就会出现问题。第
二种封装我去采购时跟店家老板沟通过,老板不建议我使用贴片型的芯片,一是焊接可能会出问题,二是使用后还是要给芯片上涂抹已成散热硅脂。外加一个小小的散热片,不仅影响美观,成本也会增加很多。第四种跟第三种相
比较,就是多加了一个散热片。增加了成本。但是第三种又扩大了板子的面积,也是变相的增加了成本。但是在打
板时,综合考虑,采用第三种方案。
4.PCB布局设计
  在画完封装和选型封装后,对芯片以及元器件进行合理的布局。并且使用20mil的铜线进行电路走线。然后对整
块板卡进行评估。
5.泪滴
进行泪滴,覆铜操作。
6.DRC检查
进行DRC检查,检验电路是否存在短路,断路现象。进行故障排查。进行DRC检查时发现了五处丝印间距过小和重叠
的问题,经过一一修改,最终都解决了。再次进行DRC检查,未发现错误。
7.PCB板卡加工
将文件打包在嘉立创进行打板,进行文件压缩,嘉立创只能识别压缩文件,经过一系列操作后,提交文件,完成订
单的下单,等待板卡。
8.检查
板卡拿到手先对其进行外观鉴别,看看其有无划伤,绿油层是否覆盖完整。过孔位置是否正确。
9.焊接
  进行元器件的焊接的步骤,首先一定要先对照原理图和PCB板图来进行焊接元器件位置和摆放,之后才能进行焊
接。焊接PCB板一般的工艺顺序首先是先按跳线电阻→电阻→电容→晶振电阻→发光二极管的工艺顺序依次进行焊
接,然后是再先把芯片底座电容→按键电感→排插电阻等稍大一些点的电子元器件焊上去,最后是才会将功率比较的
大些的大功率LED灯的排插电阻焊了上去,在焊晶振电容的时候我们需要大家特别地注意,使得它能紧挨着靠着芯片,
不仅仅的是要为了能够让它的工作电源频率能更大稳定,而且要能提高它工作的抗干扰能力。在焊接时,要注意焊接
手法,第一,不能长时间将电烙铁头放置在焊盘上,因为40W的电烙铁头的温度搞到480摄氏度,PCB板是塑料材质,容易
将焊盘烫下来,一旦焊盘烫下来,也就代表着这块板卡作废,不仅浪费,而且会给后续焊接造成一些心里上的焊接压
力。焊接操作过程中人员注意力高度要充分集中,动作节奏要较快,防止焊接烧坏元件,焊盘也需要保证表面清洁光
亮,大小松紧适当。可以在焊接时直接在焊盘内壁上轻轻刷抹上薄一层的助焊剂,这样焊接后的引脚很漂亮,也不会出
现虚焊漏焊的状况。焊接工作完成了之后应该检查一下电路板中有没有发生虚焊﹑焊漏焊或者发生短路电流的其他
地方。
4.2硬件调试
  将电路板焊接完成之后,使用万用表,将万用表打到短路检测挡位,分别对每个引脚以及相对应的连接引脚进
行测量,检测每个引脚与相应连接的引脚是否正常连接,与不相应的引脚是否出现短路。测试完成后,进行上电测
试,测试电源是否正常,稳压芯片输出是否稳定,用手触碰7805稳压芯片,感受其温度是否过热。这些完成后,说
明硬件设备调试完成。让数字电压表上电持续运行2-3小时,再次观察整体电路是否出现局部发热,或芯片发热状
况,这样做的目的为测量数字电压表的稳定性。电压表实物如图4-1所示。
在这里插入图片描述
在这里插入图片描述

图4-1 电压表实物
4.3软件调试
1.启动keil 4软件
  打开你电脑上下载的keil 4软件,打开你提前写好的程序文件,并且保存为××.hex文件。建立相关的项目:点
击"文件/新建项目"按钮,在新弹出来的项目加入的模块的窗口对话框中选择该程序的文件名,点击"打开"即可保存此
项目。双击窗口中模块下的××.hex文件,并且打开hex文件。
2.程序下载
  选择"项目/全部编译"按键,程序便自动编译成功。将编译好后的程序烧盘写到芯片中,首先请先点击菜单栏上的
器件,选择STC89C51。然后再一次点击菜单栏编辑—运行,继续点击添加擦除(erase)、再次点击检查擦除(black—
erase)、编译、运行,然后发现芯片仍在烧制的过程中,擦除操作全部完成了之后,但编译结果中还是会显示芯片是烧
制失败,经反复几次烧录测试后最终决定确认芯片为STC89C51芯片问题,于是我们决定立即采用了的另一个方案,只是
先将芯片STC89C51换算成了STC89C52RC,按照上面讲的程序烧录的过程就将这个程序的烧录文件写到了芯片
STC89C52RC文件中,(这里请注意在器件转换中一定记得要先正确选择芯片STC89C52RC。接上了电源,刚一开始使用的
时候那个的时候屏幕除了不能进行正常的显示功能之外其他几乎所有正常的屏幕显示的功能现在基本都是已能被完
美地实现,经过了很多次的调试后屏幕最终也已能基本实现了正常的显示。
4.4实物测试结果
4.4.1初始状态测试
  接入+12V三相直流电源,数码管上就突然出现声音了一闪一闪的。检查下主板电路没有明显卡坏,看下运行什么
程序,也就是应该程序没有存在什么错误,运行速度及整个编译调试过程中都还应该算正常,将电路板进行了接触点焊
和加固,防止了电路板发生虚脱烧焊,经过了多次的修改测试之后发现主板电路仍未查出存在的什么重大问题,数码管
状态也并没有任何明显的改变。再次开机时检查主机电路板、元器件型号及主板测试程序,输入信号,测试后结果均
正确,可以直接显示出主板芯片正确地运行的结果。调试工作完毕。数字电压表测试所用电路的电压基本要求电源输
出一般要求为交流单相12V,经过数字万用表进行测量,其数值为实际输入时的输入电压值,仅供参考符合芯片的输入
要求。根据样机硬件电气原理图和PCB电路板图检查证实了样机线路配置正确。元器件的型号、规格选择和焊接方法
非常准确符合测试要求。在样机不直接插入STC89C52RC芯片插座的情况条件下,对样机的各芯插件板上焊接的引脚间
的交流电压差进行做了多次测量,大部分都正常,少数是由于虚焊现象所致,断电、重插焊、再试测,达到要求。如图
4-2所示。
在这里插入图片描述

图4-2 硬件电路所有配件
4.4.2正常量程测试
  对照拿着产品说明书和电路原理图和电路板的PCB尺寸放大图与自己动手制作设计出来的数字电压表在一起后进
行一次比较的全面的详尽细致的电路检查,其中详细内容中包含详细检查了模拟电路芯片与其它电子元器件芯片线路
的合理相对应放置角度和摆放位置,线路模块间导线的合理正确地连接,焊接等操作情况等,在模拟电路芯片经过多次
的反复的试验检查确认电路完整无误后再逐一把其中一个+12V直流电源正确地接入电源到电路,用任何一根导线或再
导线将电路其中任意一个3.3V或左右的直流电压源接入电源到电路,在数码管芯片屏幕上虽然是可以清晰看到其正确
的电流的显示电压值一般为3.32V,但是在数码管中有些地方会闪烁。又是重新换电池接到了另外的一个1.5V左右的
功率的锂离子电池,数码管依旧还是可以被正确地进行显示,精度也约为了正负差0.01,但是为什么原先会出现问题的
数码管闪烁的闪烁现象却依然仍旧的可以被出现,经过了多次的测试分析及研究之后才会发现为何该问题依然仍的依
旧的会持续存在,最终才被判定原因为这一问题是一个主要是由电子元器件电路本身所受到的外界电压干扰而所致,
这种电压的干扰现象不仅包括很多种可能产生的是对两个相邻并联的器件之间产生严重的电压的干扰,也包括还有多
种可能引起的是对接入器件的电路线发生的过长而引起干扰、用一只手直接拿去接触的ADC0932的CH0通道引脚等也
会同样可能会产生对此信号造成了严重的干扰。操作的次数如果错误动作多次以上或失误动作数目过多,复位时的输
出电路本身可能就会损坏将令其将不再会重新通电起作用,这时的数码管显示器电路将可能永远地不再会可连续显示
出的任何一次输入的数据,即使是在有介入的信号中进行接入复位后也很可能也不会再有显示出输入的数值,此时用
户也只有可通过先或通过手动的拔掉输出电源线后将使对其输入电路将再会进行一次强制的接入复位,复位做完了后
将才能完全恢复到正常,没有任何介入信号时数码管只能正常显示00.00,接入时信号将会自动正常的进行显示。如图
4-3,4-4,4-5,4-6,4-7所示。
在这里插入图片描述

图4-3 测量3.3V电压 图4-4 万用表测量3.3v电压在这里插入图片描述

图4-5 测量电池电压
在这里插入图片描述

图4-6 万用表测量电池电压在这里插入图片描述

图4-7 电池断开状态图
4.4.3范围测试
  在量程内测试时,没有出现电压检测错误情况,然后进行范围测试,因为程序里面写入的是最高到5.10V,所以
在接入大于5.10V电压后,进行测量,数码管显示依旧是5.10V这与预期的效果完全一样。这样不仅可以检验程序的是否存在问题,而且能够证明数字电压表完成了预期的效果。但是这也局限了整个数字电压表的测量范围。

第五章 全文总结

这次毕业设计融合了大学四年所学习到的数字与脉冲电路,模拟电路,以及嵌入式ARM中的硬件电路设计,也使
用课程中的C语言以及汇编语言来进行本课题的研究。本设计可以完成0-5V的直流电压的精确测量,精确程度为小数
点后两位。可以说是完全的达到了预期的要求。
  在这次课题设计中,我总结了很多东西,第一:永远不要怕。我起手做数字电压表时,根本不了解其中的原理.
甚至一度想更换题目,但是,我克服了这种心理,从网络上,书籍中,寻找各种有用的信息。为了完成这次设计,
查询了数本电路设计图书.以及在电子制作网上寻找设计教程。第二:兴趣是最好的老师。当我沉浸在寻找设计方案
的过程中,我不禁对单片机产生了浓厚的兴趣,发现单片机就像一个微型小电脑,它会无条件执行赋给它的指令。
这也就是说,我将来可以用单片机做出不同于数字电压表的另一些设计。第三:学习永无止境,紧跟时代潮流。单片
机在已经出现了很多年了,各个不同的厂家也生产出了不同作用的单片机,它们有着不同的功能。每个单片机都有
自己的特点.都有自己用武之地。我不能只会使用了一种单片机,就沾沾自喜。殊不知,人外有人,天外有天。学习
永无止境,紧跟时代潮流。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值