找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1188|回复: 1
打印 上一主题 下一主题
收起左侧

51单片机超声波模块的测距程序

[复制链接]
跳转到指定楼层
楼主
基于stc89c52单片机,采用HC-SR04模块利用声波反弹算出距离。
  1. #include "reg52.h"

  2. //距离小于10cm,D5亮,D6灭,反之相反现象

  3. sbit D5 = P2^0;
  4. sbit D6 = P2^1;
  5. sbit Trig = P1^5;
  6. sbit Echo = P1^6;

  7. void Delay10us()                //@11.0592MHz
  8. {
  9.         unsigned char i;

  10.         i = 2;
  11.         while (--i);
  12. }

  13. void Time0Init()
  14. {       
  15.         TMOD &= 0xF0;                //设置定时器模式
  16.         TMOD |= 0x01;
  17.         TH0 = 0;
  18.         TL0 = 0;
  19.         //设置定时器0工作模式1,初始值设定0开始数数,不着急启动定时器
  20. }
  21. /*
  22. 十进制2左移1位,变成20。相当于乘以10
  23. 二禁止1左移1位,变成10(2)。相当于乘以2,左移8位,乘以2的8次方=256;*/

  24. void startHC()
  25. {
  26.         Trig = 0;
  27.         Trig = 1;
  28.         Delay10us();
  29.         Trig = 0;
  30. }
  31. void main()
  32. {
  33.         double time;
  34.         double dis;
  35.        
  36.         Time0Init();
  37.        
  38.         while(1){
  39.                 //1. Trig ,给Trig端口至少10us的高电平
  40.                 startHC();
  41.                 //2. echo由低电平跳转到高电平,表示开始发送波
  42.                 while(Echo == 0);
  43.                 //波发出去的那一下,开始启动定时器
  44.                 TR0 = 1;
  45.                 //3. 由高电平跳转回低电平,表示波回来了
  46.                 while(Echo == 1);
  47.                 //波回来的那一下,我们开始停止定时器
  48.                 TR0 = 0;
  49.                 //4. 计算出中间经过多少时间
  50.                 time = (TH0 * 256 + TL0)*1.085;//us为单位
  51.                 //5. 距离 = 速度 (340m/s)* 时间/2
  52.                 dis = time * 0.017;
  53.                 if(dis < 10){
  54.                                 D5 = 0;
  55.                                 D6 = 1;
  56.                 }else{
  57.                                 D5 = 1;
  58.                                 D6 = 0;
  59.                 }
  60.                 //定时器数据清零,以便下一次测距
  61.                 TH0 = 0;
  62.                 TL0 = 0;
  63.         }
  64. }
复制代码


1723385268482.png (372.23 KB, 下载次数: 13)

1723385268482.png
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏4 分享淘帖 顶1 踩
回复

使用道具 举报

沙发
ID:513213 发表于 2024-8-20 08:37 | 只看该作者
谢谢分享
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表