简易倒车雷达装置c程序

简易倒车雷达装置c程序

ID:8838952

大小:36.50 KB

页数:7页

时间:2018-04-09

简易倒车雷达装置c程序_第1页
简易倒车雷达装置c程序_第2页
简易倒车雷达装置c程序_第3页
简易倒车雷达装置c程序_第4页
简易倒车雷达装置c程序_第5页
资源描述:

《简易倒车雷达装置c程序》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、//要求:1、定时器采集超声波的反应时间2、计算检测物体的距离,有效范围限定在2米3、当物体检测小于1米时,蜂鸣器长促型的发出提示音效4、当物体继续检测更小时,蜂鸣器依此逐渐以短急促音效提示#include#defineuintunsignedint#defineucharunsignedcharsbitTrig=P2^6;//产生脉冲引脚,延时20ussbitEcho=P2^7;//回波引脚bitTimeUp=0;//定时器溢出标志位sbitbeep=P2^0;//蜂鸣器控制引脚longTh0,Tl0;unsignedlongtim

2、e0=0;uintMeasureresult=0;//测量值voiddelayms(intn)//延时函数延时n/2毫秒{inti,j;for(i=0;i0)//向喇叭输入800HZ的方波震荡源{beep=1;delayms(1);//0.5毫秒高电平beep=0;delayms(1);//0.5毫秒低电平i--;}}voiddiduan(){uinti,j;i=1;//喇叭间断响2秒while(i>

3、0){j=150;//喇叭响150毫秒while(j>0){beep=1;delayms(1);beep=0;delayms(1);j--;}delayms(100);//停100毫秒i--;}}voidMeasure(void){ucharDel20us=0;//延时变量,在超声波脉冲引脚中产生20us的方波ucharEchoBack=1;//超声波返回标志位TMOD=0x01;//定时器工作方式1:16位,初值不能重装Trig=0;//将超声波脉冲引脚电位拉低Th0=0;//初始化变量值Tl0=0;//初始化变量值TimeUp=0;//初始化EA=

4、1;//开总中断ET0=1;//开定时器0中断TR0=0;//关定时器0TH0=0;//赋定时器初始值高8位为0TL0=0;//赋定时器初始值低8位为0Trig=1;//拉高超声波脉冲引脚电位for(Del20us=20;Del20us>0;Del20us--);//延时20usTrig=0;//拉低超声波脉冲引脚电位,使之产生20us的方波信号,使超声波模块开始工作。while(Echo==0);//等待回波引脚变1,则开启定时器0;TH0=0;TL0=0;TR0=1;//开定时器0//使用软件查询的方式,检测超声波回波引脚,判断是否有声波返回,避免

5、使用外部中断的//形式,便于扩展多个超声波模块。while(EchoBack){if(Echo==0

6、

7、TimeUp==1)//如果定时器溢出或者声波返回则重启定时器0,//并且获取当前时间和清零超声波返回标志位{TR0=0;//关闭定时器Th0=TH0;Tl0=TL0;TR0=1;EchoBack=0;}}while(!TimeUp);//等待定时器溢出(给定超声波一个测距的时间范围)time0=(Th0*256+Tl0);//取出定时器的值Measureresult=((unsignedlong)(344)*time0)/2000;//测量的结果单

8、位为mm}voidT0_time()interrupt1//定时器0中断服务函数{TimeUp=1;}voidmain(){while(1){Measure();if(3050&&Measureresult<900)dichang();}}

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。