随着社会经济和科学技术的发展,人类社会的进步越来越依赖于资源的开发与利用,然而与日俱增的能源需求和有限的资源数量形成了巨大的矛盾,能源短缺问题日益突出,成为经济发展的“瓶颈”。
该系统以51单片机作为控制装置的智能部件,采用红外对管检测室内人数,采用光敏电阻构成的电路检测环境光的强度;根据室内合理开灯的条件,系统通过对人数信号和环境光信号的识别和智能判断,完成对照明回路的智能控制,避免了用电的大量浪费;同时具备温度检测、定时开关、万年历等功能。
功能描述
1、时间/温度显示功能:C为人数;T为温度。
2、时间记忆功能:掉电后1302芯片使用电池继续“走时”,下次开机不用重新调时。
3、有效工作时段设置功能:只有在设置的工作时段内才会自动工作。
4、人数统计功能:根据两个红外对管触发的先后顺序确定人员进出情况;红外对管的触发过程配有指示灯显示。
5、自动亮灯功能:在自动模式下(绿色指示灯亮),且在有效工作时段内,如果光线暗度达到开灯标准(红色指示灯亮)的条件下,系统将根据当前人数来控制开灯数量:人数为0人不亮灯,1-9人亮一个灯,10-19人亮二个灯,20-29人亮三个灯,≥30人亮四个灯。
6、手动亮灯功能:在手动模式下,可以通过按键(KEY5)来开关四个照明灯。
按键说明
K1:功能1-进入菜单选择界面;功能2-下翻设置菜单;功能3-退出设置菜单。
K2:功能1-进入选中菜单;功能2-切换设置位;功能3-保存设置并退出菜单。
K3:对选中参数进行+1操作;
K4:对选中参数进行-1操作;
K5:手动/自动模式切换(绿灯-自动模式;黄灯-手动模式);
K6:手动模式下,点击选择LED亮灯数量。
整体方案
首先上电复位后系统处于自动控制状态。此时当有人进出室内时液晶显示屏会自动显示人数的加减情况,并且根据人数的多少与光强的大小来控制室内里灯的亮灭。按下强制转换按钮后系统转化为强制控制状态,此时通过人工来控制室内灯的点亮情况。
电路设计
采用Altium Designer作为电路设计工具。Altium Designer通过把原理图设计、PCB绘制编辑、拓扑逻辑自动布线、信号完整性分析和设计输出等技术的完美融合,为设计者提供了全新的设计解决方案,使设计者可以轻松进行设计,熟练使用这一软件必将使电路设计的质量和效率大大提高。
仿真设计
采用Proteus7.5作为仿真设计工具。Proteus是一款著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。
主程序设计
void main()
{
AUTO_LED=0; //默认自动模式
temperature=readtemperature();
init(); //液晶初始化
T0_init(); //定时器初始化
delay1(8000);
while(1)
{
if(Adjust==0) //非调节模式下显示时间人数和温度
{
temperature=readtemperature(); //读取温度
temperature_dispaly(3,temperature); //显示温度
Time_Display(); //显示时间
Open(); //动作判断,根据光线和声响开关
Count_Value(); //计算人数
Keyscan();
}
Keyscan(); //扫描键盘
}
}
void Timer0() interrupt 1 //定时器T0中断函数
{
TH0=(65536-50000)/256; //赋初值=50ms
TL0=(65536-50000)%256; //TH0=3C,TL0=B0
Count++; //每中断一次,Count加一,计数20次,表示1s的时间到
if(Count>=20) //1s到
{
Count=0;
Miao++;
if(Miao>=3) //3秒内无触发另一个,全部清零
{
Miao=0;
OUT1_flag=0; //清零
IN1_flag=0;
TR0=0; //关闭定时器
}
}
}
源文件获取
关注公众号【电子开发圈】,首页发送 “照明” 获取;