智能车制作

 找回密码
 注册

扫一扫,访问微社区

12
返回列表 发新帖
楼主: 自己人
打印 上一主题 下一主题

51超声波测距

  [复制链接]

0

主题

2

帖子

0

精华

注册会员

Rank: 2

积分
33
威望
27
贡献
4
兑换币
5
注册时间
2013-11-10
在线时间
1 小时
11#
发表于 2013-11-24 15:06:10 | 只看该作者
大哥,可不可以附加一个原理图?
回复 支持 反对

使用道具 举报

6

主题

145

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
4521
QQ
威望
2015
贡献
1894
兑换币
843
注册时间
2012-3-1
在线时间
306 小时
12#
发表于 2013-12-19 00:30:13 | 只看该作者
回复 支持 反对

使用道具 举报

0

主题

14

帖子

0

精华

高级会员

Rank: 4

积分
670
QQ
威望
350
贡献
224
兑换币
234
注册时间
2013-12-2
在线时间
48 小时
13#
发表于 2013-12-24 15:25:06 | 只看该作者
mark一下
回复 支持 反对

使用道具 举报

0

主题

7

帖子

0

精华

注册会员

Rank: 2

积分
130
威望
76
贡献
34
兑换币
39
注册时间
2013-11-3
在线时间
10 小时
毕业学校
临河一中
14#
发表于 2013-12-30 23:07:18 | 只看该作者
有点复杂哇!超声波测距用到这么多知识?!
回复 支持 反对

使用道具 举报

0

主题

7

帖子

0

精华

注册会员

Rank: 2

积分
130
威望
76
贡献
34
兑换币
39
注册时间
2013-11-3
在线时间
10 小时
毕业学校
临河一中
15#
发表于 2013-12-30 23:08:06 | 只看该作者
#include<reg52.h>
#define  uchar unsigned char
#define  uint unsigned int
uchar code table[10] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
uint count=0;
uchar i=0;
uint distant=0;
uint x;
//******************************************
//超声波接口的初始化设定
sbit TRIG=P1^0;//触发控制信号输出端口
sbit ECHO=P3^2;//回响信号接收端口
//******************************************
//定时器0的初始化
void time0_int(void)
{
        TMOD=0x00;//工作方式0
        TH0=0xff;//高八位赋值,使之延时为1us
        TL0=0x1f;//低八位赋值
        ET0=1;//T0开中断
        EA=1;//开总中断
        TR0=1;//启动定时器
}
//******************************************
//外部中断初始化
void outside_int(void)
{
        EA=1;//开总中断
        EX0=1;//开外部中断0
        IT0=0;//低电平触发方式
}
//******************************************
//定时器0中断程序
void time0() interrupt 1
{
        TH0=0xff;//高八位赋值
        TL0=0x1f;//低八位赋值
        count++;
}

//******************************************
//延时函数
void delay(x)
{
        time0_int();
        if(count==x)
                         return;
}
//******************************************
//主函数
void main(void)
{
time0_int();
ECHO=0;
outside_int();//外部中断0初始化
while(1)
{
P2=0xfe;
        while(ECHO)//计算高电平持续时间,以ms为单位
        {
                time0_int();//定时器0初始化
                if(count==1000)//当定时器自加1000us时,给i增加1ms
                {
                        count=0;
                        i++;
                }
                distant=340*i/1000;//距离的计算公式
                P0=table[i%10];
        }
}
}
//******************************************
//外部中断0程序
void outside_intrrupt() interrupt 0 using 1
{
        TRIG=0;
        TRIG=1;//触发信号置位,使模块内部发射8个40khz脉冲
        delay(15);//根据时序图延时20us
        TRIG=0;
        //while(1);//等待回响电平为高电平
        if(ECHO==1) return;
}
回复 支持 反对

使用道具 举报

10

主题

1956

帖子

0

精华

跨届大侠

Rank: 10Rank: 10Rank: 10

积分
10144

优秀会员奖章活跃会员奖章在线王奖章论坛元老奖章论坛元老奖章

威望
4669
贡献
2699
兑换币
2876
注册时间
2013-10-2
在线时间
1388 小时
16#
发表于 2014-3-16 16:47:43 | 只看该作者
跟淘宝卖的程序是一样的。
回复 支持 反对

使用道具 举报

11

主题

66

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1476
QQ
威望
743
贡献
509
兑换币
475
注册时间
2013-12-10
在线时间
112 小时
17#
发表于 2014-3-30 09:06:37 | 只看该作者
顶一下
回复 支持 反对

使用道具 举报

0

主题

3

帖子

0

精华

注册会员

Rank: 2

积分
35
威望
22
贡献
13
兑换币
5
注册时间
2014-8-9
在线时间
0 小时
毕业学校
湘南
18#
发表于 2014-8-9 12:20:16 | 只看该作者
作个记号,下次再仔细看看
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-12-25 15:36 , Processed in 0.047950 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表