练手小项目:51单片机控制的智能台灯设计(自动感应调光) 电路图,测试图,源代码全技术资料

功能及概述
本系统组成如图一所示,主要由三部分组成:

  1. 传感器及信号处理部分:检测人体辐射红外信号及光强信号经过处理后变成可处理的数字信号
  2. 以80C51组成的中央处理单元:处理信号并发出控制命令
  3. 提醒电路及灯光控制电路 :给出提醒信号并根据80C51给出的命令控制灯光
    整个系统是以80C51控制下工作的。其工作过程为:当环境光比较强时,光敏电阻阻值比较小,信号处理电路检测到低电平信号,禁止热释电红外传感器工作,省去了80C51处理过程。当环境光比较弱时,光敏电阻阻值变大,信号处理电路接收到高电平,从而启动热释电红外传感器工作。热释电红外传感器1探测比较远的距离,当人体进入到传感器1的控测范围内且光强较弱时,信号检测电路处理信号,并向单片机发送一个中断,80C51启动灯光控制电路,使灯慢慢变亮。当环境光比校弱时,且人体过于靠近桌面,热释电红外传感器2检测到信号,同时了在热释电红外传感器1的控测范围内,信号处理电路同时向80C51发送信号,80C51处理信号根据优先级顺序,屏蔽掉热释电红外传感器1的信号,启动延时电路,发出警报使人离开,若在设定的时间内未离开桌面,则启动灯光控制电路,使灯慢慢熄灭。当人体离开热释电红外传感器2的控测范围且在热释电红外传感器1的控测范围内时,灯光又慢慢变亮。

设计资料
在这里插入图片描述
在这里插入图片描述
电路原理图
在这里插入图片描述
三、测试结果:
本系统的主要设计思想来源于生活。台灯是一般家庭的生活必需品,但由于经常忘记关灯而造成巨大的能源浪费。全球这么多台灯,估算一下,消耗能源可观。另一个是作为一个必需品,当然要使生活变得更方便,省去了黑暗中开灯的麻烦,并且可以纠正坐姿。本系统在实验室进行了实物实验。热释电红外探测器1的距离是4m左右(距离可调),主要是因为般来说是门离书桌的距离;以便黑暗中时人一到门口则启动,省去了开灯的麻烦,用户可以根据自己的实际情况进行距离调节。热释电红外探测器1的距离是10cm左右(距离可调),主要考虑是当学习时,有时坐姿不正,引起身体离桌面太近,容易引起近视,此时台灯发出警告,提醒注意,若在设定的时间内未离开,则强制熄灭。有时人学习累了,趴在桌子上睡觉,而忘了关灯,这时系统就会检测到,从而启动延时程序,一段时间过后,台灯就会自动熄灭。
本系统的主要技术难点在于对人体红外信号的采集及处理。由于采用的是热释电红外传感器,当人体进入其感应范围时,传感器就会产生几mV信号,然后通过以BISS0001为中心的信号处理电路,对信号进行二次放大,并滤波,以防止外界的信号产生干扰。信号经过BISS0001后从而转化为数字信号输出,便于用单片机进处理。
本系统制作的主要设计源泉来源于生活,因此创新之处也在于处理生活中一些比较常见的问题。以专门感应人体红外信号的热释电红外传感器为基础,以BISS0001信号处理电路,利用单片机进行处理,以达到便于控制的目的。当房间亮度不够时,且有人在附近时,台灯便会自动点亮,省去了黑暗中摸开关的麻烦;当学习时由于靠桌面太近,造成坐姿不正,系统就会提示,以纠正坐姿,防止近视;当学习太累了时,趴在桌子上睡会儿时,台灯就会自动熄灭;当无人在时,系统也会使台灯自动熄灭,以达到节省能源的目的。除了硬件部分采用防干扰技术外,在软件中也采用了防干扰技术,当中断0产生时,并不立即执行,而是对其进行延时,防止由于不小心而进入到探测器2的范围内,以免产生误判。
虽然本系统以达到了使生活方便的目的,但是电路还是不够简单。因为当有多个热释电红外传感器时,就需要相应的信号检测电路。改进之处在于用一个信号处理电路同时控制多个传感器。还有一个不足之处在台灯开启时,产生的光强容易干扰光敏电阻对环境光强的判别,引起误判,现在的处理方法是传感器部分与控制部分单独分开放置。

设计感想:
本系统的设计思想来源于生活,所以所具有的功能也是为生活的方便而设置的。因此就产生了制作智能台灯的想法。首先在与老师的商讨下,对项目进行了认证,确定了项目的可行性,列出了项目的主要难点及可能出现的问题,确定了以后的制作重点。接下来进行构思,列出大体的框架图。然后根据框架图用PROTEL画出电路原理图。
在对电路原理图进行了严谨的认证后,便开始了焊接电路。由于主要对象是人,因此采用热释电红外传感器,此传感器是专门用于接收人体产生的10um左右的信号,相应的利用BISS0001处理其所产生的信号并转化为可处理的数字信号。在焊接的过程中发现若用到两个光敏电阻,则可能使单片机产生误判。因此将两个光敏电阻合到一块,不仅简化了电路,还提高了系统的稳定性。当信号检测及处理部分完成后,便开始试检,以确定电路焊接正确与否。在对电路进行调试的过程中,必须排除外界的干扰,尤其是附近热源的红外线干扰。首先将BISS0001设置成不可重复触发方式,比较长延迟时间,以便得到稳定的输出信号,并把接收光电池的引脚接成高电平,使BISS0001认为一直处于黑暗之中,便于观测。在运行时,当人远离时,BISS0001输出低电平,符合要求;但是在人靠近后信号出现不规则的变化。利用示波器对BISS0001的各个管脚进行测量,发现信来源的主要不稳定因于传感器,因此,在目前没有更好的更换下,只好采用目前的热释电传感器。
接下来做的是数字电路部分,主要80C51、74LS138、LM324、DAC0832组成。数字电路部分比较简单,焊接完成后,编写一个新程序,对各个端口进行扫描,从而显示数字电路是可行的。
在对电路部分进行了初步的检测后,解决了比较主要的问题;因此依据硬件编写相应的程序,经过KEIL软件仿真后,语法上无错误,各个端口的数据正是所需要的,最后是将软件烧到单片机中,然后运行整个系统。
通过本次实验,熟悉了电路的开发和制作及论文的编著写。在实验中也遇不少难题,但通过各种方法进行了解决。

程序参考源代码(部分)

ORG 0000H
AJMP MAIN
ORG 0003H
AJMP DET1 ;远探测器
ORG 0013H
AJMP DET0 ;近探测器

ORG 0050H
MAIN: MOV P0, #00000001B ;置初始值DET0,DET1可重复触发,灯灭
MOV TMOD, #00000010B ;方式2,8位自动重装计数器
MOV TCON, #00010000B ;开启计数器T0
MOV IE, #10000111B ;开启所有中断
SJMP $
;灯慢慢变亮
DET1: MOV P0, #00000001B
CALL TIME0 ;灯亮度延时10ms
MOV P0, #00000011B
CALL TIME0
MOV P0, #00000101B
CALL TIME0
MOV P0, #00000111B
CALL TIME0
MOV P0, #00001001B
CALL TIME0
MOV P0, #00001011B
CALL TIME0
MOV P0, #00001101B
CALL TIME0
MOV P0, #00001111B
CALL TIME1
RETI
;灯慢慢熄灭
DET0: CALL TIME1 ;延时1分钟
MOV TCON, A
ANL A, #1
JZ LOOP
MOV P0, #00001111B
CALL TIME0
MOV P0, #00001101B
CALL TIME0
MOV P0, #00001011B
CALL TIME0
MOV P0, #00001001B
CALL TIME0
MOV P0, #00000111B
CALL TIME0
MOV P0, #00000101B
CALL TIME0
MOV P0, #00000011B
CALL TIME0
MOV P0, #00000001B
RETI
LOOP: ret
;延时10ms
TIME0: SETB TR0
MOV R0, #250
MOV R1, #20
D_1: DJNZ R0, D_1
MOV R0, #250
DJNZ R1, D_1
CLR TR0
RET
;延时1分钟
TIME1: SETB TR0
MOV R0, #250
MOV R1, #200
MOV R2, #60

鉴于篇幅限制,只有部分代码,需要完整代码请自行下载

最后,如果有什么意见或者建议欢迎您留言给我,让我们共同学习一起进步,
如果需要 完整代码或设计文件,请在下方留言或者私信我,看到后会第一时间回复。

谢谢!

发布了97 篇原创文章 · 获赞 200 · 访问量 8万+

猜你喜欢

转载自blog.csdn.net/weixin_44212493/article/details/104335104