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

下载本文档

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

文档简介

1、题 目: 基于单片机的数字电压表的设计 目 录摘要。1abstract。2第1节 引言。31.1 数字电压表意义。41.2 数字电压表设计方案。5第2节 数字电压表硬件结构设计。6 2.1系统硬件的构成框图。72.2 at89s52单片机及其引脚说明。82.4 信号调理电路。92.5 数据采集电路设计。102.6 显示模块。11第3节 软件设计。123.1 软件设计结构图 。133.2 量程转换 。143.3 bcd转换。153.4 lcd显示。16第4节 设计调试。17第5节 结束语。18参考文献 。19附录 c语言程序代码。20基于at89s52的直流数字电压表设计摘要:随着电子科学技术的

2、发展,电子测量成为广大电子工作者必须掌握的手段,对测量的精度和功能的要求也越来越高,而电压的测量甚为突出,因为电压的测量最为普遍。本设计在参阅了大量前人设计的数字电压表的基础上,利用单片机技术结合a/d转换芯片a/d574a构建了一个直流数字电压表。本文首先简要介绍了设计电压表的主要方式以及单片机系统的优势;然后详细介绍了直流数字电压表的设计流程,以及硬件系统和软件系统的设计,并给出了硬件电路的设计细节,包括各部分电路的走向、芯片的选择以及方案的可行性分析等。关键词:单片机(mcu); 电压;a/d转换;ad574a。abstract: with the development of elec

3、tronical scientific technology, electronical measurement became a technic that everyone of engaging electronical had to master it. whats more, the precision is higher and higher and, the function is more and more powerful, and voltages measurement is best important. primarily, i designed a digital-v

4、oltmeter use mcu technic with a/d-switch chip(ad574a) base on lots of predecessor design. in this article, introduce some methods that design digital- voltmeter and the advantages of use mcu system to do it on the first; then treat the procedure of design of direct- digital-voltmeter,contain the har

5、dware and software. keywords: micro controller unit;voltmeter;a/d switch;ad574a。 1.1设计任务 设计一个基于pc机的数字电压表。用单片机技术及相应仿真平台进行开发,通过数据采集系统,对电压进行采集并作a/d转换,在传输给单片机。 设计的主要要求及指标;(1) 数字电压表测量电压类型数直流,测量范围是-5v-+5v。(2) 整机电路包括:数据采集电路的单片机最小化设计、单片机与pc机的接口电路、单片机时钟电路、复位电路等。(3) 下位机采用at89s52芯片,a/d转换采用ad574a芯片。(4) 通过rs232串

6、行口与pc进行通信,传送所测量的直流电压数据。 1.2 总体方案设计在电量的测量中,电压、电流和频率是最基本的三个被测量,其中电压量的测量最为经常。而且随着电子技术的发展,更是经常需要测量高精度的电压,所以数字电压表就成为一种必不可少的测量仪器。数字电压表(digital voltmeter)简称dvm,它是采用数字化测量技术,把连续的模拟量(直流或交流输入电压)转换成不连续、离散的数字形式并加以显示的仪表。由于数字式仪器具有读数准确方便、精度高、误差小、灵敏度高和分辨率高、测量速度快等特点而倍受青睐。本设计从各个角度分析了由单片机组成的数字电压表的设计过程及各部分电路的组成及其原理,并且分析

7、了程序如何驱动单片机进而使系统运行起来的原理及方法。框图如下:单片机a/d转换器ad574a电压显示器模拟电压输入rs232串口通信量程控制电路系统总框图本设计主要分为两部分:硬件电路及软件程序。而硬件电路又大体可分为单片机小系统电路、量程转换电路电路、a/d转换电路、led显示电路,各部分电路的设计及原理将会在硬件电路设计部分详细介绍;程序的设计使用c语言编程,利用keil 软件对其编译和仿真,详细的设计算法将会在程序设计部分详细介绍。3.3系统硬件电路设计3.3.1 单片机最小系统电路1.单片机芯片选择单片机采用mcs-51系列单片机。由atmel公司生产的at89s52是一种低功耗、高性

8、能cmos8位微控制器,具有8k 在系统可编程flash 存储器。使用atmel 公司高密度非易失性存储器技术制造,与工业80c51 产品指令和引脚完全兼容。在单芯片上,拥有灵巧的8 位cpu 和在线系统可编程flash,使得at89s52为众多嵌入式控制应用系统提供高灵活、有效的解决方案。at89s52具有以下标准功能: 8k字节flash,256字节ram,32 位i/o 口线,看门狗定时器,2 个数据指针,三个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。空闲模式下,cpu停止工作,允许ram、定时器/计数器、串口、中断继续工作。掉电保护方式下,ram

9、内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。而且,它还具有一个看门狗(wdt)定时/计数器,如果程序没有正常工作,就会强制整个系统复位,还可以在程序陷入死循环的时候,让单片机复位而不用整个系统断电,从而保护你的硬件电路。at89s52有40个引脚,32个外部双向输入/输出(i/o)端口,同时内含2个外中断口,2个16位可编程定时计数器,2个全双工串行通信口,片上flash允许程序存储器在系统可编程,亦适于常规编程器。其将通用的微处理器和flash存储器结合在一起,特别是可反复擦写的flash存储器可有效地降低开发成本。其芯片引脚图如下:图2.1_1 at89s5

10、2引脚图at89s52单片机外围接口主要包括:(1)复位电路(2)晶振电路(3)直流电源单片机采用按键高电平复位,而单片机在平时则复位端为低电平0。晶振电路也采用外部无源晶振。电路连接图如下图:图2.1_2 单片机小系统3.3.2 a/d转换器与单片机接口电路设计。1.a/d转换器芯片选择 模数转化器是一种将连续的模拟量转化成离散的数字量的一种电路或器件。模拟信号转换为数字信号一般需要经过采样保持和量化编码两个过程。针对不同的的采样对象,有不同的a/d转化器可供选择,其中有同用的也有专用的。有些adc还包含有其他功能,在选择adc器件时需要考虑多种因素,除了关键参数、分辨率和转化速度外,还应考

11、虑其他因素,如动态与静态精度、数据接口类型、控制接口与定时、采样保持性能、基本要求校准能力、通道数量、功耗、使用环境要求、封装形式以及与软件相关的问题。adc按功能划分,可以分为直接转换和非直接转换两大类,其中非直接转换又有逐次分级转换、积分式转换等类型。 a/d转换器在实际应用时,除了要设计适当采样/保持电路、基准电路和多路模拟开关等电路外,还应根据实际选择的具体芯片进行输入模拟信号极性转换等设计。 方案1:采用分级式转换器,这种转换采用两部或多部进行分辨的闪烁式转换,进而快速完成模拟-数字信号的转换,同时实现较高分辨率。例如,在利用两步分级完成n位转换的过程中,首先完成m位的粗转换,然后使

12、用精度至少m位的数/模(dac)转换器将此结果转换达到1/2的精度并且与输入信号比较。对此信号用一个k位转换器(k+m>=n)转换,最后将两个输出结果合并。 方案2:采用双积分型转换器,如icl7135等。双积分型a/d转换器转换精度高,但转换速度不太快,若用于电压测量,不能及时地反映当前电压值,而且多数双积分型a/d转换器其输出端都不是二进制码,而是直接驱动数码管的。所以,若直接将其输出端接i/o口会给软件设计带来极大的不方便。 方案3:采用逐次逼近式转换器,对于这种转换方式,通常用一个比较器输入信号与作为基准的n位dac输出进行比较,并执行n次1位转换。这种方法类似于天平上用二进制码

13、称量物质。采用逐次逼近寄存器,输入信号仅于最高位(msb)比较,确定dac的最高位(dac满量程的一半)。确定结果(0或1)被锁存,同时加到dac上,以决定dac输出(0或1/2)。 逐次逼近式a/d转换器,如adc0809、ad574等,其特点是转换速度快,精度也比较高,输出为二进制码,它们通常具有8路模拟选通开关及地址译码、锁存电路等,它们可以与单片机系统连接,将数字量送单片机进行分析和显示,直接接i/o口,软件设计方便。方案选择:选择方案3.理由;本设计中,要求精度小于0.1%,则必须选用分辨率大于8位的芯片,如10位、12位、14位或16位a/d转换器,比如ad573、ad574a、a

14、dc1140等。本电路采用ad574a。ad574a是美国analog device公司在ad574的基础上改进过的一种完全12位单片a/d转换器。它采用逐次逼近型的a/d转换器,最大转换时间为25us,转换精度为0.05%,所以适合于高精度的快速转换采样系统。芯片内部包含微处理器借口逻辑(有三态输出缓冲器),故可直接与各种类型的8位或者16位的微处理器连接,而无需附加逻辑接口电路,切能与cmos及ttl电路兼容。ad574a采用28脚双列直插标准封装,其引脚图如下:图2.2_12 a/d转换器管脚说明a/d574a有5根控制线,逻辑控制输入信号有:a0:字节选择控制信号。ce:片启动信号。/

15、cs:片选信号。当/cs=0,ce=1同时满足时,ad574才处于工作状态,否则工作被禁止。r/-c:读数据/转换控制信号。12/-8:数据输出格式选择控制信号。当其为高电平时,对应12位并行输出;为低电平时,对应8位输出。当r/-c=0,启动a/d转换:当a0=0,启动12位a/d转换方式;当a0=1,启动8位转换方式。当r/-c=1,数据输出,a0=0时,高8位数据有效;a0=1时,低4位数据有效,中间4位为0,高4位为三态。输出信号有:sts:工作状态信号线。当启动a/d进行转换时,sts为高电平;当a/d转换结束时为低电平。则可以利用此线驱动一信号二极管的亮灭,从而表示是否处于a/d转

16、换。其它管脚功能如下:10vin,20vin:模拟量输入端,分别为10v和20v量程的输入端,信号的另一端接至agnd。db11db0:12位数字量输出端,送单片机进行数据处理。ref out :10v内部参考电压输出端。ref in :内部解码网络所需参考电压输入端。bip off :补偿校正端,接至正负可调的分压网络,0输入时调整数字输出为0;agnd:接模拟地。dgnd:接数字地。2.2.3.ad574a与单片机接口由于对ad574a 8、10、12引脚的外接电路有不同连接方式,所以ad574a与单片机的接口方案有两种,一种是单极性接法,可实现输入信号010v或者020v的转换;另一种为

17、双极性接法,可实现输入信号-5+5v或者-10+10v之间转换。我们采用双极性接法,电路图如下:图ad574a与单片机接口电路根据芯片管脚的原理,无论启动、转换还是结果输出,都要保证ce端为高电平,所以可以将单片机的/rd引脚和/wr端通过与非门与ad574a的ce端连接起来。转换结果分高8位、低4位与p0口相连,分两次读入,所以12/-8端接地。同时,为了使cs、a0、r/-c在读取转换结果时保持相应的电平,可以将来自单片机的控制信号经74ls373锁存后再接入。cpu可采用中断、查询或者程序延时等方式读取ad574a的转换结果,本设计采用中断方式,则将转换结束状态sts端接到p3.2(外部

18、中断/int0)。其工作过程如下:a. 当单片机执行对外部数据存储器的写指令,并使ce=1,/cs=0,r/-c=0,a0=0时,进行12位a/d转换启动。 b. cpu等待sts状态信号送p3.2口,当sts由高电平变为低电平时,就表示转换结束。c. 转换结束后,单片机通过分两次读外部数据存储器操作,读取12位的转换结果数据。当ce=1,/cs=0,r/-c=1,a0=0时,读取高8位;当ce=1,/cs=0,r/-c=1,a0=1时,读取低4位。3.3.3串行口rs-232与ttl电平转换电路部分 1  at89s52与pc的接口电路采用芯片max232。max232是

19、德州仪器公司(ti)推出的一款兼容rs232标准的芯片。该器件包含2个驱动器、2个接收器和1个电压发生器电路提供tia/eia-232-f电平。max232芯片起电平转换的功能,使单片机的ttl电平与pc的rs232电平达到匹配。串口通信的rs232接口采用9针串口db9,串口传输数据只要有接收数据针脚和发送针脚就能实现:同一个串口的接收脚和发送脚直接用线相连,两个串口相连或一个串口和多个串口相连。电路图如下 :2 串口通信基本概念(1)常见的串口通信有两种,一种是rs-232,另一种为rs-485串行通信。当然还有近年来比较盛行的usb和ieee-1394,他们也属于串口通行的扩展在本设计中

20、用到的是rs-232串口通信。3.3.4自动量程转换电路 在智能仪器中 常常用到自动量程转换技术 这使得仪器在很短的时间内自动选取最合适的量程 实现高精度的测量 自动量程的实现一般通过控制输入信号的衰减 放大倍数实现 就电压表来说 其输入测量电压会大于其 ad 转换器的输入范围 所以它的量程切换基本上是信号衰减倍数切换的过程 1 自动量程基本控制流程 自动量程转换由初设量程开始 逐级比较 直至选出最合适提量程为止 自动量程转换的操作流程如上图所示 继电器或其它控制开关从闭合转变为断开 或从断开转变为闭合有一个短暂的过程 所以在每次改变量程之后要延时一定的时间 然后再进行正式的测量和断 为了避免

21、在两种量程的交叉点上可能出现的跳动 还应考虑低量程的超量程比较值和高量程的欠量程比较值之间有一定的重叠范围 。 方案1:简单的电压量程控制如上图 通过电阻网络实现电压衰减 测量的输入阻抗约为 r r1 r2 r3 r4 s1至 s4 单独合上时 vout 的大小分别为 s1 单独合上 vout=vin*1 s2 单独合上 vout=vin*(r2+r3+r4)/(r1+r2+r3+r4) s3 单独合上 vout=vin*(r3+r4)/(r1+r2+r3+r4) s4 单独合上 vout=vin*(r4)/(r1+r2+r3+r4) 选择 r1>r2>r3>r4 由式中可以

22、看出 vout 在一定范围时 电阻网络衰减程度越大 其可输入电压 vin范越大 只要把 r1 r2 r3 r4 的参数选好 然后由 s1 s2 s3 s4 选择测量电压出端 即完成量程选择 例如 表头 dvm 输入电压为 0 5 伏 设 dvm 输入阻抗无穷大 要求测量电压量程有 5v 50v 100v250v 档 输入电阻 1m 则有 r4 5 1000000 250 20000 20k r3 5 1000000 100 r4 50k 20k 30k r2 5 1000000 50 r4 r3 100k 20k 30k 50k r1 1000000 r4 r3 r2 1000k 20k 30

23、k 50k 900k 自动量程控制描述 range 为当前量程变量 vt 为测量电压变量 s1 s4 为量程档 s1 s4 开关对应的量程档n2 n4为量对应量程档的欠量程值 range s4 /*预选 250 伏档进行电压测量*/ loop: vt vout /*进行电压测量*/ switch range /*根据当前量程进行调整*/ case s4: if(vt<n4)range-; /*欠量程 量程降一档*/ if(vt>5v)outtest; /*最高量程时 vout>5v,超负载*/ break; case s3: if(vt<n3)range-; if(vt

24、>5v)range+; /*超本档量程 量程升一档*/ break; case s2: if(vt<n2)range-;- 3 - if(vt>5v)range+; break; case s1: if(vt>5v)range+; goto loop; 开关的选择 采用继电器切换 优点是导通阻抗小 开路阻抗大 但其动作速度慢 也容易老化 方案2:自动量程转换 运算放大技术来实现自动量程切换机制 先把输入电压进行衰减 不管输入测量电压多大 都是通过同一阻抗网络进行分压 最终结果是大电压时分得的电压较大 反之则较小 然后通过运算放大电路将此电压信号放大 选择不同的放大倍数使

25、输出电压在 dvm 的测量范围内 从实现不同量程的电压测量。方案选择:选择方案2 理由:由于断电器存在着体积大 动作速度慢 驱动电流大等缺点,故采用方案2.自动量程转换电路由衰减器、放大器、接口及开关驱动三部分组成。为了完成各种量程电压的测量,电路中设计有20衰减系数的衰减器,1、2、5和20四种放大倍数的放大器,从而可以得到四个量程。量程转换电路中的切换开关使用cd4051模拟开关。模拟开关由at89s52进行控制。(1) 衰减电路。本设计中电阻网络衰减器如图 本设计中衰减系数为20,所以电阻r1为190k,r2为1k 。(2)程控放大和自动量程转换电路。程控放大器是智能仪器的常用部件之一。

26、为了在整个测量范围内获取合适的分辨力,采用可变增益的放大器,放大器的增益由程序控制,这种放大器就是程控放大器。程控放大器由放大器、可变反馈电阻网络和控制接口三部分组成。它与普通放大器的差别在于反馈电阻网络可变且受控与控制接口的输出信号。程控放大器有同相和反相两种。由于同相放大器具有较高的输入阻抗,这有利于提高测量电压准确度。不过,它引入了共模电压,因 此使用高共模抑制比的运算放大器才能保证精度。由于选择同增益时,运算放大器反向输入端对地等效电阻的变化将引起失调偏差。设计中并没有采用t型反馈电阻网络,因此无法通过调整放大器本身的参数或零位来消除。这样只有通过自校正才能加以弥补。本设计中电压量程部

27、分 先把输入电压进行衰减 1 20 然后通过运算放大进行信号的放 在改变放大电路的放大倍数 即可实现量程的切换 运算放大器是用电压负反馈比例放大 由 cd4051 模拟开关进行rf 的选择 从而实现放大倍数的控制 图中 s1 s3 为调节电位器 因为模拟开关存在导通电阻 要用电位器进行调节利得到理想放大倍数。电路图如下 cd4051为路模拟开关的结构原理如图3-3所示。cd4051由电平转换、译码驱动及开关电路三部分组成。当禁止端为“1”时,前后级通道断开,即s0s7端与sm端不可能接通;当为“0”时,则通道可以被接通,通过改变控制输入端c、b、a的数值,就可选通8个通道s0s7中的一路。比如

28、:当c、b、a=000时,通道s0选通;当c、b、a=001时,通道s通;当c、b、a = 111时,通道s7选通。其真值表如表3-1所示。 3.3.5数字显示部分1 通常的led显示器有7段或8段和“米”字段之分。这种显示器有共阳极于共阴极两种。共阴极led显示器的发光二极管的阴极连接在一起,通常此公共阴极接地。当某个发光二极管的阳极为高电平时,发光二极管点亮,相应的段被显示。同样,共阳极led显示器的工作原理也一样。方案1:采用静态显示方式。在这种方式下,各位led显示器的共阳极(或共阴极)连接在一起并接地(或接电源正),每位段选线分别与一个8位的锁存器输出相连,各个led的显示字符一经确

29、定,相应的锁存器的输出将维持不变,只到显示另一个字符为止,正因为如此,静态显示器的亮度都比较高。若用i/o接口,这需要占用nx8位i/o口(led显示器的个数为n)。这样的话,如果显示器的个数较多,那使用的i/o接口就更多,因此在显示器位数较多的情况下,一般都不用静态显示。方案2:采用动态显示方式。当多位led显示时,通常将所有位的段选线相应的并联在一起,有一个8位的i/o口控制,形成选线的多路复用。而各位的共阳极或共阴极有相应的i/o口线控制,实现各位的分时选通。其中段选线占用其中的一个8位i/o口,而位选线占用n个i/o口(n为led显示器的格数)。由于各位的段选线并联,断码的输出对各位来

30、说都是相同的,因此,同一时刻,如果各位选线都处于选通状态的话,那led显示器将显示相同的字符。若要个位led能显示出与本位相应的字符,就必须采用扫描显示方式,即在某一时刻,只让某一位的为选线处于选通状态,而其他各位的位选线处于关闭状态。同时,段选线上输出相应位要显示字符的段码。这种显示方式占用的i/o口个数为8+n(n位led显示器的个数),相对静态显示少了很多,但需要占用大量的cpu资源,当cpu处理别的事情时,显示可能出现闪烁或者不显示的情况。方案3:采用移位寄存器扩展i/o口,只需要占用3个i/o口,即数据、时钟、输出使能,从理论上讲就可以为限制的扩展i/o口,而且显示数据为静态显示,几乎不占用cpu资源。采用扩展口后,又能采用静态显示,这样,既解决了静态显示占用i/o口多的问题,也解决了动态显示不稳定、容易闪烁、占用cpu资源过多的问题。方案选择:选择方

温馨提示

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

最新文档

评论

0/150

提交评论