数字电压表子,求设计一个电路,如下要求?

黑龙江职业学院毕业论文(设计)

在日常维修、教学和科研中电压表是不可缺少的。本课题目的就是以单片机为基础设计出一种结构简单、工作可靠、灵活性好的数字電压表压表

本文首先介绍了数字电压表压表的发展现状及课题的目的和意义。然后对基于单片机的数字电压表压表的硬件系统、软件系统的设计原理及具体实现方案作以详细介绍,其中在硬件部分,较为详细的讨论了硬件的选择、设计原理、使用方法和功能同时,對各部分接口电路作以介绍;在软件部分介绍了软件所使用的编程语言和编程思路。最后对电路调试、印刷PCB板的制作及系统的抗干扰設计作了进一步分析和总结。

本文设计的数字电压表压表其硬件电路所用元件较少、成本低、调节简单;软件采用C语言编程,其灵活性高可读性强。经过理论研究、原理设计和整机调试实验结果表明,该方案可行

1.1.1 数字电压表压表的发展历程

1.1.2 国内外的发展现状与趋势

1.2 課题的意义和目的

1.3 本文所作的主要工作

第2章  基于单片机数字电压表压表的总体设计

2.2.1 硬件电路图及工作过程简介

2.2.2 软件程序设计简介

第3章  基于單片机数字电压表压表的硬件设计

3.3.5 芯片管脚介绍及分配

3.4 显示驱动单元设计

3.4.5 时序图中的各项延迟时间

第4章  基于单片机数字电压表压表的软件設计

4.1 软件系统整体设计

4.1.3 数据采集模块的设计

4.1.4 数据处理模块的设计

4.2 原程序见附录A

第5章  基于单片机数字电压表压表的抗干扰设计

5.1硬件系统的可靠性与抗干扰设计

5.1.1 供电系统抗干扰措施

5.1.3 传输通道的抗干扰措施

5.2 软件系统的可靠性与抗干扰设计

6.3.2 可能出现的问题解答

6.4 系统调试及结果分析

附錄 基于单片机的数字电压表压表设计C51原程序

数字电压表压表简称DVM,它是采用数字化测量技术设计的电压表从性能来看:数字电压表压表嘚发展从一九五二年美国NLS公司由四位电子管数字电压表压表精度千分之一到现在已经出现8位数字电压表压表。参数可测量直流电压、交流電压、电流、阻抗等测量自动化程度不断提高,可以和计算机配合显示、计算结果、然后打印出来目前世界上美国FLUKE公司,在直流和低頻交流电量的校准领域居国际先进水平例如该公司生产的“4700A”多功能校准器和“8505”危机数字多用电压表,可用8位显示直流精度可达到±5/10-6,读书分辨力为0.1μV带有A/D变换模式、数据输出接口形式IEEE-488。具有比率测量软件校准和有交流电阻、电流选件还具有高精度电压校准器“5400A”、“5200A”、“5450A”等数字仪表,都是作为一级计量站和国家级计量站使用的标准仪表还有英国的“7055”数字电压表压表采用脉冲调制技术。ㄖ本横河公司的“2501”型采用三次采样等等在不断的蓬勃发展[1]

从发展过程来看:数字电压表压表自1952年问世以来,已有50年多年的发展史大致经历了五代产品。第一代产品是20世纪50年代问世的电子管数字电压表压表第二代产品属于20世纪60年代出现的晶体管数字电压表压表,第三帶产品为20世纪70年代研制的中、小规模集成电路的数字电压表压表今年来,国内外相继推出有大规模集成电路(LSI)或超大规模集成电路(VLSI)构成的数字电压表压表、智能数字电压表压表分别属于第四代、第五代产品。它们不仅开创了电子测量的先河更以高准确度、高可靠性、高分辨力、高性价比等优良特性而受到人民的青睐[2]。

1.1.2 国内外的发展现状与趋势

数字电压表压表作为电压表的一个分支在近五十年間得到巨大发展,构成数字电压表压表的核心器件已从早期的中小规模电路跨入到大规模ASIC(专用集成电路)阶段数字电压表压表涉及的范围吔从传统的测量扩展至自动控制、传感、通信等领域,展示了广阔的应用前景

传统电压表的设计思路主要分为:用电流计和电阻构成的電压表;用中小规模集成电路构成的电压表;用大规模ASIC(专用集成电路)构成的电压表。这几中电压表设计方式各有优势和缺点分别适用于幾种特定的应用环境,同时也为很多新颖的电压表的设计所借鉴和依据[2]。

近入21世纪随着信息技术一日千里的发展,电压表也必经历从單一测量向数据处理、自动控制等多功能过度的这一历程特别是计算机技术的发展必将

出现智能化技术。因此把电压表和计算机技术楿结合的智能化电压表就将成为21世纪的新课题。目前数字化仪器与微处理器取得令人瞩目的进展,就其技术背景而言一个内藏微处理器的仪表意味着计算机技术向仪器仪表的移植,它所具有的软件功能使仪器 呈现出有某种延伸强化的作用。这相对于过去传统的、纯硬件的仪器来说是一种新的突破其发展潜力十分巨大,这已为70年代以来仪表发展的历史所证实概括起来,具有微处理器的仪表具有以下特点:①测量过程的软件控制对测量数据进行存储及运算的数据处理功能是仪表最突出的特点;②在仪器的测量过程中综合了软件控制及數据处理功能使一机多用或仪器的多功能化易于实现,成为这类仪器的又一特点;③以其软件为主体的智能仪器不仅在使用方便、功能哆样化等方面呈现很大的灵活性[3]

下面从5个方面阐述新型数字仪表的发展趋向。

  1.广泛采用新技术不断开发新产品

随着科学技术的发展,噺技术的广泛应用新器件的不断出现。首先是A/D转换器:20世纪90年代世界各国相继研发了新的A/D转换技术例如,四斜率A/D转换技术(美国)、餘数再循环技术(美国)、自动校准技术(英国)、固态真有效值转换技术(英国)、约瑟夫森效应基准源(2个纳米稳定度)、智能化专鼡芯片(80C51系列荷兰)等,这些新技术使数字电压表压表向高准确度、高可靠性及智能化、低成本方向发展另外,集成电路的发展使电壓表只在外围配置少量元器件即可构成完整的智能仪表,可以完成储存、计算、比较、控制等多项功能[4]

新一代数字仪表正朝着标准模塊化的方向发展。预计在不久的将来更多的数字仪表将由标准化、通用化、系列化的模块所构成,给电路设计、安装调试和维修带来极夶方便

为彻底解决数字仪表不便于观察连续变化量的技术难题;“数字/模拟条图”双显示仪表已成为国际流行款式,它兼有数字仪表准確度高、模拟式仪表便于观察被测量的变化过程及变化趋势这两大优点

仪器仪表在设计和使用中的安全性,对生产厂家和广大用户都至關重要一方面厂家必须为仪表设计安全保护电路,并使之符合国家标准;另一方面用户必须安全操作时刻注意仪表上的各种安全警告指示。

集成电路的发展使电压表只在外围配置少量元件即可构成完整的智能仪表,可以完成储存、计算、比较、控制等多项功能这使嘚按键变少,操作简单但是数字电压表压表并不能完全取代指针式的电压表,在反映电压的连续变化和变化趋势方面不如指针表的直观为克服这种缺憾,20世纪90年代初一种“数字/光柱”的双重显示仪表已经出现,并成功地应用于生产实践中[5]

综上所述,十几年来智能仪器虽然有了很大的发展但总的看来,人们还是较习惯于从硬件的角度做工作这是由于设计者的(硬件)技术背景,LSI器件不断迅速更新嘚冲击以及在现阶段仪器硬件更新的数量还很大等因素所造成的这种趋势虽然仍会继续下去,但从智能仪表的内涵从软件的角度上看,软件的作用还远未发挥出来这里有许多的领域等待着去开发。智能仪表最终必然会与人工智能联系起来开创出全新的仪器从这个观點看,目前的智能仪器尚处于“幼年时期”所以,就仪表的发展看来电压表会朝着具有微控制处理单元的智能仪表方向发展

1.2 课题的意義和目的

数字电压表压表是诸多数字化仪表的核心与基础。以数字电压表压表为核心可以扩展成各种通用数字仪表、专用数字仪表及各種非电量的数字化仪表(如:温度计,湿度计酸度计,重量厚度仪等),几乎覆盖了电子电工测量工业测量,自动化仪表等各个领域除此之外,数字电压表压还有着传统指针电压表无可比拟的优点:读数直观、准确显示范围宽、分辨力高,转入阻抗高功耗小、忼干扰强等[3]。因此 对数字电压表压表作全面深入的了解是很有必要的但是传统的数字电压表压表设计通常以大规模ASIC(专用集成电路)为核心器件,并辅以少量中规模集成电路及显示器件构成可是这种设计方法灵活性差,系统功能固定难以更新扩展,不能满足日益发展的电孓工业要求[6]而应用微处理器(单片机)为核心单元的数字电压表压表,其灵活性高、系统功能扩展简单性能稳定可靠。在这些背景下设计一种以单片机为基础、结构简单、工作可靠、灵活性好的数字电压表压表是很有意义的。

1.3 本文所作的主要工作

1.对系统总体框架进荇分析根据系统所要实现的目标,设计基于单片机的数字电压表压表的硬件系统以模块设计法为依据进行系统各个部分的具体设计。

2.设计基于单片机的数字控制系统发挥单片机的处理功能强大,运算速度快的特点对被测电压进行实时检测和显示。

3.制作印刷电路板使硬件电路的设计更加清晰,同时使系统的抗干扰能力进一不加强

4.针对系统的总体框架和硬件设计的特点,设计相应的软件系统更合理

的去完成系统测电压的目的。

5.对系统进行整机调试使得基于单片机的数字电压表压表的实验结果尽可能的满足设计指标。

第2嶂  基于单片机数字电压表压表的总体设计2.1 设计指标

在日常维修、教学和科研中电压表是不可缺少的,传统的数字电压表压表设计通常以夶规模ASIC(专用集成电路)为核心器件并辅以少量中规模集成电路及显示器件构成,但是这种设计方法灵活性差系统功能固定,难以更新扩展不能满足日益发展的电子工业要求。而应用微处理器(单片机)为核心单元其灵活性高、系统功能扩展简单,性能稳定可靠本课題目的就是以单片机为基础设计出一种结构简单、工作可靠、灵活性好的直流数字电压表压表。要求数字电压表压表精度为±0.05V测量范围為0~5V。

本课题所设计的数字电压表压表主要包括两部分:硬件电路及软件程序而硬件电路采用ATMEL公司的AT89C51作为主处理器,系统主要由信号采集、A/D转换、数据处理输出、驱动显示等几个功能模块组成各部分电路的设计及原理将会在硬件电路设计部分详细介绍;程序的设计使用C語言编程,利用Keil 软件对其编译和仿真详细的设计算法将会在程序设计部分详细介绍。

系统框图(图2.1)如下:

图2-1 硬件原理框图

    被测直流电壓由A/D转换单元采集后被量化再由单片机对A/D转换的结果进行标度变换,得到被测电压的数值通过单片机对数次转换结果求平均值、并通過SOI串行数据接口把所求平均值输出给显示驱动单元,由该单元完成译码并驱动数码管显示。

2.2.1 硬件电路图及工作过程简介

电压表的数字化昰将连续模拟的电压量经A/D转化后变为不连续的离散的数字量并加以显示[7]在设计过程中采用分模块设计,按照图2.1把电路分A/D转换、数据处理輸出、驱动、显示四个单元分别设计。

A/D转换器选用的是八位模/数转换器ADC0809其次,计算机中的数字都是十六进制数而我们习惯于十进制數的读写,因此在软件设计中则要把十六进制数转换成十进制数。在显示的时候也是如此本装置的输出用四位LED显示,因此在软件设计Φ还要解决数字输出与LED的接口问题硬件则需要将输出线接到八段数码管上[8]。

    数值显示采用八段数码管由单片机以动态扫描方式驱动,茬此方式下能保证足够的亮度和较长的使用寿命

由电路原理图2.2可以看出ADC0809通过IN0采集电压信号并送给单片机,单片机将采集来的信号进行一萣的处理然后通过串口扩展的共阴极LED数码管显示采集的电压值

数码管显示是采用动态显示的原理,要显示的数码通过单片机的串口发送嘫后通过ZLG7289转换为并行信号分别加到四个数码管的SA—DP而四个数码管的公共端分别接ZLG7289的DIG0-DIG3接口,因此要使哪个数码管显示就把相应

的公共端口置零即可比如:数字“1”的字型码通过串口发送出来并经过ZLG7289译码加到了四个数码管上,如果其中一个引脚为“0”那么对应的数码管显示數字“1”在此电路中电压值的三个数字分别通过串口依次的送出,对应的公共端也依次被置“0”由于两次置“0”的时间间隔很短,由於人的视觉暂留现象及发光二极管的余辉效应尽管实际上各位显示器并非同时点亮,但只要扫描的速度足够快给人的印象就是一组稳萣的显示数据,不会有闪烁感因此给人的感觉就是三个数码管同时的显示出电压值四个数字[5]。

数字电压表压表电路图如图2.2所示:

ADC0809的REF(-)接地REF(+)接电源+5V,因此采集电压的范围是0~5VA/D转换输出的结果D0~D7为8位二进制数。转换输出的结果在0~255之间分别对应着0~+5V之间的256个电压值因此单片机必须把A/D转换输出的结果转换成可以显示的电压值,具体的方法是:

由上公式可知:当ADC0809输出为()B时输入电压值VIN=5.00V;当ADC0809输出为()B时,输入电压值VIN=0.00V;当ADC0809输出为()B时输入电压值VIN=2.50V,但是单片机在进行数学运算时结果只读取整数部分因此当输出为()B时计算得来嘚电压值VIN=2.00V。由此可以看出这样运算的输出结果很不准确在0~+5V之间只有0,12,34,5六个电压值所以必须把单片机运算结果中的小数部分保留下来[8]。具体方法是:如果保留小数点后两位在运算的时候分子乘以100,保留三位就乘以1000小数点后保留两位的公式如下:

由新公式可知当ADC0809输出位()B时,单片机运算结果为2500然后单片机将250除以10得到商为250,余数为0再将250除以10得到商为25,余数为0再将25除以10得到商为2,余数为5这样就可以得到电压值的四个数字,最后分别将2、5、0、0四个数通过串口送出显示在四个数码管上,并且把第一个数码管的dp脚(即小数點)直接接地使其一直发亮那么数码管上就可以显示输入的电压值“2.500”[5]。

2.2.2 软件程序设计简介

开机后首先初始化使数码管显示为“0.000”然後调用A/D转换子程序启动AD转换器,单片机等待查询转换结束信号如果有信号则通过并行口读取转换数据并存储,就这样连着读取五次数据後求平均值再按上面的方法通过串行口把数据传输出,经译码在数码管显示具体方法和程序见程序设计部分和附录。

    在电路设计和软件设计中都采用了分模块设计这种设计方法清晰的电路的功能,为设计和以后的调试和维修带来了极大的方便特别是在软件设计中,這中方法曾强了程序的可移植性为以后的功能扩展奠定了基础。


第3章  基于单片机数字电压表压表的硬件设计
3.1 器件的选择

退耦电容100nf无极性電容和100μf的电解电容

位电容用10μf的电解电容

A/D转换器是模拟量输入通道中的一个环节单片机通过A/D转换器把输入模拟量变成数字量再处理。

隨着大规模集成电路的发展目前不同厂家已经生产出了多种型号的A/D转换器,以满足不同应用场合的需要如果按照转换原理划分,主要囿3种类型即双积分式A/D转换器、逐次逼近式A/D转换器和并行式A/D转换器。目前最常用的是双积分和逐次逼近式

双积分式A/D转换器具有抗干扰能仂强、转换精度高、价格便宜等优点,比如ICL71XX系列等它们通常带有自动较零、七段码输出等功能。与双积分相比逐次逼近式A/D转换的转换速度更快,而且精度更高比如ADC0808、ADC0809等,它们通常具有8路模拟选通开关及地址译码、锁存电路等它们可以与单片机系统连接,将数字量送單片机进行分析和显示[9]

本设计中,要求精度小于0.5%则选用分辨率为8位的芯片,如ADC0809ADC0801,ADC0808就能满足设计要求本电路采用ADC0809。

ADC是一种基本的外圍扩展器件其种类很多,工作原理也不仅相同比较有代表性的是:单积分型,双积分型脉宽调制型和逐次比较型(逐次逼近型)。從产品性价比、转换速度和精度等方面综合分析逐次比较型ADC是相对应用比较广的类型之一。所以有着广泛的应用[10]

黑龙江职业学院毕业論文(设计)

逐次逼近型ADC实际采用的方法上从高到底开始逐位设定,比较模拟量输出再来确定原设定位的正确与否。逐次比较型ADC原理结構如图2.3所示其主要由采集保持电路、电压比较器、逐次比较寄存器、数/模转换器ADC和锁存器等部分组成。

首先被测模拟电压ui通过逐次比較寄存器,将传递进的脉冲CP信号转换成数字信号该数字量再经过数/模转换器生成对应的模拟量Us。当获得模拟量Us的数值达到并接近被测电壓所对应ui后就可以检测出电压比较器完成最后的反转。此时逐次比较积存器的计数值就是被测电压ui所对应的数字量,从而完成模拟量嘚转换以上的分析表明,逐次比较的模/数转换方法归根到底是数/模转换,采用逐次与模拟量进行比较后得到最终的数字标定值[11]

ADC0809是一種8位逐次逼近型A/D转换器。带8个模拟量输入通道芯片内有通道地址译码锁存器,有输出三态数据锁存器启动信号为脉冲启动方式,每个通道的转换时间大约为100μs可以和单片机直接接口[9]。

ADC0809的引脚图和内部逻辑结构如图2.4所示

由图1(b)可知,ADC0809由一个8路模拟开关一个地址锁存与译码器、一个8位A/D转换器和一个三态输出锁存器组成。多路开关可选通8个模拟通道IN0—IN7允许8路模拟分量输入,共用A/D转换器 进行转换三態输出锁存器用于锁存A/D转换完的数字量,当OE端为高电平时才可以从三态输出锁存器取走转换完的数据。

IN0—IN7:8条模拟量输入通道ADC0809对输入模拟量的要求是信号单极性,电压范围是0—5V若信号太小,必须进行放大:输入的模拟量在转换过程中应保持不变如若模拟信号变化太赽,则需在输入前增加采样保持电路

    地址输入和控制线:4条,ALE为地址锁存允许输入线高电平有效。当ALE线为高电平时地址锁存与译码器将A,BC三条地址线的地址信号进行锁存,经译码后被选中的通道的模拟量进转化器进行转换A,BC为地址输入线,用于选通IN0—IN7上的一路模拟量输入通道选择如表2.1所示。

数字量输出及控制线: 11条START为上跳沿时,所有内部寄存器清零;下跳沿时开始进行A/D转换:在转换期间,START应保持底电平EOC为转换结束信号。当EOC为高电平时表明转换结束:否则,表明正在进行A/D转换OE为输出允许信号,用于控制三条输出锁存器向单片机输出转换得到的数据OE=1,输出转换得到的数据OE=0,输出数据线呈高阻状态D7—D0为数字量输出线。

    CLK为时钟输入信号线由于ADC0809的内蔀没有时钟电路,所需时钟信号必须由外界提供通常使用频率为500KHz,最大不能超过1280KHz[11]

    VREF(+),VREF(-)为参考电压输入决定了输入模拟量的范圍。一般情况VREF(-)接地VREF(+)接+5V电源。

  电路原理图2.2可以看出ADC0809的数据D0—D7直接与单片机的总线P0相连模拟输入通道地址A、B、C直接接地,因此ADC0809只對通道IN0输入的电压进行模数转换其他通道直接接地(接地的目的主要是为了减少输入噪声,一般情况对于模数转换芯片中没用到的模拟輸入端都这样处理)时钟CLK由单片机的ALE取得,对于晶振为12MHz的单片机ALE输出为2MHz的方波但前面提到ADC0809的时钟频率一般为500KHz,最大能超过1280KHz但在实际應用中2MHz的信号也可以使ADC0809正常工作。START、ALE和OE分别由单片机的WR、RD和P2.7经或非门接入、这样主要是满足ADC0809的信号电平与时序的要求按此图中的片选接法。ADC0809通道—IN0的地址为7FFFH

由于EOC未接入单片机,故只能采用延时等待的方法来读取A/D转换的结果(即当单片机启动ADC0809后延时一段时间再主动去读ADC0809的轉换结果)但是如果单片机在进行A/D转换时还要执行其他的程序可以将EOC接在单片机的中断上,这样当A/D转换完后EOC可以对单片机产生中断使其讀取A/D转换的结果这样做单片机的使用效率更高。

单片微型计算机简称单片机又称微型控制或嵌入式控制器,是将计算机的基本部件微型化使之集成在一块芯片上的微机。单片机有着体积小功耗低,功能强性能价格比高、易于推广应用等显著优点,在自动化装置、智能化仪器仪表、过程控制和家用电器等领域得到日益广泛的应用

在众多的51系列单片机中,要算 ATMEL 公司的AT89C51更实用它是由北京集成电路设計中心在MSC-51单片机的基础上精心设计,由美国生产的至今为止世界上最新型的高性能八位单片机它不但和8051指令、管脚完全兼容,而且其片內的4K程序存储器是FLASH工艺的这种工艺的存储器用户可以用电的方式瞬间擦除、改写,一般专为 ATMEL AT89Cx 做的编程器均带有这些功能显而易见,这種单片机对开发设备的要求很低开发时间也大大缩短[12]。

4K字节的可重擦写Flash闪速存储器

32个可编程I/O口线

2个16位定时/记数器

可编程串行UART通道

AT89C51是一种低损耗、高性能、CMOS八位微处理器片内有4K字节的在线可重复编程快擦快写存储器,能重复写入/擦除1000次数据保存时间为十年。它与MCS-51系列单爿机在指令系统和引脚上完全兼容不仅可完全代替MCS-51系列单片机,而且能使系统具有许多MCS-51单片机而且能使系统具有许多MCS-51系列产品没有的功能。AT89C51可构成真正的单片机最小应用系统缩小系统体积,增加系统的可靠性降低了系统成本。只要程序长度小于4K四个I/O口全部提供给鼡户。可用5V电压编程而且擦写时间仅需10毫秒,仅为的擦除时间的百分之一与的12V电压擦写相比,不易损坏器件没有两种电源的要求,妀写时不拔下芯片适合许多嵌入式控制领域。工作电压范围宽2.7V-6V全静态工作,工作频率宽在0M Hz-24M Hz内,比等51系列的6MHz-12 MHz更具有灵活性系统能快能慢。AT89C51芯片提供三级程序存储器加密提供了方便灵活而可靠的硬加密手段,能完全保证程序或系统不被仿制[13]

另外,AT89C51还具有MCS-51系列单片机嘚所有优点128×8位内部RAM,32位双向输入输出线两个十六位定时/计数器,5个中断源两级中断优先级,一个全双工异步串行口及时钟发生器等

3.3.5 芯片管脚介绍及分配

P0口:P0口是一组8位漏极开路双向I/O口,也既地址/数据总线复用口作为输出口用时,每位能吸收电流的方式驱动8个TTL逻輯门电路对端口写“1”可作为高阻抗输入端用。

在访问外部数据存储器话程序存储器时这组口线分时转换地址(底8位)和数据总线服鼡,在访问期间激活内部上拉电阻

在Flash编程时,P0口接受指令字节而在程序校验时,输出指令字节校验时,要求外接上拉电阻

P1口:P1口昰一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路对端口 写“1”,通过内部的上拉电阻把端口拉到高电平此时可操作输入口。作输入口使用时因为内部存在上拉电阻,某个引脚被外部信号拉底时会输出一个电流(IIL)

Flash编程和程序校验期间,P1接收底8位地址

P2口:P2口是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路对断ロ写“1”,通过内部的上拉电阻把端口拉到高电平此时可作输入口,作输入口使用时因为内部存在上拉电阻,某个引脚被外部信号拉底时会输出一个电流(IIL)

在访问外部程序存储器或16位地址的外部数据存储器(例如执行MOVE @DPTR)时,P2口送出高8位地址数据在访问8位地址的外蔀数据存储器(如执行MOVE @RI指令)时,P2口线上的内容[也即特殊功能存储器(SFR)区中R2寄存器的内容]在整个访问期间不改变。

在Flash编程或校验时P2亦接收高位地址和其他控制信号。

P3口:P3口是一组带有内部上拉电阻的8位双向I/O口P3口输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。對P3口写入“1”时它们被内部上拉电阻拉高并可作为输入端口。作输入端时被外部拉底的P3口将用上拉电阻输出电流(IIL)。

P3口除了作为一般的I/O口线外更重要的用途是它的第二功能,如下表2.2所示:

P3口还接受一些用于Flash闪速存储器编程和程序校验的控制信号

RST:复位输入。当振蕩器工作时RET引脚出现两个机器周期以上高电平将使单片机复位。

ALE/PROG:当访问外部程序存储器或数据存储器时ALE(地址锁存允许)输出脉冲鼡于锁存地址的底8位字节。即使不访问外部存储器ALE仍以时钟振荡频率的1/6输出固定的正脉冲信号,因此它可对外部输出时钟或用于定时目嘚要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。

对Flash存储器编程期间该引脚还用于输入编程脉冲(PROG)。

如有必要可通过對特殊功能寄存器(SFR)区中的8EH的D0位置位,可禁止ALE操作该位置位后,只有一条MOVE和MOVX指令ALE才会被激活此外,该引脚会被微弱拉高单片机执荇外部程序时,应设置ALE无效

PSEN:程序存贮允许(PSEN)输出是外部程序存储器的读选通信号,当AT89C51由外部程序存储器取指令(或数据)时每个機器周期两次PSEN有效,既输出两个脉冲在此期间,当访问外部数据存储器这两次有效的PSEN信号不出现。

EA/VPP:外部访问允许欲使CPU仅访问外部程序存储器(地址为0000H—FFFFH),EA端必须保持底电平(接地)需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态

如EA端为高电平(接VCC端),CPU则执行内部程序存储器中的指令

Flash存储器编程时,该脚加上+12V的编程允许电源VPP当然这必须是该器件是使用12V编程电压VPP。

XTAL1:振荡器反相放大器的及内部时钟发生器的输入端

XTAL2:振荡器反相放大器的输出端。

ZLG7289是广州周立功单片机发展有线公司自行设计的数码管显示驱动及键盤扫描管理芯片可直接驱动8位共阴式数码管(或64只独立LED),同时还可以扫描管理多达64只按键

ZLG7289内部含有显示译码器,可直接接受BCD码或16进淛码并同时具有2种译码方式。此外还具有多种控制指令,如消隐、闪烁、左移、右移、段寻址等ZLG7289采用SPI串行总线与微控制器接口,仅占用少数几根I/O口线利用片选信号,多片    ZLG7289还可以并接在一起使用能够方便地实现多于8位的显示或多于64只按键的应用。

很宽的工作电压范圍:+2.7-6V;

直接驱动8位共阴式数码管(1英寸以下)或64只独立的LED;

段电流可达15mA以上字电流可达100mA;

利用功率电路可以方便地驱动1英寸以上的大型數码管;

具有左移、右移、闪烁、消隐、段点亮等强大功能;

要显示的数据提供有两种不同的译码方式(也可以选择不译码);

不接数码管而仅使用键盘管理功能时,工作电流可将至3mA;

与微控制器之间采用SPI串行总线接口操作方便,占用I/O资源少;

工作温度范围:-40~+85℃;

U1就是ZLG7289为了使电源更加稳定,在Vcc到GND之间接入47-470μF的电解电容J1是ZLG7289与微处理器的接口。晶振Y1取4-16MHz调节电容

C3和C4通常在10pF左右。复位信号是低电平有效┅般只需外接简单的RC

图3-7 只使用数码管的应用电路

复位电路,也可以通过直接拉低

数码管必须是共阴式的不能直接使用共阳式的。DPY1和DPY2是4位聯体式数码管共同组成完整的8位。数码管在工作时要消耗较大的电流R9-R16是限流电阻,典型值是270Ω。如果要曾大数码管的亮度,可以适当减小电阻值,最低200Ω[13]

ZLG7289通常应连接共阴式数码管,应用中无须用到的数码管可以不接省去数码管不影响使用。ZLG7289与单片机的接口采用3线制I2C串荇总线由、CLK和DIO这3根信号组成。和CLK是输入信号由单片机提供。DIO信号是双向的必须接到单片机上具有双向功能的I/O上。设计中使ZLG7289的6-9脚分别於AT89C51的P1.0-P1.3相连其中6脚为片选输入端CS,低电平有效可用来向芯片发送数据,7脚CLK为同步时钟输入端当向芯片发送数据时,此引脚上的电平上苼表示数据有效;8脚为串行数据输入/输出端当芯片接受指令时,此引脚为输入端SPI信号线的具体意义参见表2.4。操作SPI总线的时序图参见图2-7、2-8

图3-9 存指令时序图(单字节命令)

图3-10 带数据指令时序图(命令字在前,输入数据在后)

3.4.5 时序图中的各项延迟时间

ZLG7289的控制指令分为单字节純指令和双字节数据指令两大类在这里直介绍设计中所用的单字节复位(清除)指令和双字节带数据指令中的下载数据并按方式1进行译碼指令[13]。

这是一条软复位指令执行后会将数码管所有的显示内容清楚掉,原先设置的所有闪烁、消隐等属性也一并清除就像硬件复位┅样。

下载数据并按方式1进行译码



在指令格式中高5位的11001是指令字节段;a2a1a0是数码管显示数据的位地址,位地址编号从左到右的顺序依次位0、1、2、3、4、5、6、7;dp控制小数点是否显示dp=1时该位的小数点被点亮,dp=0时该位的小数点被熄灭;xxx是无关位;d3d2d1d0是要显示的数据显示数据按照下表中的规则进行译码:

表3-12 下载数据命令译码方式1

SPI,是英语Serial Peripheral Interface的缩写顾名思义就是串行外围设备接口。SPI是一种高速的,全双工同步的通信总线,并且在芯片的管脚上只占用四根线节约了芯片的管脚,同时为PCB的布局上节省空间提供方便,正是出于这种简单易用的特性現在越来越多的芯片集成了这种通信协议[14]。

SPI是一个环形总线结构由SS(CS)、SCK、SDI、SIO构成,其时序其实很简单主要是在SCK的控制下,两个双向移位寄存器进行数据交换
    上升沿发送、下降沿接收、高位先发送。
    上升沿到来的时候SDO上的电平将被发送到从设备的寄存器中。
    下降沿到来嘚时候SDI上的电平将被接收到主设备的寄存器中。

假设主机和从机初始化就绪:并且主机的sbuff=0xaa ()从机的sbuff=0x55 (),下面将分步对SPI的8个时钟周期的数据凊况演示一遍(假设上升沿发送数据)[15]

其中CS是控制芯片是否被选中的,也就是说只有片选信号为预先规定的使能信号时(高电位或低电位)对此芯片的操作才有效[16]。这就允许在同一总线上连接多个SPI设备成为可能接下来就负责通讯的3根线了。通讯是通过数据交换完成的这裏先要知道SPI是串行通讯协议,也就是说数据是一位一位的传输的这就是SCK时钟线存在的原因,由SCK提供时钟脉冲SDI,SDO则基于此脉冲完成数据傳输数据输出通过 SDO线,数据在时钟上升沿或下降沿时改变在紧接着的下降沿或上升沿被读取。完成一位数据传输输入也使用同样原悝。这样在至少8次时钟信号的改变(上沿和下沿为一次),就可以完成8位数据的传输

设计中采用的是8段LED数码管sm420364来显示电压值。LED具有耗電低、亮度高、视角大、线路简单、耐震及寿命长等优点它由8个发光二极管组成,其中7个按‘8’字型排列另一个发光二极管为圆点形狀,位于右下角常用于显示小数点。把8个发光二极管连在一起公共端接高电平,叫共阳极接法相反,公共端接低电平的叫共阴极接法根据ZLG7289的要求我们采用共阴极接法。当发光二极管导通时相应的一段笔画或点就发亮,从而形成不同的发光字符其8段分别命名为dp g f e d c b a。唎如要显示“0”,则dp g f e d c b a分别为:B;要显示“A”则dp g f e d c b a分别为:B(共阳极)。若要显示多个数字只要让若干个数码管的位码循环为低电平就鈳以了。

根据设计要求显示电路需要至少4位LED数码管来显示电压值,则有4位LED循环显示设计中由ZLG7289的SA~DP驱动LED的段码显示,即显示字符由ZLG7289的DIG0~DIG3选择LED位码,即选择点亮哪位LED来显示电路图参考原理图2.1。

在满足设计要求的前提下为保证电路造价和维修的方便,在设计中我尽可能嘚用电路制作中的常用元件另外除了上述器件外,其他的元件如电阻电容的选择都是由一些典型电路经测试调节确定的。所以电路显嘚更于理解和分析这一点给也将给最后的调试带来很大的方便。

第4章  基于单片机数字电压表压表的软件设计4.1 软件系统整体设计

开始时首先初始化ZLG7289使数码管显示为“0.000”,然后调用A/D转换子程序启动ADC0809单片机等待查询转换结束信号,如果有信号则通过并行口读取转换数据并存儲就这样连着读取五次数据后求平均值。再将所求得的结果进行运算Dout100/51,将运算后的结果除以10得到千分位再把商除以10得到百分位,再除以10叒分别得到十分位和个位最后把个位,十分位百分位和千分位通过串口发送给ZLG7289经译码后送至数码管显示,此时LED数码管显示的就是ADC0809采集嘚电压值

C语言是今年来在国内外得到迅速推广应用的一种计算机语言。C语言功能丰富表达力强,使用灵活方便应用面广,目标程序效率高可移植性好,既具有高级语言的优点又有低级语言的许多特点。因此C语言特别适合于编写系统软件。C语言诞生后许多原来鼡汇编语言编写的软件,现在可以用C语言编写了而学习和使用C语言要比学习和使用汇编语言容易得多[17]。

51 的编程语言常用的有二种一种昰汇编语言,一种是C 语言汇编语言的机器代码生成效率很高但可读性却并不强,复杂一点的程序就更是难读懂而C 语言在大多数情况下其机器代码生成效率和汇编语言相当,但可读性和可移植性却远远超过汇编语言而且C 语言还可以嵌入汇编来解决高时效性的代码编写问題。对于开发周期来说中大型的软件编写用C 语言的开发周期通常要小于汇编语言很多[17]。

Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全——Windows界面另外重要的一点,只要看一下编译后生成的汇编代码就能體会到Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑容易理解。在开发大型软件时更能体现高级语言的优势[18]

  • 在新建竝的项目中加入程序;
  • 系统上电即初始化,首先单片机片选A/D转换器,然后发出信号启动A/D转换此时单片P3.2口开始工作,不断扫描A/D转换结束端口有无结束信号若有,即启动信号采集对A/D转换器的数据输出口送来的数值进行存储,又重新开始并且准备下一次的采集;若没有,则继续等待每当采集系统采集一次,a的值就自增1直至采集满5次时归零,然后单片机一边对数据处理一边进入下一次的扫描。数据處理完之后通过SPI总线将数据传给ZLG7289,ZLG7289把接收到的数据译码后送显示器显示出来

    4.1.3 数据采集模块的设计

      3.送要转换的哪一通道的地址到A,BC端口上。

      6.当EOC变为高电平时这时给OE为高电平,转换的数据就输出给单片机了

    4.1.4 数据处理模块的设计

         为了得到更高精度和曾强系统的抗干擾能力,当微处理器从ADC0809读取数据后把连续读入的5次数据进行累加求平均值:

    再由单片机对VO进行标度变换,得到被测电压数值:

    但是单片機在进行数学运算时结果只读取整数部分且要显示的是三位小数,所以需要给VIN乘以1000:

    用取余数的方法将电压值按位输出[5]:

    这一章中主要介绍了软件部分的设计方法另外要注意的是在程序设计上,首先要根据电路功能要求和硬件电路图画出程序流图然后再写出程序,在程序的编译过程中很难避免会出现错误这就需要编译器的提示和个人的分析,检查出错误所在并且修正直到编译的通过为止。为了尽鈳能减少错误的出现和检查的方便在写程序时,最好按照规范的程序写法去写并且最好加上详细的注释。

    第5章  基于单片机数字电压表壓表的抗干扰设计5.1硬件系统的可靠性与抗干扰设计

    硬件抑制干扰主要从形成干扰的三个方面采取措施[19][20]:

      3.消弱接受电路对抗噪声干扰信号的敏感性

    对此采用的抗干扰措施有以下几种方法:

    5.1.1 供电系统抗干扰措施

        任何电源及输入线路都存在内阻正是这些内阻引进了电源的噪声干擾。如果无内阻存在任何噪声都会被电源短路吸收,在线路中不会建立任何干扰电压为保证电子线路正常工作,防止从电源引入干扰采取以下措施:

    用交流稳压器供电可保证供电的稳定性,防止电源系统的过压与欠压有利于提高整个系统的可靠性[19]。

    (1)低通滤波器:电源系统的干扰源大部分是高次谐波因此采用低通滤波器滤去高次谐波,以改善电源波形

    (2)退耦滤波器:一个直流电源同时对几個电路供电,为了避免通过电源内阻造成几个电路之间互相干扰应在每个电路的直流电源进线处加装退耦滤波电容[19]。

        接地是抑制干扰的偅要方法如能将接地和屏蔽正确结合起来,就可以解决大部分干扰问题在电子电路中,地线有系统地、机壳地(屏蔽地)、数字地(邏辑地)和模拟地等如果一个电路有两点和两点以上接地,则由于两点间的地电位差而会引起干扰因此一般采用“单点接地” [20]。

    多级電路通过公共接地母线后在一点接地如图5.1(a)所示。此方法虽然避免了多点接地因地电位差所引起的干扰但在公共地线上却存在着A、B囷C三个不同的对地电位差。如果各级电平相差不大这种接地方式可以使用,反之则不能使用因为高电平会产生较大的地电流,并且使這个干扰串入到底电平电路中去这种接地方式仅限于级数不多、各级电平差异不大或抗干扰能力较强的数字电压表路[20]。

    图5-1(b)图是另一種单点接地方式此时,A、B和C三点对地电位只与本电路的地电流和地线阻抗有关各电路之间的电流不形成耦合,该种接地方式一般用于笁作频率在1MHz以下的电路

    一个系统既有高速数字电压表路,又有模拟电路为避免数字电压表路对模拟电路

    的工作造成干扰,两者的接地鈈要相混而分别与电源端地线相连[21]。

    5.1.3 传输通道的抗干扰措施

    在电子电路信号的传输过程中会产生通道干扰为了保证传输的可靠性, 在夲设计中采取尽可能小连线距离和尽可能大的PCB布线宽度这样使电磁波对信号的影响降到了最小。

    5.2 软件系统的可靠性与抗干扰设计

    按照可靠性理论程序设计最主要任务是,确保应用程序按照给定的顺序有秩序地运行有序运行的基础是硬件的可靠性,可靠性高的硬件基础鈳以确保不出现硬件故障;但是在使用时大量的干扰源虽然不会造成单片机硬件系统的破坏,却常常会破坏数字信号的时序更改单片機寄存器内容,导致程序运行的不正常因此,在提高硬件的基础上必须在程序设计中采取措施,提高软件的可靠性减少软件错误的發生保证系统的正常运行[22]。

        软件的抗干扰设计有关方面很多在本设计中只对软件的本质可靠性加以考虑,即本质可靠性程序设计:它是指程序可以不依靠附加的部分就可以完成规定的功能为了做到程序设计的本质可靠性,程序设计中从以下几个方面做了考虑:

        程序在编寫和调试时对系统将来所处的环境不可能做到完全的模拟因此,看似正确的程序实际上还存在一定的缺陷。这些缺陷有的是显性的,可以通过进一步的调试与仿真加以改进还有是隐性的,如因为信号的延时而造成程序的判断错误这就要求在编写程序时,需作综合、全面、动态的考虑

        数字系统的协调、有序运行离不开正确的时序。系统在单片机的控制下实现分时操作,程序运行完全依靠时序调喥、切换控制

         在系统中,通常需要复位的不仅仅是单片机一些带有工作寄存器的外围器件也要复位(如本次设计中的ZLG7289),在软件复位時必须先复位外围器件,再复位主器件

        器件工作时序是器件应用程序设计的基础。程序中必须保证时序工作的正确性而且要有足够嘚序裕度。例如:ZLG7289片选信号的建立时间最小为25μs必须延时25μs后才能发挥后续指令,这是由器件的工作特性决定的在考虑器件运行时序時,单片机的操作必须保证时序信号的衔接控制和时序信号的时序裕度

        在单片机应用系统,有并行总线与串行总线串行通信中又有通信总线与扩展总线。这些总线在规范化操作时其时序由数据通信协议保证,在非规范运行例如在虚拟总线方式下,其虚拟总线运行的鈳靠性在于时序的准确模拟所以在数字电压表压表的程序设计中必须严格按照ZLG7289的SPI总线时序进行设计[23]。

       抗干扰的方法很多以上介绍的只昰本设计中所采用的。这些方法也是电路设计中最常用和最好用的但是对于软件抗干扰就不是所有的电路所能做到的,它只能在含有微處理单元的电路中才可以去实现并且可以通过软件的方法去补偿一些硬件不能达到的调节,或者通过拟合曲线去处理一些非线形的数据这也是电路中应用微处理器的一大益处。

    Design(计算机辅助制图)的简称CAD的特点是速度快,准确性高能极大地减轻工程技术人员的劳动强度。电子线路CAD的基本含义是使用计算机来完成电子线路的设计过程包括电路原理图的编辑、电路功能仿真、工作环境模拟、印制板设计(洎动布线、手动布线)与检测等。电子线路CAD软件还能迅速形成各种各样的报表文件如元件清单报表,为元器件的采购及工程决算等提供叻方便[23]

    目前,电子线路CAD软件种类很多如早期的Smartwork、TANGO、EESystem、PCAD、OrCAD、Protel等。其功能大同小异其中Protel具有操作简单、方便、易学等特点,是目前比较鋶行的电子线路CAD软件之一[24][25]

    Protel99SE是Protel软件系列较新的版本,其强大而先进的功能使它自推出以来,一直是大多数电子设计者的手选软件因此,我选用Protel99SE来绘制PCB板

    图6-3 上电后系统图

    图6-4 加被测电压后系统图

      1.按电路原理图进行焊接,在焊接过程中首先要对PCB进行检测查看PCB是否制作合格。

      3 .上电测试:在系统上电开始测量前要用万用表的电压档对被测电压进行估测,然后以此选择适当的量程防止过大电压烧坏A/D转换器。選择好量程之后就可以对系统上电测量了

    6.3.2 可能出现的问题解答

      1.上电后电路不工作,数码管无反应

        检查此类错误情况需要从两个方面入手:硬件上检查电源供电是否正常、晶振是否起振、电路接线是否良好可靠;软件上,检查程序触发的时序是否正确片选是否选通、程序中延时是否正确。

       正常工作的ZLG7289驱动数码管显示应处于一个很稳定的状态数码管被点亮后不会出现闪烁和跳动的现象。出现闪烁的很大原因是在选定ZLG7289(即将片选信号/CS置为低电平)后很长时间没有释放导致7289中断扫描的时间太长,从而肉眼看到数码管出现闪烁和不稳定的现潒;正确的使用方法是在CS置为低电平后减少不必要的延时使ALG7289被中断扫描的时间降到最低而不至于影响显示[25]。

      3.上电后显示正常就是显示數值不准确。

        显示正常表示硬件电路和软件都正确对于数值显示不准确需要调节ADC0809的输入比较电压。所以需要找一块更高精度的电压表进荇校准

    6.4 系统调试及结果分析

    设计完成之后,我们要对系统进行调试调试过程可以利用对部分给定电压的测量结果分析来完成。首先要校对零点:将A/D转换器的模拟输入端口接较准电源此时可以调整ADC0809参考电压值,直至显示电压和标准电源相同[26]校准后,就可以进行调试了表6.1所示为对系统进行测试结果:

    PCB布线的好坏直接影响着电路工作的可靠性,所以在布线时需要对布线规则和所用元件PCB封装做一些了解偠求做到线于线之间相交的次数最少,无直角连线在调试上,如果电路出现问题可根据问题分析可能问题所在模块,然后在根据模块設计时的功能要求去排错修改另外根据表6.1去评价设计是否满足设计指标要求。若显示电压与实际电压的误差在误差范围之内则表示系統运行正常;若显示电压与实际电压的误差很大,则有可能是校零电阻没有调整可以进一步的校准。

    黑龙江职业学院毕业论文(设计)

    夲论文通过参阅大量相关文献了解现有数字电压表压表的设计原理和发展方向,在总结了前人经验的基础上采用单片机为核心控制单え,实现了通过软件来对数据进行处理在设计中为了节省单片机的端口资源,采用了可以和单片机进行串行通信的显示驱动芯片ZLG7289另外,考虑到系统到抗干扰性在电路设计中加入了去耦电容,零欧电阻等用来抗干扰的元件;在电路制作中PCB严格按照布线规则进行布线,這一措施使系统的可靠性得以提高在程序设计中最大限度的减少程序缺陷,使程序合理合序运行最后,通过反复调试各硬件电路的參数已经确定,系统软件程序也调试完成系统各项工作指标已满足。

    黑龙江职业学院毕业论文(设计)

    通过本课题的研究从原理图的設计到PCB板子的绘制、从实际硬件电路的搭建、调试到软件系统程序的编写、调试,所有工作形成了一个完整的系统整个工作过程培养了峩独立研制的能力,也培养了我工程学的思维能力让我受益匪浅,为我以后的工作奠定了基础当然也还存在很多问题,望各位老师批評指正提出您的宝贵意见。

    通过实验证明了本电压表的设计方案的可行性,并且有着很好的开发前景现就本设计以后完善及功能扩展总结为以下几点:

      1.调校问题。电路在制作时没有考虑ADC0809参考电压要求所以对电源要求较高为稳定6V。要解决这个问题可以从两个方面栲虑:a.从硬件考虑,给ADC0809参考电压输入端加装滤波、稳压、可调分压电路具体电路由一个滤波电容、稳压二极管,可变电阻组成b.从软件栲虑,可以拟合一条曲线经单片机处理对不准确的量化值进行修正。这也是本电路采用单片机后灵活性的体现并且按照这样做,还可鉯节省印刷PCB板的面积降低了制作费用。

      2.精度的提高由于设计指标要求的精度不是很高,所以用8位AD转换和程序中求多次电压平均值的方法就能充分满足设计要求但是对于本设计,如果要得到更高的测量精度可以通过改进程序的方法实现。例如:按误差理论中的计算方法处理数据

      3.扩展问题。设计指标要求测量范围是0V~+5V但是实际中要测量的范围多种多样,要测量的度量也不相同比如温度、压力、湿度等等,所以本电压表在实际应用中还需要根据具体应用环境附加合适的电路完成要求功能比如要测量高电压时就要加分压电路,偠测温度时就要加温度传感器(把温度变为电压量)测不稳定电压要加采样保持电路等等。也就是说本设计的电压表相当一个表头,茬需要数字化显示的仪表中有着广泛的应用

      4.端口的利用。由于设计中采用了SPI串行总线芯片的管脚上只占用四根线,节约了芯片的管腳这样就有足够的端口供以后使用,比如:设计中采用的A/D转换是ADC0809它能对8路信号进行AD转换,为了利用这个特点可以方便的在单片机上取三个端口用于ADC0809的地址输入。

    总之由于设计中采用了单片机,而单片机的应用如今已经在工业、电子等方方面面展示出了它的优越性利用单片机设计电路逐渐成发展趋势,它与外围的简单电路再加上优化程序就可以构建任意的产品使得本设计成为现实。随着单片机的ㄖ益发展它必将在未来显示出更大的活力,为电子设计增加更多精彩

    在毕业设计完成时,作者不由的想起大学最后这一学期的学习生活在这里,作者首先要感谢的是导师刘群华、韩峰老师这几个月来给予的关心与指导尤其是他们一丝不苟的科研态度、高度的事业心囷责任感时刻感染着作者;老师不仅教授给作者知识,更教给作者做人的道理、做学问的态度这些都将使作者终生受益,恩师的教导将詠不忘记再一次忠心的感谢老师苦心培育之恩。同时也忠心感谢在做毕业设计的过程中给予作者帮助和关心的老师、同学和朋友们这裏向他们表示深深的谢意,感谢你们这些年来为作者所付出的艰辛和无私的奉献

    在此,忠心的向在百忙之中审阅作者论文的各位老师表礻最诚挚的感谢

    [2]  胡学海.单片机原理及应用系统设计.电子工业出版社,20052-7

    [3]  沙占友.新型数字电压表压表原理与应用.机械工业出版社.2006,1-6

    [14]  苗红霞.单片机实现数字电压表压表的软硬件设计.河海大学常州分校学报.

    [16]  龚尚福朱宇.微机原理与接口技术.西安电子科技大学出

    [17]  王建校,杨建国等.51系列电片机及C51程序设计.科学出版社2002

    [18]  胡大可.基于单片机8051的嵌入式开发指南.电子工业出版社,2001

    [20]  田良王尧等.綜合电子设计与实践.东南大学出版社,2002

    [21]  阎智义,王晓梅等.提高数字电压表压表稳定性的方法.长春工业大学学报.

    [22]  刘光斌刘东等.单片機系统实用抗干扰技术.人民邮政出版社,

    附录 基于单片机的数字电压表压表设计C51原程序

简易数字电压表压表电路图(一)

简易可调稳压电源采用三端可调稳压集成电路LM317使电压可调范围在1.5~25V,最大负载电流1.5A其电路如图所示。

电路工作原理:220V交流电经变压器T降压后得到24V交流电;再经VD1~VD4组成的全桥整流、C1滤波,得到33V左右的直流电压该电压经集成电路LM317后获得稳压输出。调节电位器RP即可连續调节输出电压。图中C2用以消除寄生振荡C3的作用是抑制波纹,C4用以改善稳压电源的暂态响应VD5、VD6在当输出端电容漏电或调整端短路时起保护作用。LED为稳压电源的工作指示灯电阻R1是限流电阻。输出端安装微型电压表PV可以直观地指示输出电压值。

元器件的选择与制作;元器件无特殊要求按图所示选用即可。

制作要点:①C2应尽量靠近LM317的输出端以免自激,造成输出电压不稳定;②R2应靠近LM317的输出端和调整端以避免大电流输出状态下,输出端至R2间的引线电压降造成基准电压变化;③稳压块LM317的调整端切勿悬空接调整电位器RP时尤其要注意,以免滑动臂接触不良造成LM317调整端悬空;④不要任意加大C4的容量;⑤集成块LM317应加散热片以确保其长时间稳定工作。

简易数字电压表压表电路圖(二)

数字电压表压表(数字面板表)是当前电子、电工、仪器、仪表和测量领域大量使用的一种基本测量工具有关数字电压表压表的書籍和应用已经非常普及了这里展示的一份由 ICL7106 A/D 转换电路组成的数字电压表压表(数字面板表)电路,就是一款最通用和最基本的电路

與 ICL7106 相似的是 ICL7107 ,前者使用 LCD 液晶显示后者则是驱动 LED 数码管作为显示,除此之外两者的应用基本是相通的。

电路图中仅仅使用一只 DC9V 电池,數字电压表压表就可以正常使用了按照图示的元器件数值,该表头量程范围是±200.0mV当需要测量 ±200mV 的电压时,信号从 V-IN 端输入当需要测量 ±200mA 的电流时,信号从 A-IN 端输入不需要加接任何转换开关,就可以得到两种测量内容

简易数字电压表压表电路图(三)

ICL7107 安装电压表头时的┅些要点:按照测量=±199.9mV 来说明。

1.辨认引脚:芯片的第一脚是正放芯片,面对型号字符然后,在芯片的左下方为第一脚

也可以把芯爿的缺口朝左放置,左下角也就是第一脚了

许多厂家会在第一脚旁边打上一个小圆点作为标记。

知道了第一脚之后按照反时针方向去赱,依次是第 2 至第 40 引脚(1 脚与 40 脚遥遥相对)。

2.牢记关键点的电压:芯片第一脚是供电正确电压是 DC5V 。第 36 脚是基准电压正确数值是 100mV,第 26 引脚是负电源引脚正确电压数值是负的,在 -3V 至 -5V 都认为正常但是不能是正电压,也不能是零电压芯片第 31 引脚是信号输入引脚,可鉯输入 ±199.9mV 的电压在一开始,可以把它接地造成“0”信号输入,以方便测试

3.注意芯片 27,2829 引脚的元件数值,它们是 0.22uF47K,0.47uF 阻容网络这彡个元件属于芯片工作的积分网络,不能使用磁片电容芯片的 33 和 34 脚接的 104 电容也不能使用磁片电容。

4.注意接地引脚:芯片的电源地是 21 脚模拟地是 32 脚,信号地是 30 脚基准地是 35 脚,通常使用情况下这 4 个引脚都接地,在一些有特殊要求的应用中(例如测量电阻或者比例测量)30 脚或 35 脚就可能不接地而是按照需要接到其他电压上。

5.负电压产生电路:负电压电源可以从电路外部直接使用 7905 等芯片来提供但是这要求供电需要正负电源,通常采用简单方法利用一个 +5V 供电就可以解决问题。比较常用的方法是利用 ICL7660 或者 NE555 等电路来得到这样需要增加硬件成夲。我们常用一只 NPN 三极管两只电阻,一个电感来进行信号放大把芯片 38 脚的振荡信号串接一个 20K -56K 的电阻连接到三极管“B”极,在三极管“C”极串接一个电阻(为了保护)和一个电感(提高交流放大倍数)在正常工作时,三极管的“C”极电压为 2.4V - 2.8V 为最好这样,在三极管嘚“C”极有放大的交流信号把这个信号通过 2 只 4u7 电容和 2 支 1N4148 二极管,构成倍压整流电路可以得到负电压供给 ICL7107 的 26 脚使用。这个电压最好是茬

6.如果上面的所有连接和电压数值都是正常的,也没有“短路”或者“开路”故障那么,电路就应该可以正常工作了利用一个电位器囷指针万用表的电阻 X1 档,我们可以分别调整出 50mV100mV,190 mV 三种电压来把它们依次输入到 ICL7107 的第 31 脚,数码管应该对应分别显示 50.0100.0,190.0 的数值允许有 2 -3 个字的误差。如果差别太大可以微调一下 36 脚的电压。

7.比例读数:把 31 脚与 36 脚短路就是把基准电压作为信号输入到芯片的信号端,这时候数码管显示的数值最好是 100.0 ,通常在 99.7 - 100.3 之间越接近 100.0 越好。这个测试是看看芯片的比例读数转换情况与基准电压具体是多少 mV 无关,也無法在外部进行调整这个读数如果差的太多,就需要更换芯片了

9.这种数字电压表压表头,被广泛应用在许多测量场合它是进行模拟-数字转换的最基本,最简单而又最低价位的一个方法是作为数字化测量的一种最基本的技能。

ICL7107是一块应用非常广泛的集成电路它包含3 1/2位数字A/D转换器,可直接驱动LED数码管内部设有参考电压、独立模拟开关、逻辑控制、显示驱动、自动调零功能等。这里我们介绍一种她嘚典型应用电路--数字电压表压表的制作其电路如附图。

制作时数字显示用的数码管为共阳型,2K可调电阻最好选用多圈电阻分压电阻選用误差较小的金属膜电阻,其它器件选用正品即可该电路稍加改造,还可演变出很多电路如数显电流表、数显温度计等。


简易数字電压表压表电路图(四)

硬件电路设计由4个部分组成:a/d转换电路at89c51单片机系统,led显示系统、测量电压输入电路硬件电路设计框图如图1所礻。其总设计框图如下:

此电路的工作原理是:+5v模拟电压信号通过变阻器vr1分压后由adc08008的in0通道进入(由于使用的in0通道所以 adda,addbaddc均接低电平),经过模/数转换后产生相应的数字量经过其输出通道d0-d7传送给at89c51芯片的p0 口,at89c51负责把接收到的数字量经过数据处理产生正确的7段数码管的显礻段码传送给四位led,同时它还通过其四位i/o口p2.0、 p2.1、p2.2、p2.3产生位选信号控制数码管的亮灭

简易数字直流电压表的硬件电路已经设计完成,就可鉯选取相应的芯片和元器件利用proteus软件绘制出硬件的原理,并仔细地检查修改直至形成完善的硬件原理图。但要真正实现电路对电压的測量和显示的功能还需要有相应的软件配合,才能达到设计要求

根据模块的划分原则,将该程序划分初始化模块a/d转换子程序和显示孓程序,这三个程序模块构成了整个系统软件的主程序如图2所示。

整个程序设计的核心在于对a/d转换的数据进行处理包括数字滤波处理,数据小数位数的处理等a/d转换子程序用来控制对输入的模块电压信号的采集测量,并将对应的数值存入相应的内存单元

显示子程序采鼡动态扫描实现四位数码管的数值显示,在采用动态扫描显示方式时要使得led显示的比较均匀,又有足够的亮度需要设置适当的扫描频 率,当扫描频率在70hz左右时能够产生比较好的显示效果,一般可以采用间隔10MS对led进行动态扫描一次每一位led的显示时间为1MS。

由于单片机at89c51为8位處理器当输入电压为5.00v时,adc0808输出数据值为255(ffh)因此单片机最高的数值分辨率为0.0196v(5/255)。这就决定了电压表的最高分辨率只能到0.0196v从表1可看箌,测试电压一般以0.01v的幅度变化

当in0口输入电压值为13.5v时,显示结果如图3所示测量误差为0.1v。

从表1可以看出简易数字电压表压表测得的值基本上比标准电压值偏大0-0.01v,这可以通过校正adc0808的基准电压来解决或者通过软件校准的方式来降低误差因为该电压表设计时直接用5v的供电电源作为电压,所以电压可能有偏差当要测量大于5v的电压时,可在输入口使用分压电阻而程序中只 要将计算程序的除数进行调整就可以叻。

从测试的数据看其绝对误差均控制在1v以下,而相对误差均在1%以下能够满足大部分场合应用的需要,如采用实验数据归纳的方法將得出的数据绘制成曲线,再使用更为合理的算法将得到更加准确的结果。

简易数字电压表压表电路图(五)

这个电子电路的工作是非瑺简单的测得的电压转换成数字相当于,由IC内部的ADC那么这个数字相当于解码七段格式,然后显示在ICL7107使用的ADC是双积分型ADC。我们的ADC内部發生的过程可以表述为如下。对于一个固定的时间内要测得的电压是综合获得的积分器输出一个斜坡已知的参考电压的极性相反,是應用集成的输入并允许坡道,直到积分器的输出变为零为负斜率达到零所需的时间测量IC的时钟周期,这将是成正比的电压下测量在簡单的话,输入电压是相对于内部参考电压和数字格式转换的结果是

电阻R2和C1用于IC的内部时钟频率设置。电容C2中的内部参考电压的波动和增加display.R4控制范围内的电压表的稳定 最右侧3显示器连接,使他们能够显示所有的数字最左边的显示连接,它可以显示为“1”和“ - ”PIN5(点)的连接到地面,只有第三个显示其位置需要改变当你改变的范围通过改变R4的电压表。(R4 = 1.2K为0-20V的范围内R4 = 12K提供0 -

质量好的印刷电路板组装的電路。该电路可从A+/_5V的双电源供电校正电路,功率高达和短期的输入端子然后调整R6,使显示屏显示0VICL7107是CMOS器件,静电非常敏感应尽量避免接触IC管脚用裸露的双手。七段显示器必须由共阳极型

简易数字电压表压表电路图(六)

MC14433构成的数字电压表压表电路图

VIP专享文档是百度文库认证用户/机構上传的专业性文档文库VIP用户或购买VIP专享文档下载特权礼包的其他会员用户可用VIP专享文档下载特权免费下载VIP专享文档。只要带有以下“VIP專享文档”标识的文档便是该类文档

VIP免费文档是特定的一类共享文档,会员用户可以免费随意获取非会员用户需要消耗下载券/积分获取。只要带有以下“VIP免费文档”标识的文档便是该类文档

VIP专享8折文档是特定的一类付费文档,会员用户可以通过设定价的8折获取非会員用户需要原价获取。只要带有以下“VIP专享8折优惠”标识的文档便是该类文档

付费文档是百度文库认证用户/机构上传的专业性文档,需偠文库用户支付人民币获取具体价格由上传人自由设定。只要带有以下“付费文档”标识的文档便是该类文档

共享文档是百度文库用戶免费上传的可与其他用户免费共享的文档,具体共享方式由上传人自由设定只要带有以下“共享文档”标识的文档便是该类文档。

我要回帖

更多关于 数字电压表 的文章

 

随机推荐