|
附件包含:智能路燈的源代碼、AD軟件原理圖、proteus仿真
用按鍵代替人體感應(yīng)模塊,按鍵按下代表熱釋電模塊檢測到人
LM393+電位器模擬光強(qiáng),向左調(diào)代表光弱,向右調(diào)代表光強(qiáng)
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
仿真
電路原理圖如下:
單片機(jī)源程序如下:
- #include<reg51.h>
- #include<intrins.h>
- #include<absacc.h> //頭文件
- #define uc unsigned char
- #define ui unsigned int//宏定義
- sbit GM=P1^0; //光敏
- sbit RT=P1^5; //人體紅外
- sbit KZ=P3^5; //繼電器控制燈
- uc sec=0;
- void init()//初始化函數(shù)
- {
- GM=0;//光敏置低
- RT=0;//人體紅外置低
- TMOD=0x01; //定時(shí)器工作方式
- TH0=0x3c;
- TL0=0xb0; //賦初值50ms
- ET0=1; //打開中斷允許開關(guān)
- TR0=1; //打開定時(shí)器定時(shí)開關(guān)
- EA=1; //打開中斷總開關(guān)
- }
- void main()//主函數(shù)
- {
- init();//初始化函數(shù)
- while(1);//空循環(huán)
- }
- void T0_time() interrupt 1 //定時(shí)器執(zhí)行函數(shù),熱釋電模塊和光線感應(yīng)和控制繼電器都是在定時(shí)器里完成
- {
- uc m; //定義變量m
- TH0=0x3c;
- TL0=0xb0; //重新賦初值50ms
- m++; //m加一次是50ms
- if(m>=20) //加到20次,就是一秒
- {
- m=0; //m清零
- if(RT==0||GM==0) //當(dāng)熱釋電和光敏有一個(gè)不符合條件(符合條件就是熱釋電檢測到人,光敏檢測到環(huán)境光線弱)
- sec++; //sec變量加
- if(RT==1&&GM==1&&sec<=5)//當(dāng)熱釋電和光敏都符合條件并且sec變量小于等于5
- {
- sec=0; //sec清零
- KZ=0; //控制繼電器打開
- }
- if((RT==0||GM==0)&&sec>5)//當(dāng)熱釋電和光敏有一個(gè)不符合條件并且sec大于5時(shí)
- {
- sec=0; //sec清零
- KZ=1; //控制繼電器關(guān)閉
- }
- }
- }
復(fù)制代碼
附件
Keil代碼與Proteus仿真下載:
智能路燈.7z
(170.39 KB, 下載次數(shù): 78)
2022-4-8 19:04 上傳
點(diǎn)擊文件名下載附件
上述原理圖、仿真、程序可下載附件查看
|
評(píng)分
-
查看全部評(píng)分
|