#include //51头文件

#include    //包含nop等系统函数

sbit RX = P2^0;//ECHO超声波模块回响端

sbit TX = P2^1;//TRIG超声波模块触发端

unsigned char pwm_left_val = 150;//左电机占空比值 取值范围0-170,0最快

unsigned char pwm_right_val = 150;//右电机占空比值取值范围0-170 ,0最快

unsigned char pwm_t;//周期

unsigned int  time = 0;//传输时间

unsigned long S = 0;//距离

bit      flag = 0;//超出测量范围标志位

void delay(unsigned int z)//毫秒级延时

{

unsigned int x,y;

for(x = z; x > 0; x--)

for(y = 114; y > 0 ; y--);

}

void Delay10us(unsigned char i)            //10us延时函数 启动超声波模块时使用

{

unsigned char j;

do{

j = 10;

do{

_nop_();

}while(--j);

}while(--i);

}

/*小车前进*/

void forward()

{

left_motor_go; //左电机前进

right_motor_go; //右电机前进

}

/*小车后退*/

void backward()

{

left_motor_back; //左电机后退

right_motor_back; //右电机后退

}

/*定时器1中断输出PWM信号*/

void timer1() interrupt 3

{

pwm_t++;//周期计时加

if(pwm_t == 255)

pwm_t = EN1 = EN2 = 0;

if(pwm_left_val == pwm_t)//左电机占空比

EN1 = 1;

if(pwm_right_val == pwm_t)//右电机占空比

EN2 = 1;

}

/*判断S2是否被按下*/

void keyscan()

{

for(;;)        //死循环

{

if(key_s2 == 0)// 实时检测S2按键是否被按下

{

delay(5); //软件消抖

if(key_s2 == 0)//再检测S2是否被按下

{

while(!key_s2);//松手检测

beep = 0;        //使能有源蜂鸣器

delay(200);//200毫秒延时

beep = 1;        //关闭有源蜂鸣器

break;                //退出FOR死循环

}

}

}

}

/*定时器0中断*/

void timer0() interrupt 1        //T0中断用来计数器溢出,超过测距范围

{

flag=1;                                                         //中断溢出标志

}

void  StartModule()                          //启动超声波模块

{

TX=1;                                             //启动一次模块

Delay10us(2);

TX=0;

}

/*计算超声波所测距离并显示*/

void Conut()

{

time=TH0*256+TL0;

TH0=0;

TL0=0;

S=(float)(time*1.085)*0.17;     //算出来是MM

if((S>=7000)||flag==1) //超出测量范围

{

flag=0;

}

}

/*超声波避障*/

void        Avoid()

{

if(S > 150)//设置避障距离(单位毫米)

{

forward();

}

else

{

backward();

}

}

void main()

{

keyscan();//等待按键按下启动

delay(1000);//延时1秒

TMOD |= 0x20;//定时器1工作模式2,8位自动重装。用于产生PWM

TMOD |= 0x01;//定时器0工作模块1,16位定时模式。T0用测ECH0脉冲长度

TH1 = 220; //

TL1 = 220; //100HZ T1

TH0        = 0;

TL0        = 0;//T0,16位定时计数用于记录ECHO高电平时间

ET1        = 1;//允许T1中断

ET0 = 1;//允许T0中断

TR1 = 1;//启动定时器1

EA  = 1;//启动总中断

while(1)

{

StartModule();        //启动模块测距

while(!RX);                //当RX(ECHO信号回响)为零时等待

TR0=1;                            //开启计数

while(RX);                        //当RX为1计数并等待

TR0=0;                                //关闭计数

Conut();                        //计算距离

Avoid();                        //避障

delay(65);

}

}

2018-4-27 18:09 上传

点击文件名下载附件

下载积分: 黑币 -5

46.42 KB, 下载次数: 60, 下载积分: 黑币 -5

c语言超声波壁障源码,超声波避障源程序相关推荐

  1. c语言超声波壁障源码,超声波避障小车源程序【精】

    电子制作空间收集的这套入门级小车(只是入门级的,仅供参考)希望诸位入门智能车的吧友有所帮助.可以实现避障.寻迹.测距.寻找静态物体.做这个项目的经验,可分为四步. 第1步:根据实际情况确定智能小车所需 ...

  2. c语言超声波壁障源码,超声波避障小车源程序

    #include int motorL1=6; //左边轮子 int motorL2=5; int motorR1=9; //右边轮子 int motorR2=11; int ledL=7; //转弯 ...

  3. 易语言窗口c_句柄取进程名,易语言窗口句柄取进程文件名源码

    窗口句柄取进程文件名系统结构:句柄取进程文件名,CreateToolhelp32Snapshot,GetWindowThreadProcessId,CloseHandle,Module32First, ...

  4. 计算机毕业设计Java-ssmC语言教学辅导网站源码+系统+数据库+lw文档

    计算机毕业设计Java-ssmC语言教学辅导网站源码+系统+数据库+lw文档 计算机毕业设计Java-ssmC语言教学辅导网站源码+系统+数据库+lw文档 本源码技术栈: 项目架构:B/S架构 开发语 ...

  5. mysql数据库+易语言的应用_易语言mysql数据应用源码

    易语言mysql数据应用源码 易语言mysql数据应用源码 系统结构:注册账号,连接Mysql,用户注册验证码,修改密码验证码,忘记密码验证码,修改密码,忘记密码, ======窗口程序集1 | | ...

  6. 易语言json置入_易语言json操作模块源码

    易语言json操作模块源码 系统结构:初始化,解析,到文本,置属性,置属性对象,置属性数值,取属性数值,取属性对象,取通用属性,取属性,成员数,加成员,取成员,取成员文本,置成员,删成员,置类型,赋值 ...

  7. 易语言QQpost加好友源码

    易语言QQpost加好友源码 以下是部分代码 .版本 2 .支持库 specGetQq (主动添加QQ) QQ空间页面 = 编码_Utf8到Ansi (网页_访问_对象 ("https:// ...

  8. c语言案例分析105,C语言实战105例源码

    C语言实战105例源码 以下程序大家如有兴趣可在文件夹下载即可 第1部分 基础篇 实例1 一个价值"三天"的BUG 2 实例2 灵活使用递增(递减)操作符 5 实例3 算术运算符计 ...

  9. c语言贪吃蛇游戏源码下载,c语言贪吃蛇游戏源码.doc

    c语言贪吃蛇游戏源码.doc /*运行是按任意键开始,不过呢,反向也算输哟*/include include include include include include include defin ...

最新文章

  1. java switch 表达式_尝鲜Java 12新特性:switch表达式
  2. 2017.4.2号总结
  3. 初学者python编辑器-面向初学者的Python编辑器Mu
  4. 牛客 - 配对(贪心+数学)
  5. 程序员的思考--终于确定了自己的技术发展方向
  6. Laravel核心代码学习--用户认证系统的实现细节
  7. ubuntu16.04利用SVN下载文件
  8. 华为外包软件公司集体罢工!
  9. 2013/06 事情发生之后都会显得云淡风轻
  10. 高级计算机网络(习题一加解析)
  11. 项目如行军——《孙子兵法》之九地篇
  12. SPA项目开发(首页导航左侧菜单)
  13. Web相关:Sublime如何安装ESLint插件?
  14. 8600 系列 VSM 用于磁性微型机器人以及韦根线研究
  15. 关于CC的完全非线性椭圆方程一书的一些小结
  16. Vrep中的视觉传感器添加,移动,旋转,和视图
  17. 查询英文期刊缩写的网站
  18. 北大CSAPP期末题
  19. 文化的影响:整体感知与分析感知
  20. 我的计算机制作幻灯片在哪,电脑ppt制作软件,电脑里制作PPT(幻灯片)的软件在哪?...

热门文章

  1. 网银支付(接入的是连连支付)
  2. js 年月日中文格式日期转换成Date
  3. win7c盘空间越来越小_技术员教你win7系统C盘空间越来越小导致C盘空间不足的设置方法...
  4. 【周易AIPU 仿真】在R329上部署VGG_16网络模型
  5. 【原创】2019.10.26模拟赛 Adore Confess Repulsed
  6. 魔兽世界服务器排队状态app,魔兽世界服务器排队插队软件-魔兽世界7.0服务器免排队辅助预约1.2.01[预约]-乐游网游戏...
  7. html 分页插件ajax,简易ajax生成分页插件
  8. 求一天是一年中的第几天
  9. Oracle锁表以及解表
  10. mysql创建数据库及中英文数据表--插入数据