




已阅读5页,还剩27页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基 于 单 片 机 的 光 强 检 测 报 警 器 I 摘要摘要 随着电子技术的发展 数字电路应用领域的扩展 现今社会 产品智能化 数字化已成为人们追求的一种趋势 设备的性能 价格 发展空间等备受人们 关注 性能好的电子设备 对外围保护电路要求很高 尤其是精密仪器对光线 要求等设备要求更高 为了延长设备的使用寿命 所以 在企业设备保护中 设计一款智能的光电检测报警电路尤为重要 本设计采用单片机作为数据处理与控制单元 为了进行数据处理 通过光 敏电阻来感应光强弱变化 经过 ADC0809 转换 直接将数字信号送入到单片机 中进行数据处理 单片机数据处理之后 将光照强度发送到 LED 进行显示 并通 过蜂鸣器和 LED 进行声光报警 关键词 单片机 ADC0809 光敏电阻 蜂鸣器 基 于 单 片 机 的 光 强 检 测 报 警 器 II ABSTRACTABSTRACT With the development of electronic technology the expansion of the digital circuit applications today s society the product of intelligent digital has become a trend for people to pursue equipment performance price room for development and so much attention Good performance electronic devices high external protection circuit precision instruments light requirements equipment requirements in order to extend the useful life of equipment Therefore in the protection of business equipment the design of an intelligent photoelectric detector alarm circuit is particularly important This design uses a microcontroller as data processing and control unit for data processing the SCM ADC0809 acquisition photoresistor and 10K resistor voltage divider to sense the light intensity change MCU data processing will be sent when the light intensity to the LED display Sound and light alarm buzzer and LED KeywordsKeywords MCU ADC0809 Photoresistor buzzer 基 于 单 片 机 的 光 强 检 测 报 警 器 III 目录目录 摘要 I ABSTRACT II 第 1 章 引言 1 1 1 课题背景 1 1 2 光强检测的意义与技术发展 1 1 3 课题内容 2 第 2 章 光强检测报警器的设计方案 3 2 1 系统的方案分析 3 2 2 单片机的选型 3 2 3 显示方案选择 4 2 4 AD 转换方案 4 第 3 章 光强检测报警器硬件设计 5 3 1 硬件设计 5 3 2 AT89S52 单片机 6 3 2 1 AT89S52 的引脚 6 3 2 2 AT89S52 的时钟电路 7 3 2 3 AT89S52 的复位电路 8 3 3 ADC0809 电路 9 3 3 1 A D 转换器芯片 ADC0809 简介 9 3 3 2AT89S52 单片机与 ADC0809 的接口 11 3 4 显示电路 12 基 于 单 片 机 的 光 强 检 测 报 警 器 IV 3 5 光强采集电路 13 3 6 键盘电路 14 3 7 控制输出电路 15 第 4 章 系统程序设计 16 4 1 设计思路与流程图 16 4 2ADC 子程序 17 4 3 数据处理程序 18 4 4 显示子函数 19 4 5 按键程序 20 4 6 执行子程序 20 第 5 章 系统调试和功能测试 22 5 1 系统硬件调试 22 5 2 系统软件调试 22 5 3 系统功能测试 23 结束语 25 致谢 26 参考文献 27 附录 电路图 28 附录 PCB 28 基 于 单 片 机 的 光 强 检 测 报 警 器 1 第第 1 1 章章 引言引言 1 11 1 课题背景课题背景 随着电子技术的发展 数字电路应用领域的扩展 现今社会 产品智能化 数字化已成为人们追求的一种趋势 设备的性能 价格 发展空间等备受人们 关注 性能好的电子设备 对外围保护电路要求很高 尤其是精密仪器对光线 要求等设备要求更高 为了延长设备的使用寿命 所以 在企业设备保护中 设计一款智能的光电检测报警电路尤为重要 光强检测报警器主要根据光敏电阻的特性制作的 光敏电阻值随受到的光 照强度的变化而变化 光照强度越大 电阻值越小 将光敏电阻接入电路中 不同光照强度导致光敏电阻值变化 于是光敏电阻上的电压发生变化 导致电 路的输出电压也相应变化 根据电压 光照度函数关系 由电压计算得到光照强 度值 然后以可视化界面形式输出 LED 数码管显示 以供用户查看结果 其中光敏电阻的特性是光敏电阻随受到的光照强度的变化电阻值发生变化 光照强度越强电阻越小 在分压电路中获得电压越低 根据这一特性 结合光 照强度和输出的模拟电压之间的关系 可以得到某一光强度下的对应的模拟电 压 将模拟电压通过 AD 转化器转换为数字电压 以便于计算机处理 然后再 将数字电压转换成光照度 1 21 2 光强检测的意义与技术发展光强检测的意义与技术发展 光是人类生产生活所必须的一种元素 是一种能量的形态 它可以从一个 物体传播到另一个物体 其中无需任何物质作媒介 现在化蔬菜大棚需要控制 光照强度 从而使蔬菜快速正常生长 禽舍需要控制光照强度 使动物健康正 常生长 人们的生活环境 学生的学习环境 办公室 工厂等 需要控制光照强 度 使人们有一个好学习生活环境 但是在工业生产中 光强过强或过弱 就 可能引起生产安全 产品质量 产品产量等一系列问题 因此对光强的检测的 意义就越来越大 光强检测系统在工业生产 科学研究和人们的生活领域中 得到了广泛应用 在工业生产过程中 很多时候都需要对光强进行严格的监控 以使得生产能够顺利的进行 产品的质量才能够得到充分的保证 光强检测报警系统是在嵌入式系统设计的基础上发展起来的 嵌入式系统 虽然起源于微型计算机时代 但是微型计算机的体积 价位 可靠性 都无法 满足广大对象对嵌入式系统的要求 因此 嵌入式系统必须走独立发展道路 这条道路就是芯片化道路 将计算机做在一个芯片上 从而开创了嵌入式系统 独立发展的单片机时代 单片机诞生于二十世纪七十年代末 经历了 SCM MCU 和 SOC 三大阶段 基 于 单 片 机 的 光 强 检 测 报 警 器 2 1 31 3 课题内容课题内容 本课题是基于单片机的光强检测报警器设计 其利用单片机作为系统的主 要控制器 通过光敏电阻和 10K 电阻分压 经过 ADC0809 转换 直接将数字 信号 送入到单片机中进行数据处理 经过一定的控制算法后 通过单片机的 输出 I O 口 来控制蜂鸣器和 LED 灯 达到报警的目的 并通过 LED 显示 达到良好的人机交互 本文运用 AT89S52 单片机作为主控制单元及数据处理单元 控制光敏电 阻检测光强信号 数据处理 发出控制信号对蜂鸣器和 LED 作用 达到报警的 目的 同时实现光强报警和光弱报警功能 实现基本的人机对话功能 显示光 强值所在档位 基 于 单 片 机 的 光 强 检 测 报 警 器 3 第第 2 2 章章 光强检测报警器的设计方案光强检测报警器的设计方案 2 12 1 系统的方案分析系统的方案分析 系统总体框图 如图 2 1 图图 2 12 1 系统总体框图系统总体框图 以 AT89S52 单片机为核心 在单片机内部完成数据的存储及处理功能 通 过数模转换芯片完成模拟信号到数字信号的转换及输入 再将数据存入存储芯 片 在单片机进行数据处理后再对需要显示的数字信号进行译码显示在四位一 体七段数码显示器上 每个芯片的电源处有耦合电容相连 当电容器充电达到 2V 时 此电容就作为电源为电路提供工作电压 单片机的 RESET 口上提供了供 电自启动 在 X1 X2 口上提供了 12MHZ 晶振 以支持单片机的运行与启动 系 统完成了采集功能 存储功能 数据处理功能 测量数据显示功能 达到了设 计的基本要求 2 22 2 单片机的选型单片机的选型 在本设计中单片机是系统的控制核心 因此 单片机的选择 对于所设计 系统的实现以及功能的扩展有着很大的影响 单片机种类很多 在众多 51 系列 单片机中 较为常用的是 ATMEL 公司的 AT89S52 和 AT89S52 单片机 AT89S52 片内 4KROM 是 Flash 工艺的 使用专用的编程器自己就可以随时对 单片机进行电擦除和改写 片内有 128 字节的 RAM AT89S52 已满足本次设 计的要求 同时我们对于这个单片机芯片也较为熟悉 因此 在本次设计中选 用了 ATMEL 公司的 AT89S52 单片机 基 于 单 片 机 的 光 强 检 测 报 警 器 4 2 32 3 显示方案显示方案选择选择 1 七段 LED 数码显示 在单片机系统中 发光二极管 LED 常常作为重要的显示手段 LED 显示 器内部由 7 段发光二极管组成 因此亦称之为七段 LED 显示器 由于主要用于 显示各种数字符号 故又称之为 LED 数码管 每个显示器还有一个圆点型发光 二极管 用于显示小数点 但其显示并不是很直观 同时编程相对复杂 可显 示字符比较少 但成本相对很低廉 2 液晶显示模块芯片 LCD 为英文 Liquid Crystal Display 的缩写 即液晶显示器 是一种数字显 示技术 可以通过液晶和彩色过滤器过滤光源 在平面面板上产生图象 在实 际应用中 用户很少直接设计 LCD 显示器驱动接口 一般是直接使用专用的 LCD 显示驱动器和 LCD 显示模块 其中 LCD 显示模块 LCM Liquid Crystal Display Module 是把 LCD 显示器 背景光源 线路板和驱动集成电路等部件 构成一个整体 作为一个独立的部件使用 具有功能较强 易于控制 接口简 单等优点 在单片机系统中应用较多 而本次选择的 4 位一体的 LED 数码显示模块 具有价格低 功耗低 连接 方便等特点 已经成为单片机应用设计中最常用的信息显示器件了 2 42 4 ADAD 转换方案转换方案 A D 转换采用 ADC0809 ADC0809 由一个 8 路模拟开关 一个地址锁存 与译码器 一个 A D 转换器和一个三态输出锁存器组成 多路开关可选通 8 个模拟通道 允许 8 路模拟量分时输入 共用 A D 转换器进行转换 三态输 出锁器用于锁存 A D 转换完的数字量 当 OE 端为高电平时 才可以从三态 输出锁存器取走转换完的数据 基 于 单 片 机 的 光 强 检 测 报 警 器 5 第第 3 3 章章 光强检测报警器硬件设计光强检测报警器硬件设计 3 13 1 硬件设计硬件设计 根据上述的芯片资料和方案的对照考虑 确定光强检测报警器的实现电路 如图 3 1 所示 图图 3 13 1 系统总体电路图系统总体电路图 在设计中 用了两个主要元件 控制芯片 AT89S52 单片机和 ADC0809 其 中控制芯片 AT89S52 单片机的控制功能能满足电路功能实现的要求 它主要实 现两个功能 1 通过 P3 0 P3 3 对 ADC0809 的引脚 START 和 EOC 的控制来实现模拟 数字转换器 ADC0809 的转换开始和结束 并通过 P3 2 对输出允许信号 OE 的 控制实现控制三态输出锁存器向单片机输出转换得到的数据 最后在模拟数字 转换结束后通过 P1 口从 ADC0809 的数据输出线 D7 D0 把数据采集进来 2 通过 P0 口把采集进来的数据送到数码管的段信号 A B C D E F G DP 并通过 P2 口的 P2 0 控制数码管的位信号 实 现数码管的动态显示 另外模拟数字转换器 ADC0809 实现的功能就是完成对采集进来的模拟信 号的数字转换 电路中 利用 ADC0809 的 IN0 口将模拟数据采集进来 ALE 基 于 单 片 机 的 光 强 检 测 报 警 器 6 地址锁存允许信号和 START 转换启动信号分别与单片机的 P3 3 及 P3 0 连接 以实现对它的控制 进行 A D 转换时 采用查询 EOC 的标志信号来检测 A D 转换是否完毕 若完毕则把数据通过 P1 端口读入 经过数据处理之后在数码管 上显示 3 23 2 AT89S52AT89S52 单片机单片机 89C51 系列单片机最早是由 Intel 公司开发和生产的 Intel 公司在 1980 年 推出 MCS 51 单片机 也称 89C51 单片机 AT89S52 单片机是 ATMEL 公司 1989 年生产的产品 ATMEL 率先把 89C51 内核与 Flash 技术相结合 推出轰 动业界的 AT89 系列单片机 本设计采用 ATMEL 生产的 MCS 51 系列的 AT89S52 单片机芯片作为主芯 片 MCS 51 单片机所占的市场分额很大 在单片机领域影响力很大 几十年 居于单片机领域领头羊地位 其产品大量作为单片机教材范例使用 AT89S52 是一种带 4K 字节闪烁可编程可擦除只读存储器 FPEROM Flash Programmable and Erasable Read Only Memory 的低电压 高性能 CMOS 8 位微处理器 俗称单片机 该单片机片内含 4k bytes 的可反复擦写的 Flash 只 读程序存储器和 128 bytes 的随机存取数据存储器 RAM 该器件采用 ATMEL 高密度非易失存储器制造技术制造 与工业标准的 MCS 51 指令集和输出管脚 相兼容 由于将多功能 8 位 CPU 和闪烁存储器组合在单个芯片中 ATMEL 的 AT89S52 是一种高效微控制器 为很多嵌入式控制系统提供了一种灵活性高且 价廉的方案 AT89S52 是一个低功耗高性能单片机 40 个引脚 32 个外部双向输入 输 出 I O 端口 同时内含 2 个外中断口 2 个 16 位可编程定时计数器 2 个全 双工串行通信口 AT89S52 可以按照常规方法进行编程 也可以在线编程 其 将通用的微处理器和 Flash 存储器结合在一起 特别是可反复擦写的 Flash 存储 器可有效地降低开发成本 3 2 13 2 1 AT89S52AT89S52 的引脚的引脚 图 3 2 为 AT89C51 的引脚图 基 于 单 片 机 的 光 强 检 测 报 警 器 7 图图 3 23 2 AT89S52AT89S52 芯片引脚芯片引脚 40 只引脚按照其功能来分 可分为 3 类 1 电源及时钟引脚 Vcc Vss XTAL1 XTAL2 2 控制引脚 PSEN ALE EA RESET 3 I O 口引脚 P0 P1 P2 P3 为 4 个 8 位 I O 口的外部引脚 3 2 23 2 2 AT89S52AT89S52 的时钟电路的时钟电路 在 AT89S52 芯片内部有一个高增益反相放大器 其输入端为芯片引脚 XTAL1 输出端为引脚 XTAL2 在芯片的外部通过这两个引脚跨接晶体振荡器 和微调电容 形成反馈电路 就构成了一个稳定的自激振荡器 在由多片单片 机组成的系统中 为了各单片机之间的时钟信号的同步 应当引入唯一的公用 外部脉冲信号作为各单片机的振荡脉冲 时钟电路如图 3 3 所示 基 于 单 片 机 的 光 强 检 测 报 警 器 8 图图 3 33 3 AT89S52AT89S52 时钟电路时钟电路 3 2 33 2 3 AT89S52AT89S52 的复位电路的复位电路 复位是单片机的初始化操作 其主要功能是把 PC 初始化为 0000H 使单片 机从 0000H 单元开始执行程序 除了进入系统的正常初始化之外 当由于程序 运行出错或者操作错误使系统处于死锁状态时 为摆脱困境 也需按复位键以 重新启动 RST 引脚是复位信号的输入端 复位信号是高电平有效 其有效时 间应持续时间 24 个振荡脉冲周期以上 复位操作有上电自动复位和按键手动复 位两种方式 复位电路如图 3 4 所示 图图 3 43 4 AT89S52AT89S52 复位电路复位电路 3 33 3 ADC0809ADC0809 电路电路 3 3 13 3 1 A DA D 转换器芯片转换器芯片 ADC0809ADC0809 简介简介 ADC0809 由一个 8 路模拟开关 一个地址锁存与译码器 一个 A D 转 换器和一个三态输出锁存器组成 多路开关可选通 8 个模拟通道 允许 8 路 89C51 R1 5V R2K RS T 89C51 R1 RST 5VC1 a 内部时钟 b 外部时钟 基 于 单 片 机 的 光 强 检 测 报 警 器 9 模拟量分时输入 共用 A D 转换器进行转换 三态输出锁器用于锁存 A D 转 换完的数字量 当 OE 端为高电平时 才可以从三态输出锁存器取走转换完的 数据 ADC0809 的引脚图如图 3 5 所示 图图 3 53 5 ADC0809ADC0809 引脚图引脚图 1 ADC0809 的内部结构 ADC0809 的内部逻辑结构图如图 3 6 所示 图图 3 63 6 ADC0809ADC0809 内部逻辑结构内部逻辑结构 基 于 单 片 机 的 光 强 检 测 报 警 器 10 图 3 6 中多路开关可选通 8 个模拟通道 允许 8 路模拟量分时输入 共用 一个 A D 转换器进行转换 这是一种经济的多路数据采集方法 地址锁存与译 码电路完成对 A B C 3 个地址位进行锁存和译码 其译码输出用于通道选择 其转换结果通过三态输出锁存器存放 输出 因此可以直接与系统数据总线相 连 表 3 1 为通道选择表 表表 3 13 1 通道选择表通道选择表 2 信号引脚 ADC0809 芯片为 28 引脚为双列直插式封装 其引脚排列见图 3 5 对 ADC0809 主要信号引脚的功能说明如下 IN7 IN0 模拟量输入通道 ALE 地址锁存允许信号 对应 ALE 上跳沿 A B C 地址状态送入 地址锁存器中 START 转换启动信号 START 上升沿时 复位 ADC0809 START 下 降沿时启动芯片 开始进行 A D 转换 在 A D 转换期间 START 应保持 低电 平 本信号有时简写为 ST A B C 地址线 通道端口选择线 A 为低地址 C 为高地址 引脚 图中为 ADDA ADDB 和 ADDC 其地址状态与通道对应关系见表 9 1 CLK 时钟信号 ADC0809 的内部没有时钟电路 所需时钟信号由外界 提供 因此有时钟信号引脚 通常使用频率为 500KHz 的时钟信号 EOC 转换结束信号 EOC 0 正在进行转换 EOC 1 转换结束 使用 中该状态信号即可作为查询的状态标志 又可作为中断请求信号使用 D7 D0 数据输出线 为三态缓冲输出形式 可以和单片机的数据线直 接相连 D0 为最低位 D7 为最高 OE 输出允许信号 用于控制三态输出锁存器向单片机输出转换得到的 数据 OE 0 输出数据线呈高阻 OE 1 输出转换得到的数据 Vcc 5V 电源 基 于 单 片 机 的 光 强 检 测 报 警 器 11 Vref 参考电源参考电压用来与输入的模拟信号进行比较 作为逐次逼 近的基准 其典型值为 5V Vref 5V Vref 5V 3 3 2AT89S523 3 2AT89S52 单片机与单片机与 ADC0809ADC0809 的接口的接口 ADC0809 与 AT89S52 单片机的连接如图 3 7 所示 图图 3 73 7 ADC0809ADC0809 与与 MCS 51MCS 51 单片机的连接电路单片机的连接电路 电路连接主要涉及两个问题 一是 8 路模拟信号通道的选择 二是 A D 转 换完成后转换数据的传送 模拟通道选择信号 A B C 分别接 P3 4 P3 5 P3 6 而地址锁存允许信 号 ALE 由 P3 1 控制 则 8 路模拟通道的地址为 0FEF8H 0FEFFH START 信 号接由 P3 0 控制 另外参考电压直接利用本系统的 Vcc 因此要求 Vcc 为标准的 5V 电压 3 43 4 显示电路显示电路 显示电路采用 4 位一体的数码管来实现 数码管动态显示介面是单片机中应用最为广泛的一种显示方式之一 动态 驱动是将所有数码管的 8 个显示笔划 a b c d e f g dp 的同名端连在一起 另外为每个数码管的公共极 COM 增加位选通控制电路 位选通由各自独立的 I O 线控制 当单片机输出字形码时 所有数码管都接收到相同的字形码 但 究竟是那个数码管会显示出字形 取决于单片机对位选通 COM 端电路的控制 所以我们只要将需要显示的数码管的选通控制打开 该位元就显示出字形 没 有选通的数码管就不会亮 透过分时轮流控制各个 LED 数码管的 COM 端 就使各个数码管轮流受控显 示 这就是动态驱动 在轮流显示过程中 每位元数码管的点亮时间为 1 2ms 由于人的视觉暂留现象及发光二极体的余辉效应 尽管实际上各位数 码管并非同时点亮 但只要扫描的速度足够快 给人的印象就是一组稳定的显 示资料 不会有闪烁感 动态显示的效果和静态显示是一样的 能够节省大量 基 于 单 片 机 的 光 强 检 测 报 警 器 12 的 I O 埠 而且功耗更低 实现电路如图 3 8 所示 8 段连接单片机的 P1 口 位选通采用 NPN9015 或者 8550 三极管来有效控制它的通断 分别对应单片机的 P2 0 P2 1 P2 2 P2 3 图图 3 83 8 显示电路显示电路 3 53 5 光强采集电路光强采集电路 光强采集 采用光敏电阻进行设计 敏电阻又称光导管 常用的制作材料 为硫化镉 另外还有硒 硫化铝 硫化铅和硫化铋等材料 这些制作材料具有 在特定波长的光照射下 其阻值迅速减小的特性 这是由于光照产生的载流子 都参与导电 在外加电场的作用下作漂移运动 电子奔向电源的正极 空穴奔 向电源的负极 从而使光敏电阻器的阻值迅速下降 采用分压原理 设计电路 基 于 单 片 机 的 光 强 检 测 报 警 器 13 如图 3 9 所示 图图 3 93 9 光强检测电路光强检测电路 3 63 6 键盘电路键盘电路 按键部分实现的主要原理是单片机读取与按键相连接的 I O 口状态 来判 定按键是否按下 达到系统参数设置的目的 键盘在单片机应用系统中的作用 是实现数据输入 命令输入 是人工干预的主要手段 键盘分两大类 编码键 盘和非编码键盘 编码键盘 由硬件逻辑电路完成必要的键识别工作与可靠性措施 每按一 次键 键盘自动提供被按键的读数 同时产生一个选通脉冲通知微处理器 一 般还具有反弹跳和同时按键保护功能 这种键盘容易使用 但硬件比较复杂 对于主机任务繁重的情况 采用 8279 可编程键盘管理接口芯片构成编码式键盘 系统是很实用的方案 非编码键盘 只简单地提供键盘的行列与矩阵 其他操作如按键的识别 决定按键的读数等都靠软件完成 故硬件设计较为简单 但占用 CPU 较多时间 非编码键盘有 独立式按键结构 矩阵式按键结构两种 矩阵式按键结构适用于按键数量较多的场合 由行线和列线组成 按键位 于行列的交叉点上 矩阵键盘工作的原理 行线通过上拉电阻接到 5V 上 无 按键 行线处于高电平状态 有键按下 行线电平状态将由与此行线相连的列 线电平决定 列线电平为低 则行线电平为低 列线电平为高 则行线电平为 高 矩阵式按键结构的优点就是节约单片机 I O 口 适用于按键比较多的场合 独立式按键结构 独立式按键就是按键相互独立 每个按键单独占用一根 I O 口线 每根 I O 口线的按键的工作状态 不会影响其他 I O 口线上的工作状 态 各按键开关均需要采用了上拉电阻 是为了保证在按键断开时 各 I O 有 确定的高电平 当输入口线内部已有上拉电阻 外电路的上拉电阻可省去 因 此 通过检测输入线的电平状态就可以很容易判断是哪个按键被按下了 优点 电路配置灵活 软件结构简单 缺点 每个按键需占用一根I O口线 在按键数量较多时 I O口浪费大 电路结构显得复杂 因此 此键盘适用于按 键较少或操作速度较高的场合 在本设计当中 由于只需要四个按键 所以采 用独立式键盘结构 电路连接图如图3 10所示 基 于 单 片 机 的 光 强 检 测 报 警 器 14 图图 3 103 10 键盘电路键盘电路 3 73 7 控制输出电路控制输出电路 控制输出采用 3 个不同颜色的 LED 灯 进行显示报警 如下图 3 11 图图 3 113 11 LEDLED 灯报警灯报警 报警电路实现的是当环境温度值超过系统设置的上限值或者小于系统设置 的下限值时 都将通过I O口驱动蜂鸣器 进行蜂鸣器报警 而单片机I O口输 出的电流无法直接驱动蜂鸣器 所以设计了蜂鸣器驱动电路 具体电路连接如 图3 12所示 图图3 123 12 蜂鸣器电路蜂鸣器电路 基 于 单 片 机 的 光 强 检 测 报 警 器 15 第第 4 4 章章 系统程序设计系统程序设计 本部分详细介绍了基于 AT89S52 单片机的光强检测报警器的软件设计 根 据系统功能 可以将系统设计分为若干个子程序进行设计 如光强采集子程序 数据处理子程序 显示子程序 执行子程序 采用 Keil uVision3 集成编译环境 和汇编语言来进行系统软件的设计 本章从设计思路 软件系统框图出发 先 介绍整体的思路后 再逐一分析各模块程序算法的实现 最终编写出满足任务 需求的程序 4 14 1 设计思路与流程图设计思路与流程图 系统要完成光强检测报警器 需要实现光强信号的采集与 A D 转换 数据 处理 数据显示 数据输出等基本功能 从功能上可将其分为光强信号采集及 A D 转换 数据处理 人机交互 执行四大部分进行设计 软件系统框图如图 4 1 所示 数据处理 子程序 人机交互 子程序 程序 光强采 集子程序 控制执行 子程序 图图 4 14 1 软件系统框图软件系统框图 光强信号采集子程序 主要完成光强信号采集与 A D 功能 采集子程序主 要包括单片机给 ADC0809 写命令 单片机 ADC0809 写数据 单片机从 ADC0809 读数据等部分 数据处理子程序 当单片机收到温度传感器发送的温度数据后 数据处理 子程序对该数据进行处理 主要是把采集到的二进制的温度数据转换成十进制 温度数据 人机交互子程序包括按键子程序 LED 显示子程序 LED 显示子程序的功 能是 实现将数据处理后的十进制光强数据 使用 LED 显示出来 基 于 单 片 机 的 光 强 检 测 报 警 器 16 执行子程序 该子程序所实现的功能 是把程序设置的系统光强限定值与 数据处理子程序处理后的当前光强值进行比较 根据比较的结果 执行单片机 的 I O 口输出的状态 控制 LED 灯与蜂鸣器 主程序流程图如图 4 2 所示 光强限值 设置子程 序 光强采集 子程序 执行子程 序 显示子程 序 数据处理 子程序 设置键按下 N Y 初始化 采集光强 N Y 开始 返 回 图图 4 24 2 主程序流程图主程序流程图 4 2ADC4 2ADC 子程序子程序 模 数 A D 转换测量子函数用来控制对 ADC0809 的模拟输入电压进行 A D 转换 并将对应的数值移入内存单元 其程序流程如图 4 3 基 于 单 片 机 的 光 强 检 测 报 警 器 17 开始 启动一次转 换 A D 转换结束 EOC 1 N Y 取数据 OE 1 返回 图图 4 34 3 A DA D 转换测量子函数流程图转换测量子函数流程图 ALE 为地址锁存允许输入线 高电平有效 ST 为转换启动信号 当 ST 上 跳沿时 所有内部寄存器清零 下跳沿时 开始进行 A D 转换 在转换期间 ST 应保持低电平 EOC 为转换结束信号 当 EOC 为高电平时 表明转换结束 否则 表明正在进行 A D 转换 OE 为输出允许信号 用于控制三条输出锁存 器向单片机输出转换得到的数据 OE 1 输出转换得到的数据 OE 0 输 出数据线呈高阻状态 当 EOC 变为低电平时 这时给 OE 为高电平 转换的数 据就输出给单片机了 ADC0809 进行 A D 转换时 通过 ALE 为高电平 使输入有效 然后 ALE 改为低电平 锁存地址 地址锁存后将 ST 置高电平 使 ADC0809 内部寄存器 清零 再 ST 置高电平 芯片开始进行 A D 转换 当 EOC 为高时 转换结束 这时把 OE 置为 1 将转换成功的数据送给单片机 完成一次模 数转换 4 34 3 数据处理程序数据处理程序 设置分辨率为 8 位转化后得到的数据 进行相应的处理 系统根据数据情 况进行控制处理 光强信号的采集与 A D 转换 并把数据传递给单片机 并保存起来 数据 处理时 把数据取出来 放在一个整型变量中 首先取出整数部分进行处理 求出数据十进制表示时的百位 十位及个位 再求小数部分数据计算流程图如 图 4 4 所示 基 于 单 片 机 的 光 强 检 测 报 警 器 18 整数部分 计算程序 保存数据 小数数据 计算程序 保存数据 1 开始 返回 图图 4 44 4 光强值计算程序流程图光强值计算程序流程图 整数寄存 器 除以 100 商存入百 位寄存器 余数存入 整数寄存 器 除以 10 商存入十 位寄存器 余数存入 个位寄存 器 小数寄存 器 把小数部 分逐次与 00H 0FH 比较 若相等时 进行相应 置位 保 存 整数寄存 器 返 回 返 回 开始 开始 图图 4 54 5 整数计算子程序流程图整数计算子程序流程图 图图 4 64 6 小数计算子程序流程图小数计算子程序流程图 4 44 4 显示子函数显示子函数 因为显示用到 4 个 LED 数码管 考虑到 AT89S52 的 I O 口不足 所以采 用采用动态扫描法实现 4 位数码管的数值显示 通过控制 P3 口的输出数值控制 LED 亮与不亮 从而达到动态显示 节省 I O 口的目的 测量所得的 A D 转换 数据放在定义的 ad data 内存单元中 测量所得的 A D 数据在显示时需要经过 转换变成十进制 BCD 码 4 54 5 按键程序按键程序 在本设计当中 当按键被按下时 I O 口电平为低 松开时 I O 口电平为 基 于 单 片 机 的 光 强 检 测 报 警 器 19 高 按键扫描程序通过读取 I O 口的电平即可知道对应按键的状态 按键的抖动时间的长短由按键的机械特性决定 一般为 5 10ms 这是一个 很重要的参数 抖动过程引起电平信号的波动 有可能令 CPU 误解为多次按键 操作 从而引起误处理 22 为了确保 CPU 对一次按键动作只确认一次按键 提 高按键处理的可靠性 应在程序中做按键消抖处理 按键的消抖 通常有软件 硬件两种消除方法 硬件消抖主要是采用滤波 电路消除干扰 需要消耗大量硬件 成本比较高 只适用于按键数目较少的情 况 如果按键较多 硬件消抖无法达到预期效果 所以通常采用软件消抖 软 件消抖的常用方法是软件延时 本系统采用软件消抖 当单片机第一次检测到 有键按下时 即检测到与按键连接的 I O 口为低电平是 等待 10ms 再去确认 该 I O 口是否仍旧为低电平 如果还是低电平 就一般的机械按键而言 已经 是出于稳定期了 按键的抖动被消除了 如果 10ms 之后 I O 口不为低电平 则 说明是干扰信号 而不是按键被按下 在软件编写上 可采用查询方式 也可 采用中断方式 本系统采用查询方式 4 64 6 执行子程序执行子程序 本部分通过单片机 I O 口输出的高电平或者低电平 LED 和蜂鸣器报警 如图 4 7 示 图图 4 74 7 控制执行子程序流程图控制执行子程序流程图 基 于 单 片 机 的 光 强 检 测 报 警 器 20 上限 限 比较程序 下限 上限报 警 控制降 温 下限报警 控制升温 Y N 延时 延时 Y N 开始 返 回 基 于 单 片 机 的 光 强 检 测 报 警 器 21 第第 5 5 章章 系统调试和功能测试系统调试和功能测试 单片机的系统调试主要包括硬件调试和软件调试 这两者是不能分开的 许多硬件错误是在软件调试中被发现和纠正的 但通常是先排除明显的硬件故 障以后 再和软件结合起来调试以进一步排除故障 可见硬件的调试是基础 如果硬件调试不通过 软件设计则是无从做起 5 15 1 系统硬件调试系统硬件调试 硬件设计方面从布线到焊接安装完成之后 就开始进入硬件调试阶段 首先 我们应该排除元器件失效问题 造成这类错误的原因有两个 一是 元器件买来时就已坏了 另一个是由于焊接错误 造成器件损坏 要排除这种错 误我们可以采取检查元器件与设计要求的型号 规格和连接是否一致 在保证 安装无误后 用替换方法排除错误 其次 排除电源故障问题 在通电前 一定要检查电源电压的幅值和极性 否则很容易造成集成块损坏 加电后检查各插件上引脚的电位 一般先检查 VCC与 GND 之间电位 若在 5V 4 8V 之间属正常 若有高压 联机仿真器调 试时 将会损坏仿真器等 有时会使应用系统中的集成块发热损坏 本次设计的硬件调试顺序为先显示器后键盘 在显示器调试通过后 键盘 调试就比较简单 完全可以借助于显示器 利用程序进行调试 利用开发装置 对程序进行设置断点 通过断点可以检查程序在断点前后的键值变化 这样可 知键盘工作是否正常 硬件上的故障往往由于设计和加工制板过程中工艺性错误所造成的 主要 包括错线 开路 短路 排除的方法是首先将实物连接板认真对照原理图 看 两者是否一致 应特别注意电源系统检查 以防止电源短路和极性错误 并重 点检查系统总线 地址总线 数据总线和控制总线 是否存在相互之间短路或 与其它信号线路短路 必要时利用数字万用表的短路测试功能 可以缩短排错 时间 5 25 2 系统软件调试系统软件调试 在确认过硬件电路连接及焊接工艺无误后 我们就开始采用连击仿真的方 式进行软件调试 一般 我们使用 Keil C51 uVision2 进行仿真调试 Keil C51 是美国 Keil Software 公司出品的 51 系列兼容单片机 C 语言软件 开发系统 它提供了包括 C 编译器 宏汇编 连接器 库管理和一个功能强大 的仿真调试器等在内的完整开发方案 通过一个集成开发环境 uVision 将这 些部份组合在一起 Keil C51 软件提供丰富的库函数和功能强大的集成开发调 试工具 全 Windows 界面 同时 编译后生成的汇编代码效率很高 多数语句 生成的汇编代码很紧凑 易于理解 基 于 单 片 机 的 光 强 检 测
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年天津市和平区面向甘肃白银会宁籍招聘事业单位工作人员模拟试卷及答案详解(新)
- 2025湖北恩施州恩施市福牛物业有限公司招聘17人模拟试卷及答案详解(典优)
- 2025广西柳州市港航发展中心招聘编外合同制工作人员1人模拟试卷参考答案详解
- 2025江苏常州市钟楼金隆控股集团有限公司招聘第一批人员模拟试卷完整答案详解
- 2025人民医院原位新膀胱术构建技术考核
- 2025安徽合肥长虹美菱生活电器有限公司招聘技术支持岗位考前自测高频考点模拟试题带答案详解
- 大学酚课件教学课件
- 张家口市人民医院护理管理沟通协调考核
- 上海市中医院肌肉骨骼系统手术编码考核
- 2025第二人民医院疼痛规范化管理考核
- 2025年“10.13建队日”分批入队活动总结:强国复兴有我争当新时代好少年
- 2024年服装时装项目资金筹措计划书代可行性研究报告
- 施工三方协议7篇
- 2025年数字娱乐行业数字化娱乐内容与虚拟现实体验研究报告
- 水生产处理工三级安全教育(班组级)考核试卷及答案
- 外科学考试大纲
- 3D打印简介课件
- 2025年贵州省贵阳市辅警考试题库(附答案)
- 电厂安全教育培训课件
- 小学科学新教科版三年级上册全册教案(2025秋新版)
- 自然分娩的好处
评论
0/150
提交评论