1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > 51单片机的超声波测距系统(仿真+程序+报告+原理图)

51单片机的超声波测距系统(仿真+程序+报告+原理图)

时间:2018-09-02 00:21:15

相关推荐

51单片机的超声波测距系统(仿真+程序+报告+原理图)

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 | TL0TH0 = 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超声波”获取!

项目纯手打,不是免费的哦~小小一杯奶茶的💴

希望可以帮到你哈!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。