基于单片机的电风扇智能控制.doc_第1页
基于单片机的电风扇智能控制.doc_第2页
基于单片机的电风扇智能控制.doc_第3页
基于单片机的电风扇智能控制.doc_第4页
基于单片机的电风扇智能控制.doc_第5页
免费预览已结束,剩余22页可下载查看

下载本文档

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

文档简介

2010届届 分 类 号 TP203 单位代码 10452 本科毕业论文 基于单片机的电风扇智能控制基于单片机的电风扇智能控制 姓 名 学 号 年 级 20062006 专 业 自动化专业自动化专业 系 院 信息学院信息学院 指导教师 2010 年 6 月 12 日 临沂师范学院 2010 届本科毕业论文 I 摘摘 要要 在日常生活中 单片机得到了越来越广泛的应用 特别在小型的自动控制 系统的应用中 本文基于 AT89C51 单片机设计了电风扇自动调温系统 通过单片机的控制我们实现了电风扇的主要功能 当按下开关键时 系统 初始化默认的设定温度为 25 度 如果外界温度高于设定温度电风扇进行运转 如果外界温度高于低于设定温度则风页不转动 同时显示外界的温度 当加减 键同时按下时进入温度设定状态 可以设置所需的温度 并同时显示所设定的 温度 同时按加减键退出设定功能 电风扇的自动控制 让电风扇这一家用电器变的更智能化 克服了普通电 风扇无法根据外界温度自动调节转速困难 智能电风扇的设计具有重要的现实 意义 关键词关键词 AT89C51 单片机 温度传感器 直流电机 临沂师范学院 2010 届本科毕业论文 II Abstract In daily life SCM got more and more widely applied in small system particularly in the application of automatic control system This thesis based on AT89C51 to design thermostat automatically electric system Through the MCU control we realized the fan main function after you press the button the default system initialization temperature is 25 If the temperature higher than outside temperature the fan ran If the temperature is lower than outside temperature the fan doesn t turn and display outside temperature at the same time when press add key and subtract key enter the temperature setting system Then we can set temperature what we needed and display the temperature at the same time We can exit set temperature system by press add key and subtract key at the same time The automatic control make electric fan become more intelligent in the household appliances It overcome the difficulty which cannot according to the temperature outside automatically to adjust the speed of the normal fan Keywords Semperature sensor Single Chip Machine D C electric machine 临沂师范学院 2010 届本科毕业论文 III 目 录 一 自动调温电风扇概论一 自动调温电风扇概论 1 一 自动调温电风扇简介 1 二 自动调温电风扇设计目的 1 二 自动调温电风扇设计原理和具体结构二 自动调温电风扇设计原理和具体结构 2 一 自动调温电风扇结构 2 1 内部结构 2 2 外部结构 2 二 电风扇控制流程图 3 三 主要元器件的工作原理简介 4 1 AT89C51 单片机简介 4 2 直流电机的结构 5 3 LED 显示器 6 4 温度传感器的原理 6 5 直流稳压器 7 三 自动调温电风扇控制系统设计三 自动调温电风扇控制系统设计 8 一 自动调温电风扇的各模块的控制 8 1 AT89C51 部分 8 2 电源转换电路部分 10 3 按键部分 10 4 单片机复位部分 11 5 数模转换部分 11 二 缓冲与保护部分 12 三 自动调温电风扇的整体硬件电路 12 四 软件设计四 软件设计 15 一 主程序设计 15 二 总程序 16 结束语结束语 21 参考文献参考文献 22 谢谢 辞辞 23 临沂师范学院 2010 届本科毕业论文 1 一 自动调温电风扇概论 我们常见的风扇一般只有四 五个风速挡 用的是人工开关 不知室内温 度 只是人为的调节该用哪个挡 而自动调温电风扇这个设计是一新领域 它 用的是在电子行业中应用广泛的 AT89C51 单片机 通过单片机与温度探测器结 合 将其应用于家用电风扇的转速精确控制上 能够有良好的性能 一 自动调温电风扇简介 它使用直流电动机的控制以模拟电路为基础 运算放大器 非线性集成电 路以及数字电路组成 使得对电风扇各挡风量的调节更加细化 使得电风扇的 控制更具人性化 同时它也具有全自动 控制简单 智能化 制作容易 使用 温度传感器 专用控制集成电路和单片机 实现当室温达到自己所设定开启风 扇的温度时 电风扇自动开启 并且可以根据室温变换风速 当室温低于这一 设定温度时 电风扇自动关闭 同时显示当前室内的温度 和自己所设定的温 度 提醒人们合理的使用电风扇 二 自动调温电风扇设计目的 进入 5 月份 天气越来越炎热 尤其到了盛夏 更是酷热难当 目前可供选择 的纳凉工具主要有 空调 普通电风扇 冷风机以及蒲扇 纸扇等等 空调使用 方便 且越来越智能化 但它使用费用高 并且常常给人带来疾病 而电风扇以其 低廉的价格使它的使用极为普遍 人们常常通宵达旦的使用 一旦气温稍有变化 感 冒人数就会急剧增加 冷风机能增强空气的湿度但使用久了 家里电器会受潮 同 时也会让使用者长期裸露在外的关节受到危害 蒲扇和纸扇价格低廉 但不自动 目前使用者微乎其微 在这种情况下 自动调温电风扇应运而生 我们的生活加快 人们需要处理 的事情越来越多 在炎热的夏天 回到家更想好好休息 消除自己一天的工作 疲劳 而自动调温电风扇的设计就解决了这些问题 自动调温电风扇是通过单片机控制来实现直流电动机运转频率的自动调节 从而达到改变风速的目的 此设计用到 AT89C51 单片机 它是把微处理器 存 储器 RAM 和 ROM 输入 输出接口以及定时器 计数器等集成在一起的集成电路 芯片 它与集成电路相结合 组成一个设定温度 感温 控制和输出与一身的 模块 利用单片机 AT89C51 和一些电路对室温进行探测 从而对电风扇进行开 和关的一系列控制 临沂师范学院 2010 届本科毕业论文 2 二 自动调温电风扇设计原理和具体结构 一 自动调温电风扇结构 自动调温电风扇有内部结构和外部结构组成 1 内部结构 内部结构 有集成电路板和直流电机组成 整个部分电路板是重中之中 它上面连接 了有单片机 温度传感器 延时开关电路 按键式电磁开关 LED 显示器 A D D A 转换电路 可控硅触发控制电路 振荡电路 电源电路等 如图 1 所示 图 1 自动调温电风扇内部结构图 2 外部结构 外部结构 由外壳 风扇叶 开关 电源线 网罩 转页组成 如图 2 所示 临沂师范学院 2010 届本科毕业论文 3 图 2 外部结构图 二 电风扇控制流程图 如图 3 所示 图 3 电风扇控制流程图 临沂师范学院 2010 届本科毕业论文 4 三 主要元器件的工作原理简介 1 AT89C51 单片机简介单片机简介 AT89C51 单片机引脚图 如图 4 所示 图 4 引脚图 管脚定义 Vss 接地 Vcc 电源 提供掉电 空闲 正常工作电压 P0 0 0 7 P0 I O 口 P0 口是开漏双向口 可以写为 1 使其状态为 悬浮用作高阻输入 P0 也可以在访问外部程序存储器时作地址的低字节 在访 问外部数据存储器时作数据总线 此时通过内部强上拉输出 1 P1 0 1 7 P1 I O 口 P1 口是带内部上拉的双向 I O 口 向 P1 口写 入 1 时 P1 口被内部上拉为高电平 可用作输入口 当作为输入脚时 被外部 拉低的 P1 口会因为内部上拉而输出电流 P1 口第 2 功能 临沂师范学院 2010 届本科毕业论文 5 T2 P1 0 定时 计数器 2 的外部计数输入 时钟输出 T2EX P1 1 定时 计数器 2 重装载 捕捉 方向控制 P2 0 2 7 P2 I O 口 P2 口是带内部上拉的双向 I O 口 向 P2 口写 入 1 时 P2 口被内部上拉为高电平 可用作输入口 当作为输入脚时 被外部 拉低的 P2 口会因为内部上拉而输出电流 在访问外部程序存储器和外部数据 时分别作为地址高位字节和 16 位地址 MOVX DPTR 此时通过内部强上拉传 送 1 当使用 8 位寻址方式 MOV Ri 访问外部数据存储器时 P2 口发送 P2 特殊功能寄存器的内容 RST 复位 当晶振在运行中 只要复位管脚出现 2 个机器周期高电平即 可复位 内部有扩散电阻连接到 Vss 仅需要外接一个电容到 Vcc 即可实现上 电复位 PSEN 程序存储使能当执行外部程序存储器代码时 PSEN 每个机器周期 被激活两次 在访问外部数据存储器时 PSEN 无效 访问内部程序存储器时 PSEN 无效 XTAL1 晶体 1 反相振荡放大器输入和内部时钟发生电路输入 XTAL2 晶体 2 反相振荡放大器输出 2 直流电机的结构 直流电机的结构 直流电动机具有良好的起动 制动性能 宜于在大范围内平滑调速 在许 多需要调速或快速正反向的电力拖动领域中得到了广泛的应用 从控制的角度 来看 直流调速还是交流拖动系统的基础 随着单片机技术的日新月异 使得 许多控制功能及算法可以采用软件技术来完成 为直流电动机的控制提供了更 大的灵活性 并使系统能达到更高的性能 采用单片机构成控制系统 可以节 约大量的人力资源和降低系统成本 从而有效的提高工作效率 直流电动机的转速与施加于电动机两端的电压大小有关 电枢电压为 Ua 电枢电流为 Ia 电枢回路总电阻为 Ra 电机常数 Ca 励磁磁通量是 根据 KVL 方程 电机转速 n Ua IaRa Ca 其中 对于极对数 p 匝数为 N 电枢支路数为 a 的电机来说 电机常数 Ca pN 60a 意味着电机确定后 该 值是不变的 而在 Ua IaRa 中 由于 Ra 仅为绕组电阻 导致 IaRa 非常小 所 以 Ua IaRa 约等于 Ua 由此可见我们改变电枢电压时 转速 n 即可随之改变 直流电动机如图 5 所示 临沂师范学院 2010 届本科毕业论文 6 图 5 直流电机原理图 3 LED 显示器显示器 本设计采用两个一样的集成数码管 LED 数码管由各自的三极管驱动和关 闭 当单片机输出显示数据的同时还输出两个驱动信号送到 DS1 DS2 的各自 的三极管的基极 使三极管导通从而使 LED 显示相应输出电压值 数码管和三 极管要用截止电流尽量小一些的器件 因为了减小整机的功耗 所以必须用截 止电流小些的器件 LED 显示电路 6 所示 DS1 DS2 临沂师范学院 2010 届本科毕业论文 7 图 6 LED 显示元件图 4 温度传感器的原理 温度传感器的原理 温度传感器的基本原理是由热电偶传感器演变而来 主要按照热电效应来 工作 将两种不同的导体 A 和 B 连接起来 组成一个闭合回路 即构成感温元 件 当导体 A 和 B 的两个接点 1 和 2 之间存在温差时 两者之间便产生电动势 因而在回路中形成一定大小的电流 这种现象即称为热电效应 也叫温差电效 应 热电偶就是利用这一效应进行工作的 热电偶的一端是将 A B 两种导体焊 接在一起 称为工作端 置于温度为 t 的被测介质中 另一端称为参比端或自 由端 放于温度为 t0 的恒定温度下 当工作端的被测介质温度发生变化时 热 电势随之发生变化 将热电势送入计算机进行处理 即可得到温度值 温度传 感器采用专用的 DS18B20 温度集成传感器 传感器电路 7 所示 图 7 温度传感器元件 5 直流稳压 直流稳压器器 此电路采用的三端稳压集成电路 LM317 LM317 的输出电流是 1 5A 输出 电压可在 1 5 37V 之间连续可调 输出电压由控制脚决定 最高输出电压由电 源电压决定 它的 1 脚是控制端 2 脚是输出端 3 脚是电源端 引脚非常少易于控制 并且输出电压稳定带负载能力强 它配合前级的推动电路从而实现电压的数控 调节 LM317 在工作时流过的电流是非常大的 所以一定要加足够大的散热片 以便较快的散去工作时的热量避免因高温而损坏 LM317 稳压集成电路 此设计 的 LM317 是不能用一般的三端稳压器代替的 因为一般的三端稳压器是不带控 制脚他只有接地脚 临沂师范学院 2010 届本科毕业论文 8 三端稳压器如图 13 所示 图 13 三端稳压元件图 三 自动调温电风扇控制系统设计 一 自动调温电风扇的各模块的控制 1 AT89C51 部分部分 复位在振荡器工作时将 RST 脚保持至少两个机器周期高电平 12 时钟模式 为 24 个振荡器周期 6 时钟模式为 12 振荡器周期可实现复位为了保证上电复 位的可靠 RST 保持高电平的时间至少为振荡器启动时间 通常为几个毫秒 再加上两个机器周期 复位后 振荡器以 12 时钟模式运行当已通过并行编程 器设置为 6 时钟模式时除外 振荡器特性 XTAL1 和XTAL2 为输入和输出 可分别作为一个反相放大器的输入和输出 此管脚可配置为使用内部振荡器 要使用外部时钟源驱动器件时 XTAL2 可以 不连接而由XTAL1 驱动 外部时钟信号无占空比的要求 因为时钟通过触发器 二分频输入到内部时钟电路 定时器 0 和 1 的操作 定时和计数功能由特殊功能寄存器TMOD 的控制位进行选择 这两个定时 计数器有4 种操作模式 通过TMOD 的M1 和M0 选择 两个定时 计数器的模式 0 1 和2 都相同模式3 不同 临沂师范学院 2010 届本科毕业论文 9 中断 本器件提供6 个中断源 外部中断INT0 和INT1 可根据寄存器TCON 中的 IT0 和IT1 位状态分别设置为电平或者边沿触发 实际产生的中断标志是TCON 中的位IE0 和IE1 当产生外部中断时 如果是边沿触发 进入中断服务程序 后由硬件清除中断标志位 如果中断是电平触发 由外部请求源而不是由片内 硬件控制请求标志 定时器 0 和定时器 1 中断由 TF0 和 TF1 分别由各自的定时 计数寄存器 控制 定时器 0 工作在模式 3 时除外 产生 当产生定时器中断时 进入中断 服务程序后由片内硬件清除标志位 内部结构如图 8 所示 图 8 单片机内部结构 临沂师范学院 2010 届本科毕业论文 10 2 电源转换电路 电源转换电路部分部分 转换电路如图 9 所示 图 9 电源转换电路 3 按键 按键部分部分 按键电路采用的是单片机 89C51 的 15 16 17 脚作为按键的输入端子 它 们分别是 SW1 开关按键 SW2 递减按键 SW3 递增按键 当按下开关按键时会给 单片机一低电平 从而单片机检测到这个脚电平的变化 会作出下一步的处理 经内部分析运算后输出相应的控制数据 开关按键的是单片机内部的 T1 记数功 能 当此脚电平变化一次 内部就会记一次数 递减按键用的是单片机的 3 6 口 当此按键按下一次就会使 P1 口所有的输 出端口就会变化 递增按键用的是 3 7 口 工作过程同递减按键 3 6 口 按键电路如图 10 所示 图 10 按键连接图 临沂师范学院 2010 届本科毕业论文 11 4 单片机复位 单片机复位部分部分 复位控制如图 11 所示 图 11 复位连接图 上电后 5V 电压通过 C 向 R 电阻充电 这时在 89C51 的复位端就会形成一个 负的电压脉冲 这时单片机就认为给它一低的电平信号告诉它要复位了 当振 荡器复位器件时 要保持 RST 脚两个机器周期的高电平时间 ALE PROG 当访 问外部存储器时 地址锁存允许的输出电平用于锁存地址的地位字节 在 FLASH 编程期间 此引脚用于输入编程脉冲 在平时 ALE 端以不变的频率周期 输出正脉冲信号 此频率为振荡器频率的 1 6 因此它可用作对外部输出的脉 冲或用于定时目的 然而要注意的是 每当用作外部数据存储器时 将跳过一 个 ALE 脉冲 如想禁止 ALE 的输出可在 SFR8EH 地址上置 0 此时 ALE 只有在 执行 MOVX MOVC 指令是 ALE 才起作用 另外 该引脚被略微拉高 如果微处理 器在外部执行状态 ALE 禁止 置位无效 本电路采用的是上电自动复位 不需 要手动按动按钮去人工复位 在复位有效期间 ACE PSEN 也输出高电平 REST 输入端返回低电平以后单片机从 0 地址开始执行程序 5 数模转换 数模转换部分部分 DAC0808 是具有 16 个引脚的双列直插式 8 位 D A 转换器件 其引脚功能分 别为 1 脚为空 2 脚为 GND 3 脚为 VEE 4 脚为 DAC 输出引脚 5 12 脚为数 据输入引脚 13 脚为 VCC 14 脚为基准电压 VREF 15 脚为基准电压 VREF 16 脚为 COMPENSATION 当数据输入量全为 0 时 其 4 脚输出电压最低 接近零 当数据输入量全 为 1 时 其 4 脚输出电压最高 电压值由基准电压 VREF 决定 因此 基准电压 的精度决定了 D A 转换的精度 数模转换部分如图 12 所示 临沂师范学院 2010 届本科毕业论文 12 图 12 数模转换图 本文所用的基准电压为 15V 而数据输入量在 00H FFH 之间变化 即 D A 输出的电压有 256 种 从而不难算出本电源的精度 15V 256 0 05859V 0 06V 假如我们想要 6V 的直流电压 数据输入量 6V 0 06V 100 注意这里的 100 是十进制的 单片机不能识别十进制数据 所以要把十进制转换成二进制或十六进制 转换时可用 WINDOWS 自带的科学计 算器进行 100 转换成十六进制后为 64H 只要给 DAC0808 输入 64H 它就能 输出 6V 的电压 注意 理论值和实践值有所出入 具体运用时要适当的调节数 据输入量 该电压经运放 TL082 后再去推动 LM317 由 LM317 输出我们需要的 电压值 实现了电压数控调节 二 缓冲与保护部分 缓冲电路采用的是集成运放 TL082 它的 1 脚是控制输出 2 脚是输入端 3 脚接地端 8 脚是 15V 输入端 4 脚是 15V 输入端 它的作用是把 D A 数模 转换集成电路输出的控制电压进行放大后去推动 LM317 输出所要的电压 保护电路是由 R10 R11 R12 取样电阻和单片机的 25 脚组成 工作原 理是 当单片机检测到负载短路时 25 脚的电压会发生变化这时单片机就认为 负载短路迫使整机处于待机状态 使输出电压为零从而保护了三端稳压器不至 于损坏 并且还避免了负载因短路在扩大故障范围 三 自动调温电风扇的整体硬件电路 220V 市电经变压器将压后变成 15V 的交流电压 经整流电路后变成正负 15V 左右的直流电压 变压器是采用三抽头的 15V 电压送到缓冲放大集成运 临沂师范学院 2010 届本科毕业论文 13 放为其提供负的工作电压 15V 直流电压经五伏稳压后变成稳定的 5V 电压为 单片机和 D A 数模转换集成电路提供工作电压 数模转换器是一个八位的 D A 转换器件 当输入的数据全为 0 时 其数控电源输出的电压接近 0V 当输入的 数据全为 1 时 其数控电源输出电压最高接近基准电压 基准电压值由 VREF 决 定 此电路采用的基准电压是 15V 当接通电源后 89C51 得到复位电压复位后 内部开始执行程序 而输出相 应的电压值 SW1 是开关按键 按一下次按键后整机处于待机状态 同时 LED 显示 OF 电源无电压输出 按任意键可以开机 SW2 是输出电压递减调节按 键 当按一下 SW2 时 89C51 单片机地 16 脚 P3 6 口 会得到一个变化的脉冲 这个变化的脉冲送到单片机内部处理后由 P1 口的 1 到 8 脚输出递减电压的数据 直接送到数模转换集成电路的 A1 A8 端子 也就是 5 12 脚 电压递减数据经 D A 集成电路转换后 由 4 脚输出一个控制电压 这个控制电压直接送到集成 运放 TL082 经 TL082 反相放大后 直接推动 LM317 三端稳压器输出相应的电 压值 从而实现数控电压的无触点调节 并且由 89C51 单片机的内部输出显示 电压的数据电压去推动 V1 V2 三极管的导通 从而驱动 LED 数码管显示相应的 输出电压值 SW3 按键 电压递增调节 与电压递减调节的工作原理相反 当刚开机时由于单片机要初始化 复位 这一瞬间单片机输出的数据不受 控制 从而会导致 LM317 输出一个高的电压 会使用电器 负载 损坏 为了 防止这一现象的发生 从而设置了 V3 PNP 保护三极管 当单片机初始化时 各端口的电压为低电平 这时 V3 导通 继电器得到工作电压 使继电器的触点 断开 从而切断了输出电压 保护了用电器不被瞬间输出的高电压损坏 当复 位后 P2 5 口恢复了高电平 这时 V3 截止 继电器得不到工作电压而恢复到 常闭状态 这时就输出正常的电压到用电器 当用电器 负载 短路或过载现象时 会到造成输出电压大幅度下降 此 电压经取样电路后的电压也会下降很多 这时 P2 4 口的电位也随之降低 程序 立即检测到 P2 4 这一变化 立即使 P2 5 口为低电平从而使 V3 导通 继电器工 作切断输出电压 这时整机也转入待机状态 直至故障排除后才能重新开机 否则整机将一直处于待机状态 整体电路结构如图 14 所示 临沂师范学院 2010 届本科毕业论文 14 图 14 整体电路结构图 临沂师范学院 2010 届本科毕业论文 15 四 软件设计 一 主程序设计 主程序设计流程如图 15 所示 图 15 主程序流程图 功能介绍 单片机复位后 进行初始化工作 然后进入按键功能模块 最 后完成工作 初始化中 将 DS18B20 内部 RAM 包括按键 默认为控制状态 温度设定为 25 加减按键同时按下进入温度设定状态 然后按加或减按键进 行温度设定 然后再次同时按加减键退出 临沂师范学院 2010 届本科毕业论文 16 二 总程序 TEMPER L EQU 29H 用于保存读出温度的低 8 位 TEMPER H EQU 28H 用于保存读出温度的高 8 位 FLAG1 EQU 38H DS18B20 标志位 FLAG2 EQU 01H 设定状态标志位 ORG 0000H AJMP START 转入主程序 ORG 0030H START MOV 2FH 25 设定高于 25 度为温度过高 SETB P2 1 CLR FLAG2 mov sp 60h duqu LCALL GET TEMPER 调用读温度子程序并初始化 DS18B20 LCALL DISP 调用显示当前温度 MOV A 29H 将现场实际温度传递给 A CJNE A 2FH LL1 比较当前的温度与设定的温度是否相 等 CLR P2 0 开启电风扇 SJMP ANJIAN MAIN MOV a 2FH 存储的温度 25 度 MOV b 10 取出十位和个位 div ab ORL A 00110000B MOV 41H a 十位 MOV 42H b 个位 MOV A 42H ORL A 00110000B 转化成 ASCII 码 MOV 42H A MOV a 2FH MOV b 100 div ab ORL A 00110000B MOV 40H a LL1 SETB P2 0 关闭电风扇 ANJIAN LCALL DISP MOV A P3 读取当前按键的值 ANL A 0FH 屏蔽高位 sheding CJNE A 0CH jia 加减按键一起按就进入温度设定状 态 ACALL DELAY100 消除键抖动 CJNE A 0CH jia 加减按键一起按就进入温度设定状 态 setb flag2 启动设定 sjmp duqu 临沂师范学院 2010 届本科毕业论文 17 jia CJNE A 0EH jian 加处理 ACALL DELAY100 消除键抖动 CJNE A 0EH jian 加处理 JNB FLAG2 DUQU 在加减键没有同时按下的时候 只按加按键 时不执行任何功能 并跳到读取当前温度 MOV A 2FH 先读取原先设定的温度值 INC A 原先设定的温度值加 1 MOV 2FH A 将当前设定的温度值保存 SJMP BAOCUN jian CJNE A 0DH duqu 减处理 ACALL DELAY100 消除键抖动 CJNE A 0DH duqu 减处理 JNB FLAG2 DUQU 在加减键没有同时按下的时候 只按 加按键时不执行任何功能 并跳到 读取当前温度 MOV A 2FH 先读取原先设定的温度值 DEC A 原先设定的温度值减 1 当设定的温度值不 能超过 25 MOV 2FH A 保存当前设定的温度 baocun CJNE A 0CH TUICHU 加减按键一起按就保存温度设定状态 并退 出设定 ACALL DELAY100 消除键抖动 CJNE A 0CH TUICHU 加减按键一起按就保存温度设定状态 并退 出设定 CLR flag2 关闭设定 SJMP QUIT TUICHU CPL P2 1 等待退出设定状态 LCALL DELAY100 LCALL DELAY100 LCALL DELAY100 LCALL DELAY100 LCALL DELAY100 SJMP BAOCUN QIUT LCALL DISP LJUMP MAIN DISP JNB FLAG2 DQ MOV A 2FH 显示设定温度值 SJMP XS DQ mov a 29H 显示当前温度值 XS mov b 10 取出十位和个位 div ab MOV DPTR WORDTAB MOVC A A DPTR 临沂师范学院 2010 届本科毕业论文 18 MOV P0 A CLR P2 7 开启个位数码管显示 SETB P2 6 SETB P2 5 LCALL DELAY100 SETB P2 7 MOV A B MOV DPTR WORDTAB MOVC A A DPTR MOV P0 A CLR P2 6 开启十位数码管显示 SETB P2 7 SETB P2 5 LCALL DELAY100 SETB P2 6 RET GET TEMPER LCALL INIT 1820 先复位 DS18B20 JB FLAG1 TSS2 RET INIT 1820 SETB P3 2 NOP CLR P3 2 MOV R0 06BH 主机发出延时 537 微秒的复位低脉冲 MOV R1 03H TSR1 DJNZ R0 TSR1 MOV R0 6BH DJNZ R1 TSR1 SETB P3 2 然后拉高数据线 NOP NOP NOP MOV R0 25H TSR2 JNB P3 2 TSR3 等待 DS18B20 回应 DJNZ R0 TSR2 LJMP TSR4 延时 TSR3 SETB FLAG1 置标志位 表示 DS1820 存在 LJMP TSR5 TSR4 CLR FLAG1 清标志位 表示 DS1820 不存在 临沂师范学院 2010 届本科毕业论文 19 LJMP TSR7 TSR5 MOV R0 06BH TSR6 DJNZ R0 TSR6 时序要求延时一段时间 TSR7 SETB P3 2 RET WRITE 1820 MOV R2 8 一共 8 位数据 CLR C WR1 CLR P3 2 MOV R3 5 DJNZ R3 RRC A MOV P3 2 C MOV R3 21 DJNZ R3 SETB P3 2 NOP DJNZ R2 WR1 SETB P3 2 RET 判断 DS1820 是否存在 若 DS18B20 不存在则返回 TSS2 MOV A 0CCH 跳过 ROM 匹配 LCALL WRITE 1820 MOV A 44H 发出温度转换命令 LCALL WRITE 1820 LCALL DELAY100 延时 750 微秒以上 等待 18B20 A D 转换 结束 LCALL INIT 1820 准备读温度前先复位 MOV A 0CCH 跳过 ROM 匹配 LCALL WRITE 1820 MOV A 0BEH 发出读温度命令 LCALL WRITE 1820 LCALL READ 18200 将读出的温度数据保存到 28H 29H RET READ 18200 MOV R4 2 将温度高位和低位从 DS18B20 中读出 MOV R1 29H 低位存入 29H TEMPER L 高位存入 28H TEMPER H RE00 MOV R2 8 临沂师范学院 2010 届本科毕业论文 20 RE01 CLR C SETB P3 2 NOP NOP CLR P3 2 NOP NOP NOP SETB P3 2 MOV R3 08 RE10 DJNZ R3 RE10 MOV C P3 2 MOV R3 21 RE20 DJNZ R3 RE20 RRC A DJNZ R2 RE01 MOV R1 A DEC R1 DJNZ R4 RE00 RET WORDTAB DB 3FH 06H 5BH 4FH 0 1 2 3 DB 66H 6DH 7DH 07H 4 5 6 7 DB 7FH 6FH 77H 7CH 8 9 A B DB 39H 5EH 79H 71H C D E F DB 80H 00H 40H 小数点 暗 负号 DELAY100 MOV R4 100 100 毫秒延时子程序 占用 R4 R5 D222 MOV R5 248 DJNZ R5 DJNZ R4 D222 RET DELAY7 SETB P1 7 MOV R3 120 FRT ACALL DELAY100 CPL P1 6 DJNZ R3 FRT SETB P1 6 RET DELAY500 MOV R4 248 DA222 MOV R5 248 DJNZ R5 临沂师范学院 2010 届本科毕业论文 21 DJNZ R4 DA222 RET END 结 束 语 在写毕业论文时我深深体会到搞设计的艰辛与困难 电风扇我们都很熟悉 但要想把单片机技术运用到电风扇上是不简单的事情 在设计过程中 遇到了如何把实现平滑的调速问题 由此我想到了利用现 场的温度与设定的温度之间的差值 如果差值愈大则输

温馨提示

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

评论

0/150

提交评论