毕业论文-基于89c51单片机的智能家居控制系统设计内容摘要:

位,后面的 8位用于表示数据值。 由于测量精度为 9 位,所以当测得温度为正数时,实际温度值为数据值乘以。 当测得值为负数时,实际温度应为数据值的补码乘以。 例如 ,对应于 25℃的数据格式为 : MSB LSB 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 0 (符号位 “”) (温度值 “ ”) 11001110 的补码 00110010,即,被测温度值为: T=(1 25 +1 24 +1 2) ℃ =25℃ 表 31 9 位 DS18B20 温度与数据的对应关系 当系统处于正常工作状态时,要循环的对温度数据采集、显示和判定。 对温度值的读取由 DS18B20 来完成。 DS18B20 是一线式的器件,数据的读写都通过一个数据端口来完成。 所以对 DS18B20 的控制时序就要求比较高。 读取和写入数据的过程中无法被中断,所以在DS18B20 的读写的情况下关闭中断。 DS18B20 的控制是典型的控制类程序。 共享 4 个函数 来完成。 初始化、读数据、写数据和得到温度 4 个函数。 DS18B20 控制程序的流程图如图 37所示。 温度 /℃ 二进制数据输出 十六进制数据输出 +125 00000000 11111010 00FAH +25 00000000 00110010 0032H + 00000000 00000001 0001H 11111111 11111111 FFFFH 25 11111111 11001110 FFCEH 55 11111111 10010010 FF92H 10 图 35 DS18B20 流程图 中断程序 在 DS18B20 的程序中,当启动 DS18B20 温度转换之后,需要等待 750MS以上,才能从DS18B20 端口上读到当前的温度值。 而红外的数据什么时候到来是不确定的,为了平衡二者的关系。 使用定时器中断,来产生 5MS的中断。 没当中断到来读取红外的端口,当红外有输出时,打开内部计数器来记录红外被遮挡的时间。 通过定时器中断不仅满足的 DS18B20的读取问题,也兼顾了红外数据的读取和显示的问题。 定时器中断流程图如图 39 所示。 初始化 ds18b20 写温度转换命令 等待温度转换命令 读取温度值 温度程序 结束 11 图 36 定时器中断子程序流程图 光线检测与步进电机控制子程序 根据本设计 的模拟量转换 要求,系统采用的 ADC083 是 8 位分辨率 的 A/D 转换芯片,其最高分辨可达 256 级, 转换时间仅为 32ΜS ,转换速度快且稳定性能强, 完全可以达到要求。 因其内部参考电压的复用与电源的输入,使得芯片的模拟电压输入保持在 0~5V 之间 ,达到稳定的工作状态。 芯片还具 有双数据 输出可作为数据校验, 能够有效地 减少数据误差。 选用独立的芯片使能输入 , 通过数据输入,我们可以很容易地实现信道选择功能。 光线检测主要是通过 ADC0832 来完成的。 通过读取 ADC0832 的值,并与上一个读取的值相比较,来判断光线是变暗了还是变亮了。 根据本次读取的值和上次读取的值取差值,用差值来控制电机的正反转以及电机的转动幅度。 光线检测与步进电机控制子程序的流程图如图 310 所示。 进入中断、定时 存数据 保护现场 取数据 指向下一地址 请 标志位 开始 退出现场 结束 12 图 37 光线检测与步进电机控制程序流程图 报警条件子程序 报 警条件说明 :(1)密码输入:当密码输入错误时报警,密码输入正确则进行下一步操作; (2)红外传感器:红外被遮挡 5秒以上为达到报警条件,以下为未达到报警条件。 因为所要监测的传感器主要是温度传感器和红外传感器,任何一个传感器如果达到报警条件,都可以发出报警信号。 在硬件设计方面已经对每个传感器的报警条件进行了设置。 程序流程图如图 311所示。 初始化 DS18B20 开始 读取模数转换值 保存检测值, 计算初始值或上一值的差值 取反转程序及转动幅度 判断差值的大小 取正转程序及转动幅度 结束 小于 0 大于 0 等于 0 13 图 38 报警条件子程 序流程图读取密码值 初始化 进入报警状态 读取红外值 判断密码是否正确 红外值是否达到阀值 报警是否解除 开始 结束 Y N N Y 14 4 智能家居控制系统软件调试环境与分析结果 本次系统调试,是以硬件模块为准,先模块后整合的方式进行的。 当然,单片机的基本时钟和引脚设置必不可少。 在系统联调时,出现了许多实际问题。 现将主要方面阐述如下。 开发环境简介 编程软件介绍 在本设计中,由于用的是 C语言编程,所以我选用的 软件开发环境 是 美国 Keil SOFTWARE 公司出品的 51 系列兼容单片机。 KEIL ΜVISION 可以方便的使用并且利用其强大的仿真功能进行软硬件的调试工作。 目前 最新版的 KEIL 系统提供了包括于 C 编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的一整套完善的开发方案,并可以通过一个集成开发环境( UVISION)将这些部分严密的组合在一起共同工作。 WIN9NT、 WIN20 WINXP 等操作系统都可以有效的运行 KEIL 软件进行编程。 实际使用 KEIL 51 时,干集成环境既可用于 C语言开发也可用于汇编语言开发。 它内部集成了文件编辑、项目管理、编译链接和仿真调试等多种功能。 用户可以在这里用文件编辑器编写自己的程序,用多种方法来调试和修改程序。 编译程序也能帮助用户检查错误,提示 用户修改错误,直至程序无误。 为了使软件编程环境更加灵活多样,所以在 2020 年 2月发布了引入灵活的窗口管理系统的 UVISION4 编程环境,能够使用更多的监视器,视觉上可以对窗口位置的任何地方进行完全控制 是本次软件更新的最大亮点,并且充分 利用屏幕空间和更有效地组织多个窗口是新的用户界面显著地特点,它为我们提供一个整洁的、高效的环境来开发应用程序 以提高工作效果。 程序的工程建立 ( 1)先建立一个名为“ hyx”的空文件夹,把工程文件放到里面,防止和其它文件相混。 开始工作并启动 KEIL UVISION4 软件。 ( 2) 点击 “PROJECT NEW UVISION PROJECT” 新建一个系统工程。 ( 3)在弹出的对话框中,选择刚刚建立的“ HYX”的文件夹,保存该项目的名称,不需要填写, 默认的工程后缀与 UVISION3 及 UVISION2 版本不同了,为 UVPORJ。 ( 4) 弹出一个对话框 后 , 就可以根据设计中所需要的单片机。 可以在 找到并选中“HYX” 下的 AT89C52,用于 开始编译 程序。 ( 5) 编程完毕 之后 ,开始建立一个源程序文本: ( 6)找一个空白的文档开始写入源程 序。 ( 7) 输入源程序文件名名称,因为是 C 语言,则是 “” 然后保存。 ( 8)在项目设置中,可以编译、链接,选择菜单项目 建立目标,连接到单一的工程项目,生成代码。 如下图 33 所示: 15 图 41 基于 Keil 的编程说明图 程序的调试 在对工程成功的进行汇编、连接后,要 进入 软件 调试状态 ,只要选择菜单中的DEBUGSTART/STOP DEBUG SESSION 即可 ,并 建立了一个仿真 CPU 用来模拟执行 该 程序。 主程序的调试 因为本设计中采用的模块较多所 以系统采用了实时多任务系统,实行逐个分任务进行调试。 当逐个子程序调试好以后,再观察各个任务同时运行时操作系统中有没有错误。 等调试全部完成后,为了调试效果应反复运行多次,其中如发现错误时部分程序作了适当修正后系统才能够正常运行。 利用单步运行的的性质,可以对一些多次循环重复的程序进行检查。 而这样的调试可以选用 KEIL ΜVISION 开发环境来进行调试,既方便又快捷。 从中找到程序出错的环节及故障点进行修改,直到程序完全正常。 如下图 34所示 : 16 图 42 Keil 程序的调试 软件抗干扰措施 当单片机受到干扰,不再按照一定的规律执行,被改变了的程序指针( PC)的值后,使程序而跑飞到其它非程序区,此后它不仅执行了一系列毫无意义的指令,而且还可能破坏数据存储器的内容,造成难以预料的后果。 激活看门狗 的程序 其工作指令如下程序: SFR WDTRST = 0XA6 _NOP_()。 WDTRST = 0X1E。 先送 1E WDTRST = 0XE1。 后送 E1 调试结果展示 设计中的要求基本完成,如下图 41 和 42 所示: ( 1) 开机画面,需输入正确密码 ( 2) 密码正确后,会显示当前室内温度 ( 3)红外,光敏,步进电机都能实现且运行良好 17 图 43 开机画面 图 44 温度及其他显示画面 18 5 结论及展望 智能家居控制系统的核心任务是数据的采集、运算和处理,对于实际物理量的采集必须要有传感器。 传感器是一种检测装置,它能够直接将物理量转换为电信号的量,现今的传感器还能直接将物理量转换为单片机可以接收的数字量。 传感器的工作指标与 运行性能是能否圆满完成检测和控制的重要环节,如果没有对原始物理量精确可靠的反应,那么就无法进行最佳检测和控制。 本设计的控制系统是基于 STC89C52 单片机为核心,进行必要的计算技术,以软件代替很多传统的控制系统的硬件,多种功能完美的将多种系统功能集于一身。 用本文设计的智能家居控制系统具有如下特点: ( 1) 通过矩阵键盘输入密码,当密码正确电路进入正常工作状态。 ( 2) 系统实时监测红外传感器的值,可以对非法进入的情况进行报警。 ( 3)实时采集温度值,将室内的温度值实时的显示出来。 ( 4)实时采集光线强度值,通过光线强度值来控制窗帘的开合,来保持室内光线的稳定。 ( 5)单片机及接口电路的设计使 I/O 接口线利用率高。 电路简单、成本降低、外接器件少、性能可靠。 展望,家居环境的实际情况比较复杂,需要测量的参数一般都比较多,本设计主要采集了温度参数,红外参数以及光线强度参数等。 温度是家庭室内舒适度的一个重要参数。 为了防止人员的非法进入红外参数也是一个比较重要的参数,为了能够控制室内的光线强度,对光线强度的检测和对窗帘电机的控制也是必不可少的。 为了提高一些设备使用的安全性,进 行简单的密码认证也是很必要的。 本课题所设计的智能家居控制系统可以用来检测非法进入、温度值、光线强度以及密码认证。 本设计也有许多不足之处,最明显的是所涉及的家居家电太少,以及智能化的操作行不高,如果有可能我会在原方案上加入以下的系统: ( 1)在原模块上加上万年历以及烟雾报警系统。 ( 2)在原来的设计上加入远程控制系统( GSM),是整个设计更加体现智能化家具的价值。 现在基于各种因素限制,所以本系统设计只能做到这样。 19 附录一 程序清单 include include include define time_length 10000//us define inf_length 5//s define temp_max 40//度 define L1602_DB P0 sbit L1602_RS=P2^7。 sbit L1602_RW=P2^6。 sbit L1602_E=P2^5。 sbit ds18b2。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。