版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、摘 要在现代检测技术中,常用高精度数字电压表进行检测,将检测到的数据送入微型计算机系统,完成计算、存储、控制等功能。本文中数字电压表的控制系统采用AT89C52单片机,A/D转换器采用ADC0809为主要硬件,实现数字电压表的硬件电路与软件设计。该系统的数字电压表电路简单,所用的元件较少,成本低,调节工作可实现自动化,还可以方便地进行8路A/D转换的测量,远程测量结果传送等功能。数字电压表可以测量05V的8路输入电压值,并在四位LED数码管上轮流显示或单路显示。设计结果能实现相应的功能。关键词:单片机;数字电压表;A/D转换器;模拟信号AbstractIn modern measuring t
2、echnology, it is often required to conduct site measuring with a digital voltmeter. The data measured will then be input into the micro-computer system to execute such functions like calculating, storing, controlling, and displaying. The digital voltmeter control system described in this paper makes
3、 use of AT89C52 SC computer and ADC0809 A/D converter to fulfill the designing of the software as well as the electrical circuit. The voltmeter features in simple electrical circuit, lower use of elements, low cost and automatic regulation, while it can also easily carry out the duties of measuring
4、A/D converted values from 8 routes and remote transfer of measuring data. The meter is capable of measuring voltage inputs from 8 routes ranging from 0 to 5 volt, and displaying the measurements in turn or only that from a selected route. Design to achieve the corresponding functions.Key words: SC c
5、omputer;Digital Voltmeter; A/D conversion; Analogue Signal目 录第一章 绪论.11.1引言.11.2 设计背景.21.3设计意义.31.4课题完成的功能.3第二章 总体设计.42.1系统设计.42.2设计方案.42.3软硬件开发环境.42.4总体设计框图.5第三章 硬件设计.63.1单片机模块设计.63.2复位电路和时钟电路.83.2.1 复位电路设计83.2.2 时钟电路设计93.3采集模块设计.103.3.1 ADC0809A/D功能描述103.3.2ADC0809A/D转换芯片的原理113.3.3ADC0809数据采集133.4数
6、码管显示电路模块.1434.1常用显示器件简介143.4.2 LED数码管143.4.3 显示方式153.5 按键处理电路模块.17第四章 系统软件程序的设计.184.1主程序.184.2 A/D转换子程序.204.3 显示子程序.21第五章 制作与调试.235.1硬件电路的布线与焊接.235.2调试.235. 2. 1 硬件调试235.2.2 软件调试235 .2. 3性能分析24第六章 结论和心得.26参考文献.27致谢.28附 录.2940 / 45文档可自由编辑打印第一章 绪论1.1引言数字电压表出现在50年代初,60年代末发展起来的电压测量仪表,简称DVM,它采用的是数字化测量技术,
7、把连续的模拟量,也就是连续的电压值转变为不连续的数字量,加以数字处理然后再通过显示器件显示。这种电子测量的仪表之所以出现,一方面是由于电子计算机的应用逐渐推广到系统的自动控制信实验研究的领域,提出了将各种被观察量或被控制量转换成数码的要求,即为了实时控制及数据处理的需要;另一方面,也是电子计算机的发展,带动了脉冲数字电路技术的进步,为数字化仪表的出现提供了条件。所以,数字化测量仪表的产生与发展与电子计算机的发展是密切相关的;同时,为革新电子测量中的繁琐和陈旧方式也催促了它的飞速发展,如今,它又成为向智能化仪表发展的必要桥梁。如今,数字电压表已绝大部分已取代了传统的模拟指针式电压表。因为传统的模
8、拟指针式电压表功能单一,精度低,读数的时候也非常不方便,很容易出错。而采用单片机的数字电压表由于测量精度高,速度快,读数时也非常的方便,抗干扰能力强,可扩展性强等优点已被广泛的应用于电子及电工的测量,工业自动化仪表,自动测试系统等智能化测量领域。显示出强大的生命力。数字电压表最初是伺服步进电子管比较式,其优点是准确度比较高,但是采样速度慢,重量达几十公斤,体积大。继之出现了斜波式电压表,它的速度方面稍有提高,但是准确度低,稳定性差,再后来出现了比较式仪表改进逐次渐近式结构,它不仅保持了比较式准确度高的优点,而且速度也有了很大的提高,但它有一缺点是抗干扰能力差,很容易受到外界各种因素的影响。随后
9、,在斜波式的基础上双引伸出阶梯波式,它的唯一的进步是成本降低了,可是准确度,速度以及抗干扰能力都未能提高。而现在,数字电压表的发展已经是非常的成熟,就原理来讲,它从原来的一,二种已发展到多种,在功能上讲,则从测单一参数发展到能测多种参数;从制作元件来看,发展到了集成电路,准确度已经有了很大的提高,精度高达1NV;读数每秒几万次,而相对以前,它的价格也有了降低了很多。目前实现电压数字化测量的方法仍然模-数(A/D)转换的方法。而数字电压表种类繁多,型号新异,目前国际仍未有统一的分类方法。而常用的分类方法有如下几种:按用途来分:有直流数字电压表,交、直流数字电压表,交直流万用表等。按显示位数来分:
10、有4位,5位,6位,7位,8位等。按测量速度来分:有低准确度,中准确度,高准确度等。按测量速度来分:有低速,中速,高速,超高速等。但在日常生活中,数字电压表一般是按照原理不同进行分类的,目前大致分为以下几类:比较式,电压时间变换式,积分式等。在电量的测量中,电压、电流和频率是最基本的三个被测量。其中,电压量的测量最为经常。而且随着电子技术的发展,更是经常需要测量高精度的电压,所以数字电压表就成为一种必不可少的测量仪器。另外,由于数字式仪器具有读数准确方便、精度高、误差小、灵敏度高和分辨率高、测量速度快等特点而倍受用户青睐,数字式电压表就是基于这种需求而发展起来的,是一种必不可少的电子测量仪表。
11、1.2 设计背景数字电压表在1952年由美国NLS公司首次创造,它刚开始是4位,50多年来,数字电压表有了不断的进步和提高。数字电压表是从电位差计的自动化过程中研制成功的。开始是4位数码显示,然后是5位、6位显示,而现在发展到7位、8位数码显示;从最初的一两种类型发展到原理不同的几十种类型;从最早的采用继电器、电子管发展到全晶体管、集成电路、微处理器化;从一台仪器只能测1-2种参数到能测几十种参数的多用型;显示器件也从辉光数码管发展到等离子体管、发光二极管、液晶显示器等。数字电压表的体积和功耗越来越小,重量不断变轻,价格也逐步下降,可靠性越来越高,量程范围也逐步扩大。DVM的高速发展,使它已成
12、为实现测量自动化、提高工作效率不可缺少的仪表,数字化是当前计量仪器发展的主要方向之一,而高准度的DC-DVC的出现,又使DVM进入了精密标准测量领域。随着现代化技术的不断发展,数字电压表的功能和种类将越来越强,越来越多,其使用范围也会越来越广泛。采用智能化的数字仪器也将是必然的趋势,它们将不仅能提高测量准确度,而且能提高电测量技术的自动化程序,可以扩展成各种通用数字仪表、专用数字仪表及各种非电量的数字化仪表(如:温度计、湿度计、酸度计、重量、厚度仪等),几乎覆盖了电子电工测量、工业测量、自动化仪表等各个领域。从而提高计量检定人员的工作效率。1.3设计意义这个课题的目的和意义在于使自己掌握对数字
13、电压表的理解,自己动手设计数字电压表与仿真,它可以广泛的应用于电压测量外,通过各种变换器还可以测量其他电量和非电量,测量是一种认识过程,就是用实验的方法将被测量和被选用的相同参量进行比较,从而确定它的大小。DVM广泛应用于测量领域每期测量的准确度和可信度取决于它的主要性能和技术指标。所示我们要学习和掌握如何设计DVM就显得十分重要。1.4课题完成的功能 基于单片机的多路数字电压表的主要原理是利用A/D转换器实现其功能,其过程为如下:先用A/D转换器对各路电压值进行采样,得到相应的数字量,再按数字量与模拟量成比例关系运算得到相应的模拟电压值,然后把模拟值通过数码管显示出来。设计时假设待测的输入电
14、压为8路,电压值的范围为05v,要求能在4位LED数码上轮流显示或单路显示。测量的最小分辨率为0.019v。根据系统的功能要求,控制系统采用AT89C52单片机,A/D转换器。当输入电压为5V时,输出的数据值为255(0FFH),因此最大分辨率为0.0196V(5/255)。ADC0809具有8路模拟量输入端口,通过3位地址输入端能从8路中选择一路进行转换。如每隔一段时间依次轮流改变3位地址输入端的地址,就能依次对8路输入电压进行测量。LED数码管显示采用软件译码动态显示。通过按键选择可8路循环显示,也可以单路循环。单路显示可通过按键选择所要显示的通道数。第二章 总体设计2.1系统设计主要分为
15、两部分:硬件电路及软件程序。硬件电路包括:单片机及外围电路,模拟信号采集电路,A/D转换电路,数码管显示电路,各部分电路的衔接。软件的程序可采用C语言或汇编,也可采用汇编语言,详细的设计思路在后面介绍。2.2设计方案数字电压表的设计方案很多,但采用集成电路来设计较流行。其设计主要是由模拟电路和数字电路两大部分组成,模拟部分包括A/D转换器,基准电源等;数字部分包括振荡器,数码显示,计数器等。其中,A/D转换器将输入的模拟量转换成数字量,它是数字电压表的一个核心部件,对它的选择一般有两种选择方案:1.采用双积分A/D转换器MC14433,它有多路调制的BCD码输出端和超量程输出端,采用动态扫描显
16、示,便于实现自动控制。但芯片只能完成A/D转换功能,要实现显示功能还需配合其它驱动芯片等,使得整部分硬件电路板布线复杂,加重了电路设计和实际焊接的工作。2. 逐次逼近式A/D转换器。它的转换速度更快,而且精度更高,比如ADC0808、ADC0809等,它们通常具有8路模拟选通开关及地址译码、锁存电路等,它们可以与单片机系统连接,将数字量送单片机进行分析和显示。这样电路设计简单,电路板布线不复杂,便于焊接、调试。这里采用这种方案。 显示部分可以采用各类数码管或用LCD显示器显示。在此简化采用4位八段共阴极数码管对A/D转换变换后的结果加以显示。2.3软硬件开发环境硬件选择:选择AT89C52作为
17、单片机芯片,选用8段共阴极LED数码管实现电压显示,选用独立式按键作为程序的跳转与选择,利用ADC0809作为数模转换芯片,利用P0至P4的各个串口来进行不同设备间的连接,计算机进行编程,Proteus仿真器,单片机多功能实验箱。软件开发环境: 用Protel软件画电路图,proteus仿真与调试 。Keil7.06 下编译调试。能够实现对8路电压值进行测量,能够显示当前测量通道号及电压值,电压精度小数点后2位,可以通过键盘选择循环显示8路的检测电压值和指定通道的检测电压值。2.4总体设计框图振荡器、时序脉冲预先写好的汇编程序置 入显示出模拟电压的数值四位八段共阴极数码管量程变换处理单片机数字
18、信号A/D转换器ADC0809采集外界模拟信号第三章 硬件设计本设计的数字电压表应用系统硬件电路由单片机,A/D转换器,数码管显示电路和按键处理电路等组成,它的硬件电路如附件A所示。3.1单片机模块设计本次毕业设计单片机采用高性能的AT89C52系列芯片,如图3-1所示。图3-1 AT89C52芯片图AT89C52是一个低电压,高性能CMOS 8位单片机带有4K字节的可反复擦写的程序存储器(PENROM)。和128字节的存取数据存储器(RAM),这种器件采用ATMEL公司的高密度、不容易丢失存储技术生产,并且能够与MCS-51系列的单片机兼容。片内含有8位中央处理器和闪烁存储单元,有较强的功能
19、的AT89C52单片机能够被应用到控制领域中。主要特性:·与MCS-51 兼容 ·4K字节可编程闪烁存储器 ·寿命:1000写/擦循环 ·数据保留时间:10年 ·全静态工作:0Hz-24MHz ·三级程序存储器锁定 ·128×8位内部RAM ·32可编程I/O线 ·三个16位定时器计数器 ·6个中断源 ·可编程串行通道 ·低功耗的闲置和掉电模式 ·片内振荡器和时钟电路其具体管脚说明如下:P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流
20、。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的低八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。 P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为低八位地址接收。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其
21、管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。 P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。 P3
22、口也可作为AT89C52的一些特殊功能口,如下所示: P3.0 RXD(串行输入口);P3.1 TXD(串行输出口);P3.2 /INT0(外部中断0);P3.3 /INT1(外部中断1);P3.4 T0(记时器0外部输入);P3.5 T1(记时器1外部输入);P3.6 /WR(外部数据存储器写选通);P3.7 /RD(外部数据存储器读选通);P3口同时为闪烁编程和编程校验接收一些控制信号。 RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。 ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程
23、脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。 /EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。XTAL1
24、和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。3.2 复位电路和时钟电路3.2.1 复位电路设计单片机在启动运行时都需要复位,使CPU和系统中的其他部件都处于一个确定的初始状态,并从这个状态开始工作。单片机有一个复位引脚RST,采用施密特触发输入。当震荡器起振后,只要该引脚上出现2个机器周期以上的高电平即可确保时器件复位。复位完成后,如果RST端继续保持高电平,就一直处于复位状
25、态,只要RST恢复低电平后,单片机才能进入其他工作状态。单片机的复位方式有上电自动复位和手动复位两种,图3-2是51系列单片机统常用的上电复位和手动复位组合电路,只要Vcc上升时间不超过1ms,它们都能很好的工作。 图3-2 复位电路3.2.2 时钟电路设计单片机中CPU每执行一条指令,都必须在统一的时钟脉冲的控制下严格按时间节拍进行,而这个时钟脉冲是单片机控制中的时序电路发出的。CPU执行一条指令的各个微操作所对应时间顺序称为单片机的时序。单片机芯片内部有一个高增益反相放大器,用于构成震荡器,XTAL1为该放大器的输入端,XTAL2为该放大器输出端,但形成时钟电路还需附加其他电路。 本设计系
26、统采用内部时钟方式,利用单片机内部的高增益反相放大器,外部电路简,只需要一个晶振和 2个电容即可,如图3-3所示。图3-3 时钟电路电路中的器件选择可以通过计算和实验确定,也可以参考一些典型电路的参数,电路中,电容器C1和C2对震荡频率有微调作用,通常的取值范围是30±10pF,在这个系统中选择了33pF;石英晶振选择范围最高可选24MHz,它决定了单片机电路产生的时钟信号震荡频率,在本系统中选择的是12MHz,因而时钟信号的震荡频率为12MHz。3.3采集模块设计 常用的A/D芯片简介:常用的A/D芯片有AD0809,AD0832,TLC2543C等几种。下面简单介绍一下这三种芯片
27、。AD0809是8位逐次逼近型A/D转换器,它是由一个8路的模拟开关、一个地址锁存译码器、一个A/D 转换器和一个三态输出锁存器组成。多路开关可选通8个模拟通道,允许8 路模拟量分时输入,共用A/D 转换器进行转换。些A/D转换器是的特点是8位精度,属于并行口,如果输入的模拟量变化大快,必须在输入之前增加采样电路。AD0832也是8位逐次逼近型A/D转换器,可支持至少3个单端输入通道和一个差分输入通道。它易于和微处理器接口或独立使用;可满量程工作;可用地址逻辑多路器选通各输入通道。TLC2543C是12位开关电容逐次逼近A/D转换,每个器件有三个控制输入端,片选,输入/输出时钟以及地址输入端。
28、它可以从主机高速传输转换数据。它有高速的转换,通用的控制能力,具有简化比率转换,刻度以及模拟电路与逻辑电路和电源噪声隔离,耐高温等特点。综合上述几种A/D转换芯片的特点,在本设计中,我们设计的是简易数字电压表,因此在此,我们选择精度为8位的ADC0809芯片。3.3.1 ADC0809A/D功能描述ADC0809是采样频率为8位的、以逐次逼近原理进行模数转换的器件。下面图3-4是ADC0809管脚图介绍,其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8个单断模拟输入信号中的一个进行A/D转换。图3-4 ADC0809管脚图引脚功能由引脚图3-4所示,ADC0809共有28
29、个引脚,采用双列直插式封装。ADC0809 虽然有8路模拟通道可以同时输入8路模拟信号,但每个瞬间只能转换一路,各路之间的切换由软件变换通道地址来实现。其主要引脚功能如下所示。IN0IN7:8路模拟量输入端。D7D0:8位数字量输出端。A、B、C:3位地址输入线,用于选通8路模拟输入中的一路。ALE:地址锁存允许信号,输入,高电平有效。 START: A/D转换启动信号,输入,高电平有效。 EOC: A/D转换结束信号,输出,当A/D转换结束时,此端输出一 个高电平(转换期间一直为低电平)。 OE:数据输出允许信号,输入,高电平有效。当A/D转换结束时,此端输入一个高电平,才能打开输出三态门,
30、输出数字量。CLK:时钟脉冲输入端。要求时钟频率不高于640KHZ。 REF(+)、REF(-):基准电压。 Vcc:电源,单一5V。 GND:地。 A/D转换器是连接模拟世界与数字世界的桥梁,它担负着将模拟信号变换成适合数字处理的二进制代码的任务。目前,8位A/D转换器的转换速度已经达到1.5GHz;并且,有些A/D转换器还可以工作在欠采样状态。对于高速A/D转换器动态性能的测试,目前常用的方法主要是相干采样测试法和加窗测试法。3.3.2 ADC0809A/D转换芯片的原理图3-5 ADC0809的时序图ADC0809的工作过程是:首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。此
31、地址经译码选通8路模拟输入之一到比较器。START上升沿将逐次逼近寄存器复位。下降沿启动 AD转换,之后EOC输出信号变低,指示转换正在进行。直到AD转换完成,EOC变为高电平,指示AD转换结束,结果数据已存入锁存器,这个信号可用作中断申请。当OE输入高电平时,输出三态门打开,转换结果的数字量输出到数据总线上。 由图3-5可知,ADC0809由一个8路模拟开关、一个地址锁存与译码器、一个A/D转换器和一个三态输出锁存器组成。三态输出锁器用于锁存A/D转换完的数字量,当OE端为高电平时,才可以从三态输出锁存器取走转换完的数据。ADC0809的工作过程分为如下几步。第一步:首先确定A、B、C三位地
32、址,决定选择哪一路模拟信号。第二步:使ALE端接收一正脉冲信号,使该路模拟信号经选择开关达到比较器的输入端。第三步:使START端接收一正脉冲信号,START的上升沿将逐次逼近寄存器复位,下降沿启动A/D转换。第四步:EOC输出信号变低,指示转换正在进行。第五步:A/D转换结束,EOC变为高电平,指示AD转换结束。此时,数据已保存到8位锁存器中。第六步:OE信号变为高电平,则8位三态锁存缓冲器的三态门被打开,转换好的8位数字量数据被输出到数据线上。如上所述,EOC信号变为高电平表示A/D转换完成,EOC可作为中断申请信号,通知89C52取走数据。在查询传送方式中,EOC可以作为89C52查询外
33、设(ADC)的状态信号。图3-6 ADC0809的内部逻辑结构3.3.3ADC0809数据采集ADC0809采集电压时,首先单片机执行一条传送指令,在指令执行过程中,单片机在控制总线的同时产生CS1、WR1低电平信号,启动A/D转换器工作,ADC0809经100us后将输入模拟信号转换为数字信号存于输出锁存器,并在INTR端产生低电平表示转换结束,并通知单片机可来取数。当单片机通过总线查询到INTR为低电平时,立即执行输入指令,以产生CS、RD2低电平信号到ADC0809相应引脚,将数据取出并存入存储器中。整个数据采集过程中,由单片机有序地执行若干指令完成 。将8位A/D转换芯片ADC0809
34、与单片机进行如此连接,其目的有二:一是为了利用单片机的信息处理能力,在总线上或由总线经过功能芯片,设置满足ADC0809芯片启动过程的时序信号,将启动A/D转换置于单片机的控制之下,这时ADC0809芯片的地址锁存器可以视为I/O接口中的只写寄存器;二是将A/D转换结果数据读入CPU,这时ADC0809芯片中的输出数据寄存器可以作为普通I/O接口中的只读寄存器对待。3.4数码管显示电路模块34.1常用显示器件简介本次设计中有显示模块,而常用的显示器件比较多,有数码管,LED点阵,1602液晶,12864液晶等。数码管是最常用的一种显示器件,它是由几个发光二极管组成的8字段显示器件,其特点是价格
35、非常的便宜,使用也非常的方便,显示效果非常的清楚。小电流下可以驱动每光,发光响应时间极短,体积小,重量轻,抗冲击性能好,寿命长。LED点阵显示器件是由好多个发光二极管组成的。具有高亮度,功耗低,视角大,寿命长,耐湿,冷,热等特点,LED点阵显示器件可以显示数字,英文字符,中文字符等。但用LED点阵显示的软件程序设计比较麻烦。1602液晶是工业字符型液晶,能够同时显示16*2即32个字符。1602液晶模块内部的字符发生存储器已经存储了160个不同的点阵字符图形,这些字这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码。使用时直接编写软件程序按一定的时
36、序驱动即可。它的特点是显示字迹清楚,价格相对便宜。12864液晶也是一种工业字符型液晶,它不仅能够显示1602液晶所可以显示的字符,数字等信息,而且还可以显示8*4个中文汉字和一些简单的图片,显示信息也非常的清楚。使用时也直接编写软件程序按一定的时序驱动即可。不过它的价格比1602液晶贵了很多。在本设计中,我们只需要显示最后电压的数字值和通道,综合上面各种显示器件的特点:数码管价格非常的便宜,使用也非常的方便,显示效果非常的清楚,符合本设计的要求。因此,在本设计选择数码管。3.4.2 LED数码管LED数码管显示器是由发光二极管显示字段的显示器件,也称为数码管。其外形结构如图所示。它由8个发光
37、二极管构成,通过不同的组合可用来显示0-9、A-F及小数点“.”等字符。数码管有共阴极和共阳极两种结构规格,如图3-7所示。图中电阻为外接。共阴极数码管的发光二极管阴极共地,当某发光二极管的阳极为高电平时,二极管点亮;共阳极数码管的发光二极管是阳极,并接高电平,对于需点亮的发光二极管将其阴极接低电平即可。7段发光二极管,在加上1个小数点位,共计8段,因此提供给LED显示器的字形码正好一字节。数码管原理电路图: 图3-7(a)共阴极 图3-7(b)共阳极图3-7(C)字段显示3.4.3 显示方式(1) 静态显示方式直接利用并行口输出。LED显示工作于静态显示方式时,各位的共阴极连接在一起接地;每
38、位的段选线分别于一个8位的锁存输出相连。一般称之为静态显示,是由于显示器中的各位相互独立。而且各位的显示字符一经确定,相应锁存器的输出将维持不变,直到显示另一个字符为止。利用通信号串行输出。在实际应用中,多位LED显示时,为了简化电路,在系统不需要通信功能时,经常采用串行通信口工作方式0,外接移位寄存器74LS164、CD4094来实现静态显示。(2) 动态显示方式对多位LED显示器的动态显示,通常都时采用动态扫描的方法进行显示,即逐个循环点亮各位显示器。这样虽然在任一时刻只有一位显示器被点亮,但是由于间隔时间较短,且人眼具有视觉残留效应,看起来与全部显示器持续点亮一样。为了实现LED显示器的
39、动态扫描,除了要给显示器提供的输入之外,还要对显示器加位选择控制,这就是通常所说的段控和位控。因此多位LED显示器接口电路需要有两个输出口,其中一个用于输出8位控信号;另一个用于输出段控信号,其连接图如下。 图3-8 LED显示电路表3-1:七段LED段选码显示字符共阴极段显示字符共阴极段03FHC39H106HD5EH25BHE79H34FHF71H466HP73H56DHU3EH67DH31H707Hy6EH87FH8.FFH96FH“灭”00HA77H/B7CH/本设计LED码管采用动态扫描方式连接,通过AT89C52的P1口和P3.0P3.3口控制。P1口为LED数码管的字段码输出端,
40、P3.0P3.3口为LED数码管的位选码输出端,通过三极管驱动并反相。如图3-9所示。图3-9 数码管显示电路图3.5 按键处理电路模块S1和S2是两个按键开关,如图3-10所示,分别与单片机的P3.5和P3.6相连接。S1用于单路显示或多路循环显示转换控制,S2用于单路显示时的通道选择。图3-10 按键处理电路图 第四章 系统软件程序的设计 多路数字电压表的系统软件程序由主程序、A/D转换子程序和显示子程序组成。4.1主程序主程序包含初始化部分、调用A/D转换子程序和调用显示程序,如图4-1所示。初始化部分包含存放通道数据缓冲区初始化和显示缓冲区初始化。另外,对于单路显示和循环显示,系统设置
41、了一个标志位00H控制。初始化时00H位设置为0,默认为循环显示,当它为1时改变为单路显示。00H位通过单路/循环按键控制。初始化调用A/D转换子程序调用显示子程序开始图4-1 主程序流程框图程序源如下:#include <stdio.h>#include <reg52.h>#include <intrins.h> /调用_nop_()延时函数#define ad_con P2 /0809控制口#define addata P0 /0809数据入口#define disdata P1 /数码管显示#define uchar unsigned char#def
42、ine uint unsigned intuchar number=0x00; /存放单通道显示时的当前通道数sbit ALE=P23; /0809地址锁存信号sbit START=P24; /启动信号sbit OE=P25; /输出允许通道sbit KEY1=P35; /循环或单路选择按键sbit KEY2=P36; /通道选择按键sbit EOC=P37; /转换结束信号sbit DISX=disdata7;/小数点位sbit FLAG=PSW0; /循环或单路显示标志位Uchar code dis_711=0x3F,0x06,0x5B,0X4F,0x66,0x6D,0x7D,0x07,0
43、x7E,0x6F,0x00;/数码管的字段码uchar code scan_con4=0xF1,0xF2,0xF4,0xF8;/4个LED数码管的位选Uchardata ad_data8=0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00;/0809的8个通道转换数据缓冲区uchar data dis5=0x00,0x00,0x00,0x00,0x00;/显示缓冲区/*主函数*/ main() P0=0xff; /初始化端口 P2=0x00; P1=0xff; P3=0xff; while(1) test();/测量转换数据 scan();/显示数据 /*1秒延时*
44、/delay1ms(uint t)uint i,j;for (i=0;i<t;i+)for (j=0;j<120;j+);4.2 A/D转换子程序A/D转换子程序用于对ADC0809的8路输入模拟电压进行A/D转换,并将转换的数值存入8个相应的存储单元中,如图4-2所示。A/D转换子程序每隔一定时间调用一次,即隔一段时间对输入电压采样一次。图4-2 A/D转换子程序流程图程序源如下:test() uchar m; uchar s=0x00; /初始通道位0 ad_con=s;/第一通道地址送0809控制口 for(m=0;m<8;m+) ALE=1;_nop_();_nop_
45、();ALE=0;/锁存通道地址 START=1;_nop_();_nop_();START=0;/启动转换 _nop_();_nop_();_nop_();_nop_(); while(EOC=0);/等待转换结束 OE=1;ad_datam=addata;OE=0;/读取当前通道转换数据 s+;ad_con=s;/改变通道地址 ad_con=0x00;/通道地址恢复初值 4.3 显示子程序LED数码管采用软件译码动态扫描方式。在显示子程序中包含多路循环显示和单路显示程序。多路循环显示把8个存储单元的数值依次取出送到4位数码管上显示,每一路显示1秒。单路显示程序只对当前选中的一路数据进行显示
46、。每路数据显示需经过转换变成十进制BCD码,放于4个数码管的显示缓冲区中。单路显示或多路循环显示通过标志位00H控制。在显示控制程序中加入了对单路或多路循环按键和通道选择按键的判断。程序如下:keytest()if (KEY1=0) /检测循环或单路选择按键是否按下FLAG=!FLAG; /标志位取反,循环,单路显示却换 while(KEY1=0);if(FLAG=1) /单路循环时,检测通道选择按键是否按下if(KEY2=0) number+; if(number=8) number=0; while(KEY2=0); 第五章 制作与调试5.1硬件电路的布线与焊接设计布线图时走线尽量少拐弯,
47、力求线条简单明了。布线条宽窄和线条间距要适中,电容器两焊盘间距应尽可能与电容引线脚的间距相符。通过protel软件绘制出原理图,将打印出来的原理图在铜板上转印好并用盐酸溶液和双氧水溶液腐蚀,这样就得到了一块电路板。把上面的元器件焊接在板上便完成了硬件的安装。在焊接时元器件的放置上尽量要贴近电路板,要注意烙铁头与被焊件的接触方式,(1)接触位置:烙铁头应同时接触要相互连接的2个被焊件(如焊脚与焊盘),烙铁一般倾斜45度,应避免只与其中一个被焊件接触。当两个被焊件热容量悬殊时,应适当调整烙铁倾斜角度,烙铁与焊接面的倾斜角越小,使热容量较大的被焊件与烙铁的接触面积增大,热传导能力加强。 (2)接触压
48、力:烙铁头与被焊件接触时应略施压力,热传导强弱与施加压力大小成正比,但以对被焊件表面不造成损伤为原则。在焊接前还要注意观察各个焊点(铜皮)是否光洁、氧化等。在焊接物品时,要看准焊接点,以免线路焊接不良引起的短路。5.2调试5.2.1 硬件调试硬件电路的调试主要是对硬件电路进行检查,使用万用表、示波器等常规工具检查电路制作是否正确,并核对元器件规格、型号,检查芯片间连线是否正确,是否有短路、虚焊、极性接错等故障,尤其应该注意芯片放置方向是否有误,各个芯片的接地线与电源线的连接是否有误。除此之外,硬件电路运行是否正常,还可通过测定一些重要的波形来确定。5.2.2 软件调试 单片机系统的软件采用 C
49、51 来编写,节省了时间。所有代码在 Keil7.06 下编译调试,软件调试比较复杂。先用软仿真排除语法差错和逻辑差错,然后通过 JTAG 下载到单片机来调试。可采取自下到上的调试方法,即单独调试好每一个模块,然后再连接成一个完整的系统调试。调试中主要精力放在防真和程序优化。在一开始调试时,数码管的显示较不稳定,感觉较闪烁,数据变化不连贯,好像在跳变。经过反复思考发现,一开始程序是使用静态显示方法。查了很多资料发现,一般数码管显示采用动态扫描的方法,于是将程序的显示部分改成动态扫描程序,经再次调试可以显示比较稳定的数字串了。5.2.3性能分析 图5-1 数字电压表工作过程波形图图5-1示出的是
50、数字电压表工作过程波形图,启动脉冲位于斜坡脉冲起点,关门脉冲位于斜坡脉冲与被测电压Ux的交点,图5-1(d)表示在这个时间间隔内通过T门的标准时间脉冲个数。数字电压表的准确度首先取决于标准时间脉冲发生器所发脉冲频率的稳定程度,因为若单位时间发出的脉冲个数发生波动,必然影响读数。其次决定于斜坡上升的线性,若斜坡呈线性上升,则可保证电压上升值与时间间隔成正比。目前这两方面的技术都比较成熟,所以数字电压表准确度也比较高。(1)由于单片机为8位处理器,当输入电压为5.00 V时,ADC0809输出数据值为255(FFH),因此单片机最高的数值分辨率为0.0196 V(5/255)。这就决定了该电压表的最高分辨率(精度)只能达到0.0196 V,测试时电压一般以0.02 V的幅度变化。如果
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论