51單片機智能路燈設計圖上有說明程序分模塊寫的。
模式1設置時間的時
模式2設置時間的分
模式3設置時間的秒
模式4設置光敏值要求光照達到一定程度才會亮燈
晚上時間無論設置多少的值都是常亮
現在時間設置為19點自動亮到凌晨6點自動關閉如設置光敏值低于白天亮度時可以亮路燈等
自己摸索程序欠佳修改動手能力強的可以自行修改
智能路燈仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
全圖.png (99.61 KB, 下載次數: 63)
下載附件
2018-6-28 13:01 上傳
模式4.png (11.71 KB, 下載次數: 62)
下載附件
2018-6-29 01:35 上傳
模式1.png (7.79 KB, 下載次數: 54)
下載附件
2018-6-29 01:35 上傳
程序.png (102.07 KB, 下載次數: 61)
下載附件
2018-6-28 13:01 上傳
QQ瀏覽器截圖20180628125119.png (85.97 KB, 下載次數: 65)
下載附件
2018-6-28 13:01 上傳
單片機源程序如下:
- #include"key.h"
- #include"lcd.h"
- #include"com.h"
- #include"iic.h"
- #include"display.h"
- #include"interaction.h"
- #include"check.h"
- int vol; //光感度
- int sec,min,hou; //時鐘:時、分、秒(全局變量)
- int warnh_Hh=6; //常滅時間段結束時間時針(全局變量,默認值為6)
- int warnh_Hm=0; //常滅時間段結束時間分針(全局變量,默認值為0)
- int warnh_Lh=18; //常滅時間段開始時間時針(全局變量,默認值為18)
- int warnh_Lm=30; //常滅時間段開始時間時針(全局變量,默認值為30)
- extern int ms; //切換界面控制變量(外部變量聲明)
- void main()
- {
- uchar voldata; //用來接收AD值的中間變量
- int0intal(); //定時計數器中斷初始化
- lcdintal(); //lcd初始化
-
-
- while(1) //主循環
- { void key();
- fmq=0; //避免蜂鳴器因上拉電阻響
- voldata = iic_readvoldata(); //接收iic總線輸出數據
- vol = 1000-voldata*5/25.5*20; //將iic總線輸出數據轉換成百分比形式的數值(精確到0.1%)
- key(); //調用按鍵函數(控制界面切換、選擇及改變控制數值)
- if(ms==0) dpy_T(sec,min,hou); //切換界面控制變量=0:界面a
- else if(ms==1) dpy_TW(); //切換界面控制變量=1:界面b
- else if(ms==2) display(); //切換界面控制變量=2:界面c
- else if(ms==3) display_yhf(); //切換界面控制變量=3:界面d
- //如果當前時間在常滅時間段內
- if((hou>=warnh_Hh) && (min>=warnh_Hm) && (hou<=warnh_Lh) && (min<=warnh_Lm))
- check_L(); //調用路燈最高點亮值檢測函數
- else //否則(當前時間在常滅時間段外)
- {
- LED1=0; //路燈常量
- }
- }
- }
-
復制代碼
所有資料51hei提供下載:
智能路燈控制系統.rar
(319.85 KB, 下載次數: 288)
2018-6-28 13:01 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|