5iMX.com 我爱模型 玩家论坛 ——专业遥控模型和无人机玩家论坛(玩模型就上我爱模型,创始于2003年)
标题:
超声波报警谁帮我添加一个发光管指示
[打印本页]
作者:
806543786
时间:
2013-4-21 18:29
标题:
超声波报警谁帮我添加一个发光管指示
超声波报警谁帮我添加一个发光管指示
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit Tsonic=P3^0;
sbit Rsonic=P3^2;
sbit buz=P0^0;
uint distance=0;
float n=0.172; //超声波速度为344m/s
void close()
{
buz=0;
}
void delay4us()
{;;}
void delayms(uint k)
{
uint m,n;
for(n=k;n>0;n--)
for(m=110;m>0;m--);
}
void sonic()
{
uchar i;
for(i=10;i>0;i--)
{
Tsonic=1;
delay4us();
Tsonic=0;
delay4us();
}
}
void main()
{
close();
TMOD=0x01; //设置计数器0工作为方式1
TH0=0;
TL0=0; //计数器0赋初值0
ET0=1; //允许T0中断
IT0=1; //设置中断触发方式为下降沿触发方式
EX0=1; //打开外部中断0
EA=1; //开总中断
TR0=1; //启动计数器0
while(1)
{
sonic();
if(distance>1400)
buz=0;
else
buz=1;
}
}
void timer0() interrupt 1 //计数器0中断
{
distance=0;
}
void ex0() interrupt 0 //外部0中断
{
EX0=0; //禁止外部中断0
TR0=0; //关闭计数器0
distance=(int)((TH0*256+TL0)*n);//根据测得时间计算距离
TH0=0;
TL0=0; //计数器0清零
EX0=1; //打开外部中断0
TR0=1; //启动计数器0
}
作者:
An追求
时间:
2013-4-21 18:55
完全不懂 求楼主解答
作者:
zuoplayer
时间:
2013-4-21 18:57
没太明白你想干什么,如果是距离太近时要有一个二极管发光,如下修改
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit Tsonic=P3^0;
sbit Rsonic=P3^2;
sbit buz=P0^0;
sbit LED=p3^3;
uint distance=0;
float n=0.172; //超声波速度为344m/s
.........
while(1)
{
sonic();
if(distance>1400)
buz=0;
else
buz=1;
LED=1;
}
作者:
806543786
时间:
2013-4-22 16:28
标题:
1234567
本帖最后由 806543786 于 2013-4-22 16:31 编辑
zuoplayer 发表于 2013-4-21 18:57
没太明白你想干什么,如果是距离太近时要有一个二极管发光,如下修改
#include
谢谢呀
谢谢可惜编译不通过
CHENGXU.C(25): error C202: 'p3': undefined identifier
CHENGXU.C(75): error C202: 'LED': undefined identifier
Target not created
作者:
zuoplayer
时间:
2013-4-22 18:47
sbit buz=P0^0;
sbit LED=p3^3;
改成
sbit LED=P3^3;
P要大写,我给你的是小写的了。
LED要接一个220欧姆的电阻
作者:
wedelk
时间:
2013-5-27 13:14
帮顶
作者:
zjlmxrt3
时间:
2013-9-7 09:23
高人哪么多,学习了
作者:
dark008wzx
时间:
2013-10-9 13:28
顶个。
欢迎光临 5iMX.com 我爱模型 玩家论坛 ——专业遥控模型和无人机玩家论坛(玩模型就上我爱模型,创始于2003年) (http://bbs.5imx.com/)
Powered by Discuz! X3.3