基于单片机的光控路灯设计含程序和仿真图.doc
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于单片机的光控路灯设计含程序和仿真图
. 摘要随着社会文明的不断发展,城市照明已经不仅仅局限于街道的照明,而更是发展成为了城市景观等装饰性照明的综合市政工程。
本系统采用51单片机和相关的光电检测设备来设计智能光控路灯控制器,利用单片机可编程控制八位逻辑I/O端口实现路灯的智能化,达到节能、自动控制的目的,避免了传统电路对能源的浪费,且路灯的自动控制更方便了工作人员的管理。
而且所用的路灯采用LED灯,众所周知,LED是目前最为节能的发光元件,通过采用LED发光可以节省大量的电能,因此,智能光控节能路灯必将在未来得到广泛的应用。本设计方案采用光线强度、时间以及道路车流量的三重模式控制,在很大程度上做到了“随需而控”,同时符合了当今社会所倡导的节约型、可持续性发展的标准,因而拥有良好的可行性和具有很大的实用价值。
本设计是以光敏电阻对于外界光线强弱的感应能力为基础进行的路灯自动化控制系统设计。当光线强度弱到一定程度的时候,路灯就会自动灭掉;
当光线强到一定程度的时候,路灯就会自动开启。本设计以当外界光线强度弱到使光敏电阻阻值大于等于200欧的时候,LED 灯会自动开启;
小于200欧的时候,自动关闭。关键字:
单片机,光敏电阻,LED,路灯照明目录摘要··························································1绪
论 (3)
一、目标及任务 (4)
二、硬件设计 2.1 主要模块构成............................................4 2.2 电路设计................................................9 2.3 系统流程 (11)
三、系统的软件设计 3.1详细步骤..................................................11 3.2 具体程序设计..............................................12 3.3 系统软件执行流程 (12)
四、结论与设计调试 4.1结论.......................................................144.2课程设计过程中遇到的主要问题以及解决办法. (14)
五、心得体会 (15)
六、参考文献 (16)
七、附录(仿真图、源程序) (17)
绪论随着社会的发展,路灯已经成为一个城市的照明系统中不可分割的一部-省略部分-gned char FirstBit,unsigned char Num){ static uchar i=0; P0=0x00 ; //数码管消隐a=1; P0=0x00; Delay(0); a=0; P0=0x00; b=1; P0=Weima[i+FirstBit]; Delay(0); b=0; P0=0x00; a=1; P0=tempdata[i]; Delay(0); a=0; i++; if(i==Num) //缓存数据i=0;}///////////读取数值////////uchar Read(uchar AI){ uchar z; Start();
Send(0x90); Ack(); Send(0x40|AI); //括号中的参数AI数值从0--3为四路AD的地址,通过改变该参数可以改变输入通道Ack(); Start(); Send(0x91); Ack(); z=Rec(); Noack(); Stop(); return(z);}////////主函数////////////void Main(){ uchar num=0; TMOD |= 0x01; //使用模式1,16位定时器,使用"|"符号可以在使用多个定时器时不受影响EA=1; //总中断打开ET0=1; //定时器中断打开TR0=1; //定时器开关打开rst=0; //关闭1302时钟P0=0X00; //关闭点阵Line=0; P0=0XFF; //关闭LED 灯LeDen=0; while(1) { num=Read(0);//括号中的参数0--3为四路AD 的地址,通过改变该参数可以改变输入通道tempdata[0]=Duanma[num/1000]; //千位tempdata[1]=Duanma[num/100]; //百位tempdata[2]=Duanma[(num0)/10]; //十位tempdata[3]=Duanma[(num0)]; //个位Delay(50); }}void Timer0(void) interrupt 1 { if(tempdata[1]=Duanma[2]) { LeDen=1; P0=0x00; LeDen=0; Delay(30); } if(tempdata[1][2]) 达到当天最大量API KEY 超过次数限制