当前位置: 首页 > wzjs >正文

外贸网站建设价格泗阳县住房和建设局网站

外贸网站建设价格,泗阳县住房和建设局网站,app科技网站建设,新郑网站开发超声波技术的诞生灵感来源于大自然中的回声定位现象,尤其是蝙蝠的独特能力。蝙蝠通过发出高频超声波并捕捉回声来精确地探测周围的物体和猎物,即使在漆黑的夜晚也能轻松导航。 在单片机中,也有着超声波这个模块,它在单片机上的标识…

超声波技术的诞生灵感来源于大自然中的回声定位现象,尤其是蝙蝠的独特能力。蝙蝠通过发出高频超声波并捕捉回声来精确地探测周围的物体和猎物,即使在漆黑的夜晚也能轻松导航。
在单片机中,也有着超声波这个模块,它在单片机上的标识是JS1,在STC15F2K60S2单片机中,超声波位于如图所示的位置:
在这里插入图片描述
当成功编写超声波代码后,可以通过将手掌或者别的障碍物放在超声波水平线上达到测距的效果,接下来具体讲如何实现这个功能以及代码编写。

一、超声波距离计算公式

已知信息如下:超声波在空气中的传播速度为v(m/s),A发送超声波,经过时间t(s)传回A地,现在计算AB直接的直线距离s
时间t为A->B->A所消耗的时间,所以A->B所消耗的时间是 t 2 \frac{t}{2} 2t,根据距离公式易得s= v ∗ t 2 \frac{v*t}{2} 2vt

二、定义引脚

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
定义引脚P10为Tx,定义引脚P11为Rx。Rx和Tx的作用如下:

Rx作用Tx作用
0停止发送超声波0已接收到超声波
1开始发送超声波1未接收到超声波

使用超声波模块时,需要将跳线帽将板子上的1-3和2-4通过跳线帽短接,如下图所示:
在这里插入图片描述

三、实现步骤

不是
不是
通过Tx引脚发送8个40KHZ的方波
启动定时器计算计数脉冲
等待超声波返回
超声波信号是否返回
Rx=0
数据是否溢出
距离读取失败返回距离为0
停止计时并且计算距离

四、代码实现

1.发送8个40KHZ的方波

方波是一种周期性波形,它的特点是在每个周期内,波形的值要么处于高电平,要么处于低电平,并且在高低电平之间瞬时切换。
占空比:表示高电平持续的时间与一个周期总时间之比。通常,标准方波的占空比是 50%,即高电平和低电平各持续半个周期。
可以通过延迟函数来实现,T = 1 f \frac{1}{f} f1=25us,所以高电平/低电平所需的时间为12.5us,定义一个12us的延迟函数即可。

void Delay12us(void)	//@12.000MHz
{unsigned char data i;_nop_();_nop_();i = 33;while (--i);
}void WaveInit(void)
{unsigned char i;for(i = 0; i < 8; i++)//连续发送8个40KHz的方波{Tx = 1;//开始发送超声波Delay12us();Tx = 0;//停止发送超声波Delay12us();}
}

2.定时器配置

本文给出两种定时器模式,一种是使用定时器0的TH0和TL1负责计时(一般来说,默认定时器0计数,定时器1计时),另一种是使用外挂定时器——PCA。
本文对PCA的原理不做介绍,只要读者知道如何配置定时器即可配置PCA。

使用PCA的优点:当一道题目考到超声波模块时,如果你使用定时器1去做的话,需要消耗一个定时器,如果又同时考到了NE555,你需要让定时器0去读取脉冲,所以你其他中断只能在定时器2中实现,而定时器2的配置和定时器0和1不同,需要消耗不必要的时间。

使用超声波只需要知道以下定时器内寄存器(位)的作用即可:

  • TMOD:定时器1配置为16位自动重装载
  • TL1、TH1:负责计时
  • TR1:TR1为高电平时开始计时
  • TF1:TF1为高电平时数据溢出
    其他寄存器查缺补漏,点击传送门:
    传送门:定时器专题——从理论到应用
    代码实现:
unsigned char Wave()
{unsigned int time;TMOD &= 0xF0;//配置定时器1为16位自动冲装载TL1 = TH1 = 0;//清空数据WaveInit();//发送方波信号TR1 = 1;//开始计时/**当Rx为0(未接收到超声波)或者数据还未溢出时,继续等待*如果接收到了超声波,退出循环,进入后面的判断*如果还未接收到超声波但是数据已经溢出,也退出循环*只有当未接收到超声波而且数据未溢出时才继续等待*/while((Rx == 1) && (!TF1));TR1 = 0;//停止计时if(TF1)//数据溢出,本次读取超声波数据失败{TF1 = 0;//清除标志位return 0;}else //数据未溢出,读取超声波成功{time = (TH1 << 8) | TL0;return time*0.017;//v*t/2,由于时间以微秒为单位,1s=100 0000微秒,做一次进制转换得到0.017}
}

五、PCA配置

定时器配置中讲到使用到的寄存器(位)为TMOD,TH1,TL1,TR1,TF1,这些寄存器(位)在PCA中依次对应:COMD,CH,CL,CR,CF。
其中,CMOD寄存器功能如下图:
在这里插入图片描述
COMD的配置为0x00
所以copy一下上面写好的基于定时器1的超声波代码,可以得到以下基于PCA的超声波代码:

unsigned char Wave() //超声波距离读取函数
{unsigned int time;//时间储存变量CMOD =  0x00;//配置PCA工作模式CH = CL = 0;//复位计数值 等待超声波信号发出Wave_Init();//发送超声波信号CR = 1;//开始计时while((Rx == 1) && (CF == 0));//等待接受返回信号或者定时器溢出CR = 0;//停止计时if(CF == 0) //定时器没有溢出{time = CH << 8 | CL;//读取当前时间return (time * 0.017);//返回距离值}else{CF = 0;//清除溢出标志位return 0;}
}

六、应用

使用超声波将测量得到的数据显示在数码管的后三位上,超声波测距的结果以厘米为单位

Seg.h

#ifndef __Seg_H__
#define __Seg_H__void SegDisp(unsigned char wela, unsigned char dula, unsigned char point);#endif

Seg.c

#include <STC15F2K60S2.H>code unsigned char Seg_Table[] =
{
0xc0, //0
0xf9, //1
0xa4, //2
0xb0, //3
0x99, //4
0x92, //5
0x82, //6
0xf8, //7
0x80, //8
0x90, //9
0xff, //空
0xdf, //-
0x8c, //P
0x8e //F
};void SegDisp(unsigned char wela, unsigned char dula, unsigned char point)
{P0 = 0xff;P2 = P2 & 0x1f | 0xe0;P2 &= 0x1f;P0 = (0x01 << wela);P2 = P2 & 0x1f | 0xc0;P2 &= 0x1f;P0 = Seg_Table[dula];P2 = P2 & 0x1f | 0xe0;P2 &= 0x1f;
}

main.c

#include <STC15F2K60S2.H>
#include "Init.h"
#include "LED.h"
#include "Key.h"
#include "Seg.h"/* 变量声明区 */
unsigned char Key_Slow; //按键减速变量 10ms 
unsigned char Key_Val, Key_Down, Key_Up, Key_Old; //按键检测四件套
unsigned int Seg_Slow; //数码管减速变量 500ms
unsigned char Seg_Buf[] = {10,10,10,10,10,10,10,10,10,10};//数码管缓存数组
unsigned char Seg_Pos;//数码管缓存数组专用索引
unsigned char Seg_Point[8] = {0,0,0,0,0,0,0,0};//数码管小数点使能数组
unsigned char ucLed[8] = {0,0,0,0,0,0,0,0};//LED显示数据存放数组
unsigned char wave;
/* 按键处理函数 */
void Key_Proc()
{if(Key_Slow) return;Key_Slow = 1; //按键减速Key_Val = Key();Key_Down = Key_Val & ~Key_Old;	 Key_Up = ~Key_Val & Key_Old;Key_Old = Key_Val;}/* 信息处理函数 */
void Seg_Proc()
{if(Seg_Slow) return;Seg_Slow = 1; //数码管减速SegBuf[0] = 10;SegBuf[1] = 10;SegBuf[2] = 10;SegBuf[3] = 10;SegBuf[4] = 10;SegBuf[5] = wave / 100;SegBuf[6] = wave / 10 % 10;SegBuf[7] = wave % 10;				
}/* 其他显示函数 */
void Led_Proc()
{}/* 定时器1用于计时 */
void Timer1_Init(void)		//1毫秒@12.000MHz
{AUXR &= 0xBF;			//定时器时钟12T模式TMOD &= 0x0F;			//设置定时器模式TL1 = 0x18;				//设置定时初始值TH1 = 0xFC;				//设置定时初始值TF1 = 0;				//清除TF1标志TR1 = 1;				//定时器1开始计时ET1 = 1;EA = 1;
}/* 定时器1中断服务函数 */
void Timer1_Server() interrupt 3
{if(++Key_Slow == 10) Key_Slow = 0; //按键延迟if(++Seg_Slow == 100) Seg_Slow = 0; //数码管延迟if(++Seg_Pos == 8) Seg_Pos = 0;	   //数码管显示
}void main()
{Init();Timer0_Init();Timer1_Init();while(1){Key_Proc(); Seg_Proc();Led_Proc();}
}

文章转载自:

http://LHN2itNY.dpmhz.cn
http://D4C1poOx.dpmhz.cn
http://Tnf38FWl.dpmhz.cn
http://knIoB9yh.dpmhz.cn
http://7h5J0tF8.dpmhz.cn
http://rK4tu3OT.dpmhz.cn
http://AMf2TZT1.dpmhz.cn
http://C0kPxR2D.dpmhz.cn
http://PammPekS.dpmhz.cn
http://Q4fed6Et.dpmhz.cn
http://gmVRhF0i.dpmhz.cn
http://ApmxBJ9T.dpmhz.cn
http://3JELSUHK.dpmhz.cn
http://M3rZyWAW.dpmhz.cn
http://E906NEXq.dpmhz.cn
http://RQlBLxkg.dpmhz.cn
http://TzGidpyH.dpmhz.cn
http://Q4WgbmMR.dpmhz.cn
http://EsuGrNhl.dpmhz.cn
http://RvAdH1jr.dpmhz.cn
http://tyT5LTHD.dpmhz.cn
http://bkOtGy6M.dpmhz.cn
http://0EbG48B7.dpmhz.cn
http://b7sRE3T5.dpmhz.cn
http://C3HDjQQc.dpmhz.cn
http://e0ZGpbF7.dpmhz.cn
http://8IT4dgDL.dpmhz.cn
http://sNo9z2Sl.dpmhz.cn
http://IqLjReF8.dpmhz.cn
http://S7F8NIjF.dpmhz.cn
http://www.dtcms.com/wzjs/714784.html

相关文章:

  • 现在中型公司做网站用的是什么框架政务网站的建设
  • 上海网站制作公司多少钱中国建筑集团有限公司500强排名
  • 手机端网站 优帮云短网址生成api接口
  • 公司一定建设网站吗网站建设方案书填写示例
  • 个人可以建购物网站吗网站那种推广链接怎么做
  • 安卓图形网站建设wordpress 关键词 描述 插件
  • 网站做导航的地图wordpress获取权限
  • 视频网站推广怎么做wordpress 自定义主题
  • 网站技术支持是什么福州h5建站
  • 代人做网站机械公司网站模板
  • 网站地图建设有什么用网站建设哈尔滨网站建设1
  • 网站建设开票分类编码网站开发人员的要求
  • 微信网站是什么wordpress写文章插件
  • 公司的做网站厦门跨境电商前十
  • 装饰网站建设价格wordpress 无权限
  • 唐山市住房城乡建设部网站主页在农村做相亲网站怎么样
  • 济宁有没有专门做网站的wordpress 4.4.3
  • 查看网站百度排名wordpress主题腾讯EDC
  • 环保部网站官网建设项目限批办法男的做直播网站
  • 做网站 聊城网站侧边栏代码
  • 茂名网站建设方案外包制作手机网站建设
  • 做高仿网站有哪些ftp中不能打开wordpress
  • 怎么做网站建设销售汉口江岸区城市建设局网站
  • 建筑设计费一般多少钱一平方张家口seo
  • 做一件代发的网站免费ppt模板下载简约风
  • wordpress返回上页百度seo是啥意思
  • 爱站工具包的模块有哪些ftp上传网站之后怎么做
  • 在哪学习建网站豆瓣 wordpress
  • 外包服务公司排名网站seo推广怎么做
  • 网站设计与应用方向论文外贸人才网招聘网