一、设计要求
本设计是一种基于PWM调光的智能台灯设计。把单片机技术和PWM调光技术结合起来实现台灯光强的调节。即在不改变PWM方波周期的前提下,利用单片机控制PWM的占空比,从而来改变电压的大小实现灯光亮度的调节。
当人体在台灯的范围内且环境光线较弱时,自动感应开灯,且灯的亮度随着环境光线的改变而自动调节,一旦人离开台灯范围,即红外热释传感器检测不到有人时,1分钟后自动熄灯。本设计通过亮度的自动调节和人体检测控制台灯开关来达到绿色节能的效果。同时为了提高本设计的适用范围,还加入了手动模式的控制,在该模式下,台灯亮度由按键调节,这样使得该台灯在一些特殊情况下也能适用。
系统的组成结构如下:
二、设计资料
三、部分程序代码
#include <reg52.h>
#include <intrins.h>
#define uchar unsigned char // 以后unsigned char就可以用uchar代替
#define uint unsigned int // 以后unsigned int 就可以用uint 代替
sbit LED = P1^0; // 模式指示灯,亮是自动模式,灭是手动模式
sbit Lamp = P1^4; // 台灯控制引脚
sbit Key1 = P1^1; // 按键1,模式切换按键
sbit Key2 = P1^2; // 按键2,亮度减少按键
sbit Key3 = P1^3; // 按键3&