基于51单片机的超声波测距系统设计

news2024/12/23 0:35:17

功能:

超声波测距仪,测量距离,用LCD12864显示信息。 lcd_writestr(0,0," 超声波测距仪 "); lcd_writestr(1,0,"********"); lcd_writestr(2,0,"当前被测距离为:"); lcd_writestr(3,0," 厘米 ");

程序运行图:

原理图:

部分程序:

/*****************************************************

                                                       

* 功能:超声波测距

******************************************************/

#include <reg52.h>

#include "intrins.h"

#include "12864LCDdriver.h"

#define uchar unsigned char

#define uint unsigned int

#define ulong unsigned long int

#define V=173

sbit CSOut=P1^7;

sbit Start=P1^4;

ulong TIME;

uchar DISTANCE;

uchar code discode[11]={'0','1','2','3','4','5','6','7','8','9',' '};

ulong data disnum[5];

bit data ReceiveOK=0;

bit data TOut;

bit data FLAG;

/*********************************************************

* 函数名称:void delay2(uchar x)

* 功    能:延时函数

* 入口参数:无

* 出口参数:无

*********************************************************/

void delay2(uchar x)

{

 uchar a,b;

 for(a=0;a<x;a++)

  for(b=0;b<255;b++);

}

/*********************************************************

* 函数名称:void init(void)

* 功    能:初始化

* 入口参数:无

* 出口参数:无

*********************************************************/

void init(void)

{

 lcd_init();//LCD初始化,开机调用一次

 TMOD=0x01;//T0定时器方式1

 IT0=0;//INT0负边沿触发

 IP=0x01;//INT0高优先级

 EA=1;//开总中断

}

 

/*********************************************************

* 函数名称:

* 功    能:超声波发射函数

* 入口参数:无

* 出口参数:无

*********************************************************/

void CCOut(void)

{

 TR0=1;

//40KHz

 CSOut=0;//1

 _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();

 _nop_();_nop_();

 CSOut=1;//2

 _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();

 _nop_();

 CSOut=0;//3

 _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();

 _nop_();_nop_();

 CSOut=1;//4

 _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();

 _nop_();

 CSOut=0;//5

 _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();

 _nop_();_nop_();

 CSOut=1;//6

 _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();

 _nop_();

 CSOut=0;//7

 _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();

 _nop_();_nop_();

 CSOut=1;//8

 _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();

 _nop_();

 CSOut=0;//9

 _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();

 _nop_();_nop_();

 CSOut=1;//10

 _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();

 _nop_();

 CSOut=0;//11

 _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();

 _nop_();_nop_();

 CSOut=1;//12

}

 

/*********************************************************

* 函数名称:void DataProcess(void)

* 功    能:数据处理函数

* 入口参数:无

* 出口参数:无

*********************************************************/

void DataProcess(void)

{

  ulong time=0;

  TIME=TH0;

  TIME=(TIME<<8)|TL0;

  TIME*=173;//距离

  TIME=TIME/10000;//单位:CM

  disnum[0]=(uchar)TIME%10;        //个位

  disnum[4]=TIME/10;

  disnum[1]=(uchar)disnum[4]%10;//十位

  disnum[4]=disnum[4]/10;

  disnum[2]=(uchar)disnum[4]%10;//百位

  disnum[4]=disnum[4]/10;

  disnum[3]=(uchar)disnum[4]%10;//千位

}

/*********************************************************

* 函数名称:void TimeOut(void) interrupt 1

* 功    能:超时处理函数 T0

* 入口参数:无

* 出口参数:无

*********************************************************/

void TimeOut(void) interrupt 1

{

 TR0=0;

 ET0=0;

 EX0=0;

 ReceiveOK=0;

 TOut=1;

}

资料包括:

 

需要完整的资料可在我的资源里下载,也可以加入我的纷传圈子,里面有资源压缩包的百度网盘下载地址及提取码。

纷传点击用微信打开即可,过程有点繁琐请见谅。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/87389.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

商场中央空调工程-商场商铺中央空调安装常见问题解答

商场中央空调工程-商场商铺中央空调安装常见问题解答 为了提高装修档次&#xff0c;提高舒适度&#xff0c;为顾客营造一个相对舒适的购物环境&#xff0c;很多门店都会选择安装中央空调。刚接触门店中央空调安装的客户会有很多疑问。例如&#xff0c;商店安装的中央空调和家用…

Android消息机制与源码剖析(Looper,Message,MessageQueue以及Handler)

Android消息机制 文章目录Android消息机制消息传递与处理的流程&#xff08;配图示&#xff09;1.【入口】 在 ActivityThread.class 的 main() 方法&#xff0c;为主线程创建 Looper&#xff0c;并开启 loop() 循环2.【创建Looper】通过 Looper.prepareMainLooper() 创建主线程…

MySQL如何快速恢复单表(物理方式)

GreatSQL社区原创内容未经授权不得随意使用&#xff0c;转载请联系小编并注明来源。GreatSQL是MySQL的国产分支版本&#xff0c;使用上与MySQL一致。作者&#xff1a;xryz文章来源&#xff1a;社区投稿 使用方法 1、首先创建一个测试表test1&#xff0c;并插入几条数据&#x…

DataParallel里为什么会显存不均匀以及如何解决

作者&#xff1a;台运鹏 (正在寻找internship...)主页&#xff1a;https://yunpengtai.top鉴于网上此类教程有不少模糊不清&#xff0c;对原理不得其法&#xff0c;代码也难跑通&#xff0c;故而花了几天细究了一下相关原理和实现&#xff0c;欢迎批评指正&#xff01;关于此部…

商品上下游第六讲-交易中心-商品秒杀

交易中心-商品秒杀设计 文章目录 交易中心-商品秒杀设计1、项目背景2、主要技术3、项目职责4、项目实现4.1、需求分析4.2、核心流程4.3、关键链路技术方案4.4、库存处理方式1、库存超卖问题订单层面的控制4.5、限流,熔断,降级4.6、超职购小程序—接口梳理4.7、缓存的设计4.8、…

mybatis入门(一)

什么是 MyBatis &#xff1f; MyBatis 是一款优秀的持久层框架&#xff0c;它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息&#xff0c;将接口和 Java 的…

如何使用匈牙利算法解决多维度的约束条件问题

&#x1f37f;*★,*:.☆欢迎您/$:*.★* &#x1f37f; 正文 假设 一个项目 有三个 维度的参数 A B C 都要 组合后最小 分别求解 a b c 三个维度的最优组合 如果三个组合方案刚好 重叠 那么说明有一个使得三个方案最优的 解 如果没有 那么若选择某个方案 其他维度的参数 的值 是…

直播倒计时 2 天 | SOFAChannel#31 RPC 框架设计的考和量

SOFARPC 是蚂蚁集团开源的一款基于 Java 实现的 RPC 服务框架&#xff0c;为应用之间提供远程服务调用能力&#xff0c;具有高可伸缩性&#xff0c;高容错性&#xff0c;目前蚂蚁集团所有的业务的相互间的 RPC 调用都是采用 SOFARPC。SOFARPC 为用户提供了负载均衡&#xff0c;…

Android -- 每日一问:回调函数和观察者模式的区别?

知识点 观察者模式 网上很容易查到观察者模式的定义&#xff1a; 观察者模式定义了对象间的一种一对多依赖关系&#xff0c;使得每当一个对象改变状态&#xff0c;则所有依赖于它的对象都会得到通知并被自动更新。 Android中大量的使用了观察者模式。你可能已经用过ListView…

基于51单片机的舞蹈机器人步进机仿真设计

程序运行图&#xff1a; 仿真原理图&#xff1a; 部分程序&#xff1a; #include "reg51.h" #include "intrins.H" //8步式步进电机脉冲序列 //unsigned char steps[8] {0x77,0x33,0xbb,0x99,0xdd,0xcc,0xee,0x66}; unsigned char steps[8] {0x2,0x…

Vue2快速入门

Vue 介绍 Vue 是一套构建用户界面的渐进式前端框架只关注视图层&#xff0c;并且非常容易学习&#xff0c;还可以很方便的与其它库或已有项目整合通过尽可能简单的API来实现响应数据的绑定和组合的视图组件特点易用&#xff1a;在有HTML CSS JavaScript的基础上&#xff0c;快速…

拓扑排序(数据结构之图的应用)

我们先搞清楚一个概念&#xff1a; 什么是出度与入度&#xff1f; 在有向图中&#xff0c;箭头是具有方向的&#xff0c;从一个顶点指向另一个顶点&#xff0c;这样一来&#xff0c;每个顶点被指向的箭头个数&#xff0c;就是它的入度。从这个顶点指出去的箭头个数&#xff0c…

不锈钢风淋室的使用需要注意哪些事项

风淋室的使用需要注意哪些事项 一、风淋室的操作说明&#xff1a; 1) 接通380V&#xff0c;50HZ电源(L1、L2、L3-火线&#xff0c;N-零线&#xff0c;E-接地线)&#xff0c;打开工作、照明开关&#xff0c;确认风机与照明工作正常&#xff0c;此时&#xff0c;风/货淋室处于初…

原创 | Attention is all you need 论文解析(附代码)

作者&#xff1a;杨金珊审校&#xff1a;陈之炎本文约4300字&#xff0c;建议阅读8分钟“Attention is all you need”一文在注意力机制的使用方面取得了很大的进步&#xff0c;对Transformer模型做出了重大改进。目前NLP任务中的最著名模型&#xff08;例如GPT-2或BERT&#x…

【数集项目之 MCDF】(四) 整形器 formatter

根据上一章的arbiter结构图&#xff0c;结合设计文档中MCDF的整体结构图&#xff0c;可以发现formatter整形器模块是arbiter的上级&#xff0c;负责最终的数据输出&#xff0c;与外界数据接收端相连。 第一节 fromatter文档理解 设计文档formatter的部分时序介绍如下 如图所示…

钡铼技术S274数据遥测终端机

钡铼技术S274数据遥测终端机功能特点&#xff1a; 内置 2 路 DC 直流电源输出&#xff0c;无需单独额外增加变送器的电源适配器&#xff0c;节省布线成本&#xff1b;  采用完备的防掉线机制&#xff0c;保证数据终端永远在线&#xff0c;掉线重发数据以及掉线短信通知用户…

第38篇 网络(八)TCP(二)

导语 在上一节里我们使用TCP服务器发送一个字符串&#xff0c;然后在TCP客户端进行接收。在这一节将重新写一个客户端程序和一个服务器程序&#xff0c;这次实现客户端进行文件的发送&#xff0c;服务器进行文件的接收。有了上一节的基础&#xff0c;这一节的内容就很好理解了…

postgresql_internals-14 学习笔记(三)冻结、rebuild

一、 Freezing 冻结 1. 引入原因 简单说来就是目前pg事务id只有32位&#xff0c;大业务量下很可能用完&#xff0c;触发事务id回卷&#xff08;循环使用&#xff09;。而pg是根据事务id大小判断可见性的&#xff0c;如果新事务却使用了小id&#xff0c;旧事务将可以看到新事务…

win下 conda 虚拟环境没有名字怎么进入

本文主要介绍windows下&#xff0c;在conda 虚拟环境名字消失后的解决办法。主要介绍两种解决方案。 文章目录前言解决方案一&#xff1a;往.condarc文件中添加envs_dirs1. 设置envs_dirs2. 重新查看虚拟环境解决方案二&#xff1a;直接通过path 激活虚拟环境总结前言 我们都知…

Grafana 监控大屏可视化图表

Grafana 系列文章&#xff0c;版本&#xff1a;OOS v9.3.1 Grafana 的介绍和安装Grafana监控大屏配置参数介绍&#xff08;一&#xff09;Grafana监控大屏配置参数介绍&#xff08;二&#xff09;Grafana监控大屏可视化图表 前面我们以Time series 图表为例&#xff0c;学习了面…