2026/3/28 13:20:52
网站建设
项目流程
学校网站开发4人小组分工,国内新闻最新消息,买东西网站有哪些,泉州关键词搜索排名全套资料包含#xff1a;Proteus仿真源文件keil C语言源程序AD原理图流程图元器件清单说明书等
资料下载#xff1a;
通过网盘分享的文件#xff1a;资料分享 链接: 百度网盘 请输入提取码 提取码: tgnu 目录
资料下载#xff1a;
Proteus仿真功能
项目文件资料#…全套资料包含Proteus仿真源文件keil C语言源程序AD原理图流程图元器件清单说明书等资料下载通过网盘分享的文件资料分享链接: 百度网盘 请输入提取码 提取码: tgnu目录资料下载Proteus仿真功能项目文件资料一、Proteus仿真源文件二、AD原理图文件二、报告说明书三、系统流程图四、Keil c语言程序源代码项目功能设计光照度、人数检测电路以光照度为依据控制灯继电器开关检测人数便于统计。(2设计上位机软件程序。接收并显示教室编号教室内人数教室内分区照明灯具的开关状态信息;实现上位机对所有教室或某个单独教室进行远程控制。(3设计下位机单片机控制电路包含按键电路)一方面自动控制教室内各区域照明的开启和关断另一方面实现人数状态信息的采集。(4采用某种形式的无线通信实现上位机下位机之间的控制与信号传输。项目文件一、Proteus仿真源文件二、AD原理图文件二、报告说明书三、系统流程图四、器件清单元件型号数量单片机AT89C511电容10uf1电容30pf2晶振12MHZ1电阻10k2按钮17实时时钟DS13021模数芯片PCF85911电位器1k1LED红色8电阻100欧8显示器LCD16021排阻10k1存储器24C021晶振32.768kHZ1红外对管2串转并芯片74LS5951光敏电阻10k1五、Keil c语言程序源代码(部分)#include reg51.h #include intrins.h #include PCF8591.h #include lcd1602.h #include i2c.h #include ds1302.h #include 74hc595.h #define uchar unsigned char #define uint unsigned int sbit inP2^3;//红外传感器 uchar time0,mode0,hand0;//系统定时设置模式控制模式 uchar light0,limit50;//光照阀值 uchar shi112,fen10,shi26,fen20;//开启关闭时间段 uchar num2;//教室编号 uchar led0xff;//亮灯数 uchar man0;//人数 uchar disp1[]00; uchar disp2[]000; uchar next0;//接收控制 uchar read0;//指令存储 void send(uchar i)//串口发送 { SBUFi; while(!TI); TI0; } uchar key0; //按键变量 uchar key_scan()//按键检测 { uchar i,j; i0; j0; P10x0f; if(P1!0x0f) //检测有无按下 { switch(P1)//检测行 { case 0x0e:i3;break; case 0x0d:i2;break; case 0x0b:i1;break; case 0x07:i0; } P10xf0; switch(P1)//检测列 { case 0xe0:j13;break; case 0xd0:j9;break; case 0xb0:j5;break; case 0x70:j1; } } if(key!ij) { keyij; return key; } else return 0; } //主函数 void main() { uchar i0; Hc595SendByte(0xff); //初始化存储 limitAt24c02Read(0); if(limit200) { limit50; At24c02Write(0,limit); } shi1At24c02Read(1); if(shi123) { shi112; At24c02Write(1,shi1); } fen1At24c02Read(2); if(fen159) { fen10; At24c02Write(2,fen1); } shi2At24c02Read(3); if(shi223) { shi26; At24c02Write(3,shi2); } fen2At24c02Read(4); if(fen259) { fen250; At24c02Write(4,fen2); } init_1602(); //设置INT0 IT01;//跳变沿出发方式下降沿 EX01;//打开INT0的中断允许。 //设置INT1 IT11;//跳变沿出发方式下降沿 EX11;//打开INT1的中断允许。 SCON0X50; //设置为工作方式1 TMOD0X21; //设置计数器工作方式2 TH10XFD; TL10XFD; ES1; //打开接收中断 TR11; //打开计数器 TH00X3C; TL00XB0; ET01;//打开定时器0中断允许 EA1;//打开总中断 TR01;//打开定时器 while(1) { if(!in (man0))//检测到有人 { man1; } if(in) //无人 man0; ikey_scan();//按键检测 if(i1)//手动开 { if(led0) led1; hand1; } if(i2)//手动关 { if(led0xff) { led1; led0x80; } hand1; } if(i3)//自动模式 hand0; if(i4)//设置 { mode1; write_string(1,0, ); write_string(2,0, ); } if(i8)//OK { mode0; write_string(1,0, ); write_string(2,0, ); } if(mode1)//设置模式 { if(i5)//光照 { if(limit200) limit; At24c02Write(0,limit); } if(i6) { if(limit0) limit--; At24c02Write(0,limit); } if(i9)//启动时间 { if(shi123) shi1; At24c02Write(1,shi1); } if(i10) { if(shi10) shi1--; At24c02Write(1,shi1); } if(i11) { if(fen159) fen1; At24c02Write(2,fen1); } if(i12) { if(fen10) fen1--; At24c02Write(2,fen1); } if(i13)//关闭时间 { if(shi223) shi2; At24c02Write(3,shi2); } if(i14) { if(shi20) shi2--; At24c02Write(3,shi2); } if(i15) { if(fen259) fen2; At24c02Write(4,fen2); } if(i16) { if(fen20) fen2--; At24c02Write(4,fen2); } } } } //定时器中断 void Timer0() interrupt 1 { uint i0,j0,k0; if(time10)//0.5s time; else { time0; lightPCF8591_read(1);//测量光照 Ds1302ReadTime();//读取时间 if(hand0)//自动模式 { ids1302_time[2]*60ds1302_time[1]; jshi1*60fen1; kshi2*60fen2; if(man0)//有人 { if(lightlimit) { led0xff(8-light*8/limit);//点亮led } else led0xff; if(jk) { if((ij)||(ik)) _nop_(); else led0xff; } else { if((ij)(ik)) _nop_(); else led0xff; } Hc595SendByte(led); } else { led0xff; Hc595SendByte(led); } } else //手动模式 Hc595SendByte(led); //显示 if(mode0)//正常模式 { write_string(1,0,room:);//房间 disp1[0]num; disp1[1] ; write_string(1,5,disp1); if(hand1)//模式 write_string(1,8,hand); else write_string(1,8,auto); disp1[0]man/100x30;//人数 disp1[1]man%100x30; write_string(1,14,disp1); disp1[0]ds1302_time[2]/100x30;//小时 disp1[1]ds1302_time[2]%100x30; write_string(2,0,disp1); write_string(2,2,: ); disp1[0]ds1302_time[1]/100x30;//分钟 disp1[1]ds1302_time[1]%100x30; write_string(2,3,disp1); write_string(2,5,: ); disp1[0]ds1302_time[0]/100x30;//秒 disp1[1]ds1302_time[0]%100x30; write_string(2,6,disp1); disp2[0]light/1000x30;//光照 disp2[1]light%100/100x30; disp2[2]light%100x30; write_string(2,9,L:); write_string(2,11,disp2); write_string(2,14,Lx); } else //设置模式 { write_string(1,0,Lim:); disp2[0]limit/1000x30;//光照 disp2[1]limit%100/100x30; disp2[2]limit%100x30; write_string(1,4,disp2); write_string(1,7,Lx); //启动时间 disp1[0]shi1/100x30;//小时 disp1[1]shi1%100x30; write_string(2,0,disp1); write_string(2,2,: ); disp1[0]fen1/100x30;//分钟 disp1[1]fen1%100x30; write_string(2,3,disp1); //关闭时间 disp1[0]shi2/100x30;//小时 disp1[1]shi2%100x30; write_string(2,8,disp1); write_string(2,10,: ); disp1[0]fen2/100x30;//分钟 disp1[1]fen2%100x30; write_string(2,11,disp1); } } TH00X3C; TL00XB0; } void Int0() interrupt 0 //外部中断0的中断函数 { if(man99) man; } void Int1() interrupt 2 //外部中断1的中断函数 { if(man0) man--; } //串口中断 void Usart() interrupt 4 { uchar receiveData; receiveDataSBUF;//出去接收到的数据 RI 0;//清除接收中断标志位 next!next; if(next)//接收编号 { readreceiveData; } else//接收指令 { if(readk)//手动开 { if(led0) led1; hand1; } if(readl)//手动关 { led0xff; hand1; } if(readm)//自动模式 { hand0; } if(readnum)//确认当前设备 { if(receiveDataa)//光照 { if(limit200) limit; At24c02Write(0,limit); } if(receiveDatab) { if(limit0) limit--; At24c02Write(0,limit); } if(receiveDatac)//启动时间 { if(shi123) shi1; At24c02Write(1,shi1); } if(receiveDatad) { if(shi10) shi1--; At24c02Write(1,shi1); } if(receiveDatae) { if(fen159) fen1; At24c02Write(2,fen1); } if(receiveDataf) { if(fen10) fen1--; At24c02Write(2,fen1); } if(receiveDatag)//关闭时间 { if(shi223) shi2; At24c02Write(3,shi2); } if(receiveDatah) { if(shi20) shi2--; At24c02Write(3,shi2); } if(receiveDatai) { if(fen259) fen2; At24c02Write(4,fen2); } if(receiveDataj) { if(fen20) fen2--; At24c02Write(4,fen2); } //发送 if(receiveDatan) { send(man/100x30);//人数 send(man%100x30); send(,); send(light/1000x30);//光照 send(light%100/100x30); send(light%100x30); send(,); send(limit/1000x30);//光照阀值 send(limit%100/100x30); send(limit%100x30); send(,); send(shi1/100x30);//开启时间 send(shi1%100x30); send(,); send(fen1/100x30); send(fen1%100x30); send(,); send(shi2/100x30);//关闭时间 send(shi2%100x30); send(,); send(fen2/100x30); send(fen2%100x30); send(,); send(hand0x30);//模式 send(,); switch(led) { case 0x00:send(8);break; case 0x80:send(7);break; case 0xc0:send(6);break; case 0xf8:send(3);break; case 0xfc:send(2);break; case 0xfe:send(1);break; case 0xff:send(0); } send(,); send(0x0d);//结束 send(0x0a); } } } }六、全套资料包含七项目资源获取需要完整的资料可以点击下面的名片关注回复“资料”↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓