多路电压测量系统.doc

上传人:wux****ua 文档编号:9262584 上传时间:2020-04-04 格式:DOC 页数:38 大小:2.19MB
返回 下载 相关 举报
多路电压测量系统.doc_第1页
第1页 / 共38页
多路电压测量系统.doc_第2页
第2页 / 共38页
多路电压测量系统.doc_第3页
第3页 / 共38页
点击查看更多>>
资源描述
姓 名 苏永斌 专 业 电气自动化技术 论 文 名 称 多路电压测量系统 指 导 教 师 何跃军 目 录 摘要 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 摘要 本毕业设计项目为多路电压测量系统 这是一个以单片机 AT89C51 为控制 核心 利用 A D 转换器 数码管 驱动电路等组成的单片机系统 它的主要功 能是能同时测量和显示多路和单路电路的电压 测量电压的范围为 0 5V 电压 测量的最小分辨率为 0 019V 测量通道为 8 路 我们设了两个功能键 对其功 能进行选择 其中按键 1 是进行单路和多路切换的 按键 2 是进行通道号选择 的 关键词 单片机 AT89C51 A D 转换 ADC0809 数据处理 第一章 系统总体设计 1 1 系统功能介绍 本系统应用的范围主要是能同时测量并显示多路低压电路的电压 我们在 系统设计时 测量电压的范围设计成 0 5V 它能同时对一路电压或多达 8 路电 压进行测量 我们可以通过按键 1 进行单路和多路切换 通过按键 2 进行通道 号选择 并在四位 LED 数码管上轮流显示或单路选择显示 测量最小分辨率为 0 019V 测量误差约为 0 02V 1 2 系统设计思想 多路电压测量系统由硬件和软件两大部分组成 硬件部分包括单片机电路 过 程输入通道 模拟量输入通道 和接口电路 如图 1 1 所示 单片机电路用来 存储数据 程序 并进行一系列运算处理 它通常由微处理器 CPU 等芯片 组成 模拟量输入通道 模 数转换器 ADC0809 用来采集模拟量信号 经过 单片机处理后 在显示电路中 显示电压值 软件部分主要是在硬件电路的基 础上 对单片机编写相应程序以实现电路的功能 本系统软件采用模块化设计 思想 编程语言采用汇编语言 仿真系统采用南京伟福仿真器 图 1 1 多路电压测量系统硬件组成框图 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 多路电压测量系统设计方案框图 1 5 多路电压测量系统总体开发与设计流程图 多路数字电压测量系统总体开发与设计流程图如图 1 5 所示 图 1 5 系统总体开发与设计流程图 第二章 多路电压测量系统的硬件系统设计 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 多路电压测量系统电路原理图 图 2 2 多路电压测量系统实物图 2 2 电压测量系统在设计上特点 本系统在设计上 有以下几个特点 1 系统硬件结构结合应用软件方案一并考虑 我们在设计上 考虑的原则是 软件能实现的功能尽可能由软件来实现 但必须注意如用软件来实现的硬件 功能 其响应时间要比直接用硬件来实现花的时间长 而且占用 CPU 时间 2 系统中相关的器件要尽可能做到性能匹配 3 可靠性及抗干扰设计是硬件系统设计不可缺少的一部分 它包括芯片 器件 选择 去耦滤波 印刷电路板布线 通道隔离等 4 单片机外接电路较多时 必须考虑其驱动能力 驱动能力不足时 系统工作 不可靠 解决的办法是增加驱动能力 增设线驱动器或者减少芯片功耗 降 低总线负载 在完成各个单元电路的设计与调试后 我们与软件系统进行了 联调 且达到了一个较为理想的结果 2 3 多路数字电压测量系统的设计与制作步骤 研制一个电压测量系统是个复杂的过程 这一过程包括分析仪表的功能要 求和拟制总体设计方案 确定硬件结构和软件算法 研制逻辑电路 以及系统 的调试和性能的测试等等 为保证系统的质量和提高研制的效率 设计小组应 该完成以下几步工作 1 确定设计任务和功能要求 2 按照设计图纸进行电路的焊接和调试 3 电路调试工作完成后利用仿真器进行对电路软件上的调试 4 对电路进行工艺上的修改与性能测试 2 4 电路各部分硬件电路介绍 本系统电路以单片机 AT89C51 为控制核心 包括单片机及其外围电路 A D 转 换电路 分频电路 按键选择电路 数码管动态驱动与显示电路等组成 下面 我们一一进行阐明 2 4 1 单片机 AT89C51 及其特点 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 128 8 位内部 RAM 8 32 条可编程 I O 线 9 两个 16 位定时器 计数器 10 中断结构具有 5 个中断源和两个优先级 11 空闲状态维持低功耗和掉电状态保存存储内容 2 AT89C51 系列引脚及功能 AT89C51 系列有 40 个引脚 采用双列直插 DIP 封装形式 使用很方便 AT89C51 引脚如图 2 3 所示 图 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 口也可作为 AT89C51 的特殊功能口 RST 9 复位输入 当振荡器复位时 要保持 RST 引脚 2 个机器周期 的高电平时间 ALE PROG 30 当访问外部存储器时 地址锁存允许的输出电平用于 锁存地址的低位字节 在 FLASH 编程期间 此引脚用于输入编程脉冲 在平 时 ALE 端以不变的频率周期输出正脉冲信号 此频率为振荡器频率的 1 6 它可用作对外部输出的脉冲或用于定时目的 要注意的是 每当访问外部数据 存储器时 将跳过 1 个 ALE 脉冲 PSEN 29 外部程序存储器的选通信号 在由外部程序存储器取指期间 每个机器周期 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 A Y L L H L H X L H Z 表 1 74HC244 功能表 74HC244 功能表说明如下 L 低电平 H 高电平 Z 高阻状态 X 高低电平均可 包括跳变 G 输出禁止控制端 高电平 输出禁止 位高阻状态 量组电路分开控制 电源电压参考值 TTL 极限值 7V 一般使用 5V CMOS 极限值 20V 一般使用 15V 其典型参数如表 2 所示 型号 最大拉出电流 mA 最大吸收电流 mA 典型传播延迟时 间 ns 典型总功 耗 mW 54S244 12 48 6 558 74S244 15 64 6 558 54LS244 12 12 12 127 74LS244 15 24 12 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 口的相互配合控制 以动态扫描显示的工作方式输出待 显示的内容 图 2 5 单片机与数码管连接实物图 数码显示 LED 及接口 1 LED 显示器结构 LED 显示器内部由发光二极管组成 根据内部二极管连接方式 数码管结 构又分为共阴极和共阳极型 共阳极型发光二极管阳极连在一起接高电平 共 阴极型发光二极管阴极连在一起接低电平 电压测量系统采用的是共阳极型 图 2 6 数码管引脚及内部结构图 由图可见 a b c d f g 分别为七个发光段引脚 dp 引脚为小数点 3 与 8 脚接电源或接地端 共 10 个引脚 2 显示字形与字段码关系 数码管发光原理情况 共阳极型如图 2 6 b 所示 a g 哪个为低电平 哪个二极管亮 每个二极管为一段 不同的发光段亮 可组成不同字形 输入 到数码管 dp g f e d c b a 的进制码称为字段吗 或字形吗 数码管 显示的结果为字形 本系统中 数码管各个字段和 PA 口输出字形码对应关系如表 3 和表 4 所示 PA7 PA6 PA5 PA4 PA3 PA2 PA1 PA07PA65PA43PA21PA0 小数点 g f e d c b a 表 3 C0H F9H A4H B0H 99H 92H 82H F8H 80H 90H 0 1 2 3 4 5 6 7 8 9 表 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 管脚图所示 图 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 所示 其工作过程是 首先 输入 3 位地址 并使 ALE 1 将地址存入地址锁存器中 此地址经译码选通 8 路模拟输入之一到比较器 START 上升沿将逐次逼近寄存器复位 下降沿启动 A D 转换结束 结果数据已存入锁存器 这个信号可用作中断申请 当 OE 输 入高电平时 输出三台门打开 转换结果的数字量输出到数据总线上 图 2 8 ADC0809 与单片机接口电路图 图 2 9 ADC0809 与单片机连接实物图 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 的工作频率 用软件分频的方法是 节省了硬件资源 但使得编程复 杂化 第三章 多路电压测量系统的软件系统介绍 3 1 多路数字电压测量系统软件设计概述 在系统软件设计时 应根据系统软件功能要求 将系统软件分成若干个相 对独立的部分 并根据它们的联系和时间上的关系 设计出合理的软件总体结 构 通常在编制程序前先根据系统输入和输出变量建立起正确的数学模型 然 后画出程序流程框图 要求流程框图结构清晰 简捷 合理 画流程框图时还 要对系统资源作具体的分配和说明 编制程序时一般采用自顶向下的程序设计 技术 先设计测量程序再设计各应用程序模块 各功能程序应模块化 子程序 化 这样不仅便于调试 链接 还便于个性和移植 在进行应用系统的总体设计时 软件设计和硬件设计应统一考虑 相结合进 行 当系统的电路设计定型后 软件的任务也就明确了 下图为多路数字电压 测量系统设计流程图及系统框图如下图 3 1 所示 图 3 1 多路数字电压测量系统软件系统设计流程图 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 标志位为 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 3 1 4 模 数转换测量子程序 模 数转换测量子程序用来实现对 A D 转换模块 ADC0809 的模拟输入电压 进行 A D 转换 并将其转换后的数值存入 70H 77H 内存单元 其程序流程见 图 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 转换结束信号 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 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 初始化程序中的各变量 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 则转单路显示控制子程序 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 码子程序 显示数据转为三位 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 显示子程序 共阳显示子程序 显示内容在 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 段码 表 延时程序 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 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 按键检测子程序 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 WAIT21 LCALL DISP 键释放等待时显示用 AJMP WAIT22 END 第四章 测量系统的调试与测试 4 1 电压测量系统的调试 系统调试包括硬件调试和软件调试 硬件调试的任务是排除系统的硬件电 路故障 包括设计性错误和工艺性故障 其调试原则按先 局部 再 整体 先单元 再系统的原则进行 软件调试是利用开发工具进行在线仿真调试 除发现和解决程序错误外 也可以发现硬件故障 在硬件调试完成后 我们接着进行软件调试 软件程序调试一般是一个模块一个模块地进行 一个子程序一个子程度地 调试 最后联起来统调 利用开发工具的单步和断点运行方式 通过检查应用 系统的 CPU 现场 RAM 和 SFR 的内容以及 I O 口的状态 来检查程序的执行结 果和系统 I O 设备的状态变化是否正常 从中发现程序的逻辑错误 转移地址 错误以及随机的录入错误等 也可以发现硬件设计与工艺错误和软件算法错误 在调试过程中 要不断调整 修改系统的硬件和软件 直到其正确为止 联机 调试运行正常后 将软件固化到 EPROM 中 脱机运行 并到生产现场投入实际 工作 检验其可靠性和抗干扰能力 直到完全满足要求 系统才算研制成功 调试的具体步骤如下 首先是模拟调试 先调试各个功能模块 成功后再进行在线仿真调试和系 统联调 软件调试中 我们首先调试的模块是显示模块 我们首先通过编程 使单片机 P1 口输出固定的段码 以来检验显示电路是否连接正确 接着调试 A D 转换后的数据处理子程序 其步骤是把 AD 转换后 得到的数值变量值固定 看数码管是否正确显示电压值 以检验我们的数值处理程序是否正确 接下来 我们调试 AD 转换模块 调试 AD 转换模块时 首先使得电压输入 为一固定的值 比如 5V 如果数码管输出显示为 5 00 则说明 AD 转换模块固定 值调试成功 然后我们在电路中 接上需要测量的电压 进行联调 直到全部 调试成功 调试时 我们采用 Wave E2000 编译器进行源程序编译及仿真调试 调试 成功后 把编译好的 16 进制文件 通过烧录器 G540 进行烧录 这样我们就完 成了整个系统的制作 4 2 系统测试 系统调试结束后 我们对系统的输入端口电压与标准电压表进行了对比测 试 测试对比表见表 4 1 表中标准电压值采用 UT56 数字万用表测得 表 4 1 多路数字电压测量系统与 标准 数字电压表对比测试表 标准值 V 0 00 0 15 0 85 1 00 1 25 1 75 1 98 2 32 2 65 电压表测得值 V 0 00 0 17 0 86 1 02 1 26 1 76 2 00 2 33 2 66 绝对误差 V 0 00 0 02 0 01 0 02 0 01 0 01 0 02 0 01 0 01 标准值 V 3 00 3 45 3 55 4 00 4 50 4 60 4 70 4 81 4 90 电压表测得值 V 3 01 3 47 3 56 4 01 4 52 4 62 4 72 4 82 4 92 绝对误差 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 附件 元器件清单 器件类别 型号参数 数量 参考价格 备注 单片机 AT89C51 1 8 元 晶振 12MHZ 1 数码管 共阳 4 开关 按键开关 3 三极管 PNP 4 A D 转换器 ADC0809 1 10 元 驱动器 244 1 10K 2 4 7K 4普通电阻 0 51K 8 分频器 4024 1 磁片电容 30PF 2 电解电容 10uf 1 附件 实物电路图 总结 经过将近 2 个月对毕业设计的准备和制作工作后 我们终于完成了多路电 压测量系统的软 硬件设计与调试 从课题选择到硬件焊接 硬件及软件调试 成功 一步步实现 使得我巩固了三年来在大学里所学到知识 更进一步地做 到综合运用 本系统设计过程中 首先 在何老师悉心指导下 查找了相关的资料 并 运用网络对资料做了更进一步的收集和整理 经过与何老师探讨后我们选定了 课题 多路电压测量系统的设计和制作 对于硬件电路的设计与制作 首先 我们熟悉本系统原理图 接着进行软 件仿真 之后合理排版并焊接电路板 电路板焊接完毕 我们按照先局部后整 体的原则进行检查电路 对于系统软件的设计 我们采用模块化的方式进行编 程 使用汇编语言进行编写程序 使得程序可读性较强 清晰 易修改 使用 南京伟福仿真器将程序烧入芯片进行仿真调试 经过了硬件 软件的调试 期间遇到了很多难题 在老师的精心教导下 我们一一找出问题并克服了难题 在这期间 学会了如何检查电路 发现问题 并掌握了解决问题的关键 同时对单片机系统及系统中的各个电路有了更深入 的了解 两个月的毕业设计时间 虽然很短暂 但和老师 组员一起艰苦奋斗 踊 跃探讨 不懈努力地学习感到很荣幸 也扩展了学习科学的视野 同时被何老 师的严谨对待科学态度 悉心教导的工作作风深深感染 正因为他的指导和帮 忙和组员的不懈努力才使得多路电压测量系统的制作及论文的顺利完成 参考文献 单片机课程设计指导 北京航空航天大学出版社 2007 编著 楼然苗 李光飞 微型计算机控制技术 电子工业出版社 2006 编著 潘新民 王燕芳 MCS 51 系列单片机原理与接口技术 人民邮电出版社 编著 李玉蜂 倪虹霞 MCS 51 系列单片机原理及嵌入式系列应用 西安电子科技大学出版社 编著 王忠飞 胥芳 编著 单片机原理与应用 中国轻工业出版社 编著 陈亚民 单片机系统设计及工程应用 西安电子科技大学出版社 编著 雷思孝 冯育长 编著 MCS 51 系列单片机原理与接口技术 电子工业出版社 编著 汪德彪 MCS 51 系列单片机应用系统设计 北京航空航天大学出版社 编著 何立民 致谢 本多路电压测量系统的设计过程中 硬件调试 软件调试到最后系统成功 正常工作 在这期间 遇到很多问题 但在何老师的悉心教导下 一起探讨 最后一步步实现 这些经历使我一步步积累了宝贵的经验 感谢何跃军老师的 悉心指导 正因为何老师严肃对待科学的态度 精心指导的工作作风 才能使 得多路电压测量系统的制作完成 正因为何老师严谨负责的教学思想 科学指 导的教学理念才让我一步步地完善了自己的论文 在此 衷心地说声 何老师 您辛苦了 从这次毕业设计中我还是学到了不少知识 能将自己所学的知识用运与 解决实际问题之中 使我对所学的知识有了更加深刻的理解 也为我今后从事 这方面的工作提供可借鉴的经验 在此 我还要感谢在一起的组员 黄龙 乔欢江同学 正是由于你们的不 懈努力 从选课题 到硬件 软件的调试成功 你们都踊跃参与专研 讨论 正是因为我们的团结 才能克服一个个困难和疑惑 直至项目顺利完成 在这两个月时间里 虽然时间短暂 却从中我学到了很多的东西 老师对 待科学的态度和精心教导的工作作风 组员的不懈努力 奋勇顽强地学习态度 都时刻感染着我 当然 从开始进入课题选择到论文的顺利完成 当中我们借用网络查找了 很多对我们有用的信息以及参考了诸多资料 正因为有了这些参考文献才使得 我顺利完成系统设计及论文 期间还有很多老师 同学 都给了我诸多的帮助 与建议 在此 我衷心地向你们说声 谢谢 学生 苏永斌 2012 5 31
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 成人自考


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!