找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5387|回复: 10
收起左侧

51单片机路灯智能控制系统 Proteus仿真程序

  [复制链接]
ID:694884 发表于 2020-2-18 21:50 | 显示全部楼层 |阅读模式
LCD1602显示
DS1302系统时间
按键设定系统时间、工作时间、光照阈值(默认开始时间为16点,结束时间为5点)
工作时间内路灯点亮,凌晨12点后路灯关闭,有人或车通过是,路灯点亮10s
非工作时间光照强度低于阈值,路灯点亮
状态检测,路灯应亮未亮,声光报警
(通过检测LED串联电阻的电压值,当有电压值时,证明线路正常,无电压值时,线路故障)

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

Proteus仿真

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
路灯智能控制系统工程界面.png

智能路灯.zip

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

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:582415 发表于 2020-4-2 22:18 | 显示全部楼层
大佬牛逼,现在正在学习
回复

使用道具 举报

ID:714102 发表于 2020-5-8 15:23 | 显示全部楼层
感谢大佬的分享
回复

使用道具 举报

ID:747102 发表于 2020-5-8 17:45 | 显示全部楼层
有完整程序吗大佬
回复

使用道具 举报

ID:747102 发表于 2020-5-8 17:46 | 显示全部楼层
有完整的嘛大佬
回复

使用道具 举报

ID:737452 发表于 2020-5-9 06:30 | 显示全部楼层
很给力!
回复

使用道具 举报

ID:723037 发表于 2020-5-16 15:49 | 显示全部楼层
大佬,有完整的程序嘛?
回复

使用道具 举报

ID:737920 发表于 2020-6-4 21:37 | 显示全部楼层
星期怎么无法显示啊‘
回复

使用道具 举报

ID:936414 发表于 2021-6-11 09:59 | 显示全部楼层
复位电路为什么是低电平有效?
回复

使用道具 举报

ID:923677 发表于 2021-6-16 19:38 | 显示全部楼层
仿真软件是哪个版本的?我用8.9的不能运行
回复

使用道具 举报

ID:940006 发表于 2021-6-18 16:18 | 显示全部楼层
有完整的嘛大佬
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表