基于51单片机的通风电路的设计.doc_第1页
基于51单片机的通风电路的设计.doc_第2页
基于51单片机的通风电路的设计.doc_第3页
基于51单片机的通风电路的设计.doc_第4页
基于51单片机的通风电路的设计.doc_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

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

文档简介

1 阳泉职业技术学院阳泉职业技术学院 毕毕 业业 论论 文文 毕业生姓名毕业生姓名 钟毅芳钟毅芳 专业专业 应用电子技术应用电子技术 学号学号 080724015080724015 指导教师指导教师乔永凤乔永凤 所属系 部 所属系 部 信息系信息系 二二 一一一一年五月年五月 2 阳泉职业技术学院阳泉职业技术学院 毕业论文评阅书毕业论文评阅书 题目 题目 基于基于 51 单片机的通风电路设计单片机的通风电路设计 信息信息系系 应用电子技术应用电子技术 专业专业 姓姓 名名 钟毅芳钟毅芳 设计时间 设计时间 2011 年年 3 月月 7 日日 2011 年年 5 月月 6 日日 评阅意见 评阅意见 成绩 成绩 指导教师 指导教师 签 签 字 字 职职 务 务 3 2011 年年月月 日日 阳泉职业技术学院阳泉职业技术学院 毕业论文答辩记录卡毕业论文答辩记录卡 信息信息 系系 应用电子技术应用电子技术 专业专业 姓名姓名 钟毅芳钟毅芳 答答 辩辩 内内 容容 问问 题题 摘摘 要要评评 议议 情情 况况 记录员 记录员 签 签 名 名 成成 绩绩 评评 定定 指导教师评定成绩指导教师评定成绩答辩组评定成绩答辩组评定成绩综合成绩综合成绩 注 评定成绩为注 评定成绩为 100 分制 指导教师为分制 指导教师为 30 答辩组为 答辩组为 70 4 专业答辩组组长 专业答辩组组长 签名 签名 2011 年年 月月 日日 目录 中文摘 要 3 英文摘要 4 引 言 5 1方案的选择及认证 6 1 1电源方案选择 6 1 2测温传感器模块 6 1 3显示模块 7 1 4 电机驱动模块的选择 7 2 硬件系统设计与电路设计 7 2 1 通风电路组成框图 8 2 2 STC89C51 单片机硬件结构 8 2 3 最小应用系统设计 8 2 3 1 时钟电路 9 2 3 2 复位电路 10 2 4 温度测量电路单元模块设计 10 2 5 电机驱动单元模块设计 12 2 6液晶 LCD1602 显示模块硬件电路设计 14 3 软件设计 14 3 1 软件程序设计 14 3 2 主程序流程图 14 3 3 读取温度流程图 15 3 4温度报警控制电机流程图 16 3 5液晶 LCD1602 显示温度 17 3 6报警温度上下限设置和按键处理 18 结论 19 谢辞 19 参考文献 20 附件 1 通风电路主板 串口的原理图 21 附件 2 通风电路主板 串口的 PCB 图 22 附件 3 实物图 23 附件 4 程序清单 23 5 基于 51 单片机的通风电路设计 摘摘 要要 本设计采用 STC89S51 单片机为控制核心 电机的硬件驱动采用 ULN2003 芯片 由单片机输出信号控制电机转动 利用温度传感器模块实现智 能检测当前环境温度 整个系统的电路结构简单 可靠性高 设计测试结果满 足要求 设计原理简明 方案正确 关键词 关键词 通风系统 STC89S51 DS18B20 ULN2003驱动 自动测温 6 Design of analog bus stop system Based on single chip body bus campaign Major of Applied Electronic Technology Information and Engineering College Wanghui Abstract The design for the control of single chip core STC89C51 electrical hardware drivers using the ULN2003 chip single chip output by the PWM control of motor speed the use of infrared detection module bus intelligent automatic tracing the circuit structure of the whole system is simple high reliability Experimental test results meet the requirements design principles of simplicity the program correctly Keyword Intelligent ventilation system STC89S51 DS18B20 ULN2003 Automatic temperature 7 引引 言言 随着人们生活水平的不断提高 单片机控制无疑是人们追求的目标之一 它 所给人带来的方便也是不可否定的 其中智能通风系统就是一个典型的例子 但人们对它的要求越来越高 要为现代人工作 科研 生活 提供更好的更方 便的设施就需要从属于单片机技术入手 一切向着数字化控制 智能化控制方 向发展 本设计所介绍的液晶温度控制直流电机与传统的手动控制直流电机及测温电路 相比 具有读数方便 显示的信息比较多 测温范围广 测温比较准确 实现 了智能化 其输出温度采用液晶 1602 显示 主要用于对测温比较准确的场所 或科研实验室使用 该设计控制器使用单片机 STC89S51 测温传感器使用 DS18B20 用液晶芯片 LCD1602 实现温度显示 能准确到小数点后一位达到以上 要求 单片机技术已经普及到我们生活 工作 科研 各个领域 已经成为一种比较 成熟的技术 本文主要介绍了一个基于 STC89S51 单片机的测温控制电机风扇 系统 详细描述了利用温度传感器 DS18B20 开发测温系统的过程 重点对传感 器在单片机下的硬件连接 软件编程以及各模块系统流程进行了详尽分析 对 各部分的电路也一一进行了介绍 该系统可以方便的实现实现温度采集和显示 并可根据需要发光报警温度 它使用起来相当方便 具有精度高 量程宽 灵 敏度比较高 体积小 功耗低环保实惠廉价等优点 适合于我们日常生活和工 农业生产中的温度测量 也可以当作温度处理模块嵌入其它系统中 作为其他 主系统的辅助扩展 DS18B20 与 STC89S51 结合实现最简温度检测系统和具有 智能化的控制风扇的开启与关闭 该系统结构简单 抗干扰能力强 适合于恶 劣环境下进行现场温度测量 有广泛的应用前景 8 1 1 方案的选择方案的选择及认证及认证 1 11 1 电源方案选择电源方案选择 由于本系统需要 5V 电源供电 我们考虑了如下几种方案为系统供电 方案 1 采用 4 节 1 5V 干电池供电 电压达到 12V 经 7805 稳压后给直流 电机供电及单片机系统和其他芯片供电 由于干电池电量有限 使用大量的干 电池将会给系统调试带来不便 而且电池对环境产生污染源 因此 我们放弃 了这种方案 方案 2 采用变压器整流滤波再经过 7805 稳压稳定后再给直流电机供电 及单片机和其他芯片供电 此方案是自制一个 5v 电源 电路比较简单 而 且元件也比较廉价 电路板小而易携带 因此 这种方案比较可行 因此我们 选择了此方案 综上考虑 我们选择了方案 2 1 11 1测温传感器测温传感器模块模块 方案 1 使用热敏电阻设计 由于本设计是测温控制直流电机电路 可以使用热敏电阻之类的器件利用其感 温效应 在将随被测温度变化的电压或电流采集过来 进行 A D 转换后 就可 以用单片机进行数据的处理 在显示电路上 就可以将被测温度显示出来 这 种设计需要用到 A D 转换电路 感温电路比较麻烦而且测量的精度不够 抗干 扰能力比较差 受各方面因素的影响较多 所以此方案不可取 方案 2 使用 DS18B20 传感器设计 采用 STC89C51 单片机作控制器 温度传感器选用 DS18B20 来对环境温度采集 测温电路由温度传感器 DS18B20 实现 本设计所介绍的 DS18B20 温度采集与传 统的热敏电阻之类的利用感温效应相比 具有温度采集数据处理方便 测温范 围广 测温准确 主要用于对测温比较准确的场所 或科研实验室使用 该设 计控制器使用单片机 STC89S51 测温传感器使用 DS18B20 用 实现温度显示 能准确达到以上要求 故选择方案二 9 1 21 2显示显示模块模块 方案 1 用四位七段数码管 对于数码显示 显示的数据信息比较有限 而且显示的控制比较繁琐 因此我们放弃了这种方案 方案 2 用液晶 LCD1602 显示 可以显示的数据信息比较多 对液晶现实 的控制写入比较简单 而且它的价格然我们接受的起 所以我们选择了方案 2 1 4 电机驱动模块的选择电机驱动模块的选择 方案 1 采用专用芯片 L298N 作为直流电机驱动芯片 L298N 是一个具有高 电压大电流的全桥驱动芯片 它相应频率比较高 一片 L298N 可以分别控 制两个直流电机 而且还带有控制使能端 用该芯片作为电机驱动 操作 方便 稳定性好 性能优良 但芯片比较贵 方案 2 用分立元件制作直流电机驱动电路 由分立元件构成电机驱动电 路 结构简单 价格低廉 在实际应用中比较广泛 但是这种电路工作性能不 够稳定 方案 3 用 ULN2003 反相器作为直流电机驱动芯片 ULN2003 也是一个 7 路 反向器电路 即当输入端为高电平时 ULN2003 输出端为低电平 当输入端为低 电平时 ULN2003 输出端为高电平 具有电流增益高 工作电压高 温度范围宽 带负载能力强等特点 而且价格低廉 因此我们选用了方案 3 能够较好地满足系统的要求 因此我们选择了此方案 2 硬件系统设计与电路设计硬件系统设计与电路设计 硬件设计系统主要包括了测温系统的设计以及单片机应用系统设计 一个单片机应用系统的硬件电路设计主要包含有两部分内容 一是系统扩 展 即单片机内部的功能单元 如 ROM RAM I O 口 定时 计数器 中断系统 等 当不能满足应用系统的要求时 还必须在片外进行扩展 选择适当的芯片 设计相应的电路 二是系统配置 既按照系统功能要求配置外围设备 并要考 虑设计合适的接口电路 10 2 12 1 通风电路组成框图通风电路组成框图 通风系统的控制核心是 STC89S51 单片机 系统由测温模块 直流电机驱动 模块 LCD 显示模块 LED 灯光报警指示模块 电源模块等几部分构成 系统框图如图 2 1 所示 AT89C51 时钟电路 复位电路 LCD1602 液晶显示 温度采集 直流 电机 声光报警 图 2 1 通风系统框图 2 22 2 STC89C51STC89C51 单片机硬件结构单片机硬件结构 STC89C51 单片机是把那些控制应用所必需的基本内容都集成在一个尺寸有 限的电路芯片上 如果按照功能的划分 它主要由微处理器 数据存储器 程 序存储器 并行 I O 口 串行口 定时器 计数器 中断系统及特殊功能寄存器 组成 它们都是通过片内单一总线连接而成 其基本结构仍旧是采用 CPU 加上 外围芯片的传统模式 但对各种功能部件的控制是则采用特殊功能寄存器的集 中控制方式 STC89C51 单片机的硬件结构具有功能部件种类齐全 功能强等特 点 特别值得一提的是该单片机中 CPU 中的位处理器 它实际上是一个完整的 一位微计算机 这个一位微计算机有自己的 CPU 位寄存器 I O 口和指令集 1 位机在开关决策 逻辑电路仿真 过程控制方面非常有效 而 8 位机在数据 采集 运算处理方面有明显的长处 MCS 51 单片机中 8 位机和 1 位机的硬件资 源复合在一起 二者相辅相承 它是单片机技术上的一个突破 这也是 MCS 51 单片机在设计的精妙之处 2 32 3 最小应用系统设计最小应用系统设计 STC89C51 是片内有 ROM EPROM 的单片机 因此 这种芯片构成的最小系统 简单可靠 用 STC89C51 单片机构成最小应用系统时 只要将单片机接上时钟电 路和复位电路即可 如图 2 3 所示 由于集成度的限制 最小应用系统只能用 11 作一些小型的控制单元 其应用特点如下 1 有可供用户使用的大量 I O 口线 2 内部存储器容量有限 3 应用系统开发具有特殊性 图 2 2 STC89C51 单片机最小系统 2 3 12 3 1 时钟电路时钟电路 STC89C51 虽然有内部振荡电路 但要形成时钟 必须外部附加电路 STC89C51 单片机产生时钟的方法有两种 内部时钟方式和外部时钟方式 本设计采用内部时钟方式 利用芯片内部的振荡电路 在 XTAL1 XTAL2 引 脚上外接定时元件 内部的振荡电路便产生自激振荡 本设计采用最常用的内 部时钟方式 即用外接晶体和电容组成的并联谐振回路 振荡晶体频率选择 11 0592MHz 电容值无严格要求 但电容取值对振荡频率输出的稳定性 大小 振荡电路起振速度有少许影响 CX1 CX2 可在 20pF 到 100pF 之间取值 但在 20pF 到 30pF 时振荡器有较高的频率稳定性 所以本设计中 电容选择 22pF 在设计印刷电路板时 晶体和电容应尽可能地靠近单片机芯片 以减少寄 生电容的产生 更好的保证振荡器稳定和可靠地工作 12 2 3 22 3 2 复位电路复位电路 STC89C51 的复位是由外部的复位电路来实现的 复位引脚 RST 通过一个施 密特触发器来抑制噪声 在每个机器周期的 S5P2 复位电路采样施密特触发器 的输出电平一次 然后才能得到内部复位操作所需要的信号 复位电路通常采用上电自动复位和按钮复位两种方式 最简单的上电自动复位电路中上电自动复位是通过外部复位电路的电容充 电来实现的 只要 Vcc 的上升时间不超过 1ms 就可以实现自动上电复位 上电 复位电路见图 2 4 图 2 3 上电复位 2 42 4 温度测量电路单元模块设计温度测量电路单元模块设计 测温所采用的电路如下图 2 5 所示 图 2 4 测温电路原理 我们采用 DS18B20 温度传感器实物如图 2 4 1 所示 13 图 2 4 1 1 ds18b20 的 8 角封装 图 2 4 1 ds18b20 实物 DS18B20 输出地数据格式说明在下图 2 4 2 中具体表现出来 其中 MS 表示数据 的高 8 位 LS 表示数据的低 8 位 由于温度在 0 以上为正温度 而在 0 以 下为负温度 因此在计算温度时必须在温度转换之前应先对正负数进行判别 然后再进行转换 当 S 0 时 表示正数 S 1 时 表示负数 对于负数 在处 理时是采用了 先取反再加一 即将补码转换为原码的方法 同时 为了提高 测量的精度 DS18B20 采用了 12 位数据转换的方式 其中 符号位占 l 位 整 数占 7 位 小数占 4 位 因此 在计算与处理时 还必须将整数和小数分开进 行处理 通过对百分位数据的 四舍五入 处理 其引脚说明如下表 2 4 1 8 引脚 SOIC 封装TO92符号说明 51GND地 42DQ数据输入 输出 常态下高电平 33VDD可选电源 表 2 4 1 DS18B20 的存储器由暂存 RAM 和非易失的 EEPRAM 构成 暂存 RAM 共 9 个存储单元 其结构图如图 2 4 2 所示 暂存 RAM 中 TH TL 配置字节的 拷贝 改变 TH TL 的值 可以改变 DS18B20 的上下限的温度 通过设置配置 字节的第 6 7 位 可完成温度值的分辨率的配置 温度值低字节0 温度值高字节1 TH 用户字节 12 TL 用户字节 23 14 配置字节4 保留字节5 保留字节6 保留字节7 CRC8 CRC 值为前 8 个字节的校验位 温度值的高低字节位结构如表 2 4 2 1 表 2 4 2 1 本通风系统的温度测量温度显示的整数温度值取值时采取 高字节的低三位 低字节的高四位 小数部分 低字节位的低四位 列表查表 完成 DS18B20 操作指令集如下列表 2 4 2 2 命令说明协议总线数据操作 温度转换开始温度转换44H将转换状态发送给主 设备 读寄存器读所有寄存器 包括 CRC 字节 BEH将 9 字节的数据发送 给主设备 写寄存器数据写入寄存器 TH TL 4EH主设备向 ds18b20 发 送 3 字节数 复制将寄存器 TH TL 恢复到 EEPROM 48H无 回调由 EEPROM 向寄 存器恢复 TH TL 和配置寄存器数 据 B8H将恢复状态发送给主 设备 读电源读取电源模式B4H向主设备发送电源状 态 表 2 4 2 2 2 52 5 电机驱动单元模块设计电机驱动单元模块设计 从单片机输出的信号功率很弱 即使在没有其它外在负载时也无法带动电 机 所以在实际电路中我们加入了电机驱动芯片用来提高输出电机信号的功率 从而能够根据实际需要来控制电机转动 根据驱动功率大小以及连接电路的简 化要求我们选择了 ULN2003 芯片 其外形 管脚分布如图 2 7 所示 15 图 2 5 ULN2003 管脚分布图 从图中可以知道 一块 ULN2003 芯片能够驱动两个电机转动 它的使能端 可以外接高低电平 也可以利用单片机进行软件控制 极大地满足各种复杂电 路需要 另外 ULN2003 的驱动功率较大 能够根据输入电压的大小输出不同 的电压和功率 解决负载能力不足的问题 电机驱动电路如下图 2 8 所示 图 2 6 电机驱动电路 ULN2003 的 1 8 个引脚接到单片机上 通过对单片机的编程可以实现直流 电机正停转的功能 16 2 62 6液晶液晶 LCD1602LCD1602 显示模块硬件电路设计显示模块硬件电路设计 图 2 7 通风系统显示图及仿真效果图 3 3 软件设计软件设计 3 13 1 软件程序设计软件程序设计 在进行微机控制系统设计时 除了系统硬件设计外 大量的工作就是如何 根据每个对象的实际需要设计应用程序 在单片机控制系统中 大体上可分为 数据处理 过程控制两个基本类型 数据处理包括 数据的采集 数字处理 数据变换 显示处理等 过程控制程序主要是使单片机按一定的方法进行计算 然后再输出信号 以便控制生产 为了完成上述任务 在进行软件设计时 通常把整个过程分成若干个部分 每一部分叫做一个模块 所谓 模块 实质上就是完成一定功能 相对独立的 程序段 模块程序设计法的主要优点是 1 单个模块比起一个完整的程序易编写及调试 2 模块可以共存 一个模块可以被多个任务在不同条件下调用 3 23 2 主程序流程图主程序流程图 主程序流程图 3 2 如下所示 17 液晶初始化 显示字符串 读取测量温度 按键处理 温度报警判断 结束 延时 开始 图 3 2 程序流程图 3 33 3 读取温度流程图读取温度流程图 测温流程图 3 2 如下 18 开始 DS18B20初始 化故障 DS18B20正常 标志位置0 跳过读取内存 Y N 启动温度转换 DS18B20初始 化 跳过读取内存 读取温度寄存器 读取温度低8位 和高8位 DS18B20正常标 志位置1 结束 读取温度值流程图 开始 读取温度 DS18B20 IS O K 1 N 读取温度发生 变化 刷新显示 显示温度 温度 Signed Temp 35 电机转动 标识绿灯亮 温度 Signed Temp 10 电机转动 标识红灯亮 YY 温度 10 Signed Temp 35 NN 电机慢慢停转 标识 Y 结束 Y Y 图 3 2 读取温度流程图 图 3 2 1 温度报警的流程图 3 43 4温度报警控制电机流程图温度报警控制电机流程图 温度报警控制流程图如图 3 4 报警温度原理图如图 3 4 1 图 3 4 1 温度报警原理图 19 当温度值大于 35 度时 电机转动绿灯闪烁报警 当温度大于 10 度小于 35 度时 电机停止转动 当温度小于 10 度时 电机转动 红灯闪烁报警 3 53 5液晶液晶 LCD1602LCD1602 显示温度显示温度 液晶显示流程图如图 3 5 开始 负数标识置0 温度值取反加1 温度为负数 小数部分查表 高位自加 负数标识置 1 获取温度整数部分 高 位的低三位 低位的高 四位 获取有符号的温度值 忽 略小数位 Y 结束 液晶显示 温度值低位位0 x00 将温度整数部分分为三位 刷新LCD显示 高位为0时不显示 高位为0 且次高位为0时 次高位不显 示 显示负号恰当 显示标题 温度符号 Y 图 3 5 液晶 LCD1602 显示流程图 20 3 63 6报警温度上下限设置和按键处理报警温度上下限设置和按键处理 报警温度上下限设置和按键处理流程图如下 开始 按键是否按下 等待释放 按键是否按下 消抖动 结束 标志位flag加1 Flag 2 Flag 0 Y N 图 3 6 1 按键处理 图 3 6 2 报警温度上下限设置 开始 温度上限加1 K1按下 K2按下 K3按下 K4按下 NNN Y 温度上限减1温度下限加1温度下限减1 YYY 显示温度上下限值 结束 21 结结论 论 本设计通风控制系统经过论证 证明运行可靠 操作方便 节省人力投入 提高了自动化控制水平和工作效率 方便了调试和维护 符合智能通风技术的 要求 真正做到既经济又实用的控制目的 具有推广价值 随着生活水平的提 高 人们对室内空气的要求已从保暖降温发展到要求高品质 在自然通风达不 到要求时 强制通风的空气质量控制系统则成为建筑必不可少的设施 而这方面 我国才刚刚起步 中低端市场更是空白 本设计已成功地应用于车间的通风机 控制中 应用前景广阔 可以大量推广到需要低成本通风系统的场合 如学校 医院 家庭 商场及工厂等 22 致谢 致谢 在这段时间里 乔老师严谨的治学态度和热忱的工作作风令我十分钦佩 她的指导使我们受益匪浅 通过这次毕业设计 使我深刻地认识到学好专业知识的重要性 也理解了 理论联系实际的含义 并且检验了大学三年的学习成果 虽然在这次设计中对 于知识的运用和衔接还不够熟练 但是我将在以后的工作和学习中继续努力 不断完善 这段时间的设计是对过去所学知识的系统提高和扩充的过程 为今 后的发展打下了良好的基础 由于自身水平有限 设计过程中存在了一些不足之处 敬请各位老师批评 指正 参考文献参考文献 1 王靖 胡特 谢玉川等 现代住宅室内通风方式探讨 制冷与空调 2003 2 2 侯哲生 李 聪 张 伏等 基于单片机的通风机控制器的设计 2005 09 13 3 王成福 赵云等 一种简单的实用 LCD 数显温度计 2002 4 宋亚伟 李恒宗 基于 DS18B20 的温度采集控制电路 2008 3 7 9 5 肖晴 液晶显示温度的控制 2005 2 6 沈兰宁 窗户自动控制管理系统的控制与设计 2009 22 7 张菁 基于单片机温度控制系统方案的研究 2007 9 8 党峰 王敬农 高国旺 基于 DS18B20 的数字式温度计的设计 2007 3 23 附件附件 1 1 通风电路主板通风电路主板 串口的原理图 串口的原理图 主板的电路图 24 电源及串口电路图 附件附件 2 2 通风电路主板 串口的通风电路主板 串口的 PCBPCB 图图 附件电路图 4 LCD 显示模块电路 图 25 附件附件 3 3 实物图实物图 附件附件 4 程序清单程序清单 include include define uchar unsigned char define uint unsigned int void delayNOP nop nop 附件电路图 4 LCD 显示模块电路 图 26 nop nop ucharflag 0 按键标识符 sbit DQ P3 3 温度传感器数据口 sbit LCD RS P1 2 sbit LCD RW P1 1 sbit LCD EN P1 0 sbit Forward P1 3 高温报警 sbit Stop P1 1 sbit Reveral P1 5 低温报警 sbit MA P2 5 电机驱动 sbitbeep P2 7 蜂鸣器报警 sbitbutton P2 6 按键 sbitk1 P2 0 sbitk2 P2 1 sbitk3 P2 2 sbitk4 P2 3 ucharcode speak Hot temp ucharcode speak1 cold temp uchar code helloword Wellcome you uchar code helloword1 Temperature test uchar code helloword2 The test is end uchar code Temp Disp Title Current Temp uchar Current Temp Display Buffer TEMP ucharalarm HI LOW ucharalarm temp 2 15 10 uchargao di uchar ng 0 负温度标识符 温度字符 uchar code Temperature Char 8 0 x0C 0 x12 0 x12 0 x0C 0 x00 0 x00 0 x00 0 x00 温度小数位对照表 uchar code df Table 0 1 1 2 3 3 4 4 5 6 6 7 8 8 9 9 当前读取的温度整数部分 uchar CurrentT 0 有符号温度值 char Signed Temp 0 从 DS18B20 读取的温度值 uchar Temp Value 0 x00 0 x00 温度数据备份 uchar Back Temp Value 0 xFF 0 xFF 27 待显示的各温度数位 uchar Display Digit 0 0 0 0 传感器正常标志 bit DS18B20 IS OK 1 voiddisplay alarm temp ucharhigh uchar lowe 延时 1 void DelayXus int x uchar i while x for i 0 i 200 i LCD 忙检测 uchar LCD Busy Check reentrant uchar result LCD RS 0 LCD RW 1 LCD EN 1 delayNOP result bit P0 LCD EN 0 return result 写指令 void Write LCD Command uchar cmd while LCD Busy Check LCD RS 0 LCD RW 0 LCD EN 0 delayNOP P0 cmd delayNOP LCD EN 1 delayNOP LCD EN 0 28 写数据 void Write LCD Data uchar dat while LCD Busy Check LCD RS 1 LCD RW 0 LCD EN 0 P0 dat delayNOP LCD EN 1 delayNOP LCD EN 0 自定义字符写 CGRAM void Write NEW LCD Char uchar i Write LCD Command 0 x40 写 CGRAM for i 0 i 8 i Write LCD Data Temperature Char i 写入温度符号 初始化 void LCD Initialise Write LCD Command 0 x01 DelayXus 5 Write LCD Command 0 x38 DelayXus 5 Write LCD Command 0 x0c DelayXus 5 Write LCD Command 0 x06 DelayXus 5 Write NEW LCD Char 温度符号写入 CGRAM 设置显示位置 29 void Set LCD POS uchar pos Write LCD Command pos 0 x80 延时 2 void Delay uint x while x 初始化 DS18B20 uchar Init DS18B20 uchar status DQ 1 Delay 8 DQ 0 Delay 90 DQ 1 Delay 8 status DQ Delay 100 DQ 1 return status 初始化成功返回 0 读一字节 uchar ReadOneByte uchar i dat 0 DQ 1 nop for i 0 i 1 DQ 1 nop nop if DQ dat 0 x80 30 Delay 30 DQ 1 return dat 写一字节 void WriteOneByte uchar dat uchar i for i 0 i 1 读取温度值 void Read Temperature EA 0 if Init DS18B20 1 DS18B20 故障 DS18B20 IS OK 0 else WriteOneByte 0 xCC 跳过序列号 WriteOneByte 0 x44 启动温度转换 Init DS18B20 WriteOneByte 0 xCC 跳过序列号 WriteOneByte 0 xBE 读取温度寄存器 Temp Value 0 ReadOneByte 温度低 8 位 Temp Value 1 ReadOneByte 温度高 8 位 DS18B20 IS OK 1 EA 1 31 在 LCD 上显示当前温度 void Display Temperature uchar i uchar t 150 延时值 uchar ng 0 负数标识 如果为负数则取反加 1 并设置负数标识 if Temp Value 1 Temp Value 0 Temp Value 0 1 if Temp Value 0 0 x00 Temp Value 1 ng 1 查表得到温度小数部分 Display Digit 0 df Table Temp Value 0 获取温度整数部分 无符号 CurrentT Temp Value 0 获取有符号温度值 忽略小数位 Signed Temp ng CurrentT CurrentT 将整数部分分解为三位待显示数字 Display Digit 3 CurrentT 100 Display Digit 2 CurrentT 100 10 Display Digit 1 CurrentT 10 刷新 LCD 显示缓冲 Current Temp Display Buffer 11 Display Digit 0 0 Current Temp Display Buffer 10 Current Temp Display Buffer 9 Display Digit 1 0 Current Temp Display Buffer 8 Display Digit 2 0 Current Temp Display Buffer 7 Display Digit 3 0 高位为 0 时不显示 if Display Digit 3 0 Current Temp Display Buffer 7 高位为 0 且次高位为 0 时 次高位不显示 if Display Digit 2 0 负数符号显示在恰当位置 32 if ng if Current Temp Display Buffer 8 Current Temp Display Buffer 8 else if Current Temp Display Buffer 7 Current Temp Display Buffer 7 else Current Temp Display Buffer 6 在第一行显示标题 Set LCD POS 0 x00 for i 0 i 16 i Write LCD Data Temp Disp Title i 在第二行显示当前温度 Set LCD POS 0 x40 for i 0 i 16 i Write LCD Data Current Temp Display Buffer i Set LCD POS 0 x4D Write LCD Data 0 x00 Set LCD POS 0 x4E Write LCD Data C 蜂鸣器报警声音 void beept uchari j 70 for i 0 i alarm temp 0 MA 1 转动 Forward Forward Stop 1 Reveral 1 beept Set LCD POS 0 x00 for i 0 i 13 i Write LCD Data speak i Write LCD Command 0 x8f Write LCD Data Y 风扇开启标志 else if Signed Temp alarm temp 1 MA 1 转动 Forward 1 Stop 1 beept Reveral Reveral Set LCD POS 0 x00 for i 0 i 13 i Write LCD Data speak1 i 34 Write LCD Command 0 x8f Write LCD Data Y e

温馨提示

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

评论

0/150

提交评论