PINGDINGSHANUNIVERSITY单片机期末论文题目:基于AT89S51单片机的智能台灯设计院系:电气信息工程学院专业年级:2011级电气1班姓名:刘南杰学号:1112201292013年12月25日基于AT89S51单片机的智能台灯设计1引言台灯已是千家万户的必需生活用品,人们经常由于忘记关灯而造成巨大的能源浪费。当夜晚来临时,人们又摸黑去开灯,非常不方便。目前国内市场台灯的设计大多只采用简单的调光电路进行单一调光,而没有其他功能。本文设计制作的智能台灯选用AT89S51单片机作为主控芯片,以人体红外辐射传感来控制电路。当人体在台灯的范围内且环境光强较弱时,自动感应开灯;当人体太靠近桌面时,台灯自动感应,警告纠正坐姿,若在一定时间内未离开桌面则自动熄灭。当人离开时则自动关灯,达到节约能源的目的。2硬件电路原理及设计2.1系统硬件电路工作原理图1系统硬件组成框图整个系统是以AT89S51控制下工作的。其工作过程为:当环境光比较强时,光敏电阻阻值比较小,信号处理电路检测到低电平信号,禁止热释电红外传感器工作,省去了AT89S51处理过程。当环境光比较弱时,光敏电阻阻值变大,信号处理电路接收到高电平,从而启动热释电红外传感器工作。热释电红外传感器1探测比较远的距离,当人体进入到传感器1的控测范围内且光强较弱时,信号检测电路处理信号,并向单片机发送一个中断,AT89S51启动灯光控制电路,使灯慢慢变亮。当环境光比校弱时,且人体过于靠近桌面,热释电红外传感器2检测到信号,同时了在热释电红外传感器1的控测范围内,信号处理电路同时向AT89S51发送信号,AT89S51处理信号根据优先级顺序,屏蔽掉热释电红外传感器1的信号,启动延时电路,发出警报使人离开,若在设定的时间内未离开桌面,则启动灯光控制电路,使灯慢慢熄灭。当人体离开热释电红外传感器2的控测范围且在热释电红外传感器1的控测范围内时,灯光又慢慢变亮。2.2功能模块电路工作原理热释电红外传感器2光敏电阻灯光控制电路提醒电路热释电红外传感器1单片机AT89S51信号处理电路2.2.1传感器及信号处理图2传感器及信号处理部分电路图由红热释电红外传感器、光敏电阻、BISS0001组成的信号检测及处理电路。红热释电红外传感器只对波长为10μm(人体辐射红外线波长)左右的红外辐射敏感,所以除人体以外的其他物体不会引发探头动作。探头内包含两个互相串联或并联的热释电元,而且制成的两个电极化方向正好相反,环境背景辐射对两个热释元件几乎具有相同的作用,使其产生释电效应相互抵消,于是探测器无信号输出。一旦人侵入探测区域内,人体红外辐射通过部分镜面聚焦,并被热释电元接收,但是两片热释电元接收到的热量不同,热释电也不同,不能抵消,于是输出检测信号。BISS0001是由运算放大器、电压比较器、状态控制器、延迟时间定时器以及封锁时间定时器等构成的数模混合专用集成电路。当外界光强较强时,光敏电阻阻值很小,BISS0001检测到低电平,从而封锁14脚,禁止传感器infare1的信号。当外界光强较弱时,光敏电阻阻值很大,BISS0001检测到高电平,开启14脚;infare1检测到人体信号时,产生微弱的信号输出,经R5、R1005、R4、C1、C6、C7组成的信号放大滤波电路。R8、R9、C9和C10组成的延时电路。信号经处理后从2脚输出。环境光检测是比较重要的一个部分,其中关键的元件有两个,一个是光敏电阻,一个是10K的可变电阻(电位器)。光敏电阻的检测能力的强弱(灵敏度)是根据那个可变电阻来控制的,有的人认为天色还挺亮的,灯就开了,那你就把电阻变大些,光敏电阻的灵敏度就下降了,这样就可以达到等天再暗些再开灯。同样的,如果你觉的天色已经很暗了,灯还不亮,那你把电阻调小些就可以了。这样多调几次,你就能把智能台灯调到一个最理想的最适合你的状态。2.2.2单片机控制下的灯光控制及报警电路图3单片机控制下的灯光控制及报警电路由单片机组成的报警及灯光控制电路。当外部无任何中断时,89S51控制74LS138的使能控制端,使后面电路不工作。当有中断一产生时,89S51启动74LS138,向P0脚低4位发送信号,控制灯慢慢亮。当中断1和中断0同时产生时,89S51屏蔽掉中断1,启动74LS138向P0脚低四位发送数据,使灯光慢慢变暗。这里采用74LS138控制DC832可以节省80C51的管脚,有利于扩展,以便于控制多盏灯。采用DC0832可以有效地使灯实现阶梯形的变化。3系统程序设计3.1系统总体程序框图图4智能台灯系统程序总体框图上图为基于单片机控制的红外智能台灯系统程序总体框图。本系统因为单片机控制的器件比较少,所以程序较为简单。程序开始时,对系统所有数据进行初始化开启所有中断并启动计时器,然后设置中断返回入口。因为系统要求对外部环境要进行实时的检测,所以程序要不断的进行循环。下图为整个系统程序流程图图5整个系统程序流程图程序开始后,对程序进行初始化。向P0脚写入低电平,开启所有中断,启动计数器。当中断1来时,进入中断1,设置R0为0,调用延时程序TIME0(延时10ms),判断R0是否等于7,若不是,则加1,继续发送数据进入循环,直至R=7,即实现的是灯慢慢变亮的一个过程。当中断0和中断1同时产生时,根据优先级,屏蔽掉中断1,开启中断0。调用延时程序TIME0(延时1分钟),查询中断0控制位;防止人体不小心到达热释电探测器的探测范围内,采用延时程序来排除干扰,防止误判。若为0,则返回主程序;若为1,则向P0高四位发送数据,使灯保持原来最亮状态,调用延时程序TIME1,判断R0是否等于0,若是则中断返回,若不是,则R0减1,继续循环,直至R0等到于0,此程序的目的是实现灯慢慢变暗。基于对以上程序流程的理解写出了完整的C语言源程序。0RG0050HMAIN:MOVP0,#00000001B;置初始值DETO,DET1可重复触发,灯灭MOVTMOD,#00000010B;方式2,8位自动重装计数器MOVTCON,#00010000B;开启计数器T0MOVIE,#10000lllB;开启所有中断SJMP$;灯慢慢变亮DET1:MOVP0,#000000lBCALLTIME0;灯亮度延时10msMOVP0,#0000001lBCALLTIME0MOVP0,#00000101BCALLTIME0MOVP0,#00000111BCALLTIME0MOVP0,#00001001BCALLTIME0MOVP0,#00001011BCALLTIME0MOVP0,#00001101BCALLTIME0MOVP0,#00001111BCALLTIME1RETI;灯慢慢熄灭DET0:CALLTIME1;延时1分钟MOVTCON.AANLA.#lJZLOOPMOVP0,#00001111BCALLTIME0MOVP0,#00001101BCALLTIME0MOVP0,#00001011BCALLTIME0MOVP0,#00001001BCALLTIME0MOVP0,#00000111BCALLTIME0MOVP0,#00000101BCALLTIME0MOVP0,#00000011BCALLTIME0MOVP0,#00000001BRETIEND4结束语本系统制作的主要设计源泉来源于生活,因此创新之处也在于处理生活中一些比较常见的问题。以专门感应人体红外信号的热释电红外传感器为基础,以BISS0001信号处理电路,利用单片机进行处理,以达到便于控制的目的。当房间亮度不够时,且有人在附近时,台灯便会自动点亮,省去了黑暗中摸开关的麻烦;当学习时由于靠桌面太近,造成坐姿不正,系统就会提示,以纠正坐姿,防止近视;当学习太累了时,趴在桌子上睡会儿时,台灯就会自动熄灭;当无人在时,系统也会使台灯自动熄灭,以达到节省能源的目的。除了硬件部分采用防干扰技术外,在软件中也采用了防干扰技术,当中断0产生时,并不立即执行,而是对其进行延时,防止由于不小心而进入到探测器2的范围内,以免产生误判。虽然本系统以达到了使生活方便的目的,但是电路还是不够简单。因为当有多个热释电红外传感器时,就需要相应的信号检测电路。改进之处在于用一个信号处理电路同时控制多个传感器。还有一个不足之处在台灯开启时,产生的光强容易干扰光敏电阻对环境光强的判别,引起误判,现在的处理方法是传感器部分与控制部分单独分开放置。同时智能台灯还可以拓展一些闹钟或者定时提醒休息等。参考文献:[1]张毅刚.单片机原理及其应用[M].北京:高等教育出版社,2010[2]求实科技.单片机典型模块设计实例导航[M].北京:人民邮电出版社,2007[3]张齐.单片机应用系统设计技术一基于c语言编程[M].北京:电子工业出版社,2006[4]李光飞.单片机c程序设计实例指导[M].北京:航空航天大学业出版社,2005[5]楼燃苗,李光飞.51系列单片机设计实例[M].北京:航空航天大学业出版社,2003[6]马忠梅.单片机的c语言应用程序设计[M].北京:航空航天大学业出版社,1999[7]赖麒文.8051单片机c语言彻底应用[M].北京:科学业出版社,2002[8]丁元杰.单片微机原理及应用[M].北京:机械工业出版社,2001[9]谭浩强.c语言程序设计[M].北京:清华大学出版社,2010