超声波测距程序

超声波测距程序

ID:38633411

大小:40.50 KB

页数:4页

时间:2019-06-16

超声波测距程序_第1页
超声波测距程序_第2页
超声波测距程序_第3页
超声波测距程序_第4页
资源描述:

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

1、//晶振=8M//MCU=STC10F04XE//P0.0-P0.6共阴数码管引脚//Trig=P1^0//Echo=P3^2#include//包括一个52标准内核的头文件#defineucharunsignedchar//定义一下方便使用#defineuintunsignedint#defineulongunsignedlongsbitTrig=P1^0;//产生脉冲引脚sbitEcho=P3^2;//回波引脚sbittest=P1^1;//测试用引脚sbitwei=P2^6;sbitduan=P2^7;ucha

2、rcodeSEG7[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//,0x77,0x7c,//0x39,0x5e,0x79,0x71};//数码管0-9uintdistance[4];//测距接收缓冲区ucharge,shi,bai,qian,temp,flag,outcomeH,outcomeL,i;//自定义寄存器bitsucceed_flag;//测量成功标志//********函数声明voidconversion(uinttemp_data);voiddela

3、y_20us();voiddelay(uintm);voidmain(void)//主程序{uintdistance_data,a,b;ucharCONT_1;i=0;flag=0;test=0;Trig=0;//首先拉低脉冲输入引脚TMOD=0x11;//定时器0,定时器1,16位工作方式TR0=1;//启动定时器0IT0=0;//由高电平变低电平,触发外部中断ET0=1;//打开定时器0中断EX0=0;//关闭外部中断EA=1;//打开总中断0while(1)//程序循环{EA=0;Trig=1;delay_20us();Trig

4、=0;//产生一个20us的脉冲,在Trig引脚while(Echo==0);//等待Echo回波引脚变高电平succeed_flag=0;//清测量成功标志EX0=1;//打开外部中断TH1=0;//定时器1清零TL1=0;//定时器1清零TF1=0;//TR1=1;//启动定时器1EA=1;while(TH1<30);//等待测量的结果,周期65.535毫秒(可用中断实现)TR1=0;//关闭定时器1EX0=0;//关闭外部中断if(succeed_flag==1){distance_data=outcomeH;//测量结果的高8

5、位distance_data<<=8;//放入16位的高8位distance_data=distance_data

6、outcomeL;//与低8位合并成为16位结果数据distance_data*=12;//因为定时器默认为12分频distance_data/=58;//微秒的单位除以58等于厘米}//为什么除以58等于厘米,Y米=(X秒*344)/2//X秒=(2*Y米)/344==》X秒=0.0058*Y米==》厘米=微秒/58if(succeed_flag==0){distance_data=0;//没有回波则清零test=!t

7、est;//测试灯变化}a=distance_data;if(b==a)CONT_1=0;if(b!=a)CONT_1++;if(CONT_1>=3){CONT_1=0;b=a;conversion(b);}delay(150);}}//***************************************************************//外部中断0,用做判断回波电平INTO_()interrupt0//外部中断是0号{outcomeH=TH1;//取出定时器的值outcomeL=TL1;//取出定时器的值s

8、ucceed_flag=1;//至成功测量的标志EX0=0;//关闭外部中断}//****************************************************************//定时器0中断,用做显示timer0()interrupt1//定时器0中断是1号{TH0=0xfd;//写入定时器0初始值TL0=0x77;switch(flag){case0x00:wei=1;P0=0xfe;wei=0;duan=1;P0=ge;duan=0;flag++;break;case0x01:wei=1;P0=

9、0xfd;wei=0;duan=1;P0=shi;duan=0;flag++;break;case0x02:wei=1;P0=0xfb;wei=0;duan=1;P0=bai;duan=0;flag++;break;ca

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

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

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