基于51单片机的超声波测距系统的毕业设计报告 下载本文

内容发布更新时间 : 2024/12/23 0:15:34星期一 下面是文章的全部内容请认真阅读。

中北大学毕业论文

第5章 结论

本设计是以AT89C51为核心,借助于模数电技术和单片机技术的结合,解决了超声波测距的一些难题。灵活的运用超声波换能集成电路作为超声波的接收电路,在讨论了超声波测距原理、硬件电路实现和软件设计方法基础上,完成了超声波测距的设计要求。利用单片机的运算和控制功能,利用超声波的特性设计出的一种简单的测距系统。利用超声波检测往往比较迅速、方便、计算简单、易于做到实时控制,并且在测量精度方面能达到工业实用的要求,随着科学技术的快速发展,超声波的应用将越来越广。但就目前技术水平来说,人们可以具体利用的超声波技术还十分有限,因此,这是一个正在蓬勃发展而又有无限前景的技术及产业领域。

从课题选择、方案论证到具体设计,我查阅了大量的资料。对一些疑难的问题,我得到了老师和同学的帮助。在三年的专科学习和生活期间,也始终感受着导师的精心指导和无私的关怀,我受益匪浅。在此向老师们表示深深的感谢和崇高的敬意。

31

中北大学毕业论文

致 谢

本文研究工作是在我的导师张志通老师的精心指导和悉心关怀下完成的,从开题伊始到论文结束,我所取得的每一个进步、编写的每一段程序都无不倾注着导师辛勤的汗水和心血。导师严谨的治学态度、渊博的各科知识、无私的奉献精神使我深受启迪,从尊敬的导师身上,我不仅学到了扎实、宽广的专业知识,也学到了做人的道理。在今后的学习工作中,我将铭记恩师对我的教诲和鼓励,尽自己最大的努力取得更好的成绩。

在此我要向我的导师张志通老师致以最衷心的感谢和深深的敬意!

在三年的大学学习期间,每位老师对我的学习、生活和工作都给予了热情的关心和帮助,使我的水平得到了很大的提高,取得了长足的进步。

在此,向所有关心和帮助过我的老师、同学和朋友表示由衷的谢意! 衷心感谢在百忙之中评阅论文和参加答辩的各位专家、教授。

32

中北大学毕业论文

参考文献

[1] 谢维成,杨加国.单片机原理与应用及C51程序设计.北京:清华大学出版社,2006 [2] 蔡菲娜.单片微型计算机原理和应用.杭州:杭州大学出版社,1995 [3] 李建忠.单片机原理及应用.西安:西安电子科技大学出版社,2002

[4] 张齐等.单片机应用系统设计技术----基于C语言编程.北京:电子工业出版社,2004 [5] 吴延海.微型计算机接口技术.重庆:重庆大学出版社,1997 [6] 李丽霞.单片机在超声波测距中的应用[J].电子技术,2002

[7] 姜道连,宁延一,袁世良.用AT89C2051设计超声波测距仪[J].国外电子元器件,2000 [8] 张鹏,张有志.一种新型超生测距系统[J].山东:山东大学学报,2003,33(1)

[9] 李学海.PIC单片机实用教程-基础篇(第1版)[M].北京航天航空大学出版社.北京:2002年2月

[10] 贾伯年. 传感器技术. 南京: 东南大学出版社,2000

[11] 陈大新,胡学同,周杏鹏.利用FPGA改进超声波测距模块设计[J].传感器技术,2005,24(2): 57~59

[12] 阎石. 数字电子技术基础. 北京: 高等教育出版社, 1998

[13] 楼然苗. 51系列单片机设计实例. 北京: 北京航空航天大学出版社,1999 [14] 谭浩强.C程序设计(第三版).北京:清华大学出版社, 2005

33

中北大学毕业论文

附录1

系统原理图

系统PCB板图

34

中北大学毕业论文

附录2

源程序

#include #include #include

#define uchar unsigned char #define uint unsigned int

uchar code dispBUF[33]={%uchar numcode[10]={'0','1','2','3','4','5','6','7','8','9'}; uint num[29]={0};

uchar jsh,jsl; //计数器的高低位 uchar count=0; //10秒计次数 uint distance; //距离 uint temp; //温度变量

uchar bdata flag; //DS18B20存在标准 sbit RS=P2^0; //LCD RS sbit RW=P2^1; //LCD RW sbit E =P2^2; //LCD E

sbit DQ=P2^7; //DS18B20数字端口 sbit Busy = P0^7; //LCD 忙 void Delay(uint time); void delay1ms(uint ms); void delay();

void delay15(uchar us); void BUMA(void);

void B20_WDAT(uchar dat); uchar B20_RDAT(void);

void Init_18B20(void); //初始化18B20 void Write_Comm(uchar); //写入LCD命令 void Write_Data(uchar); //写入LCD数据 void Init_LCD(void);

sbit sta_flag =flag^0; //10MS到标准位,flag即通用标志位,当sta_flag=1时,表示到了10ms

sbit fuhao =flag^1; //温度的符号位

35