[51单片机] HC-SR04超声波测距仪 基础代码-阿里云开发者社区

开发者社区> 史迪奇2号> 正文

[51单片机] HC-SR04超声波测距仪 基础代码

简介:
+关注继续查看


 

>_<:超声波测距仪模块:

>_<:51单片机,11.0592MHz晶振,将采集数据发送到串口的基础例子:

>_<:代码:

复制代码
  1 /***********************************************************************************************************/
  2 //HC-SR04 超声波测距模块 DEMO 程序
  3 //晶振:11。0592
  4 //接线:模块TRIG接 P1.2  ECH0 接P1.1
  5 //串口波特率9600
  6 /***********************************************************************************************************/      
  7 #include   <AT89X51.H>
  8 #include   <intrins.h>
  9 #include   <STDIO.H>
 10 
 11 #define uchar unsigned  char
 12 #define uint  unsigned   int  
 13 #define  RX  P1_1
 14 #define  TX  P1_2
 15 
 16 
 17 unsigned int  time=0;
 18 unsigned int  timer=0;
 19 float         S=0;
 20 bit           flag =0;
 21 
 22 
 23 /********************************************************/
 24 void Conut(void)
 25 {
 26     time=TH0*256+TL0;
 27     TH0=0;
 28     TL0=0;
 29     S=(time*1.87)/100;     //算出来是CM
 30     if(flag==1)               //超出测量
 31     {
 32         flag=0;
 33         printf("-----\n"); 
 34     }    
 35     printf("S=%f\n",S); 
 36 }
 37 /********************************************************/ 
 38 void delayms(unsigned int ms)
 39 {
 40     unsigned char i=100,j;
 41     for(;ms;ms--)
 42     {
 43         while(--i)
 44         {
 45             j=10;
 46             while(--j);
 47         }
 48     }
 49 }
 50 /********************************************************/
 51 void zd0() interrupt 1          //T0中断用来计数器溢出,超过测距范围
 52 {
 53     flag=1;                     //中断溢出标志
 54 }
 55 /********************************************************/
 56 void  StartModule()          //T1中断用来扫描数码管和计800MS启动模块
 57 {
 58     TX=1;                     //800MS  启动一次模块
 59     _nop_(); 
 60     _nop_(); 
 61     _nop_(); 
 62     _nop_(); 
 63     _nop_(); 
 64     _nop_(); 
 65     _nop_(); 
 66     _nop_(); 
 67     _nop_(); 
 68     _nop_(); 
 69     _nop_(); 
 70     _nop_(); 
 71     _nop_(); 
 72     _nop_(); 
 73     _nop_(); 
 74     _nop_(); 
 75     _nop_();
 76     _nop_(); 
 77     _nop_(); 
 78     _nop_(); 
 79     _nop_();
 80     TX=0;
 81 }
 82 /********************************************************/
 83 void main(void)
 84 {  
 85     TMOD=0x21;                   //设T0为方式1,GATE=1;
 86     SCON=0x50;
 87     TH1=0xFD;
 88     TL1=0xFD;
 89     TH0=0;
 90     TL0=0; 
 91     TR0=1;  
 92     ET0=1;                     //允许T0中断
 93     TR1=1;                       //开启定时器
 94     TI=1;
 95     
 96     EA=1;                       //开启总中断
 97     
 98     
 99     while(1)
100     {
101         StartModule();
102         while(!RX);            //当RX为零时等待
103         TR0=1;                //开启计数
104         while(RX);            //当RX为1计数并等待
105         TR0=0;                //关闭计数
106         Conut();            //计算
107         delayms(10);        //100MS
108     }
109 }              
复制代码



版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
《例说8051:单片机程序设计案例教程》——导读
从8048开始,“单片机”即成为广受欢迎的代名词,8051更成为电机、电子类专业必修的课程。当然,应用单片机制作电子系统项目,既简单又经济实惠,早已成为学生的最爱。在电路设计方面,需求量较大、电路较复杂的系统可采用为客户专用而设计的IC(即ASIC),如芯片组、控制芯片等,虽然ASIC的单位成本不高,但总体成本很高、开发时间也比较长。
857 0
abap代码获取采购订单po中的抬头文本
如下图所示,事务码ME23N查看一张具体的采购订单的内容:在采购订单PO的抬头部分,有一个tab名为【文本】,这里面如图所示的抬头文本,里面的内容,我们要写abap代码提取出来,然后在alv中显示出来。
2796 0
零基础如何用 15 行 Python 代码搞定网易云热门歌单?
零基础如何用 15 行 Python 代码搞定网易云热门歌单?
1243 0
Android JAVA 语言基础例子代码
Android的界面一般都是java开发的,因此对于c++,.net人员来说理解和编写有一个适应过程,最近参考了一下资料,把这些涉的一些java基础使用以例子代码的形式总结起来,记录了这个平台的熟悉过程。
857 0
Java基础-08总结帮助文档,代码块,继承
1:如何制作帮助文档(了解)(1)写一个类(2)加入文档注释(3)通过javadoc工具生成即可javadoc -d 目录 -author -version ArrayTool.java /*我想要对数组进行操作在同一个文件夹下,类定义在两个文件中和定义在一个文件中其实一样的。 */ class ArrayDemo {public static void main(String[]
1155 0
RocketMQ 可视化环境搭建和基础代码使用(上)
RocketMQ 可视化环境搭建和基础代码使用(上)
5 0
confd + Nacos | 无代码侵入的配置变更管理
为什么要支持 confd,老的应用配置管理模式是启动时读取配置文件,然后重新读取配置文件需要应用重启。一般的配置管理系统都是代码侵入性的,应用接入配置管理系统都需要使用对应的 SDK 来查询和监听数据的变更。
8789 0
862
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载