理论基础
超声波模块的工作原理:单片机供给超声波信号端Trig一个最少10us长的高电平触发信号,模块自动发射8个40khz的方波,同时自动检测到信号是否返回,一旦有信号返回,Echo端输出一个高电平,高电平持续的实践就是超声波从发射到返回的时间。 对应的测试距离计算方法 :(高电平时间*声速(340m/s))/2
超声波发射电路图

红外线和超声波选择电路图

P10口时发射,P11口接收
核心代码如下


#include "reg52.h"  //定义51单片机特殊功能寄存器
#include "intrins.h"
#include "absacc.h"#define somenop {_nop_();_nop_();_nop_();_nop_();_nop_();\_nop_();_nop_();_nop_();_nop_(); _nop_();}
sbit TX = P1^0;  //发射引脚
sbit RX = P1^1;  //接收引脚code unsigned char tab[] = { 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,\0xff};
unsigned char dspbuf[8] = {10,10,10,10,10,10,10,10};  //显示缓冲区
unsigned char dspcom = 0;unsigned int intr = 0;
bit s_flag;
unsigned int t = 0;void send_wave(void);
void display(void);void main(void)
{unsigned int distance;TMOD |= 0x11;  //配置定时器工作模式TH0 = (65536-2000)/256;TL0 = (65536-2000)%256;TH1 = 0;TL1 = 0;EA = 1;ET0 = 1;  //打开定时器0中断TR0 = 1;  //启动定时器while(1){/** 200毫秒更新一次数据 */if(s_flag){s_flag = 0;/** 关闭定时器0中断:计算超声波发送到返回的时间 */
//          ET0 = 0;send_wave();  //发送方波信号TR1 = 1;  //启动计时while((RX == 1) && (TF1 == 0));  //等待收到脉冲TR1 = 0;  //关闭计时//发生溢出if(TF1 == 1){TF1 = 0;distance = 9999;  //无返回}else{/**  计算时间  */t = TH1;t <<= 8;t |= TL1;distance = (unsigned int)(t*0.017);  //计算距离}TH1 = 0;TL1 = 0;}/** 数据处理                      */dspbuf[5] = distance/100;dspbuf[6] = distance%100/10;dspbuf[7] = distance%10;}
}//定时器0中断服务函数
void isr_timer_0(void)  interrupt 1  //默认中断优先级 1
{TH0 = (65536-2000)/256;TL0 = (65536-2000)%256;  //定时器重载display();  //2ms执行一次if(++intr == 200){s_flag = 1;intr = 0;}
}//显示函数
void display(void)
{XBYTE[0xE000] = 0xff;  //去除鬼影XBYTE[0xC000] = (1<<dspcom);XBYTE[0xE000] = tab[dspbuf[dspcom]];if(++dspcom == 8) {dspcom = 0;}
}//TX引脚发送40KHz方波信号驱动超声波发送探头
//使用软件延时注意RC振荡器频率
void send_wave(void)
{unsigned char i = 8;  //发送8个脉冲do{TX = 1;somenop;somenop;somenop;somenop;somenop;somenop;somenop;somenop;somenop;somenop;TX = 0;somenop;somenop;somenop;somenop;somenop;somenop;somenop;somenop;somenop;somenop;}while(i--);
}

蓝桥杯国信长天单片机--超声波测距设计(十一)相关推荐

  1. 蓝桥杯国信长天单片机--LED灯模块(五)

    LED等内部连接示意图 整体思路 通过74HC138芯片及74HC02芯片输入高低电平,来控制Y4C为1或0.当Y4C为1时,方可通过P0端口来控制LED灯的亮灭.当Y4C为0时,无法控制LED灯的亮 ...

  2. 蓝桥杯国信长天单片机--硬件环境(一)

    CT107D 单片机由以下功能模块组成 1.功能模块 (1)单片机芯片 配置IAP15F2K61S2单片机 (2)显示模块 配置8路LED输出L1-L8 配置8位8段共阳极数码管DS1-DS2 配置L ...

  3. 蓝桥杯国信长天单片机--串口程序设计(十)

    实验目的: 1.掌握51单片机串口工作模式及相关寄存器配置方法 2.了解51单片机波特率的计算方法 3.掌握单片机串口接收中断服务函数的设计方法 程序说明: 1.通过USB连接线连接PC机,在计算机硬 ...

  4. 蓝桥杯国信长天单片机实战--交通灯设计

    案例: L1 - 红灯 30s: L2 - 黄灯 3s: L3 - 绿灯 40s. 核心代码 #include "reg52.h" #define u8 unsigned char ...

  5. 蓝桥杯国信长天单片机实战--呼吸灯设计

    利用PWM实现呼吸灯 核心源码 #include "reg52.h" #define u8 unsigned char #define u16 unsigned int #defi ...

  6. 蓝桥杯国信长天单片机--程序下载(三)

    STC-ISP 程序下载 (1)打开下载界面:双击 stc-isp-15xx-v6.86.exe 运行程序,出现如图. (2)选择单片机型号:在左上方的"单片机型号"下拉列表中选择 ...

  7. 蓝桥杯国信长天单片机--软件环境(二)

    Keil Vision5 集成开发环境建立工程 第一步: 单击"Project"菜单下的"New Vision Project-"菜单项启动新工程的建立,出现新 ...

  8. 蓝桥杯国信长天单片机--数码管模块(六)

    数码管内部连接示意图 设备连接关系图 什么是位选,什么是段选? 假设我们有4个数码管,我想让某1个数码管显示对应的数字,我就需要先选中它,选中这个数码管的过程就叫位选:一般单个数码管都是8段(带小数点 ...

  9. 蓝桥杯国信长天单片机实战--数码管的动态显示

    一.原理分析 数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划"a,b,c,d,e,f,g,dp"的同名端连在一起,另外为每个数码管 ...

最新文章

  1. cross join
  2. boost::gil::view_type用法的测试程序
  3. VTK:PolyData之CellEdgeNeighbors
  4. Hive安装MySql
  5. Java快速入门学习笔记2 | Java语言中的基本类型
  6. Super VLAN
  7. [RL] 配置 gym 与 atari 游戏
  8. SQL Server BI Step by Step SSIS 5 --- 通过Email发送查询结果
  9. Linux下安装gcc环境
  10. TransCAD划分交通小区及求PA的问题
  11. Unity Hub 下载2017-2019版本链接
  12. USB转SPI芯片操作FLASH--CH347应用
  13. 码农也来关注下经济问题美元加息对我们的影响
  14. GraphSage:Inductive Representation Learning on Large Graphs
  15. 上市公司创新研发支出数据(2006-2018年)
  16. 运行剑灵与服务器断开,剑灵手游程序错误 和服务器断开解决方法
  17. Windows Server 2012远程默认端口3389的修改
  18. 获取实时汇率代码片段
  19. 如何用cmd命令进入mysql
  20. Python经典练习题——求水仙花数

热门文章

  1. OOA是什么?OOD是什么?OOP是什么?
  2. 独家!了不起的UP系列产品,不一样的开发板—UP Core Plus Board(四)
  3. 智能无人机课程用的是研扬TX2底板+TX2核心板
  4. ca-certificates.crt CApath: none
  5. 《计算机控制技术》论文,计算机控制技术科技论文-PLC technique discussion and future development...
  6. Android流媒体开发之-直播自定义分类
  7. copyfile java_java – 使用FileUtils.copyFile复制文件
  8. GPT-4 手画设计稿 直接生成前端页面
  9. 一文搞懂Elasticsearch索引的mapping与setting
  10. 按键连续点击的c语言程序,【转】按键长按与短按处理程序[C语言]--通過測試