毕业设计——数字电压表的制作_第1页
毕业设计——数字电压表的制作_第2页
毕业设计——数字电压表的制作_第3页
毕业设计——数字电压表的制作_第4页
毕业设计——数字电压表的制作_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

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

文档简介

数字电压表的设计与制作数字电压表的设计与制作 摘要摘要 随着电子科学技术的发展 电子测量成为广大电子工作者必须掌握的手段 对测量的精度 和功能的要求也越来越高 而电压的测量甚为突出 因为电压的测量最为普遍 在参阅大量数字电压表的基 础上的数字直流电压表 所测量范围直流电压为 0 500V 测量精度为 0 08v 它以单片机 8951 为核心 主 要由转换电路将输入的模拟量转换为数字量的 A D 转换器 ADC0809 液晶显示器 1602 构成 关键词关键词 单片机 模数转换 按键开关 液晶显示 DesignDesign andand manufacturemanufacture ofof digitaldigital voltmetervoltmeter Abstract Abstract With the development of electronic science and technology electronic measurement become the e worker must have the means the measurement accuracy and functional requirements of increasingly high while the voltage measurement is very strong because the voltage measurement of the most common In a large number of digital voltage meter read based on the digital DC voltage meter the measuring range DC voltage 0 500V measurement precision is 0 08v It is based on 8951 MCU core mainly by the conversion circuit to convert analog input to digital volume A D converter ADC0809 LCD display 1602 form Key Key words words SCM analog digital conversion button switch liquid crystal display 目 录 引 言 1 1 系统设计方案的选择 3 1 1 基于分立元件的电压表 3 1 2 基于单片机系统及 A D 转换芯片的电压表 3 1 3 单片机简介及本设计单片机的选择 3 1 3 1 常用单片机的特点比较及本设计单片机的选择 3 1 3 2 本设计使用的单片机的简介 4 1 4 各种显示器件的介绍和选择 6 1 4 1 常用显示器件简介 6 1 4 2 1602 液晶的参数资料 6 1 5 模数 A D 转换芯片的选择 8 1 5 1 常用的 A D 芯片简介 8 1 5 2 模数 A D 芯片 ADC0809 的资料 8 2 总体设计 16 2 1 技术要求 16 2 2 设计方案 16 3 硬件电路系统模块的设计 17 3 1 单片机系统 17 3 2 输入电路 18 3 3 A D 转换芯片与单片机的连接 18 3 4 1602 液晶与单片机连接 19 3 5 按键控制电路设计 20 4 系统软件的设计 22 4 1 汇编语言和 C 语言的特点及选择 22 4 2 主程序的设计 23 5 系统的调试 24 5 1 硬件调试 24 5 2 软件调试 24 总结 25 致 谢 26 参考文献 27 附录 A 英语科技文献原文及其翻译稿 28 附录 B 电路总图 34 附录 C 实物图 35 附录 D 元器件清单 36 附录 E 源程序 37 引 言 数字电压表出现在 50 年代初 60 年代末发起来的电压测量仪表 简称 DVM 它采用的是数字化测量技术 把连续的模拟量 也就是连 续的电压值转变为不连续的数字量 加以数字处理然后再通过显示器 件显示 这种电子测量的仪表之所以出现 一方面是由于电子计算机 的应用逐渐推广到系统的自动控制信实验研究的领域 提出了将各种 被观察量或被控制量转换成数码的要求 即为了实时控制及数据处理 的需要 另一方面 也是电子计算机的发展 带动了脉冲数字电路技 术的进步 为数字化仪表的出现提供了条件 所以 数字化测理仪表 的产生与发展与电子计算机的发展是密切相关的 同时 为革新电子 测量中的烦锁和陈旧方式也催促了它的飞速发展 如今 它又成为向 智能化仪表发展的必要桥梁 如今 数字电压表已绝大部分已取代了传统的模拟指针式电压表 因为传统的模拟指针式电压表功能单一 精度低 读数的时候也非常 不方便 很容易出错 而采用单片机的数字电压表由于测量精度高 速度快 读数时也非常的方便 抗干扰能力强 可扩展性强等优点已 被广泛的应用于电子及电工的测量 工业自动化仪表 自动测试系统 等智能化测量领域 显示出强大的生命力 数字电压表最初是伺服步进电子管比较式 其优点是准确度比较 高 但是采样速度慢 重量达几十公斤 体积大 继之出现了斜波式 电压表 它的速度方面稍有提高 但是准确度低 稳定性差 再后来 出现了比较式仪表改进逐次渐近式结构 它不仅保持了比较式准确度 高的优点 而且速度也有了很大的提高 但它有一缺点是抗干扰能力 差 很容易受到外界各种因素的影响 随后 在斜波式的基础上双引 伸出阶梯波式 它的唯一的进步是成本降低了 可是准确宽 速以及 抗干扰能力都未能提高 而现在 数字电压表的发展已经是非常的成 熟 就原理来讲 它从原来的一 二种已发展到多种 在功能上讲 则从测单一参数发展到能测多种参数 从制作元件来看 发展到了集 成电路 准确度已经有了很大的提高 精度高达 1NV 读数每秒几万 次 而相对以前 它的价格也有了降低了很多 目前实现电压数字化测量的方法仍然模 数 A D 转换的方法 而数字电压表种类繁多 型号新异 目前国际仍未有统一的分类方法 而常用的分类方法有如下几种 按用途来分 有直流数字电压表 交 直流数字电压表 交直流万用 表等 按显示位数来分 有 4 位 5 位 6 位 7 位 8 位等 按测量速度来分 有低准确度 中准确度 高准确度等 按测量速度来分 有低速 中速 高速 超高速等 但在日常生活中 数字电压表一般是按照原理不同进行分类的 目前 大致分为以下几类 比较式 电压 时间变换式 积分式等 在电量的测量中 电压 电流和频率是最基本的三个被测量 其中 电压量的测量最为经常 而且随着电子技术的发展 更是经常需要测 量高精度的电压 所以数字电压表就成为一种必不可少的测量仪器 另外 由于数字式仪器具有读数准确方便 精度高 误差小 灵敏度 高和分辨率高 测量速度快等特点而倍受用户青睐 数字式电压表就 是基于这种需求而发展起来的 是一种必不可少的电子测量仪表 1 设计方案的选择 设计数字电压表有多种的设计方法 方案是多种多样的 由于大 规模集成电路数字芯片的高速发展 各种数字芯片品种多样 导致对 模拟数据的采集部分的不一致性 进而又使对数据的处理及显示的方 式的多样性 又由于在现实的工作生活中 电压表的测量测程范围是 比较大的 所以必须要对输入电压作分压处理 而各个数据处理芯片 的处理电压范围不同 则各种方案的分段也不同 下面介绍两种数字 电压表的设计方案 1 11 1 基于分立元件的电压表基于分立元件的电压表 这种设计方案是由模拟电路与数字电路两大部分组成 模拟部分 包括输入放大器 A D 转换器和基准电压源 数字部分包括计数器 译码器 逻辑控制器 振荡器和显示器 其中 A D 转换器是它的核 心器件 它将输入的模拟量转换成数字量 模拟电路和数字电路是相 互联系的 由逻辑控制电路产生控制信号 按规定的时序将 A D 转换 器中个组模拟开关接通或断开 保证 A D 转换正常进行 A D 转换结 果通过计数译码电路变换成段码 最后驱动显示器显示出相应的数值 此方案设计其优点是 设计成本低 能够满足一般的电压测量 但设 计不灵活 都是采用纯硬件电路 很难将其在原有的基础上进行扩展 1 21 2 基于单片机系统及基于单片机系统及 A DA D 转换芯片的电压表转换芯片的电压表 这种方案是利用单片机系统与模数转换芯片 显示模块等的结合 构建数字电压表 由于单片机的发展已经成熟 利用单片机系统的软 硬件结合 可以组装出许多的应用电路来 此方案的原理是模数 A D 转换芯片的基准电压端 被测量电压输入端分别输入基准电 压和被测电压 模数 A D 转换芯片将被测量电压输入端所采集到 的模拟电压信号转换成相应的数字信号 然后通过对单片机系统进行 软件编程 使单片机系统能按规定的时序来采集这些数字信号 通过 一定的算法计算出被测量电压的值 最后单片机系统将计算好了的被 测电压值按一定的时序送入显示电路模块加以显示 此方案不仅能够继承上一种方案的各种优点 还能改进上一种设计方 案设计不灵活 难与在原基础上进行功能扩展等不足 1 31 3 单片机简介及本设计单片机的选择单片机简介及本设计单片机的选择 1 3 11 3 1 常用单片机的特点比较及本设计单片机的选择常用单片机的特点比较及本设计单片机的选择 综合上一章提到的两种设计方案的各方面优点及其在现在的所设 计电压表的实用性 我们选择第二种电压表设计方案 即由单片机系 统及数字芯片构建的方法来我们本次设计 在这一设计中 我们涉及到了一个关键系统模块 单片机系统 模块 而目前单片机的种类是很繁多的 主要有主流的 8 位单片机和 高性能的 32 位单片机 结合本设计各方面因素 8 位单片机对于本设 计已经是绰绰有余了 但将用哪一种类 8 的单片机呢 在这里 不得 不先简单的介绍一下几种常用的 8 单片机 单片机是指一个集成在一块芯片上的完整计算机系统 具有一个完整 计算机所需要的大部分部件 CPU 内存 总线系统等 而目前常用 的单片机的 8 位有 51 系列单片机 AVR 单片机 PIC 单片机 应用最广的 8 位单片机还是 intel 的 51 系列单片机 51 系列单 片机的特点是 硬件结构合理 指令系统规范 加之生产历史悠久 世界有许多芯片公司都买了 51 的芯片核心专利技术 并在其基础上 扩充其性能 使得芯片的运行速度变得更快 性价比更高 AVR 单片机是 atmel 公司推出较新的单片机 它的显著特点是 高性能 低功能 高速度 指令单周期为主 但性格方面比 51 单片 机要高 有专门的 I O 方向寄存器 虽然有转强的驱动电压 但 I O 口使用不比 51 单片机方便 PIC 单片机系列是美国微芯公司的产品 也是市面上增长最快的单片 机之一 属精简指令集单片机 其特点是 高速度 高性能 但在性 格方面比 51 单片机要高 也有专门的 I O 方向寄存器 I O 口使用不 比 51 单片机方便 综合以上各种单片机的基本性能及本设计的满足需要 我们将选择 51 系列单片机 1 3 21 3 2 本设计使用的单片机的简介本设计使用的单片机的简介 本设计中选用是 51 系列的 AT89C51 它是低电压 低功耗 高性 能的 CMOS8 位单片机 片内含 4KB 的可反复擦写的只读程序存储器和 128B 的随机存取数据存储器 32 个 I O 口线 片内振荡器及时钟电 路 并与 MCS 51 系列单片机兼容 在设计中 单片机起着连接硬件 电路与程序运行及存储数据的任务 一方面 它将 A D 转换器 显示 器等通过 I O 口地址线和数据线连接起来 另一方面 它将用户下载 的程序通过控制总线控制数据的输入输出 从而实现册电压的功能 下图 1 1 为 AT89C51 单片机内部结构框图 图 1 1 AT89C51 单片机内部结构框图 从内部结构图框图上可以看出 AT89C51 单片机包括一下资源 1 一个 8 位的 CPU 2 一个片内振荡器及时钟电路 3 4KB 的 FLAShROM 4 128 的内部 RAM 5 可扩展 64KB 外部 ROM 和外部 RAM 的控制电路 6 2 个 16 位的定时 计数器 7 26 个特殊功能寄存器 8 4 个 8 位的并行口 9 一个全双工的串行口 10 5 个中断源 2 个外部中断 3 内部中断 11 内部硬件看门狗电路 12 一个 SPI 串行接口 用于芯片的在系统编程 AT89C51 单片机有四十个引脚 其引脚图同图 2 3 引脚可分为 四类 电源和地 时钟 控制和 I O 口 管脚说明 VCC 供电电压 GND 接地 P0 口 P0 口为一个 8 位双向 I O 口 每脚可吸收 8TTL 门电流 当 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 时 其管脚被内部 上拉电阻拉高 且作为输入 并因此作为输入时 P2 口的管脚被外 部拉低 将输出电流 这是由于内部上拉的缘故 P2 口当用于外部 程序存储器或 16 位地址外部数据存储器进行存取时 P2 口输出地址 的高八位 在给出地址 1 时 它利用内部上拉优势 当对外部八位地 址数据存储器进行读写时 P2 口输出其特殊功能寄存器的内容 P2 口在 FLASH 编程和校验时接收高八位地址信号和控制信号 P3 口 P3 口管脚是 8 个带内部上拉电阻的双向 I O 口 可接收 输出 4 个 TTL 门电流 当 P3 口写入 1 后 它们被内部上拉为高电平 并用作输入 作为输入 由于外部下拉为低电平 P3 口将输出电流 ILL 这是由于上拉的缘故 RST 复位输入 当振荡器复位器件时 要保持 RST 脚两个机 器周期的高电平时间 ALE PROG 当访问外部存储器时 地址锁存允许的输出电平 用于锁存地址的地位字节 在 FLASH 编程期间 此引脚用于输入编 程脉冲 在平时 ALE 端以不变的频率周期输出正脉冲信号 此频率 为振荡器频率的 1 6 因此它可用作对外部输出的脉冲或用于定时目 的 然而要注意的是 每当用作外部数据存储器时 将跳过一个 ALE 脉冲 如想禁止 ALE 的输出可在 SFR8EH 地址上置 0 此时 ALE 只有在执行 MOVX MOVC 指令是 ALE 才起作用 另外 该引脚被 略微拉高 如果微处理器在外部执行状态 ALE 禁止 置位无效 PSEN 外部程序存储器的选通信号 在由外部程序存储器取址 期间 每个机器周期两次 PSEN 有效 但在访问外部数据存储器时 这两次有效的 PSEN 信号将不出现 EA VPP 当 EA 保持低电平时 则在此期间外部程序存储器 0000H FFFFH 不管是否有内部程序存储器 注意加密方式 1 时 EA 将内部锁定为 RESET 当 EA 端保持高电平时 此间内部程 序存储器 在 FLASH 编程期间 此引脚也用于施加 12V 编程电源 VPP XTAL1 反向振荡放大器的输入及内部时钟工作电路的输入 XTAL2 来自反向振荡器的输出 振荡器特性 XTAL1 和 XTAL2 分别为反向放大器的输入和输出 该反向放大 器可以配置为片内振荡器 石晶振荡和陶瓷振荡均可采用 如采用外 部时钟源驱动器件 XTAL2 应不接 有余输入至内部时钟信号要通过 一个二分频触发器 因此对外部时钟信号的脉宽无任何要求 但必须 保证脉冲的高低电平要求的宽度 1 41 4 各种显示器件的介绍和选择各种显示器件的介绍和选择 1 4 11 4 1 常用显示器件简介常用显示器件简介 本次设计中有显示模块 而常用的显示器件比较多 有数码管 LED 点阵 1602 液晶 12864 液晶等 数码管是最常用的一种显示器件 它是由几个发光二极管组成 的 8 字段显示器件 其特点是价格非常的便宜 使用也非常的方便 显示效果非常的清楚 小电流下可以驱动每光 发光响应时间极短 体积小 重量轻 抗冲击性能好 寿命长 但数码管只能是显示 0 9 的数据 不能够显示字符 这也是数码管的不足之处 LED 点阵显示器件是由好多个发光二极管组成的 具有高亮度 功耗 低 视角大 寿命长 耐湿 冷 热等特点 LED 点阵显示器件可以 显示数字 英文字符 中文字符等 但用 LED 点阵显示的软件程序设 计比较麻烦 1602 液晶是工业字符型液晶 能够同时显示 16 2 即 32 个字符 1602 液晶模块内部的字符发生存储器已经存储了 160 个不同的点阵字 符图形 这些字这些字符有 阿拉伯数字 英文字母的大小写 常用 的符号 和日文假名等 每一个字符都有一个固定的代码 使用时直 接编写软件程序按一定的时序驱动即可 它的特点是显示字迹清楚 价格相对便宜 12864 液晶也是一种工业字符型液晶 它不仅能够显示 1602 液晶 所可以显示的字符 数字等信息 而且还可以显示 8 4 个中文汉字和 一些简单的图片 显示信息也非常的清楚 使用时也直接编写软件程 序按一定的时序驱动即可 不过它的价格比 1602 液晶贵了很多 在本设计中 我们只需要显示最后电压的数字值和电压的单位 综合上面各种显示器件的特点 数码管只能显示数字 不能显示单位 字符 不符合本设计的要求 而点阵显示器件驱动显示软件程序编写 麻烦 占用的引脚相对也较多 也不是理解的显示器件 所以在本设 计中 我们考虑用液晶显示器件 虽然 12864 液晶比 1602 液晶的功 能强 不过在价格方面却贵了好多 而 1602 液晶也足够满足本设计 的需要 因此 在本设计实验我们选择 1602 液晶显示器件 1 4 21 4 2 16021602 液晶的参数资料液晶的参数资料 我们选择了 1602 液晶做为本设计的显示模块的显示器件 以下 是 1602 液晶的各方面参数 表 1 1 接口信号说明 编号符号引脚说明 1VSS电源地 2VDD电源正极 3VL液晶显示偏压信号 4RS数据 命令选择端 5R W读 写选择端 6E使能信号 8 14D0 D7Data I O 15BLA背光源正极 16BLK背光源负极 1 基本操作时序 读状态 输入 RS 0 RW 1 E 1 输出 D0 D7 为状态字 写状态 输入 RS 0 RW 0 D0 D7 为指令码 E 为高脉冲 输出 无 读数据 输入 RS 1 RW 1 E 1 输出 D0 D7 为数据 写数据 输入 RS 1 RW 0 D0 D7 为数据 E 为高脉冲 输出 无 表 1 2 状态字说明 STA7STA6STA5STA4STA3STA2STA1STA0 STA0 6当前数据地址指针的数值 STA7读写操作使能1 禁止 0 允许 表 1 3 指令的说明 显示模式设置 指令码功能 00111000设置 16 2 显示 5 7 点阵 8 位数据口 表 1 4 显示开 关及光标设置 指令码 功能 00001DCBD 1 开显示 D 0 关显示 C 1 显示光标 C 0 不显示关标 B 1 光标闪烁 B 0 光标不显闪烁 000001NSN 1 当读写一个字条款后地址指针加一 且光 标加一 N 0 当读或写一个字符后地址指针减一 且光 标减一 S 1 当写一个安条款 整屏显示左移 N 1 或右移 N 0 以得到光标不移动而屏幕移 动的效果 S 0 当写一个字符 整屏显示不移动 表 1 5 数据控制 指令码 功能 80H 地址码 0 27H 40H 67H 设置数据地址指针 01H显示清屏 1 数据指针清 0 2 所有显示清 0 02H显示回车 数据指针清 0 1 51 5 模数 模数 A DA D 转换芯片的选择 转换芯片的选择 在本设计中 模数 A D 转换模块是一个重要的模块 它关系 到最后数电压表电压值的精确度 所以 A D 芯片的选择是设计过程 中一个很重要的环节 1 5 11 5 1 常用的常用的 A DA D 芯片简介芯片简介 常用的 A D 芯片有 AD0809 AD0832 TLC2543C 等几种 下面简单 介绍一下这三种芯片 AD0809 是 8 位逐次逼近型 A D 转换器 它是由一个 8 路的模拟开关 一个地址锁存译码器 一个 A D 转换器和一个三态输出锁存器组成 多路开关可选通 8 个模拟通道 允许 8 路模拟量分时输入 共用 A D 转换器进行转换 些 A D 转换器是的特点是 8 位精度 属于并行口 如果输入的模拟量变化大快 必须在输入之前增加采样电路 AD0832 也是 8 位逐次逼近型 A D 转换器 可支持致命伤个单端输 入通道和一个差分输入通道 它易于和微处理器接口或独立使用 可 满量程工作 可用地址逻辑多路器选通各输入通道 TLC2543C 是 12 位开关电容逐次逼近 A D 转换 每个器件有三个 控制输入端 片选 输入 输出时钟以及地址输入端 它可以从主机 高速传输转换数据 它有高速的转换 通用的控制能力 具有简化比 率转换 刻度以及模拟电路与逻辑电路和电源噪声隔离 耐高温等特 点 综合上述几种 A D 转换芯片的特点 在本设计中 我们设计的是 简易数字电压表 因此在此 我们选择精度为 8 位的 ADC0809 芯片 1 5 21 5 2 模数 模数 A DA D 芯片 芯片 ADC0809ADC0809 的资料的资料 综合本设计的各方面考虑 我们选了 ADC0809 模数转换芯片 下 面就介绍此芯片的各方面资料 1 5 2 11 5 2 1 ADC0809ADC0809 的内部结构及引脚如图所示 的内部结构及引脚如图所示 结构和转换原理 如图 3 15 所示为 ADC0809 的内部结构框图 ADC0809 由 3 部 分组成 8 路模拟量选通开关 8 位 A D 转换器和三态输出数据锁 存器 ADC0809 允许 8 路模拟信号输入 由 8 路模拟开关选通其 中一路信号 模拟开关受通道地址锁存和译码电路的控制 当地址 锁存信号 ALE 有效时 3 位地址 C B A 进入地 8通道 多路 模拟开关 5 4 3 2 1 28 27 26 25 24 23 22 地址锁存器 和译码器 W1 W2 逐次逼近型寄存器 SAR 控制逻辑 开关树组 256R 电阻分压器 610 Vx Vc 7 输 出 缓 冲 锁 存 器 三 态 21 20 19 18 8 15 14 17 9 16 111312 模 拟 量 输 入 A B C ALE 地 址 选 择 地址 锁存允许 VccGND VREF VREF ENABLE 数 字 量 输 出 转换结束 中断 EOC STARTCLOCK D7 D6 D5 D4 D3 D2 D1 D0 IN7 IN6 IN5 IN4 IN3 IN2 IN1 IN0 图 1 2 ADC0809 的内部结构 图 1 3 ADC0809 的引脚 地址锁存器 经译码后使 8 路模拟开关选通某一路信号 8 位 A D 转换器为逐次逼近式 由 256R 电阻分压器 树状模 拟开关 这两部分组成一个 D A 变换器 电压比较器 逐次逼近 寄存器 逻辑控制和定时电路组成 三态门输出锁存器用来保存 A D 转换结果 当输出允许信号 OE 有效时 打开三态门 输出 A D 转换结果 因输出有三态门 便于与单片机总线连接 表 1 6 ADC0809 通道地址选择表 引脚功能 由引脚图 3 15 b 所示 ADC0809 共有 28 个引脚 采用双列直插式封装 ADC0809 虽然有 8 路模拟 通道可以同时输入 8 路模拟信号 但每个瞬间只能 转换一路 各路之间的切换由软件变换通道地址来 实现 其主要引脚功能如下所示 IN0 IN7 8 路模拟量输入端 D7 D0 8 位数字量输出端 A B C 3 位地址输入线 用于选通 8 路模拟输入中的一路 ALE 地址锁存允许信号 输入 高电平有效 START A D 转换启动信号 输入 高电平有效 EOC A D 转换结束信号 输出 当 A D 转换结束时 此端输 出一 个高电平 转换期间一直为低电平 OE 数据输出允许信号 输入 高电平有效 当 A D 转换结束 时 此端输入一个高电平 才能打开输出三态门 输出数字量 CLK 时钟脉冲输入端 要求时钟频率不高于 640KHZ REF REF 基准电压 Vcc 电源 单一 5V GND 地 1 5 2 2 ADC0809 工工作作过过程程 图 1 4 ADC0809 的时序图 ADC0809 的工作过程分为如下几步 第一步 首先确定 A B C 三位地址 决定选择哪一路模拟信号 ALE 地址总线稳定 模拟输入 START EOC DATA OUTPUT ENEBLE 稳定 输出允许 第二步 使 ALE 端接收一正脉冲信号 使该路模拟信号经选择开关 达到比较器的输入端 第三步 使 START 端接收一正脉冲信号 START 的上升沿将逐次逼 近寄存器复位 下降沿启动 A D 转换 第四步 EOC 输出信号变低 指示转换正在进行 第五步 A D 转换结束 EOC 变为高电平 指示 A D 转换结束 此时 数据已保存到 8 位锁存器中 第六步 OE 信号变为高电平 则 8 位三态锁存缓冲器的三态门被 打开 转换好的 8 位数字量数据被输出到数据线上 如上所述 EOC 信号变为高电平表示 A D 转换完成 EOC 可作 为中断申请信号 通知 89C51 取走数据 在查询传送方式中 EOC 可以作为 89C51 查询外设 ADC 的状态信号 1 1 5 5 2 2 3 3 ADC0809 与与单单片片机机的的接接口口 ADC0809 与单片机的连接主要考虑三方面 与单片机的数据总 线 地址总线和控制总线的连接 数据总线 由于 ADC0809 的输出 D7 D0 具有三态输出锁存缓 冲器 因此 ADC0809 可以直接和单片机的数据总线 P0 0 P0 7 相 连 地址总线 地址总线的 P0 0 P0 1 和 P0 2 可以对应连接 ADC0809 的 A B C 三位地址信号输入线 用以控制 8 路模拟输入 中哪一路被选中输入 控制总线 有启动转换信号 START 输出允许信号 OE 转 换结束信号 EOC 以及 ALE 等信号线的连接 START 要求是一个正脉 冲信号 由单片机控制发出 输出允许信号OE 也需要单片机提供 一个正脉冲信号 在 A D 转换结束时 ADC0809 会发出转换结束信 号 EOC 通知 89C51 可以读取转换数据 A D 转换后得到的是数据 这些数据应传送给89C51 单片机进 行处理 数据传送的关键问题是如何确认A D 转换完成 因为只 有确认数据转换完成后 才能进行传送 为此可采用下述三种方式 1 定时传送方式 对于一种 A D 转换器来说 转换时间作为一个主要技术指 标是已知的和固定的 例如 若 ADC0809 转换时间为 128 s 相当于 6MHz 的 89C51 单片机的 64 个机器周期 可 据此设计一个延时子程序 A D 转换启动后即调用这个延时子 程序 延迟时间一到 转换肯定完成了 接着就可以进行数据 传送 2 查询传送方式 由于 ADC0809 片内无时钟 利用 AT89C51 提供的地址锁 存信号 ALE 经过分频后可保证 ADC0809 可靠的工作 由于 ADC0809 的输出 D7 D0 具有三态输出锁存缓冲器 因此 ADC0809 可以直接和单片机的数据总线相连 由于此种方式下 ALE 和 START 连接在一起 因此 0809 在锁存通道地址的同时 也启动转换 在读取转换结果时 用单片机的读信号和片选信 号引脚经或非门后产生的正脉冲信号作为OE 信号 用以打开 三态输出锁存器 3 中断传送方式 采用中断方式可大大节省单片机的时间 当转换结束时 EOC 向单片机发出中断请求信号 由中断服务子程序读取 A D 转换结果并存储到 RAM 中 然后启动 ADC0809 的下一次 转换 三种典型连接电路 大体上说 ADC0809 在整个 51 单片机系统中是作为外部 RAM 的一个单元定位的 但具体到某一个连接方式 ADC0809 在整个 51 单片机系统中的定位又有一些差别 1 第一种典型连接 这是一种数据线对数据线 地址线对地址线的标准连接方式 如图 3 17 但是由于 51 单片机没有现成的低 8 位地址总线 所 以采用这种标准连接方式需要用 74LS373 或类似芯片产生低 8 位 地址总线 早期的 MCS51 系列单片机的应用品种很多是没有内置程序存储 器的 8031 芯片 本身就需要外挂 74LS373 等芯片产生低 8 位地址 总线来外接 EPROM 等程序存储器 连接 ADC0809 时不需要专门外挂 74LS373 因此早期的 MCS51 系列单片机 如 8031 采用这种连接 ADC0809 还是比较可行的 图 3 17 中 P2 7 A15 线作为整个 ADC0809 芯片的片选线 当 P2 7 A15 0 时 或非门敞开 允许写 信号通过 将单片机负的写脉冲转换为 ADC0809 所需要的正脉冲 以选中 ADC0809 某一通道并启动转换 这是一种不完全地址译码方式 如果增加地址译码器 将 P2 7 A15 线改为高位地址译码器的输出线 就可以形成完全译码 在图 3 17 连接方式中 ADC0809 的转换结果寄存器在概念上 定位为单片机的一个只读寄存器 与通道号无关 因此读取转换结 果时不必关心 DPTR 图 1 5 ADC0809 与 51 单片机的第一种连接方式 中的通道号如何 编程概要 MOV DPTR 7FF8H DPTR 指向 0809 通道 0 MOVX DPTR A 锁定通道 0 并启动转换 MOVX A DPTR 读取转换结果 2 第二种典型连接 通常芯片的地址线只能进不能出自不必说 ADC0809 的数据线有一特 点 只能出不能进 就是说 就像往 SBUF 写入时写到发送缓冲寄存 器 从 SBUF 图 1 6 ADC0809 与 51 单片机的第二种连接方式 读出时实际是读取接收缓冲寄存器的数据一样 往ADC0809 写入时 把数据总线上的数据写到地址寄存器 从ADC0809 读出 时实际是读取转换结果数据 因此可以在把51 单片机的 8 位数据 线接到 ADC0809 的 8 位数据线的同时 又把其中的 3 位直接接到 ADC0809 的 3 根地址线以确定通道号 通常把 51 单片机的 8 位数 据线中的低 3 位 D2 D1 D0 直接接到 ADC0809 的 3 根地址线 A2 A1 A0 以确定通道号 如图 3 18 采用这种连接方式明显 可以省去一片 74LS373 在这种连接方式中 ADC0809 的转换结果寄存器在概念上定位 为单片机外部 RAM 单元的只读寄存器 而通道号寄存器在概念上定 位为单片机同一个外部 RAM 单元的只写寄存器 同一个外部 RAM 单元的只读寄存器与只写寄存器使用同一个地址 就像51 系列单 片机的串行发送缓冲器与串行接受缓冲器使用同一个地址99H 一 样 不会发生混乱 这种连接方式有一个特点 那就是单片机要把最低3 位二进 制数据通过数据总线写入 ADC0809 的地址锁存器 然后作为 通道地址使用 编程概要 MOV A 0F8H ADC0809 通道 0 地址送到 A MOV DPTR 7FFFH DPTR 指向 ADC0809 MOVX DPTR A 锁定通道 0 并启动转换 MOVX A DPTR 要求在程序第一条指令中把决定是否能选中整个ADC0809 芯片的数据传送到数据指针 在本电路中 只要送到DPTR 的 最高位数据为 0 就能选中 ADC0809 而通道地址由累加器 A 的最低 3 位数字决定 除了最高位以外 DPTR 的其余 15 位数 据对于 ADC 没有任何意义 除了较低 3 位以外 累加器 A 的其 余 5 位数据对于 ADC 也没有任何意义 这是本程序的一大特点 3 第三种典型连接 在很多应用场合 AT89S51 内部的硬件资源 例如 4KB 闪存 128B 内部 RAM 一个串行口和 4 个 8 位并行口 等 已经够用 就是说 在很多应用场合 不需要外扩 RAM 或 I O 口 图 1 7 ADC0809 与 51 单片机的第三种连接方式 当 51 单片机没有外扩 RAM 和 I O 口时 ADC0809 就可以在概念上 作为一个特殊的唯一的外扩 RAM 单元 因为它是唯一的 就没有地址 编号 也就不需要任何地址线或者地址译码线 只要单片机往外部 RAM 写入 就是写到 ADC0809 的地址寄存器中 只要单片机从外部 RAN 读取数据 就是读取 ADC0809 的转换结果 基于这种外部 RAM 的唯一单元概念设计的 AT89S51 与 ADC0809 的连接电路如图 图 3 19 相应的启动程序和读数程序都非常简单 编程概要 MOV A 0F8H ADC0809 通道 0 地址送到 A MOVX R0 A 锁定通道 0 并启动转换 MOVX A R0 读取转换结果 其中间寄存器 R0 中的数据无论在启动 ADC0809 还是在读取转换 结果时都没有任何意义 因此事先不必考虑往 R0 中送入什么数据 这是本程序的一大特点 4 三种连接方式的综合比较 第一种和第二种连接方式允许多片 ADC0809 与单片机连接 第三 种连接方式只能连接一片 通常 1 片 8 通道 ADC0809 就能满足控制工 程需要 因此在单片机没有外扩 RAM 和 I O 接口时 第三种连接方式 时一种优选方案 需要 2 片或更多 ADC0809 时 第二种连接方式时一 种优选方案 第一种连接方式需要一片 74LS373 做地址锁存器 如果单片机系 统已经有一片 73LS373 地址锁存器 那么第一种连接方式也不失为一 种可以考虑的连接方式 2 总体设计 2 12 1 技术要求 技术要求 1 最高量程为 500V 2 分为三档量程 0 20V 0 200V 0 500V 可以通过调档开关 实现各档位 精度为 0 08 v 2 22 2 设计方案 设计方案 根据上述 我们选择单片机与 A D 转换芯片结合的方法实现本设 计 使用的基本元器件是 AT89C51 单片机 ADC0809 模数转换芯片 1602 液晶显示器 开关 按键 电容 电阻 晶振 标准电源等等 设计的基本框图如下 单片机系统模单片机系统模 块块 16021602 液晶显示液晶显示 模块模块 A DA D 转换模块转换模块 输入电路模块输入电路模块 按键模块按键模块 图 2 1 设计的基本框图 3 硬件电路系统模块的设计 根据上述选择的各元器件 各电路模块的电路图如下描述 3 13 1 单片机系统单片机系统 单片机最小系统包括晶振电路 复位电路 电源 其原理图如下 图 3 1 复位电路 此模块中 单片机的晶振是 12MHZ C1 和 C2 的电容是 22pf C3 可选 10UF R1 电阻为 1K 3 23 2 输入电路输入电路 由于输入电路的电压比基准电压 5V 高很多 因此在输入电路 必须加电压衰减器 衰减电路可由开关来选择不同的通道 从而切换 档位 则完整输入电路如下 图 3 2 衰减电路 通过计算 根据不同量程的通道 设定不同的衰减电阻如上图所 示 并用手动开关的方式来切换相应档位 用其相应数据转换的算法 计算出所测正确的电压值 被测电压输入端 整理过的模拟电压输入 端 开关与单片机的连接如下图所示 3 33 3 A DA D 转换芯片与单片机的连接转换芯片与单片机的连接 此设计中选择的是 A D 转换芯片的通道 1 通道 2 通道 3 数 据输出口连接单片机的 P0 口 脉冲端连接单片机的 ale 口 模块连 接如下图所示 图 3 3 A D 转换芯片与单片机的连接 3 43 4 16021602 液晶与单片机连接液晶与单片机连接 此模块液晶的 RS 和 E 端分别连接单片机的 P3 0 和 P3 1 口 液 晶的数据各端口连接单片机的 P1 口 具体如下图所示 图 3 4 1602 液晶与单片机连接 3 53 5 按键控制电路设计 按键控制电路设计 三个通道键盘的三端分别与单片机的 P3 4 P3 5 P3 6 口连接 另一端接地 原理图如下所示 图 3 5 按键控制电路 键盘的功能 可根据所测的电压范围 通过按键来切换通道 3 6 系统电路的设计 图 3 6 总电路图 4 系统软件的设计 4 14 1 汇编语言和汇编语言和 C C 语言的特点及选择语言的特点及选择 本设计是硬件电路和软件编程相结合的设计方案 选择合适的编 程语言是一个重要的环节 在单片机的应用系统程序设计时 常用的 是汇编语言和 C 语言 汇编语言的特点是占用内存单元少 执行效率 高 执行速度快 但它依赖于计算机硬件 程序可读性和可移植性比 较差 而 C 语言虽然执行效率没有汇编语言高 但语言简洁 使用方 便 灵活 运算丰富 表达化类型多样化 数据结构类型丰富 具有 结构化的控制语句 程序设计自由度大 有很好的可重用性 可移植 性等特点 由于现在单片机的发展已经达到了很高的水平 内部的各种资源 相当的丰富 CPU 的处理速度非常的快 用 C 语言来控制单片机无疑 是一个理想的选择 所以在本设计中采用 C 语言编写软件程序 4 24 2 主程序的设计主程序的设计 主程序的总体流程如下图 选择档 位 启动 AD 开外部中 断 数据标 定 液晶显 示 开始 判断中 断 N Y 图 4 1 主程序的总体流程 5 系统的调试 完成了系统的硬件设计 制作和软件编程之后 要使系统能够按 设计意图正常运行 必须进行系统调试 调试分了硬件和软件调试 5 15 1 硬件调试硬件调试 硬件调试的主要任务是排除硬件故障 其中包括设计的错误和工 艺性故障等 1 检查所设计的硬件电路板所有的器件和引脚是否正确 尤其是 电源的连接是否正确 检查各总线是否有短路的故障 检查开 关 按键是否正常 是否连接正确 为了保护芯片 应先对各插 座电位进行检查 确认无误后再插入芯片 2 将 40 芯片的仿真插头插入单片机插座进行调试 检查各接口 是否满足设计的要求 有正常的程序测试硬件电路的好坏 5 25 2 软件调试软件调试 软件调试的任务是利用开发工具进行在线仿真调试 发现和纠正 程序的错误 同时也能发现硬件的故障 软件调试是一个模块一个模 块进行的 首先单独调试各子程序是否能够按照预期的功能 接口电 路的控制是否正常 最后调试整个程序 尤其注意的是各模块间能否 正确的传递参数 1 检查液晶显示模块程序 在主程序中调用 display 和 dislay zifu 函数 观察在 1602 液晶上是否能够显示相 应的字符 如果不能 则在相关的子程序中设计断点 反 复调试直到能够显示 2 检查按键模块程序 本设计的按键模块程序是用状态机的 方法 可以在 key state1 状态下加一个任务 如显示一个 字符在液晶上 观察是否正确显示 3 检查 A D 转换模块程序 可以在硬件电路的输入端输入已 知的几个电压 分别观察液晶上是否显示相应的电压值 4 检查数据的转换模块程序 可以按硬件电路的按键开关 输入相应的电压 观察液晶显示的电压值是否一致 如果 一致 则数据转换的算法正确的 5 总调试 当相应的各模块环节都正确后 可程序下载到单 片机 接上电源运行 再检查所有功能 观察是否能预期 的一样 如果一样 说明设计成功完成 结束语结束语 由于本设计使用的是高效的 51 系列单片机作为核心的测量系统 以及高精度 高速度 高抗干扰的 A D 转换器 使得本直流数字电压 表具体精度高 灵敏度强 性能可靠 电路简单 设计成本低 能够 满足一般的电压测量 因为平时所需要测量的被测电压的电压值不是一个定值 多多少 少都有一些微小的变化 但是本产品相对模拟电压表来说读数时非常 的方便 抗干扰能力强 可扩展性强等优点 致致 谢谢 借此论文结束之际 我首先要感谢我的导师在大学四年里对我的 栽培 本论文是在老师的悉心指导下才完成的 陈老师学识渊博 为 人和善 他不仅在学术上给了我指导 在生活上也给了我无尽的关怀 这一切都将使我终身难忘 我要感谢我系的各位老师 在设计过程中 我系的老师们给了我 很多种肯定的建议 使我的论文得以顺利的完成 也要感谢各位老师 在四年来对我学习和生活上的关心和帮助 我要感谢所有的师弟师妹们 在这个团结奋斗 积极向上 充满 爱心的集体中 我获得了不断进取的动力 最后 我要感谢我的家人 是他们在背后默默无闻的奉献 才 使我有充足的时间和充裕的精力顺利完成我的学业 参考文献参考文献 1 李建忠编著 单片机原理及应用 M 西安 西安电子科技大学出版社 2002 113 126 2 朱勇 陈其乐 刘浩等 单片机原理与应用技术 M 北京 清华大学出版社 2006 122 138 3 宋浩 田丰 单片机原理及应用 M 北京 清华大学出版社 2006 180 197 278 285 4 边春远 王志强 MCS 51 单片机应用开发实用子程序 M 北京 人民邮电出版社 2005 283 287 5 何立民 单片机应用技术选编 9 M 北京 北京航空航天大学出版社 2004 335 342 6 郭强等 液晶显示应用技术 M 电子工业出版社 2000 7 阎石 数字电子技术基础 M 北京 高等教育出版社 2006 8 李光飞 李良儿 单片机 C 程序设计 M 北京 北京航空航天大学出版社 2005 9 何立民 单片机应用文集 M 北京 北京航空航天大学出版社 1991 10 Wang Debiao MCS 51 Monolithic integrated circuit Principle And Connection Technology M the electronics industry publishing house in August 2003 1st edition 1st time printed 11 Ding Yuanjie Monolithic Microcomputer Principle And Application M mechanical industry publishing house in January 2005 2nd edition 10th printing 12 Nie resolute the monolithic integrated circuit timer interruption interval error analysis and c

温馨提示

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

评论

0/150

提交评论