超声波测距c语言源程序代码

超声波测距c语言源程序代码

ID:35620455

大小:18.97 KB

页数:11页

时间:2019-04-03

超声波测距c语言源程序代码_第1页
超声波测距c语言源程序代码_第2页
超声波测距c语言源程序代码_第3页
超声波测距c语言源程序代码_第4页
超声波测距c语言源程序代码_第5页
资源描述:

《超声波测距c语言源程序代码》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、/*{HZ即单位s的倒数}本晶振为12MHZ,因此外部的时钟频率为12MHZ,所以内部的时钟频率为(12MHZ)/12=1MH即1000000HZ,而机械频率为1/(1MHZ),即每完成一次计算(即定时器的值加一)用时0.000001s,即1us(微秒).*//***********************************************************************************///具有模式选择.#include#defineUCunsignedchar#defineUIu

2、nsignedintvoiddelay(UI);//延时9.56us程序sbitbeep=P1^3;//用于声音报警sbitLv=P1^7;//用于光报警sbitHong=P1^6;sbitQD=P3^7;//K8//P3^7口(K8)为确定键,sbitGX=P3^1;//K7//P3^3口(K2)为修改键,sbitSX=P3^6;//K6//P3^2(K3)为测量键.sbitBX=P3^0;//K5//个(K7),十(K6),百(K5),三位修改键sbita=P1^2;//百位//数码管位选sbitb=P1^1;//十位sbitc=P1

3、^0;//个位sbittrig=P1^4;//方波发射端sbitecho=P1^5;//超声波接收端voidIntConfiguration();//用来"设置中断"的函数,P3^3口(K2)为修改键,P3^2(K3)为测量键.voidTimeConfiguration();//用来"设置定时器"的函数sbitK1=P3^4;//动态sbitK4=P3^5;//静态//用于进行模式切换(K1、K4键)voidxiaxian();//修改函数,用来修改下限voidshangxian();//修改函数,用来修改上限UImin[3]={0,5,

4、0};//报警极限,拆分为"百十个"三位UImax[3]={3,0,0};//MIN,MAX用来存储最大和最小值voidMINxianshi(UI);//最小范围和最大范围的显示voidMAXxianshi(UI);UCcodeCharacterCode[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//数码管数字字符(P2口)/********************************主函数**************************************

5、*******/voidmain(){TimeConfiguration();//设置定时器0IntConfiguration();//设置中断允许,K4键为修改键,K8键为确定键while(1){MINxianshi(40);//1.50169000sMAXxianshi(40);//1.50098300s}}/*******************************超声波测距函数********************************************/voidzhongduan_0()interrupt0//测量

6、中断函数(外部中断0){UImoshi=0;UIjuli=0;UItime=0;UIMAX,MIN;UITT=0;//用于第一次测量时给P1^5口置一,以便正确读取数值UIt1,t2,t3;UIGE=0,SHI=0,BAI=0;//先定义三个变量,用来显示测量的距离.a=0;b=0;c=0;P2=~0x00;//防止最后显示的那个数码管一直亮MAX=max[0]*100+max[1]*10+max[2];//计算最大与最小值MIN=min[0]*100+min[1]*10+min[2];while(1)//下面进行测量{while(1)/

7、*先进行模式判断*/{if(0==K1){moshi=1;break;//模式1为动态测量}if(0==K4){moshi=2;break;//模式2为静态测量}if(0==QD)return;//结束测量函数}/********************************************计算距离************************************************/loop:beep=1;//关掉定时器Lv=1;Hong=1;//关掉灯a=0;b=0;c=0;P2=~0x00;//防止最后显示的那个

8、数码管一直亮if((0==QD)&&(1==moshi))break;if((0==QD)&&(2==moshi)){delay(55500);if(0==QD){delay(55500);i

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

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

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