標(biāo)題:
單片機(jī)超聲波風(fēng)扇源程序 根據(jù)距離大小來調(diào)節(jié)風(fēng)速
[打印本頁]
作者:
悲喜卒讀
時(shí)間:
2019-8-23 15:42
標(biāo)題:
單片機(jī)超聲波風(fēng)扇源程序 根據(jù)距離大小來調(diào)節(jié)風(fēng)速
我上傳的是超聲波發(fā)風(fēng)扇的源代碼和一些說明,
可根據(jù)是否有人來判斷是否可以打開風(fēng)扇,并根據(jù)距離大小來調(diào)節(jié)風(fēng)速。
單片機(jī)源程序如下:
//該產(chǎn)品可以根據(jù)人和風(fēng)扇的距離自動(dòng)啟動(dòng),當(dāng)人距離風(fēng)扇的距離小于50CM時(shí),風(fēng)扇啟動(dòng),當(dāng)大于50CM時(shí),風(fēng)扇關(guān)閉
#include <reg52.h>
#include <intrins.h>
#include <stdio.h>
#define uint unsigned int
#define uchar unsigned char
sbit IN1=P1^3;
sbit IN2=P1^4;
sbit ENA=P1^5;
sbit TRIG=P1^2;
sbit ECHO=P1^1;
int time;
float s;
bit flag;
void fasong();
void jisuan();
void delay(int x);
void main()
{
TMOD=0X21;
SCON=0X50;
TH1=0XFD;
TL1=0XFD;
TH0=0;
TL0=0;
TR0=1;
TR1=1;
ET0=1;
TI=1;
EA=1;
while(1)
{
fasong();
while(!ECHO);
TR0=1;
while(ECHO);
TR0=0;
jisuan();
delay(100);
IN1=0;
IN2=1;
if(s<50)
ENA=1;
else
ENA=0;
}
}
void fasong()
{
uint i;
TRIG=1;
for(i=0;i<20;i++)
_nop_();
TRIG=0;
}
void jisuan()
{
time=TH0*256+TL0;
TH0=0;
TL0=0;
time*=12/11.0592;
s=time*0.017;
if(flag==1)
{
flag=0;
printf("-----\n");
}
printf("S=%f\n",s);
}
void TIME_0 () interrupt 1
{
flag=1;
}
void delay(int x)
{
int i,j;
for(i=x;i>0;i--)
for(j=110;j>0;j--);
}
復(fù)制代碼
以上代碼的Keil工程下載,你也可以自己建立工程然后把上面的代碼復(fù)制過去就不用下載了:
超聲波風(fēng)扇.zip
(26.36 KB, 下載次數(shù): 43)
2019-8-23 15:42 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
作者:
HONGJI
時(shí)間:
2021-8-13 21:21
仿真不動(dòng)。
作者:
58642379
時(shí)間:
2022-3-14 17:27
IN1 IN2 是什么
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1