找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 8390|回复: 6
收起左侧

51单片机智能路灯源码与仿真设计

  [复制链接]
ID:248242 发表于 2018-6-28 13:03 | 显示全部楼层 |阅读模式
51单片机智能路灯设计图上有说明程序分模块写的。
模式1设置时间的时
模式2设置时间的分
模式3设置时间的秒
模式4设置光敏值要求光照达到一定程度才会亮灯
晚上时间无论设置多少的值都是常亮
现在时间设置为19点自动亮到凌晨6点自动关闭如设置光敏值低于白天亮度时可以亮路灯等
自己摸索程序欠佳修改动手能力强的可以自行修改

智能路灯仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
全图.png 模式4.png 模式1.png 程序.png QQ浏览器截图20180628125119.png

单片机源程序如下:
  1. #include"key.h"
  2. #include"lcd.h"
  3. #include"com.h"
  4. #include"iic.h"
  5. #include"display.h"
  6. #include"interaction.h"
  7. #include"check.h"

  8. int vol;                                                                                     //光感度
  9. int sec,min,hou;                                                                 //时钟:时、分、秒(全局变量)
  10. int warnh_Hh=6;                                                                         //常灭时间段结束时间时针(全局变量,默认值为6)
  11. int warnh_Hm=0;                                                                         //常灭时间段结束时间分针(全局变量,默认值为0)
  12. int warnh_Lh=18;                                                                 //常灭时间段开始时间时针(全局变量,默认值为18)
  13. int warnh_Lm=30;                                                                 //常灭时间段开始时间时针(全局变量,默认值为30)
  14. extern int ms;                                                                         //切换界面控制变量(外部变量声明)


  15. void main()
  16. {
  17. uchar voldata;                                                                    //用来接收AD值的中间变量
  18. int0intal();                                                                //定时计数器中断初始化
  19. lcdintal();                                                                    //lcd初始化
  20.          

  21. while(1)                                                                            //主循环
  22. {         void key();
  23.     fmq=0;                                                                            //避免蜂鸣器因上拉电阻响
  24.         voldata = iic_readvoldata();                                //接收iic总线输出数据
  25.     vol = 1000-voldata*5/25.5*20;                                //将iic总线输出数据转换成百分比形式的数值(精确到0.1%)

  26.     key();                                                                                //调用按键函数(控制界面切换、选择及改变控制数值)
  27.    if(ms==0) dpy_T(sec,min,hou);                                //切换界面控制变量=0:界面a
  28.      else if(ms==1) dpy_TW();                                        //切换界面控制变量=1:界面b
  29.           else if(ms==2) display();                                        //切换界面控制变量=2:界面c
  30.            else if(ms==3) display_yhf();                        //切换界面控制变量=3:界面d

  31.    //如果当前时间在常灭时间段内
  32.    if((hou>=warnh_Hh) && (min>=warnh_Hm) && (hou<=warnh_Lh) && (min<=warnh_Lm))
  33.    check_L();                                                                    //调用路灯最高点亮值检测函数
  34.    else                                                                                 //否则(当前时间在常灭时间段外)
  35.      {
  36.            LED1=0;                                                                         //路灯常量
  37.          }                                                         
  38. }
  39. }
复制代码

所有资料51hei提供下载:
智能路灯控制系统.rar (319.85 KB, 下载次数: 283)

评分

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

查看全部评分

回复

使用道具 举报

ID:415332 发表于 2018-10-25 16:41 | 显示全部楼层
这里面9个警告都是没什么影响吗
回复

使用道具 举报

ID:256394 发表于 2019-2-27 10:50 | 显示全部楼层
光敏电阻是哪一个
回复

使用道具 举报

ID:475102 发表于 2019-2-27 12:37 | 显示全部楼层
赞一个
回复

使用道具 举报

ID:318131 发表于 2019-12-5 00:14 来自手机 | 显示全部楼层
问一下这个语句vol = 1000-voldata*5/25.5*20;                                //将iic总线输出数据转换成百分比形式的数值(精确到0.1%)是怎么得来的
回复

使用道具 举报

ID:582415 发表于 2020-4-2 21:45 来自手机 | 显示全部楼层
正好在学习
回复

使用道具 举报

ID:1015083 发表于 2022-4-3 10:21 | 显示全部楼层
为什么没有添加时钟芯片
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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