毕业设计---简易数字电压表设计_第1页
毕业设计---简易数字电压表设计_第2页
毕业设计---简易数字电压表设计_第3页
毕业设计---简易数字电压表设计_第4页
毕业设计---简易数字电压表设计_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

毕业设计 论文 毕业设计 论文 毕业设计 论文 毕业设计 论文 题题题题题题 目目目目目目 简易数字电压表设计简易数字电压表设计简易数字电压表设计简易数字电压表设计简易数字电压表设计简易数字电压表设计 摘摘 要要 数字电压表 Digital Voltmeter 简称 DVM 它是采用数字化测量技术 把连续的 模拟量 直流输入电压 转换成不连续 离散的数字形式并加以显示的仪表 传统的指 针式电压表功能单一 精度低 不能满足数字化时代的需求 采用单片机的数字电压表 由精度高 抗干扰能力强 可扩展性强 集成方便 还可与 PC 进行实时通信 目前 由各种单片 A D 转换器构成的数字电压表 已被广泛用于电子及电工测量 工业自动化 仪表 自动测试系统等智能化测量领域 示出强大的生命力 与此同时 由 DVM 扩展而 成的各种通用及专用数字仪器仪表 也把电量及非电量测量技术提高到崭新水平 本章 重点介绍单片 A D 转换器以及由它们构成的基于单片机的数字电压表的工作原理 关键词 A D 转换模块 数据处理模块简易数字电压表 目目 录录 摘要 8 第一章 实现方案 10 1 硬件选择方案 12 2 主要元器件的介绍 12 3 程序设计 21 第二章 系统的测试与结果 25 第三章系统调试过程及问题解决 28 第四章 结论 29 第五章致谢 30 参考文献 30 引引 言言 本文主要描述采用 AT89S51 芯片和 ADC0809 芯片来完成一个简易的数字电压表 能够 对输入的 0 5 V 的模拟直流电压进行测量 并通过一个 4 位一体的 7 段 LED 数码管进 行显示 测量误差约为 0 02 V 该电压表的测量电路主要由三个模块组成 A D 转换模 块 数据处理模块及显示控制模块 A D 转换主要由芯片 ADC0809 来完成 它负责把采 集到的模拟量转换为相应的数字量再传送到数据处理模块 数据处理则由芯片 AT89S51 来完成 其负责把 ADC0809 传送来的数字量经一定的数据处理 产生相应的显示码送到 显示模块进行显示 另外它还控制着 ADC0809 芯片的工作 显示模块主要由 7 段数码管 及相应的驱动芯片 74HC245 组成 显示测量到的电压值 湖南科技经贸职业学院毕业论文选题表湖南科技经贸职业学院毕业论文选题表 2010 年 3 月 15 日 学生姓名刘潭华专业机电一体化年级07 机电一 班 学号 200707007060 题 目 简易数字电压表设计 指导教师姓名 指导教师职称 主主 要要 研研 究究 内内 容容 本文主要描述采用 AT89S51 芯片和 ADC0809 芯片来完成一个简易的数字电压 表 能够对输入的 0 5 V 的模拟直流电压进行测量 并通过一个 4 位一体 的 7 段 LED 数码管进行显示 测量误差约为 0 02 V 从而研究单片机数字电 压表使用中的问题以及其解决办法 主主 要要 参参 考考 文文 献献 1 9787560935911 胡乾斌 单片机原理与应用 2006 年 2 月 第二 版 华中科技大学出版社 P20 P24 2 9787810778374 李广弟 朱月秀冷祖祁 单片机基础 2007 年 6 月 第一版 北京航空航天大学出版社 P65 P67 3 978 7 301 10760 7 TN 0032 魏立峰 王宝兴 单片机原理及应用技 术 2006 年 8 月 第一版 北京大学出版社 P165 P169 指指 导导 教教 师师 意意 见见 签名 年 月 日 系 部 意 见 年 月 日 湖南科技经贸职业学院湖南科技经贸职业学院毕业论文任务书毕业论文任务书 教研室指导教师职 称 学生姓名刘潭华专业 班级 07 级机电一体化机电一班 设计题目设计题目简易数字电压表设计 设计内容设计内容 和目标和目标 本文主要描述采用 AT89S51 芯片和 ADC0809 芯片来完成一个简易的数 字电压表 能够对输入的 0 5 V 的模拟直流电压进行测量 并通过一 个 4 位一体的 7 段 LED 数码管进行显示 测量误差约为 0 02 V 从而 研究单片机数字电压表使用中的问题以及其解决办法 设计要求设计要求 简易数字电压表可以测量 0 5V 的 8 路输入电压值 并在四位 LED 数码管上轮 流显示或单路选择显示 测量最小分辨率为 0 019V 测最误差约为 0 02V 进度安排进度安排 1 查阅相关资料进行筛选 2010 04 12 2 初步构思 确定大的框架 2010 04 17 3 论文的撰写 2010 05 21 4 论文格式的修改 2010 05 25 5 老师的意见及引导 2010 05 28 6 再次修改 大体完成 2010 06 04 教研室审核教研室审核 室主任签名 年 月 日 系部审核系部审核 系主任签名 年 月 日 说明 此表一式两份 系部和学生各留存一份 湖南科技经贸职业学院毕业论文开题报告湖南科技经贸职业学院毕业论文开题报告 设计设计 论文 论文 题目题目 简易数字电压表设计 选题背选题背 景 意景 意 义义 数字电压表 Digital Voltmeter 简称 DVM 它是采用数字化测量技 术 把连续的模拟量 直流输入电压 转换成不连续 离散的数字形式并加 以显示的仪表 传统的指针式电压表功能单一 精度低 不能满足数字化时 代的需求 采用单片机的数字电压表 由精度高 抗干扰能力强 可扩展性 强 集成方便 还可与 PC 进行实时通信 目前 由各种单片 A D 转换器构 成的数字电压表 已被广泛用于电子及电工测量 工业自动化仪表 自动测 试系统等智能化测量领域 示出强大的生命力 与此同时 由 DVM 扩展而成 的各种通用及专用数字仪器仪表 也把电量及非电量测量技术提高到崭新水 平 本章重点介绍单片 A D 转换器以及由它们构成的基于单片机的数字电 压表的工作原理 研研 究究 内内 容容 采用 AT89S51 芯片和 ADC0809 芯片来完成一个简易的数字电压表 能够对输 入的 0 5 V 的模拟直流电压进行测量 并通过一个 4 位一体的 7 段 LED 数 码管进行显示 测量误差约为 0 02 V 从而研究单片机数字电压表使用中 的问题以及其解决办法 技术路技术路 线 方线 方 案案 本系统采用 AT89S51 单片机芯片配合 ADC0809 模 数转换芯片构成一个简 易的数字电压表 该电路通过 ADC0809 芯片采样输入口 IN0 输入的 0 5 V 的模拟量电压 经过模 数转换后 产生相应的数字量经过其输出通道 D0 D7 传送给 AT89S51 芯片的 P0 口 AT89S51 负责把接收到的数字量经 过数据处理 产生正确的 7 段数码管的显示段码 并通过其 P1 口经驱动 芯片 74HC245 驱动 再传送给数码管 同时它还通过其三位 I O 口 P3 0 P3 1 P3 2 产生位选信号 控制数码管的亮灭 从而读出测量值 以达到测量目的 湖南科技经贸职业学院湖南科技经贸职业学院毕业论文开题报告毕业论文开题报告 计计 划划 进进 度度 1 查阅相关资料进行筛选 2010 04 12 2 初步构思 确定大的框架 2010 04 17 3 论文的撰写 2010 05 21 4 论文格式的修改 2010 05 25 5 老师的意见及引导 2010 05 28 6 再次修改 大体完成 2010 06 04 指导老指导老 师意见师意见 指导教师签名 年 月 日 开题组开题组 意意 见见 组长签名 年 月 日 湖南科技经贸职业学院毕业论文成绩考核表湖南科技经贸职业学院毕业论文成绩考核表 作者姓名刘潭华专业机电一体化年级07 机电一班学号200707007060 题 目简易数字电压表设计 指导教师姓名指导教师职称 年 月 日 指 导 教 师 评 阅 意 见 建议等级 指导教师 签名 盖章 年 月 日 系 部 终 审 意 见 审定等级负责人 签名 摘 要 数字电压表 Digital Voltmeter 简称 DVM 它是采用数字化测量技术 把连续的模拟 量 直流输入电压 转换成不连续 离散的数字形式并加以显示的仪表 传统的指针式 电压表功能单一 精度低 不能满足数字化时代的需求 采用单片机的数字电压表 由 精度高 抗干扰能力强 可扩展性强 集成方便 还可与 PC 进行实时通信 目前 由 各种单片 A D 转换器构成的数字电压表 已被广泛用于电子及电工测量 工业自动化仪 表 自动测试系统等智能化测量领域 示出强大的生命力 与此同时 由 DVM 扩展而成 的各种通用及专用数字仪器仪表 也把电量及非电量测量技术提高到崭新水平 本章重 点介绍单片 A D 转换器以及由它们构成的基于单片机的数字电压表的工作原理 本文主 要描述采用 AT89S51 芯片和 ADC0809 芯片来完成一个简易的数字电压表 能够对输入的 0 5 V 的模拟直流电压进行测量 并通过一个 4 位一体的 7 段 LED 数码管进行显示 测 量误差约为 0 02 V 该电压表的测量电路主要由三个模块组成 A D 转换模块 数据处 理模块及显示控制模块 A D 转换主要由芯片 ADC0809 来完成 它负责把采集到的模拟 量转换为相应的数字量再传送到数据处理模块 数据处理则由芯片 AT89S51 来完成 其 负责把 ADC0809 传送来的数字量经一定的数据处理 产生相应的显示码送到显示模块进 行显示 另外它还控制着 ADC0809 芯片的工作 显示模块主要由 7 段数码管及相应的驱 动芯片 74HC245 组成 显示测量到的电压值 关键词 7 段数码管 ADC0809 芯片 简易数字电压表 第一章实现方案第一章实现方案 本系统采用 AT89S51 单片机芯片配合 ADC0809 模 数转换芯片构成一个简易的数字 电压表 原理电路如图 1 1 所示 该电路通过 ADC0809 芯片采样输入口 IN0 输入的 0 5 V 的模拟量电压 经过模 数转换后 产生相应的数字量经过其输出通道 D0 D7 传送给 AT89S51 芯片的 P0 口 AT89S51 负责把接收到的数字量经过数据处理 产生正确的 7 段 数码管的显示段码 并通过其 P1 口经驱动芯片 74HC245 驱动 再传送给数码管 同时 它还通过其三位 I O 口 P3 0 P3 1 P3 2 产生位选信号 控制数码管的亮灭 另外 AT89S51 还控制着 ADC0809 的工作 其 ALE 管脚为 ADC0809 提供了 1MHz 工作的时钟脉冲 P2 3 控制 ADC0809 的地址锁存端 ALE P2 4 控制 ADC0809 的启动端 START P2 5 控 制 ADC0809 的输出允许端 OE P3 7 控制 ADC0809 的转换结束信号 EOC 系统框图如 图 1 2 所示 图 1 1 电路原理图 图 1 2 系统框图 1 11 1 硬件选择方案 硬件选择方案 一 所需元器件 1 AT89S51 芯片 1 块 2 ADC0809 芯片 1 块 3 74HC245 芯片 2 块 4 4 位一体数码 1 个 5 6MHz 晶振 1 个 6 33pF 电容 2 个 7 0 1uF 滤波电容 2 个 8 10uF 电解电容 1 个 9 按键开关 1 个 10 发光二极管 1 个 11 4 7K 精密电位器 1 个 12 510 电阻 12 个 13 8 2K 电阻 1 个 14 10K 电阻 1 个 15 导线 若干 1 21 2 主要元器件的介绍 1 1 模数转换芯片模数转换芯片 ADC0809ADC0809 ADC0809 是典型的 8 位 8 通道逐次逼近式 A D 转换器 其实物如图 1 3 所示 它可以和微 型计算机直接接口 ADC0809 转换器的系列芯片是 ADC0808 可以相互替换 图 1 3 ADC0809 实物图 1 1 ADC0809ADC0809 内部逻辑结构 图 1 4 ADC0809 的内部逻辑结构及引脚图 ADC0809 的内部逻辑结构如图 1 4 所示 图中多路模拟开关可选通 8 路模拟通道 允许 8 路模 拟量分时输入 并共用一个 A D 转换器进行转换 地址锁存与译码电路完成对 A B C 三个地址位 进行锁存与译码 如表 1 1 所示 表 1 1 ADC0809 通道选择表 C ADDC B ADDB A ADDA 选择的通道 000IN0 001IN1 0100IN2 011IN3 100IN4 101IN5 110IN6 111IN7 2 2 ADC0809ADC0809 的引脚 ADC0809 芯片为 28 引脚双列直插式封装 其引脚排列如图 1 4 所示 1 IN0 IN7 8 路模拟量输入通道 2 A B C 模拟通道地址线 这 3 根地址线用于对 8 路模拟通道的选择 其译码关系如表 1 1 所示 其中 A 为低地址 C 为高地址 引脚图中为 ADDA ADDB 和 ADDC 3 ALE 地址锁存允许信号 对应 ALE 上跳沿 A B C 地址状态送入地址锁存器中 4 START 转换启动信号 START 上升沿时 复位 ADC0809 START 下降沿时启动芯片 开始进 行 A D 转换 在 A D 转换期间 START 应保持低电平 本信号有时简写为 ST 5 D7 D0 数据输出线 为三态缓冲输出形式 可以和单片机的数据线直接相连 D0 为最低位 D7 为最高 6 OE 输出允许信号 用于控制三态输出锁存器向单片机输出转换得到的数据 OE 0 输出数 据线呈高阻 OE 1 输出转换得到的数据 7 CLK 时钟信号 ADC0809 的内部没有时钟电路 所需时钟信号由外界提供 因此有时钟信号 引脚 通常使用频率为 500KHz 的时钟信号 8 EOC 转换结束信号 EOC 0 正在进行转换 EOC 1 转换结束 使用中该状态信号即可作为查 询的状态标志 又可作为中断请求信号使用 9 Vcc 5V 电源 GND 地 10 Vref 参考电压 参考电压用来与输入的模拟信号进行比较 作为逐次逼近的基准 其典型 值为 5V Vref 5V Vref 0V 3 3 ADC0809ADC0809 的工作原理 首先输入 3 位地址 并使 ALE 1 将地址存入地址锁存器中 此地址经译码选通 8 路模拟输入 之一到比较器 START 上升沿将逐次逼近寄存器复位 下降沿启动 A D 转换 之后 EOC 输出信号变 低 指示转换正在进行 直到 A D 转换完成 EOC 变为高电平 指示 A D 转换结束 结果数据已存 入锁存器 这个信号可用作中断申请 当 OE 输入高电平时 输出三态门打开 转换结果的数字量输 出到数据总线上 注意 ALE 信号常与 START 信号连在一起 这样连接可以在信号的前沿写入地址信号 在其后 沿启动 A D 转换 图 1 5 为 ADC0809 信号的时序配合图 图 1 5 ADC0809 信号的时序配合 2 2 数据处理及控制芯片 AT89S51AT89S51 AT89S51 是美国 ATMEL 公司生产的低功耗 高性能 CMOS 8 位单片机 图 1 6 和 1 7 分别为其实 物图和内部总体结构图 AT89S51 片内含有 4k 字节 Flash 闪速存储器 128 字节内部 RAM 32 个 I O 口线 看门狗 WDT 两个数据指针 两个 16 位定时 计数器 一个 5 向量两级中断结构 一个 全双工串行通信口 片内振荡器及时钟电路 同时 S51 可降至 0Hz 的静态逻辑操作 并支持两种软 件可选的节电工作模式 空闲方式停止 CPU 的工作 但允许 RAM 定时 计数器 串行通信口及中断 系统继续工作 掉电方式保存 RAM 中的内容 但振荡器停止工作并禁止其它所有部件工作直到下一 个硬件复位 由于将多功能 8 位 CPU 和闪烁存储器组合在单个芯片中 ATMEL 的 AT89S51 是一种高 效微控制器 为很多嵌入式控制系统提供了一种灵活性高且价廉的方案 图 1 6 AT89S51 实物图 1 1 主要性能参数 与 MCS 51 产品指令系列完全兼容 4K 字节在系统编程 ISP Flash 闪速存储器 1000 次擦写周期 4 0 5 5 V 工作电压范围 全静态工作模式 0Hz 33MHz 三级程序加密锁 128 字节内部 RAM 32 个可编程 I O 口线 2 个 16 位的定时 计数器 6 个中断源 图 1 7 AT89S51 芯片内部总体结构图 全双工串行 UART 通道 低工耗空闲和掉电模式 中断可从空闲模式唤醒系统 看门狗 WDT 及双数据指针 掉电标识和快速编程特性 灵活的在系统编程 ISP 字节或页写模式 2 2 AT89S51AT89S51 的引脚 AT89S51 芯片为 40 引脚双列直插式封装 其引脚排列如图 1 8 所示 图 1 8 AT89S51 的引脚图 5 P2 口 P2 口是一个内部提供上拉电阻的 8 位双向 I O 口 P2 口的输出缓冲器可驱动 4 个 TTL 逻辑门电路 对 P2 口管脚写入 1 后 被内部上拉电阻拉高 可用作输入 P2 口被外部下拉 为低电平时 将输出电流 这是由于内部接有上拉电阻的缘故 P2 口当用于外部程序存储器或 16 位地址外部数据存储器进行存取时 P2 口输出地址的高八位 在访问 8 位地址外部数据存储器时 P2 口线上的内容 在整个访问期间不改变 P2 口在 FLASH 编程和校验时接收高八位地址信号和控 制信号 6 P3 口 P3 口是一个内部提供上拉电阻的 8 位双向 I O 口 P3 口的输出缓冲器可驱动 4 个 TTL 逻 辑门电路 对 P3 口管脚写入 1 后 被内部上拉电阻拉高 可用作输入 P3 口被外部下拉为低电 平时 将输出电流 这是由于内部接有上拉电阻的缘故 P3 口除了一般 I O 线的功能外 还具有更 为重要的第二功能 如表 1 3 所示 P3 口同时为 FLASH 编程和编程校验接收一些控制信号 1 V 1 VCC 电源电压 2 GND 接地 3 P0 口 P0 口是一组 8 位漏极开路双向 I O 口 每位引脚可驱动 8 个 TTL 逻辑门路 对 P0 口 的管脚写 1 时 被定义为高阻抗输入 在访问外部数据存储器或程序存储器时 它可以被定义 为数据总线和地址总线的低八位 在 FLASH 编程时 P0 口作为原码输入口 当 FLASH 进行校验时 P0 输出原码 此时 P0 外部必须接上拉电阻 4 P1 口 P1 口是一个内部提供上拉电阻的 8 位双向 I O 口 P1 口的输出缓冲器可驱动 4 个 TTL 逻辑门电路 对 P1 口管脚写入 1 后 被内部上拉电阻拉高 可用作输入 P1 口被外部下 拉为低电平时 将输出电流 这是由于内部接有上拉电阻的缘故 在 FLASH 编程和校验时 P1 口 作为低八位地址接收 P1 口还具有第二功能 如表 1 2 所示 表 1 2 P1 口的第二功能 端口引脚第二功能 P1 5 MOSI 用于 ISP 编程 P1 6 MISO 用于 ISP 编程 P1 7 SCK 用于 ISP 编程 表 1 3 P3 口的第二功能 端口引脚第二功能 P3 0 RXD 串行输入口 P3 1 TXD 串行输出口 P3 2 INTO 外部中断 0 P3 3 INT1 外部中断 1 P3 4 T0 定时器 0 外部输入 P3 5 T1 定时器 1 外部输入 P3 6 WR 外部数据存储器写选通 P3 7 RD 外部数据存储器读选通 7 RST 复位输入 当振荡器复位器件时 要保持 RST 脚两个机器周期的高电平时间 8 ALE RPOG 当访问外部存储器时 地址锁存允许的输出电平用于锁存地址的地位字节 在 FLASH 编程期间 此引脚用于输入编程脉冲 在平时 ALE 端以不变的频率周期输出正脉冲信号 此 频率为振荡器频率的 1 6 因此它可用作对外部输出的脉冲或用于定时目的 然而要注意的是 每 当用作外部数据存储器时 将跳过一个 ALE 脉冲 如想禁止 ALE 的输出可在 SFR8EH 地址上置 0 此 时 ALE 只有在执行 MOVX MOVC 指令是 ALE 才起作用 另外 该引脚被略微拉高 如果微处理器 在外部执行状态 ALE 禁止 置位无效 9 PSEN 外部程序存储器的选通信号 在由外部程序存储器取指期间 每个机器周期两次 PSEN 有效 但在访问外部数据存储器时 这两次有效的信号将不出现 10 EA VPP 当保持低电平时 则在此期间外部程序存储器 0000H FFFFH 不管是否有内 部程序存储器 注意加密方式 1 时 EA 将内部锁定为 RESET 当 EA 端保持高电平时 此间内部程 序存储器 在 FLASH 编程期间 此引脚也用于施加 12V 编程电源 VPP 11 XTAL1 片内高增益反向放大器的输入及内部时钟工作电路的输入 12 XTAL2 片内高增益反向放大器的输出端 3 3 AT89S51AT89S51 与 AT89C51AT89C51 的区别 AT89S51 在 AT89C51 的基础上 又增加了许多功能 性能有了较大提升 1 ISP 在线编程功能 这个功能的优势在于改写单片机存储器内的程序不需要把芯片从工作 环境中剥离 是一个强大易用的功能 2 工作频率为 33MHz 大家都知道 89C51 的极限工作频率只有 24M 就是说 S51 具有更高工作频率 从而具有了更快的计算速度 3 具有双工 UART 串行通道 4 内部集成看门狗计时器 不再需要像 89C51 那样外接看门狗计时器单元电路 5 双数据指示器 6 电源关闭标识 7 全新的加密算法 这使得对于 89S51 的解密变为不可能 程序的保密性大大加强 这样就可 以有效的保护知识产权不被侵犯 8 兼容性方面 向下完全兼容 51 全部字系列产品 比如 8051 89C51 等等早期 MCS 51 兼容产 品 在 89C51 上一样可以照常运行 这就是所谓的向下兼容 4 4 AT89S51AT89S51 的复位电路 AT89S51 的复位电路如图 1 9 所示 当单片机一上电 立即复位 另外 如果在运行中 外界干扰 等因素使单片机的程序陷入死循环状态或 跑飞 就可以通过按键使其复位 复位也是使单片机 退出低功耗工作方式而进入正常状态的一种操作 图 1 9 复位电路 电容 C 和电阻 R1 实现上电自动复位 增加按键开关 S 和电阻 R2 又可实现按键复位功能 R2 的 作用是在 S 按下的时候 防止电容 C 放电电流过大烧坏开关 S 的触点 因保证 R1 R2 10 一般取 C 10uF R2 100 R1 8 2K 5 5 AT89S51AT89S51 与 ADC0809ADC0809 的连接 AT89S51 与 ADC0809 的连接电路如图 1 10 所示 AT89S51 与 ADC0809 的连接必须注意处理好 3 个问题 1 在 START 端送一个 100ns 宽的启动正脉冲 2 获取 EOC 端上的状态信息 因为它是 A D 转换的结束标志 3 给 三态输出锁存器 分配一个端口地址 也就是给 OE 端送一个地址译码器的输出信号 图见下页 图见下页 图 1 10 AT89S51 与 ADC0809 的连接电路 3 3 驱动芯片 74HC24574HC245 74HC245 为三态输出的八组总线收发器 在本实验中作为驱动芯片使用 用于驱动数码管的点亮 图 1 11 和图 1 12 分别为其实物图和引脚图 1 A A 总线端 2 B B 总线端 3 G 三态允许端 低电平有效 4 DIR 方向控制端 5 Vcc 电源 6 GND 地 图 1 11 74HC245 的实物图 图 1 12 74HC245 引脚图 4 4 4 4 位一体 7 7 段 LEDLED 数码管 本实验的显示模块主要由一个 4 位一体的 7 段 LED 数码管 SM410564 构成 用于显示测量到的电压 值 它是一个共阳极的数码管 每一位数码管的原理图如图 1 13 所示 每一位数码管的 a b c d e f g 和 dp 端都各自连接在一起 用于接收 AT89S51 的 P1 口产生的显示段码 1 2 3 4 引脚端为其位选端 用于接收 AT89S51 的 P3 口产生的位选码 图 1 14 和图 1 15 分别 为其实物图和引脚图 图 1 13 一位数码管的原理图 图 1 14 SM410564 数码管实物图 3 程序设计 1 1 主程序设计 初始化中主要对 AT89S51 ADC0809 的管脚和数码管的位选及所用到的内存单元 70H 78H 79H 7AH 进行初始化设置 准备工作做好后便启动 ADC0809 对 IN0 脚输入进的 0 5V 电压模拟信号进行数据采集并转换成 相对应的 0 255 十进制数字量 在数据处理子程序中 运用标度变换知识 编写算法将 0 255 十进制数字量转换成 0 00 5 00V 的数据 输出到显示子程序进行显示 整个主程序就是在 A D 转换 数据处理及显示程序循环执行 整个程序流程框图如图 1 16 所 示 图见下页 2 2 各子程序设计 1 1 A DA D 转换子程序 启动 ADC0809 对模拟量输入信号进行转换 通过判断 EOC P3 1 引脚 来确定转换是否完成 若 EOC 为 0 则继续等待 若 EOC 为 1 则把 OE 置位 将转换完成的数据存储到 70H 中 程序流程图如图 1 17 所示 图见下页 图 1 16 主程序流程图 图 1 17 A D 转换程序流程图 2 2 数据处理子程序 程序流程图如图 1 18 所示 图见下页 图见下页 图 1 18 数据处理子程序流程图 3 3 显示子程序 显示子程序采用动态扫描法实现三位数码管的数值显示 测量所得的 A D 转换数据放在 70H 内存 单元中 测量数据在显示时需转换成 10 进制 BCD 码放在 78H 7AH 单元中 寄存器 R1 用作显示数据 地址指针 程序流程图如图 1 19 所示 图 1 19 显示子程序流程图 第二章 系统的测试与结果 1 源程序 ORG 0000H LJMP START ORG 0003H RETI ORG 000BH RETI ORG 0013H RETI ORG 001BH RETI ORG 0023H RETI ORG 002BH RETI ORG 0030H 2 初始化参数 START CLR A SETB P3 7 初始化 EOC CLR P3 0 初始化 LED 位选 全不选中 CLR P3 1 CLR P3 2 MOV P2 A 初始化 P2 口 清除对 ADC0809 的控制信号 MOV 70H A 初始化数据采样后存储空间 MOV 78H A 初始化数据处理后 3 位有效数字的存储空间 78H 最高位 7AH 最低位 MOV 79H A MOV 7AH A MOV A 0FFH 初始化 P0 P1 口 写入高电平 MOV P0 A MOV P1 A 3 主程序 MAIN LCALL AD SUB 调用 A D 转换子程序 开始采样并转换 LCALL TURN SUB 调用数码转换子程序 将采样转换来的 0 255 转换成一一对应的 0 00 5 00 LCALL DISP SUB 调用显示子程序 LJMP MAIN A D 转换子程序 AD SUB CLR A MOV P2 A 初始化 P2 口 清除对 ADC0809 的控制信号 MOV R0 70H LCALL AD ST 调用采样转换子程序 WAIT JB P3 7 DATASAVE 判断采样转换是否完毕 完毕则跳转到 DATASAVE 进行存储 AJMP WAIT 否则继续等待 启动采样 送脉冲时序 AD ST SETB P2 3 ALE 脉冲时序 NOP NOP CLR P2 3 SETB P2 4 START 脉冲时序 上跳清零 下跳开始转换 NOP NOP CLR P2 4 NOP NOP RET 采样转换的数据存储 DATASAVE SETB P2 5 置位 OE 端 允许 ADC0809 输出数据 MOV A P0 将转换的数据存储到 70H 中 MOV R0 A CLR P2 5 CLR A 初始化 P0 P1 P2 口 P0 P1 高电平 P2 低电平 MOV P2 A MOV A 0FFH MOV P0 A MOV P1 A RET 将 0 255 转换为 0 00 5 00 TURN SUB MOV A R0 MOV B 51 DIV AB MOV 78H A 以上这一段是整数部分 个位 放入 78H MOV A B 余数部分放入 A CLR F0 SUBB A 1AH 余数和 51 的一半即 1AH 比较 以便四舍五入 MOV F0 C MOV A 10 MUL AB 余数乘以 10 以便再除以 51 MOV B 51 DIV AB JB F0 LOOP1 判断四舍五入 跳到 LOOP1 是 四舍 ADD A 5 这是 五入 LOOP1 MOV 79H A 十分位 MOV A B 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 7AH A 百分位 RET 显示子程序 DISP SUB MOV R1 78H R1 辅助寄存器 用于存放要显示的数据的地址 初始为最高位 78H CLR A MOV P1 0FFH 初始化 P1 P2 口 P1 高电平 P2 低电平 ANL P2 A LCALL PLAY 调用显示位码子程序 CLR P1 7 显示最高位 个位 后的小数点 SETB P3 0 选中最高位 LED 数码管 LCALL DELAY 调用延迟子程序 CLR P3 0 取消最高位位选 INC R1 提取第二位有效数字 十分位 的数据地址 79H LCALL PLAY 调用显示位码子程序 SETB P3 1 选中第二位 LED 数码管 LCALL DELAY 调用延迟子程序 CLR P3 1 取消第二位位选 INC R1 提取最低位 百分位 的数据地址 7AH LCALL PLAY 调用显示位码子程序 SETB P3 2 选中最低位 LED 数码管 LCALL DELAY 调用延迟子程序 CLR P3 2 取消最低位位选 RET 位码显示 PLAY MOV A R1 送偏移量 MOV DPTR TAB 送表首地址 MOVC A A DPTR 查表得

温馨提示

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

最新文档

评论

0/150

提交评论