《教室灯光自动控制系统-嵌入式系统设计(共31页).doc》由会员分享,可在线阅读,更多相关《教室灯光自动控制系统-嵌入式系统设计(共31页).doc(31页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上 系统设计说明书 题 目: 教室灯光自动控制系统 学 校: 昆 明 理 工 大 学 学 院: 信息工程与自动化学院 专 业: 电子与通信工程 学 号: 学生姓名: 成 绩: 2014年 12 月 14 日专心-专注-专业目 录第1章 引言1.1 教室灯光自动控制系统的研究目的随着社会进步和科学技术的不断发展,人们的生活水平也在不断提高,导致用电负荷的加剧,人类社会的进步越来越依赖于资源的开发和利用。又由于近几年世界出现的能源危机,以及与日俱增的能源需求,因此,能源缺乏成为世界面临的严重问题,尤其对于我国这样的人口大国来说尤为重要。在寻找替代品、提高能源利用率和节约能源
2、等几种缓解能源危机的途径中,节能无疑是符合可持续发展的要求。教室是高等院校学习和交流的场所,随着教室的扩建,对教室照明的需求也越来越多。同时,高等院校为了便于学生之间进行相互动态的交流,通常都采用分时段开放式自由管理模式,这样对教室照明系统的管理就加大了难度。由于缺乏对应的高效调配管理自动化系统以及有些学生节能观念淡薄,很多教室能源浪费十分严重,通常出现教室只有几个人,甚至无人时灯光还全部亮着,或者在光照强度满足学习要求时,照明系统还处于工作状态,造成了电能的大量浪费。因此,提高教室照明系统效率显得至关重要。1.2 教室灯光自动控制系统的研究背景随着社会经济和科学技术的发展,人类社会的进步越来
3、越依赖于资源的开发与利用,然而与日俱增的能源需求和有限的资源数量形成了巨大的矛盾,能源短缺问题日益突出,成为一个国家经济发展的“瓶颈”。在寻找替代品、提高能源利用率和节约能源等几种缓解能源危机的途径中,节能无疑是符合可持续发展要求。英国城市大型彻夜灯光照明现象很少见,无论公司和政府部门,都没有虚浮华丽的所谓“照明工程”。夜晚漫步在伦敦街头,看不到大面积光华淌泻与楼体通明的景观,所有照明都基本以不影响人们的正常生活节奏为准。许多店铺橱窗的灯光在打烊后会全部关闭,有些店铺还采用定时关灯装置。在政府住宅楼和公寓楼内,楼道里的公用灯也大多采用自动断电装置。作为提高能源使用效率最重要的途径之一,德国政府
4、努力推动能源公司实施“供热供电结合”,鼓励能源公司将发电的余热尽可能用于供暖。2002年,德国颁布了促进“供热供电结合”的法规,根据这一法规,政府向实施该措施的能源公司,尤其是小型能源公司提供补助,帮助他们置办相应设备。中国城市每年用于公共照明的能源支出高达280多亿,节能空间巨大。其中路灯照明能耗占30%以上。发展城市道路照明的同时,路灯以供街道照明以外,还大力兴建了不少景观照明工程,美化城市的夜景,但同时也带来了能耗的极大浪费。中国十二五规划已经将城市绿色照明规划纳入重点,该规划除了强调控制污染和产品回收的问题,还着重强调节能降耗,节能新产品的设计等内容,说明我国已经对照明系统方面的节能十
5、分重视,教室照明系统的研究正逐步发展。目前,我国的照明用电约占世界总用电量的13%左右,采用高效照明产品代替传统的低效产品可节电60%-80%。如今,北京正大力推行绿色照明工程,已推出上百万只绿色照明光源和部分节能电器。另外,我国各类院校中,由于同学们的自觉节能意识薄弱,在光线足够强时也开着灯,上完课教室空无一人时灯还亮着的现象普遍存在,而且节能规划极为欠缺,教室的灯光控制完全由管理人员手工代替,教室极多,管理人员忙不过来,这样就造成不必要的电能浪费和经济损失。对于国外关于教室灯光的自动控制设计,也有一定的发展和研究。例如,丹麦在能源利用方面很成功,他们不断提供一些节能供热系统,尽可能有效的利
6、用资源,给世界各地对能源的高效利用提供了很好的借鉴;还有欧司朗斯维尼亚公司不断的推出新型高输出的荧光灯,节约6%的总系统功率,并具有更高的光通量和平均光通量;飞利浦照明公司推出的陶瓷金卤灯代替过去的卤钨灯,可节能60%。种种迹象表明世界各国都在采取不同的方式来节约能源、节约电能。第2章 系统总体设计2.1 教室灯光自动控制系统组成教室灯光自动控制系统主要由硬件和软件两部分组成。硬件部分是设计的前提,是整个系统执行的基础,为软件部分提供程序运行的平台。软件部分是对硬件部分所体现的信号加以采集、分析、处理,是实现所希望系统达到预期效果必不可少的一部分。通过硬件与软件配合使用,并结合相应外界可能出现
7、的干扰对其进行消除和改进,最终实现控制系统所希望实现的各项功能的智能照明系统。2.2 教室灯光自动控制系统的功能教室灯光自动控制系统,以环境光线强度和人体存在作为主要输入参数,同时结合对AT89C51单片机的软硬件进行控制,可以实现自动控制室内灯光的开与关。当环境光线充足时,无论有无人,教室灯光均不亮;当环境光线较弱时,根据教室内人数决定打开灯的数量。采用热释红外人体传感器检测人体的存在,采用光敏三极管构成的电路检测环境光的强度;根据教室合理开灯的条件,系统通过对人体的存在信号和环境光信号的识别和智能判断,完成对教室照明回路的智能控制。整体系统由人体传感器感应信号,再送入单片机进行处理,再由单
8、片机控制控制教室灯光。另外,为了防止学生学习时间过长而作息不规律的问题,还设置了时钟电路和超时报警电路,在LCD显示器上显示当前时间,当22点时会报警一次,提醒该休息了,延时20秒后蜂鸣器会自动关闭。2.2.1 教室灯光自动控制系统需要的模块 本系统主要包括五个模块分别是:环境采集模块、热释电红外传感器模块、始终模块、LED显示模块、超时报警模块。环境采集模块,利用按钮开关模拟光敏三极管,当按钮开关按下时,表示环境光很强,此时灯都不亮;当按钮开关松开时,表示环境光变弱,此时灯亮。热释电红外传感器模块,利用按钮开关模拟红外传感器检测室内人数,外界环境光较弱时,当人数在十人以下时亮一个灯,人数在十
9、人以上时亮两个灯。时钟模块,采用DS1302芯片控制,主要实现时分秒的显示。LCD显示模块,主要实现的功能是显示系统时间和室内人数。超时报警模块,为了更好地实现自动控制,特设超时报警电路,当系统达到夜间休息时间22:00:00时,蜂鸣器自动报警,延时20S后自动关闭。2.2.2 教室灯光自动控制系统的设计程序此系统的软件设计主要包括环境光采集模块设计、红外传感器模块设计、时钟模块设计以及LCD显示模块设计,而环境光采集模块和红外模块是通过键盘来模拟的。系统软件用C语言实现,源程序如下:#include #define uchar unsigned char#define uint unsign
10、ed int#define READ_SEC 0X81#define READ_MIN 0X83#define READ_HOU 0X85#define READ_DAY 0X87#define READ_ZHO 0X8B#define READ_MON 0X89#define READ_YEA 0X8D#define WRITE_SEC 0X80#define WRITE_MIN 0X82#define WRITE_HOU 0X84#define WRITE_DAY 0X86#define WRITE_ZHO 0X81#define WRITE_MON 0X88#define WRITE_Y
11、EA 0X8C#define WRITE_PROTECT 0X8E/*uchar code temp0=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;*/uchar miao,fen,shi;uchar number;sbit S1=P10;sbit S2=P11;sbit S3=P12;sbit rs=P20;sbit rw=P21;sbit en=P22;sbit rst=P25;sbit clk=P27;sbit io=P26;sbit ring=P35;sbit led0=
12、P12;sbit led1=P13;sbit ACC0=ACC0;sbit ACC7=ACC7;void delay(uint k)uint i,j;for(i=k;i0;i-)for(j=110;j0;j-);void delay1() ; /*液晶显示*/void write_1602date(uchar date)rs=1;delay(5);rw=0;delay(5);en=1;P0=date;delay(5);en=0;void write_1602com(uchar add)rs=0;delay(5);rw=0;delay(5);en=1;P0=add;delay(5);en=0;v
13、oid init_1602()write_1602com(0x38);write_1602com(0x0c);/开显示,不显示光标,光标不闪烁write_1602com(0x04);/读或写一个字符地址指针不加一,不移屏write_1602com(0x01);/清屏write_1602com(0x80);/write_1602com(0x85);/write_1602date(0x2d);/write_1602com(0x88);/write_1602date(0x2d);write_1602com(0x80+1);write_1602date(T);write_1602com(0x80+2)
14、;write_1602date(I);write_1602com(0x80+3);write_1602date(M);write_1602com(0x80+7);write_1602date(0x3a);write_1602com(0x80+10);write_1602date(0x3a);write_1602com(0X80+0x40+1);write_1602date(N);write_1602date(U);write_1602date(M);/*1302程序*/*ds1302写入程序*/void write_1302(uchar addr,uchar dat)uchar i;rst=0
15、;clk=0;rst=1; /发送地址for(i=0;i=1;clk=1;/发数据for(i=0;i=1;clk=1;rst=0;/*ds1302读出程序*/uchar read_1302(uchar temp)uchar returndate,i;rst=0;clk=0;delay1();rst=1;for(i=0;i=1;clk=1;/读取数据for(i=0;i1;clk=0;rst=0;returndate=ACC;return returndate;void init_1302() /1302芯片初始化子函数(2012-06-18,12:00:00,week7)rst=0;clk=0;
16、write_1302(WRITE_PROTECT,0x00); /允许写,禁止写保护 write_1302(WRITE_SEC,0x40); /向DS1302内写秒寄存器80H写入初始数00write_1302(WRITE_MIN,0x59);/向DS1302内写分寄存器82H写入初始数00write_1302(WRITE_HOU,0x21);/向DS1302内写小时寄存器84H写入初始数12/write_1302(WRITE_ZHO,0x01);/向DS1302内写周寄存器8aH写入初始数4/write_1302(WRITE_DAY,0x02);/向DS1302内写日期寄存器86H写入初始数
17、18/write_1302(WRITE_MON,0x06);/向DS1302内写月份寄存器88H写入初始数06/write_1302(WRITE_YEA,0x13);/向DS1302内写年份寄存器8cH写入初始数12write_1302(WRITE_PROTECT,0x80); /打开写保护void display_sfm(uchar dd,uchar dat)uchar ge,shi;shi=dat/10;ge=dat%10;write_1602com(0x80+dd);write_1602date(0x30+shi);write_1602date(0x30+ge); uchar BCD_d
18、e(uchar bcd)/将16进制数转换为十进制数uchar temp,num;temp=bcd/16;bcd=bcd%16;num=temp*10+bcd;return(num);void keyscanf(void)if(S1=0)delay(10);if(S1=0)while(!S1);number+;if(S2=0)delay(10);if(S2=0)while(!S2);number-;void main()uchar aa,bb;init_1602();init_1302();delay1();EA=1;EX0=1;while(1)keyscanf();aa=number/10;
19、bb=number%10;miao=BCD_de(read_1302(READ_SEC);fen=BCD_de(read_1302(READ_MIN);shi=BCD_de(read_1302(READ_HOU);display_sfm(11,miao);display_sfm(8,fen);display_sfm(5,shi);if(shi=22&miao=0&fen=0)/十点到,铃响ring=0;if(shi=22&miao=20&fen=0)/铃响20秒后自动关闭ring=1;if(number10) /大于十人 灯全亮led0=0;led1=0;if(number=0) /无人 灯灭
20、led0=1;led1=1;write_1602com(0X80+0x40+6);write_1602date(0x30+aa);write_1602date(0x30+bb); void initer() interrupt 0 led0=1; led1=1;2.3 教室灯光自动控制系统的运行环境 教室灯光自动控制系统在Proteus软件中进行仿真。Proteus软件是英国Lab Center Electronics公司出版的EDA工具软件(该软件中国总代理为广州风标电子技术有限公司)。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前比较好的仿真单片机及外围器件的工
21、具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。使用Proteus 进行单片机设计,是和相结合的综合运用。本系统首先在Proteus软件中调出所搭建的硬件电路图,再次检查电路连接是否合理,然后在Keil软件中编写实现系统所需功能的C语言程序,并创建“*.hex”文件,将其下载至AT89C51单片机中,运行此系统,检查是否达到了所希望的目的。第3章 硬件系统设计3.1 系统设计图此系统控制单元主要以AT89C51单片机主控模块为核心,其次为由光敏三极管组成的环境光采集电路和由热释电红外传感器组成的人体存在采集电路为数据收集模块,以及
22、由显示器构成的显示模块。还有系统供电电源模块、看门狗模块、I2C总线读写EEPROM存储器模块、时钟电路模块、超时报警模块、灯控区模拟模块等。此系统硬件结构框图如图3.1所示。此硬件结构电路原理图如图3.2所示。时钟模块热释电红外传感器模块超时报警模块AT89C51 单 片 机 模 块环境光采集模块电源模块灯控区模拟模块看门狗模块EEPROM存储器模块显示模块看门狗模块AT89C51 单 片 机 模 块EEPROM存储器模块电源模块灯控区模拟模块环境光采集模块显示模块图3.1 系统硬件结构框图图3.2 硬件结构电路原理图3.2 系统主要硬件电路3.2.1 系统主控电路 此系统主控单元是AT89
23、C51单片机,AT89C51单片机是ATMEL公司的一种曾在我国非常流行的一类单片机。具有与MCS-51产品完全兼容,具有4KB可在系统编程的Flash内部程序存储器,可擦/写1000次,128KB内部RAM,32根可编程I/O口线,2个16位定时器/计数器,6个中断源,可编程串行UART通道,低功耗空闲模式和掉电模式,有片内振荡器和时钟电路等特点;AT89C51共有40个引脚,其中接5V电源正端的40引脚Ucc和接5V电源地端的20引脚Uss未显示。单片机P1口是一个内部有上拉的8位准双向I/O口;P2口除了是一个内部有上拉的8位准双向I/O口,当CPU以总线方式访问外部存储器时,P2口输出
24、高8位地址;P3口除了是一个内部有上拉的8位准双向I/O口,还具有第二功能。单片机P0口作为通用I/O口时,由于其内部没有上拉电阻,因此通常要在其外部加一个上拉电阻来提高电流驱动能力,本设计用一个排阻RP1来接单片机所有的P0口。单片机内部有产生振荡信号的放大电路,通过外接晶振等器件构成稳定的自激振荡电路属于内部方式产生的时钟电路,图中电容C5、C6通常取33PF,可稳定频率并对频率有微调作用。如图3.3是其最小单元。图3.3 单片机最小系统模块单片机I/O口与其外围电路接口的分配情况如表1所示。表1 I/O口与外围电路的接口分配单片机I/O口引脚外围电路引脚说明P0.0-P0.7D0-D7L
25、CD数据口P1.0JIN进入教室内人数按钮P1.1CHU走出教室人数按钮P1.2D1LED指示灯P1.3D2LED指示灯P2.0RSLCD数据/命令选择端P2.1RWLCD读写选择端P2.2ELCD读写信号P2.5时钟芯片复位端P2.6I/O时钟芯片数据端P2.7SCLK时钟芯片时钟线P3.2光敏三极管输入端P3.5超时报警信号输入端3.2.2 系统供电电路由于单片机的供电电压通常为DC5V,而市电电压为AC220V,因此,要得到直流+5V电压,必须进行变压。变压器若选用输出电压为12V的变压器时,整流滤波后输出电压往往大于12V,因此,应选输出电压为9V的变压器。当系统接通220V交流电源后
26、,变压器就将220V交流电变压到9V;再经二极管整流桥进行全波整流,电解电容C1、C2滤波;再经一个三端稳压集成电路LM7805;另外,为了缓冲负载突变,改善瞬态响应,输出端还采用了电容C3、C4,最后得到直流+5V电源,用于给主控单元单片机系统及其他外围电路的VCC端供电。其供电电路原理图如图3.4所示。图3.4 系统供电电路图3.2.3 环境光采集电路环境光的采集是本设计输入参数之一,基本思想就是将采集到的光信号转换成单片机能够识别的电信号。光敏电阻能够实现将光信号转变成电信号,而光敏三极管还具有放大信号电流的作用,比光敏电阻对光线的检测要高得多;并且光敏三极管的灵敏度要高于光敏二极管,因
27、此,选用光敏三极管来采集环境光。 光敏三极管与普通半导体三极管一样,是采用半导体制作工艺制成的具有NPN或PNP结构的半导体管。在结构上,它的引出电极通常只有两个,也有三个的。当无光照时,流过光敏三极管的电流就是正常情况下光敏三极管集电极与发射极之间的穿透电流Iceo,它很小,是光敏三极管的暗电流;当有光照射基区时,产生的Ib增大,成为光电流Ie,而Ie的大小随光照强度的增强而增强,于是在负载电阻上就能得到随光照强度变化而变化的电信号。由于本设计是在Proteus中仿真,故用按键开关K2模拟光敏三极管。环境光采集模拟电路如图3.5所示,当环境光强大于一定程度,即相当于按键开关K2闭合时,三极管
28、2N3416基极电压升高,使其饱和导通,其集电极输出低电平;当自然光强小于一定程度,即按键开关K2打开时,三极管2N3416截止,其集电极输出高电平6。图3.5 环境光采集模拟电路3.2.4 人体热释电红外传感器电路自然界中的物体都会发射红外线,但波长各有不同。热释电红外传感器主要是由一种高热电系数的材料,如锆钛酸铅系陶瓷、钽酸锂、硫酸三甘钛等制成的探测元件,在每个探测器内装入一个或两个探测元件,并将两个探测元件以反极性串联,以抑制由于自身温度升高而产生的干扰。由探测元件将探测并接收到的红外辐射转变成微弱的电压信号,经装在探头内的场效应管放大后向外输出。人体辐射的红外线中心波长为910微米,而
29、探测元件的波长灵敏度在0.220微米范围内几乎稳定不变。在传感器顶端开设了一个装有滤光镜片的窗口,这个滤光片可通过光的波长范围为710微米,正好适合于人体红外辐射的探测,同时将灯光、阳光及其他红外辐射滤除,因此热释电红外传感器只对运动的人体敏感。热释电红外传感器有许多优点,例如:其本身不发射任何类型的辐射,器件功耗很小,隐蔽性好,价格低廉;夜间也可工作;可以防小动物干扰、抗电磁干扰、抗灯光干扰等。但容易受各种热源、光源干扰;当环境温度和人体温度接近时,探测灵敏度下降,有时会造成短时失灵。目前,人体热释电红外传感器广泛应用于楼道自动开关、防盗报警、自动门、自动水龙头等领域中。使用热释电红外传感器
30、时,应注意避开日光、汽车头灯、白炽灯直接照射,也不能对着如暖气片、加热器等热源或空调,以避免环境温度较大的变化而造成误报;检测器安放必须要牢固,避免因风吹晃动而造成误报;传感器表面不允许用手摸;光学透镜外表面要定期用湿软步或棉花擦净,避免尘土影响灵敏度;安装高度约2m。另外,要特别注意红外人体传感器的安放方向。本设计考虑到实验条件,只在仿真软件中仿真,所以用按键开关模拟进出教室内的人数。其模块电路如图3.6所示。图3.6 按键电路3.2.5 系统时钟电路考虑到实际需要,本设计还应增加对时间的控制,合理安排学生的作息时间,防止学生学习忘记时间,当过了夜间22点时,如果教室还有人就应该提醒相关人员
31、注意休息,因此,设置时钟电路显示时间并设报警电路提醒是有必要的。现在流行的串行时钟芯片很多,如DS1302、DS1307、PCF8485等,这些电路具有接口简单、价格低廉、使用方便而被广泛采用,考虑到多方面因素,还是决定采用目前应用最广泛的DS1302时钟芯片。该芯片是DALLAS公司推出的一种高性能、低功耗、带RAM的具有涓细电流充电能力的实时时钟电路,主要特点是采用串行数据传输,可为掉电保护电源提供可编程的充电功能,也可以关闭充电功能。DS1302可以计时年、月、日、时、分、秒,具有闰年补偿等多种功能,在测量控制系统,特别是长时间无人职守的测控系统中,经常需要记录某些特殊数据及其出现的时间
32、,而传统的数据记录方式是实时采样,只能记录数据而无法准确记录其出现的时间,而采用DS1302能很好的解决这个问题。DS1302的工作电压为2.5V5.5V,采用3线接口与CPU同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。其内部有一个318的用于临时性存放数据的RAM寄存器。DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源/后备电源双电源引脚,同时提供了对后备电源进行涓细电流充电的能力。其外部引脚定义如图3.7所示。引脚功能如表2所示。图3.7 DS1302引脚图表2 DS1302引脚功能引脚编号引脚名称功能1VCC2主电源2、3X1、X2振荡源,外
33、接32.768KHZ4GND地线5复位/片选线6I/O串行数据输入/输出端7SCLK串行数据输入端8VCC1后备电源DS1302与单片机接口电路如图3.8所示。VCC2外接系统供电模块的输出稳定电压+5V,为DS1302的主要供电电源;VCC1可接3.6V可充电锂电池,作为DS1302的备用电源,DS1302由VCC1或VCC2两者中较大者供电。当系统正常运行时,VCC2大于VCC1,因此由Vcc2给DS1302供电;在主电源关闭的情况下,则由VCC1给DS1302供电,保持时钟的连续运行。本设计主要利用此时钟电路设置系统时间。图3.8 系统时钟电路3.2.6 超时报警电路为了保证学校学生正常
34、作息,防止教室灯光工作超时,特采用超时报警模块,此模块与时钟模块结合来提醒相关人员注意时间。一般情况下,为保证充分的休息,在夜间22点之前应该关灯,因此,通过对单片机的软件编程及硬件时钟电路的结合,当达到夜间22点时,若教室还有人蜂鸣器就报警提醒。超时报警模块仿真电路如图3.9所示。图3.9 超时报警电路本设计中单片机P3.5引脚端口外接一个10K上拉电阻,再经一个100限流电阻与三极管基极相连,若P3.5为低电平,即系统达到22点时,三极管导通,蜂鸣器响,图中LED指示灯是为了仿真时检测蜂鸣器是否工作;当P3.5为高电平时,三极管截止,蜂鸣器不工作,教室灯光控制系统正常工作。3.2.7 系统
35、看门狗电路由于单片机的工作常常会受到来自外界电磁场等因素的干扰,造成程序的跑飞而陷入死循环,使程序的正常运行被打断,由单片机控制的系统无法正常继续工作,会造成整个系统陷入停滞状态,发生不可预料的后果,所以出于对单片机运行状态进行实时监测的考虑,应引入一种专门用于监测单片机程序运行状态的看门狗电路。看门狗电路就是一个定时计数器,如果程序由于外界干扰等原因而进入死循环,定时计数值达最大时就会把单片机复位。X5045是在单片机系统中应用最广泛的一种看门狗芯片,他把上电复位、看门狗定时器、电压监控和EEPROM四种常用功能集成在单个芯片里,以降低系统成本、节约电路空间。其看门狗定时器和电源电压监控功能
36、可对系统起到保护作用;EEPROM是电可擦可编程只读存储器,即一种掉电后数据不丢失的存储芯片,可存储单片机系统的重要数据。X5045引脚图如图3.10所示。图3.10 X5045引脚图本设计看门狗电路与单片机硬件连接图如图3.11所示。图3.11 看门狗电路3.2.8 灯控区模拟电路本设计由于不是实际操作,因此,采用两个LED指示灯D1和D2模拟。当环境光强度很大时,D1和D2均不亮;当环境光强弱时,人数少时只有D1灯亮,人数多到一定程度时D1、D2全亮。灯控区模拟电路如图3.12所示。图3.12 灯控区模拟电路3.2.9 LCD显示电路本设计采用LCD液晶显示器显示所需数据,其电路图模块如图
37、3.13所示。LCD显示器所采用的是LM016L是Proteus中的一个2行16列字符液晶显示器件。单片机的P0口接LCD的数据口D0D7,并且单片机的P0口需外接上拉电阻以增加P0口的驱动能力,如果去掉上拉电阻,LM016L将不显示;P2.0P2.2分别接LCD的控制端RS、RW和E。D0D7既传送数据又传送命令,当传送命令时,应同时使RS为0;当传送数据时,应同时使RS为1。RW是读写控制端,当RW=0时,由单片机向LM016L发送命令或数据;当RW=1时,由单片机从LM016L读取命令或数据。E为LM016L工作的使能端。图3.13 显示电路模块电路图第4章 系统软件设计4.1 系统主程
38、序设计此系统的软件设计主要包括环境光采集模块设计、红外传感器模块设计、时钟模块设计以及LCD显示模块设计,而环境光采集模块和红外模块是通过键盘来模拟的。液晶显示屏上会显示系统时间TIM和教室内人数NUM,教室灯光就根据环境光强弱和教室内人数来自动开闭。当环境光线强时,灯均不亮;当环境光线弱且教室内人数小于10时,亮一半灯;当环境光线弱且教室内人数大于10时,灯全部亮。另外,当系统显示时间到22点整时,蜂鸣器就会报警一次,延时20S后自动关闭。系统主程序流程图如图4.1所示。图4.1 系统主程序流程图4.2 系统子程序设计4.2.1 环境光采集模块本设计利用按钮开关K2模拟光敏三极管,当K2按下
39、,P3.2被拉为低电平,表示环境光很强,此时灯都不亮;当K2松开,表示环境光变弱,此时灯亮。环境光模块流程图如图4.2所示。图4.2 环境光采集模块流程图4.2.2 热释电红外传感器模块本设计利用按钮开关JIN、CHU模拟红外传感器检测室内人数,外界环境光较弱时,当人数在十人以下时亮一个灯,人数在十人以上时亮两个灯。其程序流程图如图4.3所示。图4.3红外传感器检测模块流程图4.2.3 时钟模块本设计采用DS1302芯片控制,主要实现时分秒的显示。注意在读DS1302时,读出的数据为BCD码,同样,在进行写操作时,写入的数据也必须为BCD码,因此,在数据写入之前、读出之后要进行必要的数据进制之
40、间的转换,以便与系统其他数据比较时相对应。时钟模块程序流程图如图4.4所示。图4.4时钟模块流程图4.2.4 LCD显示模块本设计主要实现的功能是显示系统时间TIM和室内人数NUM。时间TIM主要通过时钟芯片DS1302来控制,本设计主要显示时分秒;人数NUM主要通过模拟传感器的按钮来实现加减人数。LCD显示模块程序流程图如图4.5所示。图4.5 LCD显示模块流程图4.2.5 超时报警模块本设计为了更好地实现自动控制,特设超时报警电路,当系统达到夜间休息时间22:00:00时,蜂鸣器自动报警,延时20S后自动关闭。超时报警模块程序流程图如图4.6所示。图4.6 超时报警模块流程图第5章系统仿
41、真与调试5.1 仿真调试方法及注意事项当系统硬件与软件设计完成后,要检验此设计的正确性以及所存在的问题,就需要对系统进行仿真与调试。由于此系统是模拟系统,所以,只需在Proteus软件中进行仿真。首先在Proteus软件中调出所搭建的硬件电路图,再次检查电路连接是否合理,然后在Keil软件中编写实现系统所需功能的C语言程序,并创建“*.hex”文件,将其下载至AT89C51单片机中,运行此系统,检查是否达到了所希望的目的。经过多次尝试与修改硬件和软件部分,最终实现设计的要求。在使用此系统仿真时,注意应少用分立的元器件;尽量把电阻设置成数字模式,而不是模拟模式占用CPU资源;单片机的+5V电源可
42、以直接从库里调用,而不用独自创建电源模块;另外,在选取仿真元件时要选取具有仿真模型的元件。当系统首次调试达不到预期效果时,需耐心、仔细检查所有可能出问题的地方,查找故障源,反复修改软硬件,找出所有问题并全部解决之后才能保证整个系统的正常运行。5.2 系统使用说明及仿真结果本设计主要实现时分秒的显示、室内人数的统计并显示、超时报警以及结合人数和环境光强来亮灯的目标。当环境光强时,即按键K2按下时,无论室内人数为多少,灯均不亮,在Proteus中仿真结果如图5.1所示。图5.1 环境光强时当环境光弱时,即按键K2未按下时,室内人数在10人以下时有一半灯亮,即只有D2灯亮,在Proteus中仿真结果如图5.2所示。图5.2 环境光弱且人数在10人以下时当环境光弱时,即按键K2未按下时,室内人数在10人以上时灯全亮,即D1和D2灯都亮,在Proteus中仿真结果如图5.3所示。图5.3 环境光弱且人数在10人以上时当系统时间达到22:00:00时,蜂鸣器报警,20S后自动关闭,仿真时用D3测试蜂鸣器是否工作,在Proteus中仿真结果如图5.4所示。图5.4 系统达到22点时