当前位置:首页 > 基于单片机的室内灯光智能控制系统的设计
商丘学院本科毕业设计
图3.10 蜂鸣报警电路
3.2.8 按键控制电路
按键控制电路如图3.11所示。按键控制电路采用单片机P2口的低4个口作按键的输入信号端,信号取自电阻的分压。当按键没有被按下时,P2.0—P2.3端口的电压就会接近电源电压,则为高电平。当某一按键被按下时,对应端口短接到地,则为低电平。键盘的工作方式采用了中断扫描的方式,4个二极管与10K电阻组成了与门电路,不管按下任何一键,P3.2引脚的电平全部都会由高变低。
图3.11 按键控制电路电路图
4 控制模块软件设计
只有单片机硬件是远远不够的,为了使系统正常的运行,我们还要配上相应的软件,
13
商丘学院本科毕业设计
只有这样才能够成一个完整的系统。用户软件的开发与系统硬件联系紧密。只有系统的硬件及输入输出的方法确定后,程序软件才可以完全独立的进行设计、开发。 4.1系统监控主程序模块
监控程序按模块分为监控主程序和命令处理子程序[15]。一个主程序能够调用多个子程序,对51系列单片机来说,由于系统资源有限,主程序一般是一个无限循环的过程,也就是说是一个反复调用子程序的过程。我们在设计应用软件的时候,一定要尽可能的把每个功能模块写成子程序的形式,并且要通过主程序调用。
整个控制系统的核心就是监控主程序,所有外围的模块一般都需要经过监控模块来实现它们在系统中所起到的作用。我们通过键盘输入相关程序,当监控主程序接受到这些命令后,经过综合分析,然后把它传输到相应的处理子程序的入口,起引导作用。
监控主程序模块主要就是对系统外围器件的输入、输出参数进行初始化自检和看门狗的激活,还有就是对多任务操作模块的调用(系统中的信号采集处理、时钟管理、按键接收处理),有时还可以进行实时中断处理等。除初始化和自检外,监控主程序一般总是把其余部分连接起来构成一个无限循环,系统所有功能都在这一循环中周而复始的有选择的执行
[16]
。
4.1.1 系统自检初始化
对系统进行自检初始化后,整个控制系统就能够正常的运行。当我们对系统加电复位以后,系统就可以立即进入自检初始化程序,然后就完成了系统的自检以及初始化。
有时对各个接口芯片进行检测主要是为了检测各个芯片的准备工作是否准备就绪,有没有硬件故障等。如果说时钟芯片处在启动的状态,那么我们就要对它进行初始化并且还要启动实时时钟。
系统内部寄存器初始化主要是指在数据缓冲区内,各用户定义的数据变量的初始化赋值及部分特殊功能寄存器SFR的复位初始化。单片机复位后,程序计数器PC指向程序存储器的入口地址0000单元,程序状态字寄存器PSW清零,片内存储器选择Ⅰ区工作寄存器,用户标志位F0为0状态,堆栈指针SP指向07H,其它定时器、中断允许寄存器IE,累加器ACC等皆为00H。 4.1.2 定时中断处理设计
定时中断就是当有时用单片机内部的定时器进行定时,计数值已满而引起的中断。内部定时器的计数器可以对内部时钟或从外部引线T0和T1输入的外部脉冲进行计数。计数器的溢出信号作为中断请求信号,去置位定时器溢出标志位,向单片机的CPU申请中断[17]。
14
商丘学院本科毕业设计
定时中断为周期性的,它每隔一定的时间就会中断一次。定时中断可以用来构造多任务操作系统,在系统响应中断后,不需要对断点实施现场保护,可以立即进行多任务时间的划分工作,使相应的操作任务进入就绪状态。该定时中断处理程序框图如图4.1所示。
图4.1 定时中断处理程序框图 定时中断到? N 下一步 Y 多任务时间启动划分 开始 4.2 数据采集模块
本控制系统主要对环境光信号和人体存在信号进行采集的数据采集,在程序设计中对这两个数据的采集放置在多任务模块中实施定时采集。 4.2.1 人体存在传感器的优缺点
人体存在传感器的优点有很多,首先它绝对不会发出任何类型的辐射,再者它的功耗很小并且价格非常低廉。然而它的缺点为抗干扰能力非常差。然而正是由于红外线穿透力特别差的原因,就会导致人体的红外辐射很轻易被一些物体所遮挡,那么它就不易被探头所接收到;易受射频辐射的干扰;另外如果环境温度达到人体的温度时,这时传感器的探测和灵敏度就会下降,严重时会造成短时失灵。当人体存在但并没有活动的情况下,人体传感器就会认为没有人体存在。为杜绝这种现象的发生,程序设计为在探测到有人体存在的状态后间隔1min或更长的时间来对人体存在参数信号进行再次的采集。 4.2.2 数据采集软件的实现
由于本系统所控制的对象多数为大学教室,而每个教室中一般仅有一面墙受到太阳光的照射,并且教室内的不同区域距离窗户的距离也不一样,那么不同区域得到的太阳光照也就不一致。自然光极易受到天气及建筑所处位置的则影响,所以说它的变化是非线形的。所以,只有合理地布置自然光采集电路模块的位置,才能够如实的反映实际情况。
在教室中,人们会经常发现即使自然光充足的情况下,教室内的照明灯任然亮着,那么这就会造成极大的浪费。所以只要室内光照足够时,无论有无人体存在都不开灯;当光照不充足时,有人体存在才开灯,无人体存在则不开灯。本系统逻辑定义为:环境光亮时
15
商丘学院本科毕业设计
为逻辑0(符合光采集电路输出信号状态),否者为1,人体存在为1,否者为0,开灯为1,否者为0。环境光和人体存在的逻辑关系如表4.1所示。
表4.1 环境光与人体存在逻辑关系
环境光参数 0 1 0 1 人体存在参数 0 0 1 1 教室灯状态 0 0 0 1 表4.1数据表明可将环境光参数与人体存在参数进行与操作,又由于继电器是低电平驱动,所以要将采集处理后的信号进行非操作,才可以驱动继电器工作,即可得到教室灯的状态,其软件程序为:
----------------------------------------------------------
Function: BodySensor and light to light port356 DoSensLight: Mov c,port33 ;Signal of Sensor
Anl c,port37
Cpl c ;have person and no light mov port35,c ;on relay 1 mov port36,c ;on relay 2
Jnc SensOut ;no person to out
Haveperson: Mov SensDelayBuf,#5 ;delay 5 minute SensOut: Ret
------------------------------------------------------------ 4.2.3 人体存在传感器的抗干扰措施
抗干扰措施有以下几点。
(1)防小动物干扰:探测器要安置我们精心选定的位置,并且要保证对探测范围内的小动物不能够产生信号。
(2)抗电磁干扰:探测器一定要符合GB10408要求,只有这样手机发出的电磁波才不会干扰到它。
(3)抗灯光干扰:探测器只要在正常的灵敏度范围之内,即使受到3m外H4卤素灯透过玻璃照射,它也不会产生信号。
16
共分享92篇相关文档