欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
基于51單片的超聲波智能臺燈源程序
[打印本頁]
作者:
562944207
時間:
2019-4-21 22:03
標題:
基于51單片的超聲波智能臺燈源程序
這是我寫的關于超聲波的智能臺燈的程序,有些功能可能還不完善,希望各位可以提提意見!!!
單片機源程序如下:
#include<AT89x51.H>
#include<intrins.h>
#define ECHO P2_4 //超聲波接口定義
#define TRIG P2_5 //超聲波接口定義
#define turn_on {P0_0=1;} //燈亮
#define turn_off {P0_0=0;} //燈滅
#define sound_on {P0_1=1;} //蜂鳴器響
#define sound_off {P0_1=0;} //蜂鳴器響
unsigned long S=0;
unsigned int time=0; //時間變量 //超聲波時間
void delay(unsigned int k) //延時函數
{
unsigned int x,y;
for(x=0;x<k;x++)
for(y=0;y<2000;y++);
}
void StartModule() //啟動測距信號
{
TRIG=1;
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
TRIG=0;
}
void Conut(void) //計算距離
{
while(!ECHO); //當RX為零時等待
TR0=1; //開啟計數
while(ECHO); //當RX為1計數并等待
TR0=0; //關閉計數
time=TH0*256+TL0; //讀取脈寬長度
TH0=0;
TL0=0;
S=(time*1.7)/100; //算出來是 CM
}
void light_on(void)
{
turn_on;
}
void light_off(void)
{
turn_off;
}
void sound_1(void)
{
sound_on;
}
void sound_2(void)
{
sound_off;
}
/***************************************************/
///*TIMER0中斷服務子函數產生PWM信號*/ //超聲波中斷
void timer0()interrupt 1 using 0
{
}
/***************************************************/
void main(void)
{
TMOD=0X11;
EA = 1;
TH1=(65536-100)/256; //100US定時
TL1=(65536-100)%256;
TR1= 1;
ET1= 1;
TH0=0; //設置超聲波定時器為高優先級
TL0=0;
ET0= 1;
delay(100);
while(1) /*無限循環*/
{
StartModule(); //啟動檢測
Conut(); //計算距離
if((S>50)&&(S>100)) //距離小于20CM
{
light_on();
sound_2();
}
if(S<=50) //距離大于,30CM往前走
{
light_off();
sound_1();
}
else
{
light_off();
sound_2();
}
}
}
復制代碼
所有資料51hei提供下載:
智能臺燈.zip
(57.26 KB, 下載次數: 20)
2019-4-21 22:02 上傳
點擊文件名下載附件
需要的小伙伴可以下載也可以提提建議呀
下載積分: 黑幣 -5
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1