超声波模块HC-SR04简介以及编程


HC-SR04

一、主要参数
1:使用电压:DC—5V
2:静态电流:小于2mA
3:电平输出:高5V
4:电平输出:底0V
5:感应角度:不大于15度
6:探测距离:2cm-450cm
7:高精度 可达0.2cm
二、工作原理
1.采用IO口TRIG触发测距,给至少10us的高电平信号来启动模块。
2.模块自动发送8个40khz的方波,自动检测是否有信号返回。
3.如果有信号返回,通过IO口ECHO输出一个高电平,高电平持续的时间就是超声波从发射到返回的时间。通过公式计算测试距离=(高电平时间*声速(340M/S))/2。

三、运用超声波模块测距

 1 sbit RX=P2^0;  2 sbit TX=P2^1;  3 void delay()   //精确延时21us
 4 {  5  _nop_();  6  _nop_();  7  _nop_();  8  _nop_();  9  _nop_(); 10  _nop_(); 11  _nop_(); 12  _nop_(); 13  _nop_(); 14  _nop_(); 15   _nop_(); 16  _nop_(); 17  _nop_(); 18  _nop_(); 19  _nop_(); 20  _nop_(); 21  _nop_(); 22  _nop_(); 23  _nop_(); 24  _nop_(); 25  _nop_(); 26 } 27  
28 viod init()  //对计数器初始化
29 { 30         TMOD=0x11;           //设T0为方式1,GATE=1;
31         TH0=0; 32         TL0=0; 33         // 只是单纯计数可以不用写后两句在不会溢出的情况下
34         ET0=1;             //允许T0中断 
35         EA=1;               //开启总中断
36 } 37  
38 void Conut(void)  //计算到障碍物的距离
39 { 40       time=TH0*256+TL0; 41       TH0=0; 42       TL0=0; 43       S= (long)(time*0.017);     //算出来是CM
44 } 45  
46 void main() 47 { 48       while(1) 49  { 50           TX=1; 51  delay(); 52           TX=0; 53           while(!RX);        //当RX为零时等待
54           TR0=1;                //开启计数
55           while(RX);            //当RX为1计数并等待
56           TR0=0;                //关闭计数
57           Conut();            //计算
58  } 59 }

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM