多路电压测量系统.doc_第1页
多路电压测量系统.doc_第2页
多路电压测量系统.doc_第3页
多路电压测量系统.doc_第4页
多路电压测量系统.doc_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

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

文档简介

姓姓 名名 苏永斌 专专 业业 电气自动化技术 论论 文文 名名 称称 多路电压测量系统 指指 导导 教教 师师 何跃军 目目 录录 摘要.- 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 单片机 AT89C51 及其特点.- 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 - 附件 元器件清单.- 31 - 附件 实物电路图。.- 32 - 总结.- 33 - 参考文献.- 34 - 致谢.- 35 - - 1 - 摘要摘要 本毕业设计项目为多路电压测量系统。这是一个以单片机 AT89C51 为控制 核心,利用 A/D 转换器、数码管、驱动电路等组成的单片机系统。它的主要功 能是能同时测量和显示多路和单路电路的电压,测量电压的范围为 0-5V,电压 测量的最小分辨率为 0.019V, 测量通道为 8 路,我们设了两个功能键,对其功 能进行选择,其中按键 1 是进行单路和多路切换的;按键 2 是进行通道号选择 的。 关键词关键词:单片机;AT89C51;A/D 转换;ADC0809;数据处理 - 2 - 第一章第一章 系统总体设计系统总体设计 1-1 系统功能介绍系统功能介绍 本系统应用的范围主要是能同时测量并显示多路低压电路的电压,我们在 系统设计时,测量电压的范围设计成 05V。它能同时对一路电压或多达 8 路电 压进行测量,我们可以通过按键 1 进行单路和多路切换;通过按键 2 进行通道 号选择,并在四位 LED 数码管上轮流显示或单路选择显示。测量最小分辨率为 0.019V,测量误差约为0.02V。 1-2 系统设计思想系统设计思想 多路电压测量系统由硬件和软件两大部分组成。硬件部分包括单片机电路、过 程输入通道(模拟量输入通道)和接口电路。如图 1-1 所示。单片机电路用来 存储数据、程序,并进行一系列运算处理,它通常由微处理器(CPU)等芯片 组成。模拟量输入通道(模/数转换器 ADC0809)用来采集模拟量信号,经过 单片机处理后,在显示电路中,显示电压值。软件部分主要是在硬件电路的基 础上,对单片机编写相应程序以实现电路的功能 ,本系统软件采用模块化设计 思想,编程语言采用汇编语言,仿真系统采用南京伟福仿真器。 图 1-1 多路电压测量系统硬件组成框图 - 3 - 1-3 多路电压测量系统主要特点多路电压测量系统主要特点 本多路电压测量系统主要特点如下: 1)控制灵活:由于采用单片机控制,因此系统可以在不改变硬件电路的情 况下,通过编程,增加或修改功能。 2)成本较低:本系统采用元件都是普通常用件,因而造价低廉,与同类产 品相比,有较大的价格优势。 3)精度较高:本系统采用 8 位 A/D 转换器 ADC0809,因而电压转换精度可 以达到 0.019V,由于采用三位数码管显示电压,因而最小显示电压为 0.01V. 4)有较大的实用价值。本产品可用于多路电压的测量,在电子电气领域因 而有较大的使用范围,另外,在保证一定的精度的情况下,本产品有较大的价 格优势,这是我们这款产品的特点,从而使它具有较大的实用价值。 1-4 多路电压测量系统设计多路电压测量系统设计 按系统功能实现要求,决定控制系统采用 AT89C51 单片机为控制核心,A/D 转换采用 ADC0809。系统除能确保实现要求的功能外,还可以方便地进行 8 路 其它 A/D 转换量的测量、远程测量结果传送等扩展功能。多路电压测量系统设 计方案框图如图 1-4 图 1-4 多路电压测量系统设计方案框图 - 4 - 1-5 多路电压测量系统总体开发与设计流程图多路电压测量系统总体开发与设计流程图 多路数字电压测量系统总体开发与设计流程图如图 1-5 所示: 图 1-5 系统总体开发与设计流程图 - 5 - 第二章第二章 多路电压测量系统的硬件系统设计多路电压测量系统的硬件系统设计 2-1 系统硬件电路的设计原理系统硬件电路的设计原理 本多路电压测量系统以单片机为控制核心,包括单片机及其外围电路, A/D 转换电路、分频电路、按键选择电路、数码管动态驱动与显示电路等组成, 电路原理图如图 2-1 所示,系统实物图如图 2-2。A/D 转换由 A/D 转换元件 ADC0809 完成。ADC0809 具有 8 路模拟输入端口,地址线(2325 脚)可决定 对哪一路模拟输入作 A/D 转换。22 脚为地址锁存控制,当输入为高电平时,为 地址信号进行锁存。6 脚为测试控制,当输入一个 2S 宽高电平脉冲时,就开 始 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.0P3.3 端口作为四位 LED 数码管位选控制 端口。P3.5 端口用作单路显示/循环显示转换按钮,P3.6 端口用作单路显示时选 择通道。P0 端口作 A/D 转换数据读入用,P2 端口用作 0809 的 A/D 转换控制。 - 6 - 图 2-1 多路电压测量系统电路原理图 图 2-2 多路电压测量系统实物图 2-2 电压测量系统在设计上特点电压测量系统在设计上特点 本系统在设计上,有以下几个特点: 1)系统硬件结构结合应用软件方案一并考虑。我们在设计上,考虑的原则是: 软件能实现的功能尽可能由软件来实现。但必须注意如用软件来实现的硬件 功能,其响应时间要比直接用硬件来实现花的时间长,而且占用 CPU 时间。 2)系统中相关的器件要尽可能做到性能匹配。 3)可靠性及抗干扰设计是硬件系统设计不可缺少的一部分,它包括芯片、器件 选择、去耦滤波、印刷电路板布线、通道隔离等。 4)单片机外接电路较多时,必须考虑其驱动能力。驱动能力不足时,系统工作 不可靠,解决的办法是增加驱动能力,增设线驱动器或者减少芯片功耗,降 低总线负载。在完成各个单元电路的设计与调试后,我们与软件系统进行了 联调,且达到了一个较为理想的结果。 2-3 多路数字电压测量系统的设计与制作步骤多路数字电压测量系统的设计与制作步骤 研制一个电压测量系统是个复杂的过程,这一过程包括分析仪表的功能要 求和拟制总体设计方案,确定硬件结构和软件算法,研制逻辑电路,以及系统 的调试和性能的测试等等。为保证系统的质量和提高研制的效率。设计小组应 该完成以下几步工作: - 7 - 1. 确定设计任务和功能要求 2. 按照设计图纸进行电路的焊接和调试 3. 电路调试工作完成后利用仿真器进行对电路软件上的调试 4. 对电路进行工艺上的修改与性能测试 2-4 电路各部分硬件电路介绍电路各部分硬件电路介绍 本系统电路以单片机 AT89C51 为控制核心,包括单片机及其外围电路,A/D 转 换电路、分频电路、按键选择电路、数码管动态驱动与显示电路等组成,下面 我们一一进行阐明。 2-4-12-4-1 单片机单片机 AT89C51AT89C51 及其特点及其特点 AT89C51 是 ATMEL 公司生产的 CMOS 型 51 系列单片机,具有 MCS-51 内核。 ATMELF 是一种低功耗、高性能的含有 4KB 闪速可编程/擦出只读存储器的八位 CMOS 微控制器,使用高密度、非易失存储技术制造,并且与 8051 指令系统和 引脚完全兼容。芯片上的 FPEROM 允许在线或采用通用的非易失存储编程对程序 存储重复编程。 1、AT89C51 的主要性能包括: (1) 与 MCS-51 微控制器产品系列兼容 (2) 片内有 4KB 可在线重复编程闪速擦写存储器 (3) 存储器可循环写入/擦出 1000 次 (4) 存储数据保存时间为 10 年 (5) 全静态工作:可由 0HZ 到 16MHZ (6) 程序存储具有 3 级锁存保护 (7) 1288 位内部 RAM (8) 32 条可编程 I/O 线 (9) 两个 16 位定时器/计数器 (10)中断结构具有 5 个中断源和两个优先级 (11)空闲状态维持低功耗和掉电状态保存存储内容 2、AT89C51 系列引脚及功能: AT89C51 系列有 40 个引脚,采用双列直插(DIP)封装形式,使用很方便。 AT89C51 引脚如图 2-3 所示。 - 8 - 图 2-3 引脚图 其各个引脚功能如下: P0 口(3932):P0 口为一个 8 位漏级开路双向 I/O 口,每脚可吸收 8TTL 门电流。P0 能够用于外部程序数据存储器,它可以被定义为数据/地址的 第八位。 P1 口(18):P1 口是从内部提供上拉电阻器的 8 位双向 I/O 口,P1 口 缓冲器能接收和输出 4 个 TTL 门电流。 P2 口(2128):P2 口为内部上拉电阻器的 8 位双向 I/O 口,P2 口缓冲 器 可接收和输出 4 个 TTL 门电流。 P3 口(1017):P3 口是 8 个带内部上拉电阻器的双向 I/O 口,可接收和 输出 4 个 TTL 门电流,P3 口也可作为 AT89C51 的特殊功能口。 RST(9):复位输入。当振荡器复位时,要保持 RST 引脚 2 个机器周期 的高电平时间。 ALE/PROG(30):当访问外部存储器时,地址锁存允许的输出电平用于 锁存地址的低位字节,在 FLASH 编程期间,此引脚用于输入编程脉冲。在平 时,ALE 端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的 1/6, 它可用作对外部输出的脉冲或用于定时目的,要注意的是,每当访问外部数据 - 9 - 存储器时,将跳过 1 个 ALE 脉冲。 PSEN(29):外部程序存储器的选通信号。在由外部程序存储器取指期间, 每个机器周期 2 次 PSEN 有效,但在访问外部数据存储器时,这 2 次有效的 PSEN 信号将不出现。 EA/VPP(31):当 EA 保持低电平时,外部程序存储器地址为 (0000HFFFFH)不管是否有内部程序存储器。FLASH 编程期间,此引脚也 用于施加 12V 编程电源(VPP) 。 XTAL1(19):反向振荡器放大器的输入及内部时钟工作电路的输入。 XTAL2(18):来自反向振荡器的输出 2-4-22-4-2 数码管驱动电路数码管驱动电路 为提供单片机对显示数码管的驱动能力,我们采用总线驱动器 74HC244 对 数码管进行驱动,其工作原理与管脚排列图如图 2-4:其功能表如表 1 所示: 图 2-4 74HC244 引脚图 输入输出 GAY L L H L H X L H Z 表 1,74HC244 功能表 74HC244 功能表说明如下: L:低电平 - 10 - H:高电平 Z:高阻状态 X:高低电平均可(包括跳变) G:输出禁止控制端。高电平,输出禁止,位高阻状态。量组电路分开控制。 电源电压参考值:TTL 极限值 + 7V,一般使用 + 5V, CMOS 极限值 + 20V,一般使用 +15V,其典型参数如表 2 所示。 型号最大拉出电流 (mA) 最大吸收电流 (mA) 典型传播延迟时 间 (ns) 典型总功 耗 (mW) 54S244-12486558 74S244-15646558 54LS244-121212127 74LS244-152412127 表 2 ,74HC244 典型参数 2-4-32-4-3 动态动态 LEDLED 数字显示电路数字显示电路 在本系统中,需要用到的数码管比较多,包括 1 位显示通道号,三位显示 电压值,电压显示精确到小数点后两位。为减少 I/O 数目,简化电路,降低成 本,我们的数码管采用动态显示方式。 动态 LED 显示器接口及工作原理: 动态 LED 显示器的电路连接特点是将 各位 LED 显示器的所有对应段线并联在一起,由一个 8 位 I/O 口控制输出字段 码,而每位 LED 显示器的公共端(共阳极点或共阴极点)不直接接地或+5V 电 源,而是分别由另外的 I/O 口线控制(称为位选) 。LED 显示器的显示内容通过 段码 I/O 口和位选 I/O 口的相互配合控制,以动态扫描显示的工作方式输出待 显示的内容。 - 11 - 图 2-5 单片机与数码管连接实物图 数码显示(LED)及接口: (1)LED 显示器结构 LED 显示器内部由发光二极管组成。根据内部二极管连接方式,数码管结 构又分为共阴极和共阳极型。共阳极型发光二极管阳极连在一起接高电平,共 阴极型发光二极管阴极连在一起接低电平。电压测量系统采用的是共阳极型。 图 2-6 数码管引脚及内部结构图 由图可见,a.、b、c、d、f、g、分别为七个发光段引脚,dp 引脚为小数点。 3 与 8 脚接电源或接地端,共 10 个引脚。 (2)显示字形与字段码关系 数码管发光原理情况:共阳极型如图 2-6(b)所示,ag 哪个为低电平, - 12 - 哪个二极管亮。每个二极管为一段,不同的发光段亮,可组成不同字形。输入 到数码管 dp、g、f、e、d、c、b、a 的进制码称为字段吗(或字形吗) ,数码管 显示的结果为字形。 本系统中,数码管各个字段和 PA 口输出字形码对应关系如表 3 和表 4 所示: PA7PA6PA5PA4PA3PA2PA1PA0 7PA6PA5PA 4PA3PA 2PA 1PA0PA 小数点 g fedcba 表 3 C0HF9HA4HB0H99H92H82HF8H80H90H 0123 456789 表 4 2-4-42-4-4 系统系统 A/DA/D 电压采样电路电压采样电路 本系统 A/D 电压采样电路采用专用集成电路芯片 ADC0809,下面我们介绍 一下 ADC0809。 1) ADC0809 的结构 ADC0809 是带有 8 位 A/D 转换器、8 路多路开关以及微处理机兼容的控制 逻辑的 CMOS 组件。它是逐次逼近式 A/D 转换器,可以和单片机直接接口。其 内部有一个 8 路通道多路开关,它可以根据地址码锁存译码后的信号,只选通 8 个单断模拟输入信号中的一个进行 A/D 转换。如图 2-7 管脚图所示。 - 13 - 图 2-7 管脚图 A/D 转换器是连接模拟世界与数字世界的桥梁,它担负着将模拟信号变换 成适合数字处理的二进制代码的任务。目前,8 位 A/D 转换器的转换速度以及 达到 1.5GHz; 2 )ADC0809 主要特性: 8 路 8 位 A/D 转换器,即分辨率 8 位; 具有锁存控制的 8 路模拟开关; 易与各种微控控制接口; 可锁存三态输出,输出与 TTL 兼容; 转换时间(f500KHz):128US; 转换精度:0.2%; 3 )ADC0809 A/D 工作原理 本系统中,ADC0809 与单片机连接图如图 2-8 所示,其工作过程是:首先 - 14 - 输入 3 位地址,并使 ALE=1,将地址存入地址锁存器中。此地址经译码选通 8 路模拟输入之一到比较器。START 上升沿将逐次逼近寄存器复位。下降沿启动 A/D 转换结束,结果数据已存入锁存器,这个信号可用作中断申请。当 OE 输 入高电平时,输出三台门打开,转换结果的数字量输出到数据总线上。 图 2-8 ADC0809 与单片机接口电路图 图 2-9 ADC0809 与单片机连接实物图 - 15 - ADC0809 具有 8 路模拟输入端口,由于 ADC0809 内部含有输出三态缓冲锁 存器,所以可以直接将 8 位数字量输出端与单片机 P0 口相连。 P0 端口作 A/D 转换数据读入用,P2 端口用作 0809 的 A/D 转换控制。地址 线(2325 脚)可决定对哪一路模拟输入作 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-52-4-5 40244024 分频电路分频电路 本系统采用 4000 系列电路中的 4024 对 ALE 引脚进行 2 分频,得到 1M 频率 的方波信号,提供给 ADC0809 作为工作频率,我们采用的是硬件分频的方法, 其特点是不影响软件编程,简化了软件程序。当然我们也可以采用软件方法, 利用单片机的定时器,定时周期为 10US,利用一个 IO 口,则单片机每到 10US, 使这个 IO 口反相,则可以通过 IO 口,产生一个周期为 20US 的方波,作为 ADC0809 的工作频率,用软件分频的方法是,节省了硬件资源,但使得编程复 杂化。 - 16 - 第三章第三章 多路电压测量系统的软件系统介绍多路电压测量系统的软件系统介绍 3-1 多路数字电压测量系统软件设计概述多路数字电压测量系统软件设计概述 在系统软件设计时,应根据系统软件功能要求,将系统软件分成若干个相 对独立的部分,并根据它们的联系和时间上的关系,设计出合理的软件总体结 构。通常在编制程序前先根据系统输入和输出变量建立起正确的数学模型,然 后画出程序流程框图,要求流程框图结构清晰、简捷、合理,画流程框图时还 要对系统资源作具体的分配和说明。编制程序时一般采用自顶向下的程序设计 技术,先设计测量程序再设计各应用程序模块。各功能程序应模块化、子程序 化,这样不仅便于调试、链接,还便于个性和移植。 在进行应用系统的总体设计时,软件设计和硬件设计应统一考虑,相结合进 行。当系统的电路设计定型后,软件的任务也就明确了。下图为多路数字电压 测量系统设计流程图及系统框图如下图 3-1 所示: 图 3-1 多路数字电压测量系统软件系统设计流程图 - 17 - 3-1-2 主程序 在刚上电时,系统默认为循环显示 8 个通道的电压值状态。当进行一次测 量后,将显示每一通道的 A/D 转换值,每个通道的数据显示时间为 1s 左右。 主程序在调用显示子程序和测试子程序之间循环,主程序流程图如下图 3-2 所 示: 图 3-2 主程序流程图 3-1-33-1-3 显示子程序显示子程序 系统显示子程序采用动态扫描法,实现四位数码管的数值的动态显示。我 们把测量所得的 8 个通道的 A/D 转换数据分别存放在 70H77H 寄存器,每个 通道的测量数据在显示时,需转换成为 3 位十进制 BCD 码,放在 78H7AH 单 元中,7BH 存放通道标志数。寄存器 R3 用作 8 路循环控制,R0 用作显示数据 地址指针。系统软件显示子程序如下: * ;* 显示控制程序 * - 18 - ;* DISPLAY: JB 00H,DISP11;标志位为 1,则转单路显示控制子程序 MOV R3,#08H;8 路信号循环显示控制子程序 MOV R0,#70H;显示数据初址 70H 77H MOV 7BH,#00H;显示通道路数初值 DISLOOP1: LCALL TUNBCD;显示数据转为三位 BCD 码存入 7AH,79H,78H MOV R2,#0FFH;每路显示时间控制在 4ms X 255,约 1 s DISLOOP2:LCALL DISP;调四位显示程序 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;每路显示时间控制在 4ms X 25 DISLOOP22: LCALL DISP;调四位显示程序 LCALL KEYWORK2;按键检测 DJNZ R2,DISLOOP22 INC 7BH;通道显示数加 1 RET - 19 - 3-1-43-1-4 模模/ /数转换测量子程序数转换测量子程序 模/数转换测量子程序用来实现对 A /D 转换模块 ADC0809 的模拟输入电压 进行 A/D 转换,并将其转换后的数值存入 70H77H 内存单元。其程序流程见 图 3-3,子程序源程序如下所示。 图 3-3 A/D 转换测量程序流程图 * ;* 电压测量(A/D)子程序 * ;* ;一次测量数据 8 个,依次放入 70H 77H 单元中 TEST: CLR A;模/数转换子程序 MOV P2,A MOV R0,#70H;转换值存放首址 MOV R7,#08H;转换 8 次控制 LCALL TESTART;启动测试 WAIT: JB P3.7,MOVD;等 A/D 转换结束信号 - 20 - AJMP WAIT TESTART: SETB P2.3;测试启动 NOP NOP CLR P2.3 SETB P2.4 NOP NOP CLR P2.4 NOP NOP NOP NOP RET MOVD: SETB P2.5;取 A/D 转换数据 MOV A,P0 MOV R0,A CLR P2.5 INC R0 MOV A,P2;通道地址加 1 INC A MOV P2,A CJNE A,#08H,TESTEND;等 8 路 A/D 转换结束 TESTEND: JC TESTCON CLR A;结束恢复端口 MOV P2,A MOV A,#0FFH MOV P0,A MOV P1,A - 21 - MOV P3,A RET TESTCON: LCALL TESTART LJMP WAIT 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 ;* ;* 初始化程序中的各变量 * - 22 - ;* CLEARMEMIO: CLR A MOV P2,A MOV R0,#70H 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;PC 值出错处理 NOP NOP LJMP START * ;* 显示控制程序 * ;* DISPLAY: JB 00H,DISP11;标志位为 1,则转单路显示控制子程序 - 23 - MOV R3,#08H;8 路信号循环显示控制子程序 MOV R0,#70H;显示数据初址 70H 77H MOV 7BH,#00H;显示通道路数初值 DISLOOP1: LCALL TUNBCD;显示数据转为三位 BCD 码存入 7AH,79H,78H MOV R2,#0FFH;每路显示时间控制在 4ms X 255,约 1 s DISLOOP2:LCALL DISP;调四位显示程序 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;每路显示时间控制在 4ms X 25 DISLOOP22: LCALL DISP;调四位显示程序 LCALL KEYWORK2;按键检测 DJNZ R2,DISLOOP22 INC 7BH;通道显示数加 1 RET ;* ;*显示数据转为三位 BCD 码子程序* ;* - 24 - ;显示数据转为三位 BCD 存入 7AH,79H,78H(最大值 5.00V) TUNBCD: MOV A,R0;255/51=5.00V 运算 MOV B,#51 DIV AB MOV 7AH,A;个位数放入 7AH MOV A,B;余数大于 19H,F0 为 1,乘法溢出,结果加 5 CLR F0 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;小数后第 1 位放入 79H 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;小数后第 2 位放入 78H RET - 25 - ;* ;* 显示子程序 * ;* ;共阳显示子程序,显示内容在 78H 7BH DISP: MOV R1,#78H;共阳显示子程序,显示内容在 78H 7BH MOV R5,#0FEH;数据在 P1 输出,列扫描在 P3.0 P3.3 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 ;段码 表 ; - 26 - ;* ;* 延时程序 * ;* DL10MS: MOV R6,#0D0H;10ms 延时子程序 DL1: MOV R7,#19H DL2: DJNZ R7,DL2 DJNZ R6,DL1 RET DL1MS: MOV R4,#0FFH;513 + 513 = 1 ms LOOP11: DJNZ R4,LOOP11 MOV R4,#0FFH LOOP22: DJNZ R4,LOOP22 RET ;* ;* 电压测量(A/D)子程序 * ;* ;一次测量数据 8 个,依次放入 70H 77H 单元中 TEST: CLR A;模/数转换子程序 MOV P2,A MOV R0,#70H;转换值存放首址 MOV R7,#08H;转换 8 次控制 LCALL TESTART;启动测试 WAIT: JB P3.7,MOVD;等 A/D 转换结束信号 AJMP WAIT TESTART: SETB P2.3;测试启动 NOP NOP CLR P2.3 SETB P2.4 - 27 - NOP NOP CLR P2.4 NOP NOP NOP NOP RET MOVD: SETB P2.5;取 A/D 转换数据 MOV A,P0 MOV R0,A CLR P2.5 INC R0 MOV A,P2;通道地址加 1 INC A MOV P2,A CJNE A,#08H,TESTEND;等 8 路 A/D 转换结束 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 ; - 28 - ;* ;* 按键检测子程序 * ;* KEYWORK1: JNB P3.5,KEY1 KEYOUT: RET KEY1: LCALL DISP;延时消抖 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 - 29 - WAIT21: LCALL DISP;键释放等待时显示用 AJMP WAIT22 END 第四章第四章 测量系统的调试与测试测量系统的调试与测试 4-1 电压测量系统的调试电压测量系统的调试 系统调试包括硬件调试和软件调试。硬件调试的任务是排除系统的硬件电 路故障,包括设计性错误和工艺性故障,其调试原则按先“局部”再“整体” ; 先单元,再系统的原则进行。 软件调试是利用开发工具进行在线仿真调试,除发现和解决程序错误外, 也可以发现硬件故障。在硬件调试完成后,我们接着进行软件调试。 软件程序调试一般是一个模块一个模块地进行,一个子程序一个子程度地 调试,最后联起来统调。利用开发工具的单步和断点运行方式,通过检查应用 系统的 CPU 现场、RAM 和 SFR 的内容以及 I/O 口的状态,来检查程序的执行结 果和系统 I/O 设备的状态变化是否正常,从中发现程序的逻辑错误,转移地址 错误以及随机的录入错误等。也可以发现硬件设计与工艺错误和软件算法错误。 在调试过程中,要不断调整、修改系统的硬件和软件,直到其正确为止。联机 调试运行正常后,将软件固化到 EPROM 中,脱机运行,并到生产现场投入实际 工作,检验其可靠性和抗干扰能力,直到完全满足要求,系统才算研制成功。 调试的具体步骤如下: 首先是模拟调试,先调试各个功能模块,成功后再进行在线仿真调试和系 统联调。软件调试中,我们首先调试的模块是显示模块,我们首先通过编程, 使单片机 P1 口输出固定的段码,以来检验显示电路是否连接正确。接着调试 A/D 转换后的数据处理子程序,其步骤是把 AD 转换后,得到的数值变量值固定, 看数码管是否正确显示电压值,

温馨提示

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

评论

0/150

提交评论