51单片机智能窗帘软件设计框架及思路
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
本系统在光线下通过光照检测采集的光照强度值,把采集的数据通过AD模数转换成数字信号,以51单片机为主控芯片,根据实时光照强度实现窗帘打开和关闭。
整个系统在各个模块的分工合作下完成,实现自动控制、手动控制、定时控制、红外控制等功能内在联系。
主程序的任务是系统初始化,开关中断,对按键进行扫描,判断是否有按键按下,经过分析及处理后,执行相应的手动控制、定时控制、自动控制和红外控制等的指令,这四个模式可以自动互相切换。
显示
模块是将各个模块信息显示在LCD1602屏幕上。
主程序还操控步进电机工作和显示步进电机的工作。
系统流程图如下图4-1所示。
图4-1 系统总流程图
(一)显示模块程序设计
执行该子程序时,首先对LCD1602显示屏初始化,对所有显示内容进行清零,接着对时钟进行初始化、对定时器初始化,根据程序中设定的时间显示时间。
当LCD1602的寄存器RS工作状态为高电平时,选择指令寄存器;读写选择RW,执行写操作;使能端EN从高电平到低电平过程中下降沿信号,将显示数据送到P2口,LCD执行数据指令,判断是否执行完毕。
若执行完成,数据显示,子程序退出。
若没有,返回到选择指令寄存器继续重复执行以前的步骤。
流程图如下图4-2所示。
图4-2 显示模块流程图
(二)按键模块程序设计
在本系统中,根据任务需求,设计了五个按键,分别是阈值+1、阈值-1、主功能键、手动开窗和手动关窗。
五个按键相互独立存在,互不干扰,与单片机串联。
但是这里我们需要先解决一个问题,就是对按键进行消抖。
任一按键无论是按下还是松开都会发生抖动,有时按了多次反应表现延迟或者按得快没有反应,这都是按键抖动的表现,所以这时就需要对按键进行消抖,按键消抖如果处理不好,可能还会给单片机发送错误指令,导致单片机运行工作错误。
为了解决这个问题,我采用了利用软件延迟的方法来解决按键抖动的问题。
思路:当扫描到某个按键按下时,编写程序时判别按键电路能否闭合是先通过2毫秒的延时,确定按下按键后再延时10毫秒,再次扫描按键时,如果此时按键还是按下状态,说明上面的方案是可行的。
按下按键后延迟10ms就可消除按键抖动的问题。
此时单片机进行键码分析,执行相应模块,最后显示后返回主程序。
按键模块消抖程序流程图如下图4-3所示。
图4-3 按键模块消抖程序流程图
(三)步进电机控制程序设计
步进电机是操控窗帘的主要硬件。
其程序设计主要是以单片机主控芯片自动光控、手动控制、定时控制、红外控制等指令控制步进电机进行正转或反转,打开或者关闭窗帘。
在执行该子程序时,首先将单片机初始化,判断是否有中断函数发生,如果没有,整个系统进入自动光控模式,调用步进电机驱动程序,判断步进电机是否
正转。
如果是,输入正转脉冲序列,步进电机正转,待传送的步数完成后,窗帘完全打开状态;反之,输入反转脉冲序列,步进电机反转,待传送的步数完成后,窗帘完全关闭状态。
步进电机工作流程如下图4-4所示。
图 4-4 步进电机工作程序流程图
自动光控窗帘程序设计
在主函数中预先设定上下限光照强度值,根据光敏电阻反馈回来的模拟量,经AD转换器转换为数字信号后,判断是否达到上下限值,如果条件成立,ULN2003芯片驱动步进电机工作,步进电机进行正转或反转,窗帘实现打开或者关闭。
当执行该子程序入口时,先进行系统初始化,根据光敏电阻采集的信号判断实时光照强度,在程序中我设定的光照上限值是180,下限值是10,这是判断光照强度的基本条件。
如果光照强度值超过180,则条件成立,步进电机正转,窗帘打开,一段时间后会碰到一个限位开关,步进电机不转动;若没达到条件时,则会返回初始;在窗帘打开情况下,检测光照强度值是否小于10,如果此时光照强度值小于下限值,步进电机反转,窗帘关闭。
自动光控窗帘流程如下图4-5
所示。
图 4-5 自动光控窗帘流程图
红外控制窗帘程序设计
在本次毕业设计中,红外控制做输入信号源,因此会用到中断处理函数,根据不用的红外编码,经过识别处理后,进一步控制窗帘打开或者关闭。
该子程序执行时,首先系统进行初始化程序,扫描按键是否按下,当没有按键按下时,将返回主程序继续等待按键按下操作;若有按键按下,并确定是哪个键按下,得到按键值信息,此时单片机会收到一个中断处理函数,经过解码分析处理后,从而发送相应的指令。
接着调用发送子程序,根据高低电平信号,发送正反转脉冲序号,进一步控制步进电机的转动,实现控制窗帘的打开或关闭。
红
外控制流程如下图4-8所示。
图 4-8 红外控制流程图。