标题: 51单片机路灯智能控制系统 Proteus仿真程序 [打印本页]

作者: hu823849846    时间: 2020-2-18 21:50
标题: 51单片机路灯智能控制系统 Proteus仿真程序
LCD1602显示
DS1302系统时间
按键设定系统时间、工作时间、光照阈值(默认开始时间为16点,结束时间为5点)
工作时间内路灯点亮,凌晨12点后路灯关闭,有人或车通过是,路灯点亮10s
非工作时间光照强度低于阈值,路灯点亮
状态检测,路灯应亮未亮,声光报警
(通过检测LED串联电阻的电压值,当有电压值时,证明线路正常,无电压值时,线路故障)

仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)


单片机源程序如下:
  1. /*******************************************************************************
  2. * 函数名         : work()
  3. * 函数功能                 : 工作状态
  4. * 输入           : 无
  5. * 输出                  : 无
  6. *******************************************************************************/
  7. void work()
  8. {
  9. Read_time();                                        //转换时间
  10.         if(work_time_End!=0 && work_time_Start!=0)                        //工作时间已设置
  11.         {
  12.                 if(hour >= work_time_Start)                                                //当前时间大于起始时间,如起始时间为19:00,当前时间为21:00。
  13.                 {
  14.                         Data = AD(1);
  15.                         led_1 = 1;                                                                        //点亮LED
  16.                         if(Data < 50)                                                                //未检测到LED点亮
  17.                                 Beep = 1;                                                                //声光报警
  18.                         else                                                                                //检测到Led点亮
  19.                                 Beep = 0;                                                                //停止报警
  20.                 }
  21.                 else if(hour < work_time_End)         //当前时间小于结束时间,如结束时间为06:00,当前时间为04:00。
  22.                 {
  23.                         if(red_sr)                                        //检测到人或车
  24.                         {
  25.                                 time = 0;
  26.                                 light_flag = 1;                        //LED标志置1,开始T0定时器计时,点亮LED,10s后LED标志清零,LED熄灭
  27.                         }
  28.                         if(light_flag)                                        //LED标志置1,检测到人或车
  29.                         {
  30.                                 led_1 = 1;                                        //点亮LED
  31.                                 EA = 1;                                                //开启中断
  32.                                 if(time > 10)                                //10s后
  33.                                 {
  34.                                         light_flag = 0;                        //LED标志清零
  35.                                         EA = 0;                                           //关中断
  36.                                         time = 0;                                 //计时清零
  37.                                 }
  38.                                 Data = AD(1);
  39.                                 if(Data < 50)                                //未检测到LED点亮
  40.                                         Beep = 1;                                //声光报警
  41.                                 else                                                //检测到Led点亮
  42.                                         Beep = 0;                                //停止报警               
  43.                            }
  44.                         else
  45.                                 led_1 = 0;
  46.                 }
  47.                 else
  48.                 {
  49.                         if(light < light_limit)
  50.                         {
  51.                                 led_1 = 1;
  52.                                 Data = AD(1);
  53.                                 if(Data < 50)                                                                //未检测到LED点亮
  54.                                         Beep = 1;                                                                //声光报警
  55.                                 else                                                                                //检测到Led点亮
  56.                                         Beep = 0;                                                                //停止报警
  57.                         }
  58.                         else
  59.                                 led_1 = Beep = 0;
  60.                 }
  61.         }               
  62. }
复制代码



程序截图.png (31.93 KB, 下载次数: 68)

程序截图.png

路灯智能控制系统工程界面.png (40.98 KB, 下载次数: 82)

路灯智能控制系统工程界面.png

智能路灯.zip

140.16 KB, 下载次数: 227, 下载积分: 黑币 -5


作者: l1446889421    时间: 2020-4-2 22:18
大佬牛逼,现在正在学习
作者: szs123456    时间: 2020-5-8 15:23
感谢大佬的分享
作者: 草莓泡芙    时间: 2020-5-8 17:45
有完整程序吗大佬
作者: 草莓泡芙    时间: 2020-5-8 17:46
有完整的嘛大佬

作者: JIAWEIFREE    时间: 2020-5-9 06:30
很给力!
作者: 马哈哈哈哈    时间: 2020-5-16 15:49
大佬,有完整的程序嘛?

作者: s1648754394    时间: 2020-6-4 21:37
星期怎么无法显示啊‘

作者: 杨华啊啊啊    时间: 2021-6-11 09:59
复位电路为什么是低电平有效?
作者: 小书吧    时间: 2021-6-16 19:38
仿真软件是哪个版本的?我用8.9的不能运行

作者: 耿耿余淮    时间: 2021-6-18 16:18
有完整的嘛大佬




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1