1、主要功能
该系统由AT89C51单片机+数码管模块+LED指示灯模块+按键模块构成。
利用51单片机实现超声波测距功能。利用单片机控制超声波的发射和对超声波自发射至接收往返时间的计时。系统定时发射超声波,在启动发射电路的同时启动单片机内部的定时器,利用定时器的计数功能记录超声波发射的时间和收到反射波的时间。当收到超声波的反射波时,接收电路输出端产生一个负跳变,单片机检测到这个负跳变信号后,停止内部计时器计时,读取时间,计算距离,测量结果输出给数码管显示。同时可以通过按键设定报警距离,如果距离过大或者过小,蜂鸣器都会报警。
可实现基本功能:
1、超声波测量距离
按键功能:
1、设置报警值的上限
2、设置报警值的下限
2、仿真
protues 仿真使用的是8.10版本,由于该软件版本迭代原因,不能确保其他版本软件能够正常运行,请安装好对应软件(版本一致或者高于这个版本都可以)
3、程序代码
只是放上来了部分代码,仅供参考。
/* 启动超声波程序 */
void StartModule(void)
{
Ttig = 1; //启动一次模块
_nop_(); //延时一段时间,至少10us以上
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
Ttig = 0;
}
/* 计算测距 */
void count(void)
{
StartModule(); //启动一次超声波
while(!Echo); //等待超声波模块输出IO拉高
TR0 = 1; //开启定时器计时
while(Echo); //等待超声波模块输出IO拉低
TR0 = 0; //关闭定时器计时
/* 计算距离 */
time = TH0 * 256 + TL0; //得到的时间,专业写法应该是这样:time = TH0 << 8 | TL0
TH0 = 0; //定时计数器清零
TL0 = 0;
S = (time * 1.7) / 100; //算出来是M
}
/* 显示距离 */
void dis_distance(void)
{
dis_buf[3] = 0x00;
dis_buf[2] = duan_ma[S / 100 %10]; //取出百位数,并在数码管的第3位显示,从右往左数
dis_buf[1] = duan_ma[S / 10 %10]; //取出十位数,并在数码管的第2位显示,从右往左数
dis_buf[0] = duan_ma[S % 10]; //取出个位数,并在数码管的第1位显示,从右往左数
}
/* 主函数 */
void main(void)
{
digDuan = 0x40; //显示"----"
digWei1 = 0;
digWei2 = 0;
digWei3 = 0;
digWei4 = 0;
delayms(1000); //延时大约1s
InitTimer0(); //定时器0初始化
while(1)
{
count(); //计算距离
if(S>=S_H || S<=S_L) //如果超出设定的范围,则显示"---"
{
dis_buf[3] = 0x00;
dis_buf[2] = 0x40; //显示"---"
dis_buf[1] = 0x40;
dis_buf[0] = 0x40;
BEEP = 0; //蜂鸣器鸣叫
delayms(1000);
}
else
{
BEEP = 1; //关闭蜂鸣器
dis_distance(); //显示距离
}
if(key_scan() == 1) //如果按下设置键,则进入设置报警功能
{
BEEP = 0; //按键提示音
delayms(50);
BEEP = 1;
delayms(100);
key_fuction(); //进入设置报警功能
}
}
}
4、原理图
5、报告
内含5k字,17页的相关报告一份,纯手打,内容一致
6、常见问题汇总
里面包含了我对各个模块的详细解析,可以结合代码一起理解。如果正巧老师问题多,这个可以帮到你哦。(不定时更新,讲解模块也会越来越多)
7、资源获取
本项目包含的所有文件都可以在公众号:今天也不想打工,回复“51超声波”获取!文章来源:https://www.toymoban.com/news/detail-510773.html
项目纯手打,不是免费的哦~小小一杯奶茶的💴
希望可以帮到你哈!文章来源地址https://www.toymoban.com/news/detail-510773.html
到了这里,关于51单片机的超声波测距系统【proteus仿真+程序+报告+原理图】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!