基于单片机的数字电压表的设计 毕业论文设计.doc

上传人:laozhun 文档编号:3939961 上传时间:2023-03-28 格式:DOC 页数:27 大小:915KB
返回 下载 相关 举报
基于单片机的数字电压表的设计 毕业论文设计.doc_第1页
第1页 / 共27页
基于单片机的数字电压表的设计 毕业论文设计.doc_第2页
第2页 / 共27页
基于单片机的数字电压表的设计 毕业论文设计.doc_第3页
第3页 / 共27页
基于单片机的数字电压表的设计 毕业论文设计.doc_第4页
第4页 / 共27页
基于单片机的数字电压表的设计 毕业论文设计.doc_第5页
第5页 / 共27页
点击查看更多>>
资源描述

《基于单片机的数字电压表的设计 毕业论文设计.doc》由会员分享,可在线阅读,更多相关《基于单片机的数字电压表的设计 毕业论文设计.doc(27页珍藏版)》请在三一办公上搜索。

1、基于单片机的数字电压表的设计【摘要】本设计主要用于测量0-5V的直流电压,把连续的模拟量(直流输入电压)转换成离散的数字形式,并利用数码管进行显示。整个系统主要由控制电路、基准电源、A/D转换电路、测试电路和显示电路等几部分组成。通过AT89C52单片机实现系统控制功能,利用单片机的P1口、P3.0-P3.3口控制4位LED数码管实现动态显示,P3.5端口用作控制单路/循环显示转换按钮,P3.6端口用作单路显示时的通道选择,P0端口用作A/D转换数据读入,P2端口用作ADC0809的A/D转换控制,A/D转换电路主要由ADC0809模/数转器件片完成。此外,设计的数字电压表在实现单路测量的基本

2、功能之外,还可以方便进行多路电压的同时测量,通过按键选择实现单一或多路循环显示。【关键词】:AT89C52、ADC0809、A/D转换、数据处理、控制显示 ABSTRACT The design is mainly used for measuring 0-5V DC voltage, the continuous analog (DC input voltage) into a discrete digital form, and the use of digital control to display. The entire circuit is mainly by the contro

3、l circuit, reference power, A / D converter circuit, the test circuit and display circuit composed of several parts.AT89C52 MCU through the system control functions, the use of the microcontroller port P1, P3.0-P3.3 Port 4-bit LED digital control of dynamic display, P3.5 port as a single display / c

4、ycle through the Convert button, P3.6 displayed as a single port channel selection, P0 port for A / D converter data read, P2 port for the ADC0809 A / D conversion control; A / D converter circuit mainly by the ADC0809 analog / digital switch device to complete piece. In addition, the design of the

5、digital voltmeter single measurement in the realization of the basic functions, it can also facilitate the simultaneous measurement of multiple voltage by selection for a single or multiple buttons to cycle.【KEY WORD】: AT89C52, ADC0809, A / D conversion, data processing, control and display显示对应的拉丁字符

6、的拼音字典 - 查看字典详细内容目录引言1一、方案论证1(一)控制芯片1(二)显示部分2二、总体设计思想2三、硬件电路的设计2(一)硬件设计原理2(二)AT89C52单片机的概述31.AT89C52单片机组成32.AT89C52单片机引脚结构43.AT89C52单片机的最小系统5(1)时钟电路5(2)复位电路6(三)A/D转换电路61.A/D转换器工作过程62.A/D转换电路8(四)数码显示电路9四、系统的程序设计10(一)软件设计思想框图10(二)子程序原理和框图111.显示子程序112.A/D转换子程序12五、调试及性能分析14(一)测量与调试14(二)性能分析14六、总结16附录一数字电

7、压表总原理图17附录二源程序18附录三PCB图23附录四实物图24参考文献25致谢26 引言数字电压表(Digital Voltmeter)简称DVM,它是采用数字化测量技术,把连续的模拟量(直流输入电压)转换成离散的数字形式并加以显示的仪表。传统的指针式电压表功能单一、精度较低,不能满足数字化时代的需求。采用以单片机为平台开发的数字电压表,具有精度高、抗干扰能力强,可扩展性强、集成方便,可与PC进行实时通信等方面的优点,能够在很大程度上优化测量结果,提高使用者的工作效率。数字化电压表的广泛应用,符合和满足了现代化测量技术的需要。目前,由各种单片机和A/D转换器构成的数字电压表,已被广泛用于电

8、子及电工测量、工业自动化仪表、自动测试系统等多智能化测量领域,并且显示出强大的作用和生命力。与此同时,由DVM扩展而成的各种通用及专用数字仪器仪表,也把电子测量以及相关联的非电子测量技术提高到了一个崭新的水平。新型数字电压表以及由电压表扩展而成的各种通用及专用仪表以其高准确度、高可靠性、高性能分析、高分辨率、高性价比等优良特性,给使用者带来了轻松便捷的操作和高效良好的性能分析能力,赢得了广大使用者的青睐。在新兴科学技术不断涌现的今天和未来,随着数字化时代的进程,随着测试需求的多样化和复杂化,电子测试测量的仪器系统也朝着以软件为核心的模块化方向发展,并且必将得到广泛的应用。 本设计的硬件是通过5

9、1系列单片机控制ADC0809 A/D转换器进行信号接收和转换,并将转换后的信号输送至单片机,通过单片机进行处理,并控制数码管显示,是关于单片机内部定时器、并行I/O口、中断系统等相关功能,以及LED显示、A/D转换器、译码器、驱动器、基准电源等的综合性研究。软件设计包括显示扫描子程序、1ms延时子程序、通道选择子程序、ADC0809转换子程序。经过测量设计原理和显示方式的深度变革,使测量结果通过数码形式的直观显示,有效避免了因使用传统测量仪表时的视差和视觉疲劳等一些不良因素造成的测量误差,在极大的程度上提高了使用者的工作效率和作业的精确性,进而对提高工程项目的质量有非常大的帮助。一、方案论证

10、(一)控制芯片方案一:选用专用电压转换芯片INC7107实现电压的测量和显示。缺点是测量的精度比较低,信号的转换在芯片内部完成,不可控制,灵活性差。优点是价格低廉。方案二:选用单片机AT89C52和A/D转换芯片ADC0809实现电压的转换和控制,用4位数码管显示出最后的转换结果。测量转换的精度高,通过控制转换和显示电路,实现单路或多路电压同时测量。基于设计功能方面考虑,方案二为较佳选择。(二)显示部分方案一:选用4位8段LED共阳数码管,与单片机口的I/O连接进行控制,动态显示测量结果。优点是价格比较便宜,并且可以满足测量精度的要求。方案二:通过LCD1602显示测量结果。虽然1602可以显

11、示数字和字符的内容丰富,但是器件引脚较多,并且价格比较昂贵。基于综合考虑,选择方案一。经过控制芯片和显示器件的综合类比分析,设计的数字电压表认定通过ATC89C52单片机控制ADC0809模/数转换器件,利用4位数码管显示测量结果的方案为最佳方案。二、总体设计思想设计的数字电压表由模拟电路和数字电路两部分组成,数字电路部分主要包括系统控制和运算显示模块,模拟电路部分主要由基础电源、信号采集和测量等部分构成。总体设计思想为:AT89C52单片机是数字电压表系统的控制核心。将需要测量的模拟信号(直流电压)直接输送到A/D转换电路进行A/D转换,由单片机对转换后的信号进行数据处理,最终将处理后的数字

12、信号经过显示驱动电路和数码管显示进行测量结果的直观显示。设计的数字电压表除了可以同时进行多路模拟信号的测量外,也可以通过通道选择电路对单片机进行控制,用来实现信号的单路测量和多路测量的切换。数字电压表的系统框图如图2.1所示。单片机AT89C52模数转换器通道选择模拟信号显示驱动数码管显示 图2.1 系统框图三、硬件电路的设计(一)硬件设计原理设计的数字电压表主要用于测量0-5V的直流电压,通过单片机控制A/D转换器将连续的模拟信号转换成离散的数字信号,并对转换后的信号进行运算比较,最终通过数码管显示测量结果。整个电路主要由控制电路、A/D转换电路、数码显示电路、复位电路、选择电路、基准电源、

13、测试电路等几部分组成。设计的数字电压表是基于AT89C52单片机和A/D转换器件的应用基础之上,AT89C52单片机和A/D转换模块是本次设计的核心,通过单片机控制A/D转换器,实现对模拟信号的接收和转换:P0口连接A/D转换器的数字端口,作A/D转换器数据读入端,接收转化后的数字信号并进行处理;单片机的P1口、P3.0-P3.3口作为4位7段LED数码管显示控制端,P3.5端口用作单路/循环显示转换控制按钮,P3.6端口用作单路显示时选择显示的通道。数字电压表硬件设计方案框图如3.1所示。图3.1 数字电压表硬件逻辑框图单片机是制作在一块集成电路芯片上的计算机,它包括中央处理器(CPU)、用

14、RAM构成的数据存储器、用ROM构成的程序存储器、定时器/计数器、各种I/O接口、时钟电路和中断系统等,它们通过地址总线(AB)、数据总线(DB)和控制总线(CB)连接起来,通过I/O口线与外部设备及外围芯片连接,以及单片机系统中的系统操作软件和用户应用软件,实现对整个电路系统的控制作用。(二)AT89C52单片机概述1.AT89C52单片机组成图3.2 AT89C52单片机组成结构图设计采用的AT89C52单片机是MCS-51系列单片机的一个型号,它是由ATMEL公司生产的。 AT89C52单片机内包含有1个8位的CPU、1个片内振荡器及时钟电路、8KB的ROM程序存储器、256B的RAM数

15、据存储器、3个16位的定时器/计数器、可寻址64KB外部数据存储器和64KB外部程序存储空间的控制电路、4个8位并行I/O端口、2个可编程全双工串行口、6个中断源、两个优先级嵌套中断结构。AT89C52单片机组成结构如图3.2所示。2.AT89C52单片机引脚结构(1)电源引脚Vcc(40脚):接+5V电源。Vss(20脚):接地。(2)时钟引脚XTAL1(19脚):内部振荡电路反向放大电路的输入端,外接晶体的一个引脚。当采用外部振荡器时,此引脚接地。 XTAL2(18脚):内部振荡电路反向放大电路的输出端,外接晶体的另一端。当采用外部振荡器时,此引脚接外部电源。 (3)I/O口引脚P0口(P

16、0.0-P0.7):P0.7是最高位,P0.0是最低位,有两种功能如下。通用I/O口:无片外存储器时,P0口可以做为通用I/O口使用;地址/数据口:在访问外部存储器时,用作地址总线的低8位和数据总线。P1口(P1.0-P1.7):P1.7是最高位,P1.0是最低位,仅用作I/O口。P2口(P2.0-P2.7):P2.7是最高位,P2.0是最低位,有两种功能如下。通用I/O口:无片外存储器时,P2口可以做为通用I/O口使用;地址口:在访问外部存储器时,用作地址总线的高8位。P3口(P3.0-P3.7):P3.7是最高位,P3.0是最低位,有两种功能如下。通用I/O口:用于串行口、中断源输入、计数

17、器、片外RAM选通。(4)控制引脚 引脚图如图3.3所示。图3.3 AT89C52的引脚图 RST/VPD(9脚)RST为RESET,VPD为备用电源。该引脚为单片机的上电复位或掉电保护端。当振荡器工作时,RST引脚出现两个机器周期以上高电平,将使单片机复位。当VCC发生故障,该引脚可接上备用电源为内部RAM供电,以保证RAM中的数据不丢失。ALE/PROG(30脚)地址锁存有效信号输出端。ALE在每个机器周期内输出两个脉冲。在访问片外程序存储器期间,下降沿由于控制P0输出的低8位地址;在不访问片外程序存储器期间,可作为对外输出的时钟脉冲或用于定时目的。PSEN(29脚)片外程序存储器选通信号

18、输入端,低电平有效。当从外部程序存储器读取指令或常数期间,该信号在每个机器周期两次有效,以通过数据总线P0口读回指令或常数。在访问片外程序存储器期间,PSEN信号将不再出现。EA/VPP(31脚) 外部程序存储器地址允许输入端/编程电压输入端。当EA接高电平时,CPU执行片内ROM指令,但当PC值超过0FFFH时,将自动转去执行片外ROM指令;当EA接低电平时,CPU只执行片外ROM指令。3. AT89C52单片机的最小系统图3.4 AT89C52最小系统(1)时钟电路单片机的时钟信号用来提供单片机内部各种操作的时间基准,时钟电路用来产生单片机工作所需要的时钟信号。单片机内部有一个高增益的反相

19、放大器,其输入端XTAL1和XTAL2用于外接晶体和电容,以构成自激振荡器,其发出的脉冲直接送入内部的时钟电路,内接电路如图3.5所示。外部时钟方式是把外部已有的时钟信号引入到单片机内,如图3.6所示。本设计的数字电压表采用的是内部时钟电路。 图3.5 内部方式时钟电路 图3.6 外部方式时钟电路(2)复位电路单片机复位时,使CPU和系统中的其他功能部件恢复为初始状态,就像计算机的重启,并从这个状态开始工作。要实现复位操作,必须是RES引脚至少保持两个机器周期(24个振荡器周期)的高电平。CPU在第二个机器周期内执行内部复位操作,以后每一个机器周期重复一次,直至RES端电平变低。复位期间不产生

20、ALE及PSEN(非)信号,即ALE=1和PSEN(非)=1。这表明单片机复位期间不会有任何取指操作。当RES引脚返回低电平后,CPU从0000H地址开始执行程序。 图3.7 上电复位 图3.8 按键复位单片机常见的复位电路主要有上电复位电路和按键复位电路。上电复位电路如图3.7所示,由RC构成微分电路,在上电瞬间,产生一个微分脉冲,其宽度若大于两个机器周期,单片机将复位。为了保证微分脉冲宽度足够大,RC时间常数应大于两个机器周期,一般取22uF电容、1K电阻。按键复位电路如图3.8所示,该电路除具有上电复位功能外,若要复位,必须按下图中的REST键,R1、C2仍构成微分电路,使RST端产生一

21、个微分脉冲复位,复位完毕C2经R2放电,等待下一次按下复位按钮。本设计的数字电压表采用的是按键复位方式。(三)A/D转换电路1.A/D转换器工作过程A/D转换器实际上是将模拟信号转换成数字量的装置,其转换过程主要包括采样、量化、编码三个步骤。(1)采样、量化部分采样就是周期性地测量一种连续信号或连续过程信号,测量的周期称为采样周期Ts,采样周期的倒数称为采样频率 (3-1)在对模拟信号进行模数转换时,A/D转换器从启动变换到转换完成需要一定的转换。当输入信号频率较高时,由于转换时间的存在,会造成较大的转换误差。为了防止这种现象的产生,必须在A/D 转换开始时将信号电平保持住。A/D转换器输出数

22、字量的大小只能是某个规定的最小单位的整数倍,即必须把采样电压转化为这个最小数值单位的整数倍,这个转化过程叫做量化,所取的最小数量单位叫做量化单位,其大小等于输出的数字信号最低有效位1所代表的数量大小。把量化的结果用代码表示出来称为编码。采样保持电路能将采样后的模拟信号暂时存储起来,保持一个采样周期。(2)量化、编码部分量化编码部分是A/D转换器的核心组成部分。所谓量化,就是采用一组数码来逼近离散模拟信号的幅值,将其转换为数字信号。将采样信号转换为数字信号的过程称为量化过程。执行量化动作的装置为A/D 转换器。在实际应用中,串行A/D转换芯片具有占用单片机的引脚资源少,可以简化单片机系统,降低成

23、本的优点,所以串行工作方式的A/D转换器在单片机系统中有着广泛的应用。其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8个单断模拟输入信号中的一个进行A/D转换。 ADC0809是最常用的8位A/D转换器,属于逐次逼近型。ADC0809由单一+5V电源供电,片内带有锁存功能的8路模拟电子开关,可对0+5V 八路的输入电压信号分时进行转换,输出具有TTL三态锁存缓冲器,直接与MCS-51系列单片机数据总线相连,通过适当的外接电路,还可对0+5V 的双极性模拟信号进行A/D转换。 ADC0809片内集成了8路模拟多路开关、地址锁存与译码、8位A/D转换器以及8位三台输出锁存器四

24、部分组成。ADC0809内部组成结构框图如图3.9所示。图3.9 ADC0809内部组成结构框图2.A/D转换电路ADC0809双列直插式封装的引脚配置如图3.10所示。图3.10 ADC0809引脚图ADC0809具有8路模拟量输入通道IN0-IN7,通过3位地址输入端C、B、A进行选择,用于选通8路模拟输入中的一路。地址锁存控制端ALE,当输入为高电平时,C、B、A引脚输入的地址锁存于ADC0809内部的锁存器中,经内部译码电路译码选中相应的模拟通道。启动转换控制端START,其上升沿用于清除ADC内部寄存器,下降沿用于启动控制内部逻辑,使ADC0809开始对输入通道的模拟量进行转换。A/

25、D转换器,当开始转换时,EOC信号为低电平,经过一段时间,转换结束,转换结束信号EOC输出高电平,转换结果存放于ADC0809内部的输出数据寄存器中。 OE为A/D转换数据输出允许控制端,当OE为高电平时,才能打开输出三态门,将存放于输出数据锁存器中的数据通过ADC0809的数据线D0-D7输出。ADC0809的时钟信号输入端CLOCK,它的频率决定了A/D转换器的转换速度。在此,它的频率不能高于640kHz,对应的转换速度为100us。 图3.11 A/D转换电路REF(+)和REF(-)是D/A转换器的参考电压输入线,要求REF(-)不得为负值,REF(+)不得高于Vcc,并且1/2REF

26、(+)+ REF(-)与1/2Vcc之差不得大于0.1V。Vcc为+5V电源,GND为接地端。在连接时,ADC0809的数据线D0-D7端与AT89C52单片机的P0口相连接,ADC0809的地址引脚、地址锁存端ALE、启动信号START、数据输出允许控制端OE与AT89C52的P2口相连接,转换结束信号EOC与AT89C52的P3.7口相连接。时钟信号输入端CLOCK信号,由单片机的地址锁存信号ALE得到,通过软件实现。通过SW1和SW2轻触按钮开关给单片机提供选择信号,由单片机控制ADC0809地址输入端,选中相应的模拟通道进行测量。ADC0809与单片机的连接电路如图3.11所示。(四)

27、数码显示电路数码管显示分为动态显示和静态显示两种方式。所谓静态显示,就是当数码管显示某一个字符时,相应的发光二极管恒定的导通或截止。这种显示方式,优点是编程简单,显示亮度高,缺点是每一位都需要有一个8位输出口控制,所以占用的硬件较多,所以一般用于数码管比较少的场合。数码管动态显示是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示段“a,b,c,d,e,f,g,dp”的相同端连接在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是哪个数码管会显示出字形,取决于单片机对位选通

28、COM端电路的控制,所以只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个LED数码管的COM端,就使各个数码管轮流受控显示。在轮流显示过程中,每位元数码管的点亮时间为12ms,由于人的视觉暂留现象及发光二极体的余辉效应,虽然实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,达到和静态显示同样的显示效果。动态显示能够节省大量的I/O口,而且功耗更低。设计的数字电压表要求可以同时测量8路0-5V的直流电压,测量最大分辨率为0.0196V,并要求最高位用于显示测量电压的地址范围,所以要求数码管至

29、少采用4位显示的数码管。图3.12 4位共阳数码管内部引脚分布图为了方便和减少设计的复杂度,设计采用的是4位共阳数码管来进行测量结果的显示,数码管的内部结构及引脚分布如图3.12所示。数码管每位的8个LED阳极连接到一个公共端口COM,分别为COM1,COM2,COM3,COM4,把每位相同位置LED段的阴极连接到一个公共端口,分别为a,b,c,d,e,f,g,dp口。如果采用静态显示方式,则需要48=32个I/O口,应用时必须增加扩展芯片和较多驱动器进行驱动,这将很大程度上增加了硬体电路设计的复杂性。若采用静态显示的方式,只需要12个I/O,其中8个I/O用于连接每位数码管的8位显示段,作为

30、数据端口;另外4个I/O口用于连接每位数码管显示段的公共端,作为扫描端口,控制数字显示。数码显示电路如图3.13所示。图3.13 数码管动态显示电路四、系统的程序设计(一)软件设计思想框图系统上电时,初始化程序主要用来执行70H-77H内存单元清0和P2口置0等准备工作。初始化后,单片机片选A/D转换器,然后发出信号启动A/D转换,此时单片机内部定时器/计数器也开始工作,不断扫描A/D转换器结束端口有无结束信号。如果存在,则启动信号采集,对A/D转换器数据输出口输出的数值进行存储,定时器/计数器重新置零,准备下一次的采集,如果没有,则继续扫描等待。扫描结束后,进行数据处理,同时进行下一次扫描。

31、数据处理完之后,利用查表法将电压数值送到数码管显示器进行显示。在刚上电时,系统默认为循环显示8个通道的电压值状态。当进行一次测量后,将显示每一通道的A/D转换值,每个通道的数据显示时间在1s左右。主程序在调用显示子程序与测量子程序之间循环。程序的流程框图如图4.1所示。 初始化调用A/D转换测量子程序调用显示子程序开 始结 束 图4.1 主程序框图(二)子程序原理和框图1.显示子程序显示子程序采用动态扫描法实现4位7段数码管的数值显示。测量所得的A/D转换数据放在70H-77H内存单元中,测量数据在显示时须经过转换成为十进制BCD码放在78H-7BH单元中,其中7BH存放通道标志数。寄存器R3

32、用作8路循环控制,R0用作显示数据地址指针。显示子程序流程图如图4.2所示。图4.2 显示子程序流程图显示扫描子程序分析如下void scan()uchar k,n;int h;dis3=0x01; /通道初值为1for(n=0;n=4&dis16&dis0=0)A=1;elseA=0;for(h=0;h500;h+) /每个通道显示时间控制约为一秒for(k=0;k4;k+) /4位LED扫描控制Disdata=dis_7disk;if(k=2)DISX=0;P3=scan_conk; /P3.O-P3.3控制数码管输出电平的高低delaylms(1);P3=0xff;dis3+; /通道值

33、加12. A/D转换测量子程序A/D转换测量子程序用来控制对ADC0809的8路模拟输入电压的A/D转换,并将对应的数值移入单片机70H-77H内存单元。A/D转换测量子程序流程图如图4.3所示。图4.3 A/D转换测量子程序流程图A/D转换子程序分析如下:void test()uchar m;uchar s=0x00;ad_con=s;for(m=0;m8;m+)ALE=1;_nop_();_nop_();ALE=0; /转换通道地址锁存START=1;_nop_();_nop_();START=0; /开始转换命令_nop_();_nop_();_nop_();_nop_(); /延时4U

34、Swhile(EOC=0); /等待转换结束OE=1;ad_datam=addata;OE=0;s+;ad_con=s; /取A/D值,地址加1ad_con=0x00; /控制复位五、调试及性能分析(一)测量与调试采用Keil和Proteus软件进行程序编译及电路仿真调试,利用Protel软件进行硬件电路板的制作设计,通过STC_ISP软件将Keil程序编译时生成的hex文件烧录到单片机内,组装好电路后进行硬件和软件的综合调试。调试无误后,进行测量,将测量电压与标准电压表的测量结果进行对比分析。测量对比分析的结果如表5-1所示。表5-1 数字电压表与“标准”数字电压表测量对比标准电压值/V数字

35、电压表测得值/V绝对误差/V0.000.000.000.500.51+0.010.800.81+0.011.001.01+0.011.581.58 0.002.002.01+0.012.502.51+0.013.003.32+0.024.504.52+0.02注:表中标准电压值采用UT30B数字万用表测得。(二)性能分析由于单片机为8位处理器,当输入电压为5.00V时,ADC0809输出数据值为255(FFH),因此单片机最高的数值分辨率为0.0196V(5/255)。这就决定了该电压表的最高分辨率(精度)只能达到0.0196 V,测试时电压一般以0.02V的幅度变化。如果要获得更高精度的测量

36、要求,则应采用更高位的A/D转换器件。从表5-1中可以看出,设计的数字电压表与UT30B数字万用表测得的绝对误差均在0.02V以内,这与采用8位A/D转换器所能到达的理论误差精度相一致,在一般的应用场合可以满足使用要求。另外,设计的数字电压表测得的值基本上比用UT30B数字万用表测得的标准电压值偏大0.01-0.02 V。这可以通过校正ADC0809的基准电压来解决。因为该电压表设计时的直接供电电源也同时作为ADC0809的基准电压,所以电压有可能有偏差。另外,还可以根据测量误差,用软件编程方式校正测量值。当要测量大于5V的直流电压时,可在测量信号的输入口使用分压电阻,通过计算间接得到测量结果

37、。也可以在程序中将计算程序的除数进行调整。但是随着量程增大,测量的精度会降低。总结通过本次毕业设计,使我从实践中学到了更多的专业知识和加强了自身的能力培养,巩固了我所学习的理论知识,使得我对单片机知识及应用有了更为深层的了解。此外,更重要的是,锻炼了实践工作的能力,提高工程素养,学会将理论与实践相结合,用理论指导实践,通过实践来验证和加深对理论的理解,使得自己在理论和实践上有新的认识和提高,使综合应用能力和分析解决问题的能力得到提高。这些都是自己努力赢得的宝贵财富,将会为以后的学习和工作打下了更加坚实的基础。附录一 数字电压表原理图附录二 程序清单#include #include /延时函数

38、用#define ad_con P2 /A/D控制口#define addata P0 /A/D数据记入读入口#define Disdata P1 /显示数据段码输出口#define uchar unsigned char#define uint unsigned intsbit ALE=P23; /锁存地址控制位sbit START=P24; /启动一次转换位sbit OE=P25; /0809输出数据 控制位sbit EOC=P37; /转换结束标志位sbit DISX=Disdata7; /LED小数点sbit A=P27;sbit BO=P35;sbit CO=P36;uchar co

39、de dis_711=0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xff; /共阳7段LED段码表0.1.2.3.4.5.6.7.8.9.不亮uchar code scan_con4=0xfe,0xfd,0xfb,0xf7; /4位列扫描控制字 /11111110/11111101/11111011/11110111uchar data ad_data8=0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00; /定义8个数据内存单元uint data dis5=0x00,0x00,0x00,0x00,0x00;

40、 /定义4个显示数据单元和1个数据存储单元/*1ms延时子函数*/void delaylms(uint t) /t=1uint i,j;for(i=0;it;i+)for(j=0;j120;j+);/*显示扫描子函数*/void scan()uchar k,n;int h;dis3=0x01; /通道初值为1for(n=0;n=4&dis16&dis0=0)A=1;elseA=0;for(h=0;h500;h+) /每个通道显示时间控制约为一秒for(k=0;k=4&dis16&dis0=0)A=1;elseA=0;for(m=0;m500;m+) /每个通道显示时间控制约为一秒for(i=0;i4;i+) /4位LED扫描控制Disdata=dis_7disi;if(i=2)DISX=0;P3=scan_coni; /P3.O-P3.3控制四个数码管的输出delaylms(1);P3=0xff;/*0809转换子函数*/void test()uchar m;uchar s=0x00;ad_con=s;for(m=0;m8;m+)ALE=1;_nop_();_nop_();ALE=0;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号