基于51单片机的超声波测距(待改进)

简介: 基于51单片机的超声波测距(待改进)

本来想写一个模拟倒车雷达的小程序,结果定时器没学好,还是先补一下吧

先把最初的代码发出来~(代码有点乱,请见谅。。。)

#include<reg52.h>
#define uc unsigned char
uc NixieTable[17] = {0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71,0x00};
uc ms=0,s=0;
sbit ax=P2^2;
sbit bx=P2^3;
sbit cx=P2^4;
sbit trig=P1^7;
sbit echo=P1^6;
void Nixie(unsigned char Location,Number);
void delay2(unsigned int xms)
{
  unsigned char i, j;
  while(xms--)
  {
    i = 2;
    j = 239;
    do
    {
      while (--j);
    } while (--i);
  }
}
void delay(uc c)
{
  while(--c);
}
void delay1(uc c1)
{
  uc a,b;
  for(;c1>0;c1--)
  {
    for(a=38;a>0;a--)
      for(b=130;b>0;b--);
    s=(TH0*256+TL0)/58;
    Nixie(6,s/100);
    Nixie(7,s/10%10);
    Nixie(8,s%10);
  }
}
void send()
{
  trig=1;
  delay(5);
  trig=0;
}
void Nixie(unsigned char Location,Number)
{
  switch(Location)    //位码输出
  {
    case 1:cx=1;bx=1;ax=1;break;
    case 2:cx=1;bx=1;ax=0;break;
    case 3:cx=1;bx=0;ax=1;break;
    case 4:cx=1;bx=0;ax=0;break;
    case 5:cx=0;bx=1;ax=1;break;
    case 6:cx=0;bx=1;ax=0;break;
    case 7:cx=0;bx=0;ax=1;break;
    case 8:cx=0;bx=0;ax=0;break;
  }
  P0=NixieTable[Number];  //段码输出
  delay2(1);        //显示一段时间
  P0=0x00;        //段码清0,消影
}
void main()
{
  TMOD=0X01;  
  TH0=0;
  TL0=0;
  ET0=1;
  EA=1;
  while(1)
  {
    send();
    while(echo==0);
    TR0=1;
    TH0=0;
    TL0=0;
    while(echo==1);
    TR0=0;
    s=(TH0*256+TL0)/58;
    Nixie(6,s/100);
    Nixie(7,s/10%10);
    Nixie(8,s%10);  
    delay1(20);
  }
}

接线在这里就不详细介绍了,因为数码管的位选和段选每个单片机用到的芯片和接口可能不一样

超声波的接法跟上一篇文章一样

但是超声波测距间隔的时间需要注意,因为这牵扯到动态数码管的扫描。这个可以尽量的设低一点,但不能小于80ms。

即使再小,动态数码管也会出现频闪的情况,所以我做出的改进是把动态数码管的扫描再加到delay函数里面,每10ms扫描一次,恰巧可以抵消人的视觉暂留。

但是有一个显而易见的缺点就是会造成延时不准确的现象,所以我后期考虑用定时器改进一下。


对于模拟倒车雷达的系统改进,各位大佬还有什么好的建议欢迎在评论区或私信给出哦~


相关文章
4.9 51单片机-(HC-SR04)超声波测距模块
4.9 51单片机-(HC-SR04)超声波测距模块
240 0
4.9 51单片机-(HC-SR04)超声波测距模块
|
6月前
|
编译器 C语言 开发者
单片机原理与应用:探索微型计算机世界
单片机原理与应用:探索微型计算机世界
57 1
|
6月前
|
数据采集 数据处理 C语言
单片机:探索其原理、应用与编程实践
单片机:探索其原理、应用与编程实践
94 1
|
6月前
|
物联网
STC51单片机-实验开发装置仿真-物联网应用系统设计
STC51单片机-实验开发装置仿真-物联网应用系统设计
141 0
|
6月前
|
物联网
STC51单片机-控制LED闪亮的仿真-物联网应用系统设计
STC51单片机-控制LED闪亮的仿真-物联网应用系统设计
84 0
|
1月前
|
传感器 存储 物联网
单片机的原理与应用
单片机是一种将计算机的CPU、存储器、输入输出接口等功能集成在一块芯片上的微型计算机,被广泛应用于各类控制系统和智能设备中。
64 5
|
4月前
|
传感器 存储 程序员
《单片机原理与应用及C51编程技术》期末复习笔记
《单片机原理与应用及C51编程技术》期末复习笔记
|
6月前
|
传感器 人工智能 物联网
单片机:编程实践与应用探索
单片机:编程实践与应用探索
69 4
|
6月前
|
存储 芯片
【期末不挂科-单片机考前速过系列P11】(第十一章:15题速过串行口的工作原理和应用)经典例题盘点(带图解析)
【期末不挂科-单片机考前速过系列P11】(第十一章:15题速过串行口的工作原理和应用)经典例题盘点(带图解析)
|
6月前
|
传感器 安全 物联网
单片机在智能家居系统中的应用研究
单片机在智能家居系统中的应用研究
195 1