创意发明: 基于STC51单片机超声波测距(精简设计只需三个元件)
基于STC51单片机超声波测距精简设计只需三个元件(测距模块暂且算做是一个元件吧)
1.所需元件:STC单片机+超声波模块+4位共阳数码管
2.原理:单片机向测距模块trig脚发送20us的高电平触发测距,Echo 测距结束时会输出高电平,电平时长为超声波信号往返时间之和。Echo 脚开始输出高电平时启动定时计数器计时,当Echo 脚高电平结束时停止计数,根据定时器的时间可算出距离。
3.连接:单片机插在面包板上数码管直接插在单片机上面(引脚一一对应见原理图)测距模块trig脚接P5.4Echo 脚接P5.5
实物图
参考C程序代码如下:
/***************************************************************
程序名: 51单片机超声波测距()
硬件支持:超声波模块US-020、四位共阳数码管、STC单片机
//
#include <STC15w.H>// 单片机头文件
#include <intrins.h>
#include <4LED_YANG.h>//包含共阳数码管驱动程序
#define uchar unsigned char
#define uint unsigned int
uint timeH,timeL;//定义2个存储计时器值的变量
uint distance;//定义测量值的变量
uint time;//定义Echo脚返回的高电平时间变量
//
sbit Echo = P5 ^ 5; //超声波测距模块Echo连接的IO
sbit Trig = P5 ^ 4; //超声波测距模块Trig连接的IO
//
void delay1ms (unsigned int a){ // 1ms延时程序
unsigned int i;
while( --a != 0){
for(i = 0; i < 630; i++);//STC单片机在晶振为12MHz时i值上限为630
} //AT89C51单片机在外部晶振为12MHz时i值上限为125
}
//
void delay_20us() //@12.000MHz
{
unsigned char i;
nop();
nop();
i = 57;
while (–i);
}
/*********************************************************************************************
函数名:定时器初始化函数
调 用:INT_init();
//
void INT_init (void){
TMOD=0x01; //定时器0,16位工作方式计数模式
TH0=0; //定时器0清零
TL0=0; //定时器0清零
EA = 1; //总中断开
Trig=0;//拉低为下次触发做准备
}
//*********
void dist (void){//测量距离程序
Trig=1; //
delay_20us(); //延时20us
Trig=0; //Trig输出20us高电平触发测距
while(Echo0); //等待Echo回波引脚变高电平
TR0=1;//程序运行到此处时说明Echo脚变成了高电平,此时启动T0开始计时
while(Echo1); //等待Echo回波引脚高电平结束
TR0=0;//程序运行到此处时说明Echo脚变成了低电平,此时T0停止计时
time=TH0256+TL0;
distance=time0.170; //测量距离
distance=distance-2;//测量起点不同减去的数值不同
TH0 = 0; //重置计时器
TL0 = 0;
}
void main()//主函数
{
init();//单片机IO口工作方式初始化
INT_init;//T0初始化
while(1)
{
dist();//测量距离
disp();//数码管显示距离
delay1ms(20);//两次测量间需要有10ms间隔
}
}
//鉴于篇幅有限,C完整源码 及所有技术文件,
最后,如果有什么意见或者建议欢迎您留言给我,让我们共同学习一起进步,
如果需要 完整代码或设计文件,请在下方留言或者私信我,看到后会第一时间回复。
谢谢!
创意发明: 基于STC51单片机超声波测距(精简设计只需三个元件)相关推荐
- 基于单片机的TLC稳压电源系统设计-基于单片机大脑运算能力智力测试仪-基于单片机超声波测距系统仿真设计(报告 PCB 原理图)-基于单片机超高精度电参数测试设计-基于单片机变电站变压器运行参数监测仿真
1316基于单片机的TLC稳压电源系统设计-毕设课设仿真资料 三极管射极电压是稳压电源的输出电压,可以接用电器或负载,这个电压值通过TLC549(A/D,同TLC548)数据转换后,送往单片机处理并显 ...
- 基于51单片机超声波测距液位检测-温度检测
[毕设课设]基于51单片机超声波测距液位检测-温度检测 效果图 Proteus仿真: 功能简介: 文件内容: 程序框架: 网盘链接: 效果图 更多内容请关注@WENJIE电子科技 基于51单片 ...
- 基于51单片机 超声波测距 倒车雷达
基于51单片机 超声波测距 倒车雷达 51单片机最小系统电路+LCD1602+蜂鸣器报警电路+按键电路+超声波模块+电源电路 实现液晶显示距离 超设置数值报警 按键可修改数值 可加蓝牙模块 用户可以通 ...
- 基于51单片机超声波智能测距仪设计(毕设课设)
1.可设置报警距离,按下"设置"键后就可以再按"↑"键和"→"键就可以修改报警距离,最后按"确认"键保存设置的距离. 2 ...
- 基于单片机超声波测距
预期目标: 1.超声波模块测定发送源至障碍物的距离 2.数码显示管显示发送源到障碍物的距离 3.通过按键设定报警距离,当障碍物在一定超声范围内,蜂鸣器报警 硬件实物图及演示: 使用 HC6800-MS ...
- 基于STM32和超声波测距传感器的测距功能设计
基于STM32和超声波测距传感器的测距功能设计(使用陌生传感器的流程介绍) 引言 项目设计 项目简介 开发工具 硬件设计 软件设计 开发流程 阅读手册 配置并测试传感器相关设置 软件开发 总结 后续 ...
- 水下超声波测距c语言程序,51单片机超声波测距C程序
51单片机超声波测距C程序 (2010-01-26 14:09:10) 电子工程师电子资料大学校园 超声波检测原理 超声波测距的程序流程图 程序如下: //超声波模块程序 #include #defi ...
- 51单片机超声波测距带语音播报(源程序+原理图+原理图讲解)
本设计 51单片机超声波测距带语音播报(源程序+原理图+原理图讲解) 原理图:Altium Designer 程序编译器:keil 4 编程语言:C语言 编号S0004 功能说明: 1.本设计采用ST ...
- 项目实战:51单片机超声波水位控制器设计 (源码+PCB+原理图与实物制作)全套资料
51单片机超声波水位控制器设计 说明: 本设计中液晶显示有4个字母,分别为 H------容器的最高水位设定值(不能高于实际高度) L------容器的最低水位设定值 D-----容器实际高度(可以设 ...
最新文章
- EMC CLARiiON 的 Alignment offset
- mongodb学习参考博文
- sqlplus执行mysql_在SQLPLUS启动和停止Oracle数据库
- Linux文件系统目录结构
- Java内存结构与垃圾回收机制算法分析
- HOOK使用:全局键盘钩子
- 推荐一款chrome浏览器插件:视频在线实时翻译
- 基于大数据的一线城市住房租赁影响因素分析
- mysql begin tran_SQL事务用法begin tran,commit tran和rollback tran的用法
- 按键精灵定时后台点击
- lvs realserver 配置VIP
- snapchat_如何重播Snapchat快照
- 招行金葵花,经典白,银钻,AE白问题总结贴
- nodejs生成uid
- Origin画图技巧之设置框图默认设置
- 一个关于springboot的junit使用错误,空指针异常
- 互联网家装,风口下飞不起来的“猪”
- 【源代码扫描工具】 -Checkmarx使用
- FilterConfig.RegisterGlobalFilters 全局过滤器的用法
- barrier()函数
热门文章
- 从文化地理看三国演义
- iPhone 8 Plus and me: A 72-hour quest for beautiful images
- python 关键字field
- Chocolatey--windows包管理器的下载和使用(超详细)
- 入门渗透:telnet远程登入——Meow
- 【Linux】常用命令汇总
- 全氟己基碘烷行业研究及十四五规划分析报告
- 中国丙烯酸酯和丙烯酸乙基己酯共聚物市场市场发展现状及需求潜力分析报告2022-2028年
- 模块化智能仪器仪表检测平台系统
- 【PaperReading】The permutation testing approach: a review