您好,欢迎来到99网。
搜索
您的当前位置:首页多路电压测量系统

多路电压测量系统

来源:99网


姓 专 论 文 指 导 名 苏永斌 业 电气自动化技术 名 称 多路电压测量系统 教 师 何跃军

目 录

摘要 ......................................................................................... - 1 - 第一章 系统总体设计 ................................................................ - 2 - 1-1系统功能介绍 .................................................................... - 2 - 1-2 系统设计思想 ................................................................... - 2 - 1-3多路电压测量系统主要特点 ................................................ - 3 - 1-4多路电压测量系统设计 ...................................................... - 3 - 1-5多路电压测量系统总体开发与设计流程图 ............................ - 4 - 第二章 多路电压测量系统的硬件系统设计 ................................ - 5 - 2-1 系统硬件电路的设计原理 ................................................... - 5 - 2-2电压测量系统在设计上特点 ................................................ - 6 - 2-3多路数字电压测量系统的设计与制作步骤 ............................ - 6 - 2-4电路各部分硬件电路介绍 ................................................... - 7 - 2-4-1 单片机ATC51及其特点 ............................................ - 7 - 2-4-2数码管驱动电路 .......................................................... - 9 - 2-4-3动态LED数字显示电路 .............................................. - 10 - 2-4-4系统A/D电压采样电路 .............................................. - 12 - 2-4-5 4024分频电路 ........................................................... - 15 - 第三章 多路电压测量系统的软件系统介绍 ................................ - 16 - 3-1 多路数字电压测量系统软件设计概述 ................................ - 16 - 3-1-3显示子程序 ............................................................... - 17 - 3-1-4模/数转换测量子程序 ................................................ - 18 - 3-2系统软件程序设计 ........................................................ - 21 - 第四章 测量系统的调试与测试 ............................................... - 29 -

4-1 电压测量系统的调试 ...................................................... - 29 - 4-2 系统测试 ........................................................................ - 30 - 4-3性能分析 ......................................................................... - 30 - 附件1 元器件清单 .............................................................. - 31 - 附件2 实物电路图。 ......................................................... - 32 - 总结 ....................................................................................... - 33 - 参考文献 ................................................................................. - 34 - 致谢 ....................................................................................... - 35 -

摘要

本毕业设计项目为多路电压测量系统。这是一个以单片机ATC51为控制核心,利用A/D转换器、数码管、驱动电路等组成的单片机系统。它的主要功能是能同时测量和显示多路和单路电路的电压,测量电压的范围为0-5V,电压测量的最小分辨率为0.019V, 测量通道为8路,我们设了两个功能键,对其功能进行选择,其中按键1是进行单路和多路切换的;按键2是进行通道号选择的。 关键词:单片机;ATC51;A/D转换;ADC0809;数据处理

- 1 -

第一章 系统总体设计

1-1系统功能介绍

本系统应用的范围主要是能同时测量并显示多路低压电路的电压,我们在系统设计时,测量电压的范围设计成0~5V。它能同时对一路电压或多达8路电压进行测量,我们可以通过按键1进行单路和多路切换;通过按键2进行通道号选择,并在四位LED数码管上轮流显示或单路选择显示。测量最小分辨率为0.019V,测量误差约为±0.02V。 1-2 系统设计思想

多路电压测量系统由硬件和软件两大部分组成。硬件部分包括单片机电路、过程输入通道(模拟量输入通道)和接口电路。如图1-1所示。单片机电路用来存储数据、程序,并进行一系列运算处理,它通常由微处理器(CPU)等芯片组成。模拟量输入通道(模/数转换器ADC0809)用来采集模拟量信号,经过单片机处理后,在显示电路中,显示电压值。软件部分主要是在硬件电路的基础上,对单片机编写相应程序以实现电路的功能 ,本系统软件采用模块化设计思想,编程语言采用汇编语言,仿真系统采用南京伟福仿真器。

图1-1 多路电压测量系统硬件组成框图

- 2 -

1-3多路电压测量系统主要特点 本多路电压测量系统主要特点如下:

1)控制灵活:由于采用单片机控制,因此系统可以在不改变硬件电路的情况下,通过编程,增加或修改功能。

2)成本较低:本系统采用元件都是普通常用件,因而造价低廉,与同类产品相比,有较大的价格优势。

3)精度较高:本系统采用8位A/D转换器ADC0809,因而电压转换精度可以达到0.019V,由于采用三位数码管显示电压,因而最小显示电压为0.01V. 4)有较大的实用价值。本产品可用于多路电压的测量,在电子电气领域因而有较大的使用范围,另外,在保证一定的精度的情况下,本产品有较大的价格优势,这是我们这款产品的特点,从而使它具有较大的实用价值。 1-4多路电压测量系统设计

按系统功能实现要求,决定控制系统采用ATC51单片机为控制核心,A/D转换采用ADC0809。系统除能确保实现要求的功能外,还可以方便地进行8路其它A/D转换量的测量、远程测量结果传送等扩展功能。多路电压测量系统设计方案框图如图1-4

图1-4 多路电压测量系统设计方案框图

- 3 -

1-5多路电压测量系统总体开发与设计流程图

多路数字电压测量系统总体开发与设计流程图如图1-5所示:

图1-5系统总体开发与设计流程图

- 4 -

第二章 多路电压测量系统的硬件系统设计

2-1 系统硬件电路的设计原理

本多路电压测量系统以单片机为控制核心,包括单片机及其外围电路,A/D转换电路、分频电路、按键选择电路、数码管动态驱动与显示电路等组成,电路原理图如图2-1所示,系统实物图如图2-2。A/D转换由A/D转换元件ADC0809完成。ADC0809具有8路模拟输入端口,地址线(23~25脚)可决定对哪一路模拟输入作A/D转换。22脚为地址锁存控制,当输入为高电平时,为地址信号进行锁存。6脚为测试控制,当输入一个2μS宽高电平脉冲时,就开始A/D转换。7脚为A/D转换结束标志,当A/D转换结束时,7脚输出高电平。9脚为A/D转换数据输出允许控制,当OE脚为高电平时,A/D转换数据从该端口输出。10脚为0809的时钟输入端,利用单片机ALE引脚(ALE引脚,其输出频率为2M,它是对单片机外接12M晶振进行六分频),与4024相连,经过4024元件二分频后,得到1MHz时钟,作为A/D0809的输入时钟。单片机的P1口最为数码管的段码控制口、P3.0~P3.3端口作为四位LED数码管位选控制端口。P3.5端口用作单路显示/循环显示转换按钮,P3.6端口用作单路显示时选择通道。P0端口作A/D转换数据读入用,P2端口用作0809的A/D转换控制。

图2-1 多路电压测量系统电路原理图

- 5 -

图2-2 多路电压测量系统实物图

2-2电压测量系统在设计上特点 本系统在设计上,有以下几个特点:

1)系统硬件结构结合应用软件方案一并考虑。我们在设计上,考虑的原则是:软件能实现的功能尽可能由软件来实现。但必须注意如用软件来实现的硬件功能,其响应时间要比直接用硬件来实现花的时间长,而且占用CPU时间。 2)系统中相关的器件要尽可能做到性能匹配。

3)可靠性及抗干扰设计是硬件系统设计不可缺少的一部分,它包括芯片、器件选择、去耦滤波、印刷电路板布线、通道隔离等。

4)单片机外接电路较多时,必须考虑其驱动能力。驱动能力不足时,系统工作不可靠,解决的办法是增加驱动能力,增设线驱动器或者减少芯片功耗,降低总线负载。在完成各个单元电路的设计与调试后,我们与软件系统进行了联调,且达到了一个较为理想的结果。 2-3多路数字电压测量系统的设计与制作步骤

研制一个电压测量系统是个复杂的过程,这一过程包括分析仪表的功能要求和拟制总体设计方案,确定硬件结构和软件算法,研制逻辑电路,以及系统的调试和性能的测试等等。为保证系统的质量和提高研制的效率。设计小组应该完成以下几步工作:

1. 确定设计任务和功能要求

2. 按照设计图纸进行电路的焊接和调试

3. 电路调试工作完成后利用仿真器进行对电路软件上的调试

- 6 -

4. 对电路进行工艺上的修改与性能测试 2-4电路各部分硬件电路介绍

本系统电路以单片机ATC51为控制核心,包括单片机及其外围电路,A/D转换电路、分频电路、按键选择电路、数码管动态驱动与显示电路等组成,下面我们一一进行阐明。

2-4-1 单片机ATC51及其特点

ATC51是ATMEL公司生产的CMOS型51系列单片机,具有MCS-51内核。ATMELF是一种低功耗、高性能的含有4KB闪速可编程/擦出只读存储器的八位CMOS微控制器,使用高密度、非易失存储技术制造,并且与8051指令系统和引脚完全兼容。芯片上的FPEROM允许在线或采用通用的非易失存储编程对程序存储重复编程。

1、ATC51的主要性能包括:

(1) 与MCS-51微控制器产品系列兼容

(2) 片内有4KB可在线重复编程闪速擦写存储器 (3) 存储器可循环写入/擦出1000次 (4) 存储数据保存时间为10年 (5) 全静态工作:可由0HZ到16MHZ (6) 程序存储具有3级锁存保护 (7) 128ⅹ8位内部RAM (8) 32条可编程I/O线 (9) 两个16位定时器/计数器

(10)中断结构具有5个中断源和两个优先级 (11)空闲状态维持低功耗和掉电状态保存存储内容 2、ATC51系列引脚及功能:

ATC51系列有40个引脚,采用双列直插(DIP)封装形式,使用很方便。ATC51引脚如图2-3所示。

- 7 -

图2-3 引脚图

其各个引脚功能如下:

P0口(39-32):P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。

P1口(1-8):P1口是从内部提供上拉电阻器的8位双向I/O口,P1口缓冲器能接收和输出4个TTL门电流。

P2口(21-28):P2口为内部上拉电阻器的8位双向I/O口,P2口缓冲器 可接收和输出4个TTL门电流。

P3口(10-17):P3口是8个带内部上拉电阻器的双向I/O口,可接收和输出4个TTL门电流,P3口也可作为ATC51的特殊功能口。

RST(9):复位输入。当振荡器复位时,要保持RST引脚2个机器周期的高电平时间。

ALE/PROG(30):当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低位字节,在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6,它可用作对外部输出的脉冲或用于定时目的,要注意的是,每当访问外部数据存储器时,将跳过1个ALE脉冲。

PSEN(29):外部程序存储器的选通信号。在由外部程序存储器取指期间,

- 8 -

每个机器周期2次PSEN有效,但在访问外部数据存储器时,这2次有效的PSEN信号将不出现。

EA/VPP(31):当EA保持低电平时,外部程序存储器地址为(0000H-FFFFH)不管是否有内部程序存储器。FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。

XTAL1(19):反向振荡器放大器的输入及内部时钟工作电路的输入。 XTAL2(18):来自反向振荡器的输出 2-4-2数码管驱动电路

为提供单片机对显示数码管的驱动能力,我们采用总线驱动器74HC244对数码管进行驱动,其工作原理与管脚排列图如图2-4:其功能表如表1所示:

图2-4 74HC244引脚图

输入 G L L H A L H X 表1,74HC244功能表

74HC244功能表说明如下: L:低电平 H:高电平 Z:高阻状态

- 9 -

输出 Y L H Z

X:高低电平均可(包括跳变)

G:输出禁止控制端。高电平,输出禁止,位高阻状态。量组电路分开控制。 电源电压参考值:TTL极限值 + 7V,一般使用 + 5V, CMOS极限值 + 20V,一般使用 +15V,其典型参数如表2所示。

型号 最大拉出电流 最大吸收电流 (mA) (mA) 典型传播延迟时间 (ns) 54S244 74S244 54LS244 74LS244 -12 -15 -12 -15 48 12 24 6 6 12 12 典型总功耗 (mW) 558 558 127 127 表2 ,74HC244 典型参数

2-4-3动态LED数字显示电路

在本系统中,需要用到的数码管比较多,包括1位显示通道号,三位显示电压值,电压显示精确到小数点后两位。为减少I/O数目,简化电路,降低成本,我们的数码管采用动态显示方式。

动态LED显示器接口及工作原理: 动态LED显示器的电路连接特点是将各位LED显示器的所有对应段线并联在一起,由一个8位I/O口控制输出字段码,而每位LED显示器的公共端(共阳极点或共阴极点)不直接接地或+5V电源,而是分别由另外的I/O口线控制(称为位选)。LED显示器的显示内容通过段码I/O口和位选I/O口的相互配合控制,以动态扫描显示的工作方式输出待显示的内容。

- 10 -

图2-5 单片机与数码管连接实物图

数码显示(LED)及接口: (1)LED显示器结构

LED显示器内部由发光二极管组成。根据内部二极管连接方式,数码管结构又分为共阴极和共阳极型。共阳极型发光二极管阳极连在一起接高电平,共阴极型发光二极管阴极连在一起接低电平。电压测量系统采用的是共阳极型。

图2-6 数码管引脚及内部结构图

由图可见,a.、b、c、d、f、g、分别为七个发光段引脚,dp引脚为小数点。3与8脚接电源或接地端,共10个引脚。 (2)显示字形与字段码关系

数码管发光原理情况:共阳极型如图2-6(b)所示,a~g哪个为低电平,哪

- 11 -

个二极管亮。每个二极管为一段,不同的发光段亮,可组成不同字形。输入到数码管dp、g、f、e、d、c、b、a的进制码称为字段吗(或字形吗),数码管显示的结果为字形。

本系统中,数码管各个字段和PA口输出字形码对应关系如表3和表4所示:

PA7 PA7 PA6 PA6 PA5 PA5 PA4 PA4 PA3 PA3 PA2 PA2 PA1 PA1 PA0 PA0 小数点 g f e d c b a 表3 C0H 0 F9H 1 A4H 2 B0H 3 99H 4 92H 5 表4

2-4-4系统A/D电压采样电路

本系统A/D电压采样电路采用专用集成电路芯片ADC0809,下面我们介绍一下ADC0809。 1) ADC0809的结构

ADC0809是带有8位A/D转换器、8路多路开关以及微处理机兼容的控制逻辑的CMOS组件。它是逐次逼近式A/D转换器,可以和单片机直接接口。其内部有一个8路通道多路开关,它可以根据地址码锁存译码后的信号,只选通8个单断模拟输入信号中的一个进行A/D转换。如图2-7管脚图所示。

82H 6 F8H 7 80H 8 90H 9 - 12 -

图2-7 管脚图

A/D转换器是连接模拟世界与数字世界的桥梁,它担负着将模拟信号变换成适合数字处理的二进制代码的任务。目前,8位A/D转换器的转换速度以及达到1.5GHz;

2 )ADC0809主要特性:

@ 8路8位A/D转换器,即分辨率8位; @ 具有锁存控制的8路模拟开关; @ 易与各种微控控制接口;

@ 可锁存三态输出,输出与TTL兼容; @ 转换时间(f—500KHz):128US; @ 转换精度:0.2%; 3 )ADC0809 A/D工作原理

本系统中,ADC0809与单片机连接图如图2-8所示,其工作过程是:首先

- 13 -

输入3位地址,并使ALE=1,将地址存入地址锁存器中。此地址经译码选通8路模拟输入之一到比较器。START上升沿将逐次逼近寄存器复位。下降沿启动A/D转换结束,结果数据已存入锁存器,这个信号可用作中断申请。当OE输入高电平时,输出三台门打开,转换结果的数字量输出到数据总线上。

图2-8 ADC0809与单片机接口电路图

图2-9 ADC0809与单片机连接实物图

- 14 -

ADC0809具有8路模拟输入端口,由于ADC0809内部含有输出三态缓冲锁存器,所以可以直接将8位数字量输出端与单片机P0口相连。

P0端口作A/D转换数据读入用,P2端口用作0809的A/D转换控制。地址线(23~25脚)可决定对哪一路模拟输入作A/D转换。

22脚ALE为地址锁存控制,当输入为高电平时,对地址信号进行锁存。 6脚START为测试控制,当输入一个2us宽高电平时,就开始A/D转换。 7脚EOC为A/D转换结束标志,当A/D转换结束时,7脚输出高电平。 9脚为A/D转换数据输出允许控制,当OE脚为高电平,A/D转换数据从该端口输出。

10脚为ADC0809的时钟输入端,利用单片机30脚的六分频晶振频率再通过分频器二分频得到1MHz时钟。 2-4-5 4024分频电路

本系统采用4000系列电路中的4024对ALE引脚进行2分频,得到1M频率的方波信号,提供给ADC0809作为工作频率,我们采用的是硬件分频的方法,其特点是不影响软件编程,简化了软件程序。当然我们也可以采用软件方法,利用单片机的定时器,定时周期为10US,利用一个IO口,则单片机每到10US,使这个IO口反相,则可以通过IO口,产生一个周期为20US的方波,作为ADC0809的工作频率,用软件分频的方法是,节省了硬件资源,但使得编程复杂化。

- 15 -

第三章 多路电压测量系统的软件系统介绍

3-1 多路数字电压测量系统软件设计概述

在系统软件设计时,应根据系统软件功能要求,将系统软件分成若干个相对的部分,并根据它们的联系和时间上的关系,设计出合理的软件总体结构。通常在编制程序前先根据系统输入和输出变量建立起正确的数学模型,然后画出程序流程框图,要求流程框图结构清晰、简捷、合理,画流程框图时还要对系统资源作具体的分配和说明。编制程序时一般采用自顶向下的程序设计技术,先设计测量程序再设计各应用程序模块。各功能程序应模块化、子程序化,这样不仅便于调试、链接,还便于个性和移植。

在进行应用系统的总体设计时,软件设计和硬件设计应统一考虑,相结合进行。当系统的电路设计定型后,软件的任务也就明确了。下图为多路数字电压测量系统设计流程图及系统框图如下图3-1所示:

图3-1 多路数字电压测量系统软件系统设计流程图

- 16 -

3-1-2主程序

在刚上电时,系统默认为循环显示8个通道的电压值状态。当进行一次测量后,将显示每一通道的A/D转换值,每个通道的数据显示时间为1s左右。主程序在调用显示子程序和测试子程序之间循环,主程序流程图如下图3-2所示:

图3-2 主程序流程图

3-1-3显示子程序

系统显示子程序采用动态扫描法,实现四位数码管的数值的动态显示。我们把测量所得的8个通道的A/D转换数据分别存放在70H~77H寄存器,每个通道的测量数据在显示时,需转换成为3位十进制BCD码,放在78H~7AH单元中,7BH存放通道标志数。寄存器R3用作8路循环控制,R0用作显示数据地址指针。系统软件显示子程序如下:

*************************** ;* 显示控制程序 * ;*************************** DISPLAY: JB 00H,DISP11 MOV R3,#08H

;标志位为1,则转单路显示控制子程序 ;8路信号循环显示控制子程序

- 17 -

MOV R0,#70H

;显示数据初址70H ~ 77H ;显示通道路数初值

MOV 7BH,#00H

DISLOOP1: LCALL TUNBCD;显示数据转为三位BCD码存入7AH,79H,78H MOV R2,#0FFH DISLOOP2:LCALL DISP

;每路显示时间控制在4ms X 255,约1 s ;调四位显示程序 ;按键检测

LCALL KEYWORK1 DJNZ R2,DISLOOP2 INC R0 INC 7BH

;显示下一路

;通道显示数加1

DJNZ R3,DISLOOP1 RET DISP11: MOV A,7BH SUBB A,#01H MOV 7BH,A ADD A,#70H MOV R0,A

DISLOOP11: LCALL TUNBCD;显示数据转为三位BCD码存入7AH,79H,78H MOV R2,#0FFH DISLOOP22: LCALL DISP

;每路显示时间控制在4ms X 25 ;调四位显示程序

;单路显示控制子程序

LCALL KEYWORK2 ;按键检测 DJNZ R2,DISLOOP22 INC 7BH RET

3-1-4模/数转换测量子程序

模/数转换测量子程序用来实现对A /D转换模块ADC0809的模拟输入电压进行A/D转换,并将其转换后的数值存入70H~77H内存单元。其程序流程见图3-3,子程序源程序如下所示。

;通道显示数加1

- 18 -

图3-3 A/D转换测量程序流程图 *************************** ;* 电压测量(A/D)子程序 * ;***************************

;一次测量数据8个,依次放入70H ~ 77H单元中 TEST: CLR A

;模/数转换子程序

MOV P2,A MOV R0,#70H MOV R7,#08H

;转换值存放首址 ;转换8次控制 ;启动测试

;等A/D转换结束信号

LCALL TESTART WAIT: JB P3.7,MOVD AJMP WAIT TESTART: SETB P2.3 NOP NOP

;测试启动

- 19 -

CLR P2.3 SETB P2.4 NOP NOP CLR P2.4 NOP NOP NOP NOP RET MOVD: SETB P2.5 MOV A,P0 MOV @R0,A CLR P2.5 INC R0 MOV A,P2 INC A MOV P2,A

CJNE A,#08H,TESTEND TESTEND: JC TESTCON CLR A MOV P2,A MOV A,#0FFH MOV P0,A MOV P1,A MOV P3,A RET

TESTCON: LCALL TESTART LJMP WAIT

;取A/D转换数据

;通道地址加1

;等8路A/D转换结束 ;结束恢复端口

- 20 -

3-2系统软件程序设计

本系统采用汇编语言编写,调试与仿真采用南京伟福公司生产的WAVE2000仿真系统,经过调试,达到了满意的效果。

系统源程序清单如下:

主程序

;*************************** ;* 主程序和中断程序入口 * ;*************************** ORG 0000H LJMP START ORG 0003H RETI ORG 000BH RETI ORG 0013H RETI ORG 001BH RETI ORG 0023H RETI ORG 002BH RETI

;*************************** ;* 初始化程序中的各变量 * ;*************************** CLEARMEMIO: CLR A MOV P2,A MOV R0,#70H

- 21 -

MOV R2,#0DH LOOPMEM: MOV @R0,A INC R0

DJNZ R2,LOOPMEM MOV 20H,#00H MOV A,#0FFH MOV P0,A MOV P1,A MOV P3,A

*************************** ;* 主程序 * ;*************************** START: LCALL CLEARMEMIO MAIN: LCALL TEST

;初始化 ;测量一次 ;显示数据一次

LCALL DISPLAY AJMP MAIN NOP NOP NOP LJMP START

;PC值出错处理

*************************** ;* 显示控制程序 * ;*************************** DISPLAY: JB 00H,DISP11 MOV R3,#08H MOV R0,#70H

;标志位为1,则转单路显示控制子程序 ;8路信号循环显示控制子程序 ;显示数据初址70H ~ 77H ;显示通道路数初值

;显示数据转为三位BCD码存入7AH,79H,

- 22 -

MOV 7BH,#00H

DISLOOP1: LCALL TUNBCD

78H

MOV R2,#0FFH DISLOOP2:LCALL DISP

;每路显示时间控制在4ms X 255,约1 s ;调四位显示程序 ;按键检测

LCALL KEYWORK1 DJNZ R2,DISLOOP2 INC R0 INC 7BH

;显示下一路

;通道显示数加1

DJNZ R3,DISLOOP1 RET DISP11: MOV A,7BH SUBB A,#01H MOV 7BH,A ADD A,#70H MOV R0,A

DISLOOP11: LCALL TUNBCD;显示数据转为三位BCD码存入7AH,79H,78H MOV R2,#0FFH DISLOOP22: LCALL DISP

;每路显示时间控制在4ms X 25 ;调四位显示程序

;单路显示控制子程序

LCALL KEYWORK2 ;按键检测 DJNZ R2,DISLOOP22 INC 7BH RET

;******************************* ;*显示数据转为三位BCD码子程序* ;*******************************

;显示数据转为三位BCD存入7AH,79H,78H(最大值5.00V) TUNBCD: MOV A,@R0 MOV B,#51 DIV AB MOV 7AH,A

;个位数放入7AH

- 23 -

;通道显示数加1

;255/51=5.00V 运算

MOV A,B CLR F0

;余数大于19H,F0为1,乘法溢出,结果加5

SUBB A,#1AH MOV F0,C MOV A,#10 MUL AB MOV B,#51 DIV AB JB F0,LOOP2 ADD A,#5 LOOP2: MOV 79H,A MOV A,B CLR P0 SUBB A,#1AH MOV F0,C MOV A,#10 MUL AB MOV B,#51 DIV AB JB F0,LOOP3 ADD A,#5 LOOP3: MOV 78H,A RET

;*************************** ;* 显示子程序 * ;***************************

;共阳显示子程序,显示内容在78H ~ 7BH DISP: MOV R1,#78H

;共阳显示子程序,显示内容在78H ~7BH ;数据在P1输出,列扫描在P3.0 ~ P3.3

- 24 -

;小数后第1位放入79H

;小数后第2位放入78H

MOV R5,#0FEH

PLAY: MOV P1,#0FEH MOV A,R5 ANL P3,A MOV A,@R1 MOV DPTR,#TAB MOVC A,@A+DPTR MOV P1,A JB P3.2,PLAY1 CLR P1.7

;小数点处理

;小数点显示(显示格式为XX.XX)

PLAY1: LCALL DL1MS INC R1 MOV A,P3

JNB ACC.3,ENDOUT RL A MOV R5,A MOV P3,#0FFH AJMP PLAY ENDOUT: MOV P3,#0FFH MOV P1,#0FFH RET

TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH ;段码表 ;

;*************************** ;* 延时程序 * ;*************************** DL10MS: MOV R6,#0D0H DL1: MOV R7,#19H DL2: DJNZ R7,DL2

DJNZ R6,DL1

- 25 -

;10ms 延时子程序

RET

DL1MS: MOV R4,#0FFH LOOP11: DJNZ R4,LOOP11 MOV R4,#0FFH LOOP22: DJNZ R4,LOOP22 RET

;*************************** ;* 电压测量(A/D)子程序 * ;***************************

;一次测量数据8个,依次放入70H ~ 77H单元中 TEST: CLR A

;模/数转换子程序

;513 + 513 = 1 ms

MOV P2,A MOV R0,#70H MOV R7,#08H

;转换值存放首址 ;转换8次控制 ;启动测试

;等A/D转换结束信号

LCALL TESTART WAIT: JB P3.7,MOVD AJMP WAIT TESTART: SETB P2.3 NOP NOP CLR P2.3 SETB P2.4 NOP NOP CLR P2.4 NOP NOP NOP NOP

;测试启动

- 26 -

RET MOVD: SETB P2.5 MOV A,P0 MOV @R0,A CLR P2.5 INC R0 MOV A,P2 INC A MOV P2,A

CJNE A,#08H,TESTEND TESTEND: JC TESTCON CLR A MOV P2,A MOV A,#0FFH MOV P0,A MOV P1,A MOV P3,A RET

TESTCON: LCALL TESTART LJMP WAIT ;

;*************************** ;* 按键检测子程序 * ;*************************** KEYWORK1: JNB P3.5,KEY1 KEYOUT: RET

KEY1: LCALL DISP

;取A/D转换数据

;通道地址加1

;等8路A/D转换结束 ;结束恢复端口

;延时消抖

- 27 -

JB P3.5,KEYOUT WAIT11: JNB P3.5,WAIT12 CPL 00H MOV R2,#01H MOV R3,#01H RET

WAIT12: LCALL DISP AJMP WAIT11

KEYWORK2: JNB P3.5,KEY1 JNB P3.6,KEY2 RET KEY2: LCALL DISP

JB P3.6,KEYOUT WAIT22: JNB P3.6,WAIT21 INC 7BH MOV A,7BH

CJNE A,#08H,KEYOUT11 KEYOUT11: JC KEYOUT1 MOV 7BH,#00H KEYOUT1: RET WAIT21: LCALL DISP AJMP WAIT22 END

;键释放等待时显示用 ;延时消抖用

;键释放等待时显示用

- 28 -

第四章 测量系统的调试与测试

4-1 电压测量系统的调试

系统调试包括硬件调试和软件调试。硬件调试的任务是排除系统的硬件电路故障,包括设计性错误和工艺性故障,其调试原则按先“局部”再“整体”;先单元,再系统的原则进行。

软件调试是利用开发工具进行在线仿真调试,除发现和解决程序错误外,也可以发现硬件故障。在硬件调试完成后,我们接着进行软件调试。

软件程序调试一般是一个模块一个模块地进行,一个子程序一个子程度地调试,最后联起来统调。利用开发工具的单步和断点运行方式,通过检查应用系统的CPU现场、RAM和SFR的内容以及I/O口的状态,来检查程序的执行结果和系统I/O设备的状态变化是否正常,从中发现程序的逻辑错误,转移地址错误以及随机的录入错误等。也可以发现硬件设计与工艺错误和软件算法错误。在调试过程中,要不断调整、修改系统的硬件和软件,直到其正确为止。联机调试运行正常后,将软件固化到EPROM中,脱机运行,并到生产现场投入实际工作,检验其可靠性和抗干扰能力,直到完全满足要求,系统才算研制成功。调试的具体步骤如下:

首先是模拟调试,先调试各个功能模块,成功后再进行在线仿真调试和系统联调。软件调试中,我们首先调试的模块是显示模块,我们首先通过编程,使单片机P1口输出固定的段码,以来检验显示电路是否连接正确。接着调试A/D转换后的数据处理子程序,其步骤是把AD转换后,得到的数值变量值固定,看数码管是否正确显示电压值,以检验我们的数值处理程序是否正确。

接下来,我们调试AD转换模块,调试AD转换模块时,首先使得电压输入为一固定的值,比如5V,如果数码管输出显示为5.00,则说明AD转换模块固定值调试成功,然后我们在电路中,接上需要测量的电压,进行联调,直到全部调试成功。

调试时,我们采用Wave E2000编译器进行源程序编译及仿真调试,调试成功后,把编译好的16进制文件,通过烧录器G540进行烧录,这样我们就完成了整个系统的制作。

- 29 -

4-2 系统测试

系统调试结束后,我们对系统的输入端口电压与标准电压表进行了对比测试,测试对比表见表4-1。表中标准电压值采用UT56数字万用表测得。

表4-1 多路数字电压测量系统与”标准”数字电压表对比测试表

标准值/V 0.00 0.15 0.17 0.85 0.86 1.00 1.02 1.25 1.26 1.75 1.76 1.98 2.00 2.32 2.33 2.65 2.66 电压表测得值/V 0.00 绝对误差/V 标准值/V 0.00 3.00 +0.02 +0.01 +0.02 +0.01 +0.01 +0.02 +0.01 +0.01 3.45 3.47 3.55 3.56 4.00 4.01 4.50 4.52 4.60 4.62 4.70 4.72 4.81 4.82 4.90 4.92 电压表测得值/V 3.01 绝对误差/V +0.01 +0.02 +0.01 +0.01 +0.02 +0.02 +0.02 +0.01 +0.02 从表中可以看出,多路数字电压测量系统与“标准”数字电压表测得的绝对误差均在0.02V以内。这与采用8位A/D转换器所能达到的理论误差精度相一致,在一般的应用场合完全满足要求。 4-3性能分析

● 由于单片机为8位处理器,当输入电压为5.00V时,输出数据值为255(FFH)。因此单片机最大的数值分辨率为0.0196V(5/255)。这就决定了该电压的最大分辨率(精度)只能达到0.0196V。测试时电压数值的变化一般以0.02的电压幅度变化。如要获得更高的精度要求,应采用12位、13位的A/D转换器。 ● 多路数字电压测量系统测得的值基本上均比标准值偏大0.01~0.02V。这可以通过修正0809的基准电压来解决,因为该多路数字电压测量系统设计时直接用7805的供电电源作为基准电压。电压可能有偏差。另外可以用软件编程来校正测量值。

● ADC0809的直流输入阻抗为1MΩ,能满足一般的电压测试需要频率外,经测试ADC0809可直接在2MHz的频率下工作,这样可省去分频器14024。

- 30 -

附件1 元器件清单

器件类别 单片机 晶振 数码管 开关 三极管 A/D转换器 驱动器 普通电阻 型号参数 ATC51 12MHZ 共阳 按键开关 PNP ADC0809 244 10K 4.7K 0.51K 分频器 磁片电容 电解电容

- 31 -

数量 1 1 4 3 4 1 1 2 4 8 1 2 1 参考价格 8元 10元 备注 4024 30PF 10uf

附件2 实物电路图。

- 32 -

总结

经过将近2个月对毕业设计的准备和制作工作后,我们终于完成了多路电压测量系统的软、硬件设计与调试。从课题选择到硬件焊接,硬件及软件调试成功,一步步实现,使得我巩固了三年来在大学里所学到知识,更进一步地做到综合运用。

本系统设计过程中,首先,在何老师悉心指导下,查找了相关的资料,并运用网络对资料做了更进一步的收集和整理。经过与何老师探讨后我们选定了课题:多路电压测量系统的设计和制作。

对于硬件电路的设计与制作,首先,我们熟悉本系统原理图,接着进行软件仿真,之后合理排版并焊接电路板。电路板焊接完毕,我们按照先局部后整体的原则进行检查电路。对于系统软件的设计,我们采用模块化的方式进行编程,使用汇编语言进行编写程序,使得程序可读性较强,清晰,易修改。使用南京伟福仿真器将程序烧入芯片进行仿真调试。

经过了硬件,软件的调试,期间遇到了很多难题,在老师的精心教导下,我们一一找出问题并克服了难题。在这期间,学会了如何检查电路,发现问题并掌握了解决问题的关键,同时对单片机系统及系统中的各个电路有了更深入的了解。

两个月的毕业设计时间,虽然很短暂,但和老师,组员一起艰苦奋斗,踊跃探讨,不懈努力地学习感到很荣幸,也扩展了学习科学的视野,同时被何老师的严谨对待科学态度,悉心教导的工作作风深深感染,正因为他的指导和帮忙和组员的不懈努力才使得多路电压测量系统的制作及论文的顺利完成。

- 33 -

参考文献

《单片机课程设计指导》. 北京航空航天大学出版社2007

编著:楼然苗 李光飞.

《微型计算机控制技术》 电子工业出版社.2006

编著:潘新民 王燕芳

《MCS-51系列单片机原理与接口技术》 人民邮电出版社

编著:李玉蜂、倪虹霞

《MCS-51系列单片机原理及嵌入式系列应用》 西安电子科技大学出版社

编著:王忠飞、胥芳 编著

《单片机原理与应用》 中国轻工业出版社

编著:陈亚民

《单片机系统设计及工程应用》 西安电子科技大学出版社

编著:雷思孝、冯育长 编著

《MCS-51系列单片机原理与接口技术》 电子工业出版社

编著:汪德彪

《MCS-51系列单片机应用系统设计》 北京航空航天大学出版社

编著:何立民

- 34 -

致谢

本多路电压测量系统的设计过程中,硬件调试,软件调试到最后系统成功正常工作,在这期间,遇到很多问题,但在何老师的悉心教导下,一起探讨,最后一步步实现,这些经历使我一步步积累了宝贵的经验。感谢何跃军老师的悉心指导,正因为何老师严肃对待科学的态度,精心指导的工作作风,才能使得多路电压测量系统的制作完成;正因为何老师严谨负责的教学思想,科学指导的教学理念才让我一步步地完善了自己的论文。在此,衷心地说声:何老师,您辛苦了!

从这次毕业设计中我还是学到了不少知识 , 能将自己所学的知识用运与解决实际问题之中,使我对所学的知识有了更加深刻的理解。也为我今后从事这方面的工作提供可借鉴的经验。

在此,我还要感谢在一起的组员,黄龙,乔欢江同学,正是由于你们的不懈努力,从选课题,到硬件,软件的调试成功,你们都踊跃参与专研,讨论。正是因为我们的团结,才能克服一个个困难和疑惑,直至项目顺利完成。

在这两个月时间里,虽然时间短暂,却从中我学到了很多的东西,老师对待科学的态度和精心教导的工作作风,组员的不懈努力,奋勇顽强地学习态度都时刻感染着我。

当然,从开始进入课题选择到论文的顺利完成,当中我们借用网络查找了很多对我们有用的信息以及参考了诸多资料,正因为有了这些参考文献才使得我顺利完成系统设计及论文。期间还有很多老师、同学、都给了我诸多的帮助与建议,在此,我衷心地向你们说声:谢谢!

学生: 苏永斌 2012-5-31

- 35 -

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- 99spj.com 版权所有 湘ICP备2022005869号-5

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务