基于单片机教室灯光智能控制系统
}
}
}
}
relay=0;//继电器吸合 miao = 0; value = 0;
if(relay == 0) //继电器吸合计时30秒 { }
value ++; if(value >= 10) { }
value = 0; miao ++;
if(miao >= 10) //10秒的时间 { }
miao = 0;
relay = 1; //关闭继电器
void main()//主函数 {
hw = 0;
delay_1ms(500);//延时500ms P0 = P1 = P2 = P3 = 0XFF; while(1)//循环 {
work();//调用工作函数
yellow = ~hw; //红外感应指示灯 delay_1ms(100); //100ms
} }
–21–
基于单片机教室灯光智能控制系统
4.3.4 人体存在传感器的说明
人体存在传感器易受外界影响,于是要在使用时特别注意抗干扰性能。 ⑴ 防小动物干扰
探测器安装在推荐地使用高度,对探测范围内地面上的小动物,不产生信号。 ⑵ 抗电磁干扰
探测器的抗电磁波干扰性能符合GB10408中要求,一般手机电磁干扰不会引起误报。
⑶ 抗灯光干扰
探测器正常灵敏度范围内,受3米外H4卤素灯透过玻璃照射,不产生信号。 4.3.5 人体存在传感器的安装要求
人体存在传感的安装要求:人体存在传感器只能安装在室内,其误报率与安装的位置和方式有极大的关系,正确的安装应满足下列条件:
⑴ 人体存在传感器应离地面2.0-2.2米。
⑵ 人体存在传感器远离空调,冰箱,火炉等空气温度变化敏感的地方。 ⑶ 人体存在传感器探测范围内不得隔屏、家具、大型盆景或其他隔离物。 ⑷ 人体存在传感器不要直对窗口,否则窗外的热气流扰动和人员走动会引起误报,有条件的最好把窗帘拉上。人体存在传感器也不要安装在有强气流活动的地方。人体存在传感器对人体的敏感程度还和人的运动方向关系很大。人体存在传感器对于径向移动反应最不敏感,而对于横切方向(即与半径垂直的方向)移动则最为敏感。在现场选择合适的安装位置是避免红外探头误报、求得最佳检测灵敏度极为重要的一环。
4.4 时钟模块的设计
4.4.1 时钟模块功能
在对DS1302进行读操作时,读出的数据为BCD码,同样在写操作时,写入的数据一也必须为BCD码,这就需要在数据写入之前、读出之后进行必要的数据进制之间的转换,以便与系统其它数据在比较时相对应。 4.4.2 时钟模块流程图
DS1302进行读写的程序流程图如图4-5所示:
–22–
基于单片机教室灯光智能控制系统
开始开始 将DS1302写保护 变量初始化 RST—端送高电平 去除写保护 写入DS1302读地址 RST—端送高电平 将该地址数据读出 写DS1302地址 数据读完了 向该地址写入数据 数据写完了 将读出的数据暂存,待显示 结束 图4-5 时钟模块流程图
4.4.3 时钟模块初始化程序 DS1302初始化子程序如下所示:
void ds1302_init() //1302芯片初始化子函数(2010-01-07,12:00:00,week4)
{
RST=0; 12
07
//write_1302(0x8a,0x04);//向DS1302内写周寄存器8aH写入初始周数据4 //write_1302(0x86,0x07);//向DS1302内写日期寄存器86H写入初始日期数据SCLK=0;
write_1302(0x8e,0x00); //允许写,禁止写保护
//write_1302(0x80,0x00); //向DS1302内写秒寄存器80H写入初始秒数据00 //write_1302(0x82,0x00);//向DS1302内写分寄存器82H写入初始分数据00 //write_1302(0x84,0x12);//向DS1302内写小时寄存器84H写入初始小时数据
–23–
基于单片机教室灯光智能控制系统
01
10
//write_1302(0x88,0x01);//向DS1302内写月份寄存器88H写入初始月份数据//write_1302(0x8c,0x10);//向DS1302内写年份寄存器8cH写入初始年份数据write_1302(0x8e,0x80);//打开写保护
4.4.4 时钟模块说明
在本系统中,因设定的时间参数一般都为二进制或十六进制数,为了便于同DS1302的时钟数据进行比较,故在程序中需进行二进制与BCD码之间的转换,根据教室灯光使用特性,该系统还应受到时间的控制,因此本研究还加入硬件时钟电路以保证系统的智能化运行。
4.5 液晶显示模块
运行过程中的数据显示是人机交互对话的一个重要通道。通过系统数据的显示,我们才可以更好的了解系统运行的状态,从而便于对整个系统进行必要的操作。 4.5.1 液晶显示模块的功能
显示主要是通过从芯片中毒如程序,分别对秒、分、时、日、月、年进行显示,并且通过主键盘的操作,对时间进行加减操作,使时间更新显示。 4.5.2 显示模块流程图
系统显示流程图如图4-6所示
–24–
基于单片机教室灯光智能控制系统
开始 1602初始化 读取数据 第一行显示 读取数据 第二行显示 结束
图4-6 显示模块流程图
4.5.3 显示模块的程序
液晶显示初始化程序如下: 位数据
write_1602com(0x0c);//开显示不显示光标
write_1602com(0x06);//整屏不移动,光标自动右移 write_1602com(0x01);//清显示
write_1602com(0x38);//设置液晶工作模式,意思:16*2行显示,5*7点阵,8
写命令函数解释如下:
void write_1602com(uchar com)//****液晶写入指令函数**** {
rs=0;//数据/指令选择置为指令 rw=0;//读写选择置为写 P0=com;//送入数据 delay(1);
en=1;//拉高使能端,为制造有效的下降沿做准备
–25–