35 页 桂林电子科技大学毕业设计(论文)报告 第
谢 词
通过本次毕业设计,我意识到要做好一个完整的作品不容易!要想做好一个产品,不仅仅只是考虑它的效果,能实现多少功能,我们还要认真考虑一个产品的成本、性能的好坏、适用范围、精度等。在做毕设的过程中我学会了很多知识,如在硬件布置方面,晶振离单片机越近越好,其两个电容离晶振越近越好,这样就尽可能减小系统误差;画PCB上,避免在PCB边缘安排重要的信号线,如时钟和复位信号等,经过本次设计的PCB,我能熟练地使用Altium Designer这个软件来画原理图和PCB;在编程方面,我原来只是有汇编的基础,但由于本次设计,我经过到图书馆借阅相关书籍自学单片机C51语言编程,现在我的C语言水平有了很大的提高。
其实,在本次毕设过程中我学会最重要的是一种心态,一种做任何事都要耐心、执着专研的精神。当我在程序编写过程中遇到问题时,如超声波发射接收模块的发射程序有所困难时,我认真上网查找资料,了解其工作原理,最后一步一步调试程序知道成功;最初使用Altium Designer软件画PCB图和原理图时,我对这个软件不是很熟悉,最后通过同学的指导,我掌握了使用这个软件的技巧,并学会画了元件封装库,自从学会了这个技能之后,我就再也不用担心画PCB时没有合适的封装库了,之后我还帮助了很多同学解决这方面的困难。在本次毕设中,最让我头痛的其实是DS18B20的程序编写,由于时序要求,其延时时间要求很高,尽管我专研了一个星期多还是没能把它的温度成功显示在数码管上。
我非常荣幸能有这样的机会进行这样的设计,每一次的学习都是进步,通过困难,然后学会去解决困难,让我进步很快。无论是通过网上查阅资料还是在同学的帮助指导下,我的进步都是飞跃的。最重要的是,在此次毕设中李震老师对我的悉心教导,在他的指导下,我的理论知识和实践动手能力都有很大的提高,非常感谢老师对我的帮助,耐心指导我的论文的修改,在此我要向老师表示真诚的感谢。
最后让我再次向在这次毕业设计中帮助过我的人,真诚的说声:谢谢!
36 页 桂林电子科技大学毕业设计(论文)报告 第
参考文献
[1] 赵建领,催昭霞.精通51单片机开发技术与应用实例.北京.电子工业出版社,2012:591~596. [2] 王红云,姚志敏,王竹林等编著.超声波测距系统设计.仪表技术,2010,11:47~49. [3] 项琦明.具有强代换功能的红外遥控接收电路CX20106A.电子世间,1994.(01):7~8. [4] 冯德虎. 基于超声波的高精度测距系统的研究[J].陕西科技大学学报, 2007,25 (04):111~113. [5] 林伟,梁家宁,李才安. 便携式多功能超声波测距仪的设计与实现[J].电子测量技术,2008,
31(01):91~93.
[6] 王安敏,张凯. 基于AT89C52单片机的超声波测距系统[J]. 仪表技术与传感器,2006,06:
45~48.
[7] 戴曰章,吴志勇. 基于AT89C51单片机的超声波测距系统设计[J]. 计量与测试技术,2005,
32(02):17~19.
[8] 彭翠云,赵广耀,戎海龙. 汽车倒车系统中超声波测距模块的设计[J].压电与声光, 2008,
32(02):251~254.
[9] 邹晓娥,李良仁. 基于单片机的超声波测距系统设计[J]. 九江职业技术学院学报, 2006, 03:
25~26.
[10] 柴政,凌云.基于单片机的超声波测距设计与研究.科技信息(科学·教研),2007,26:193~194. [11] 邓方华,邹毅,高飞燕. 基于超声波测距的交互电子白板系统设计[J].仪表技术,
2010,2:46~48.
[12] Tsutomu Tanzawa,Noriaki Kiyohiro,Shinji Kotani et al:\
Mobile Robots.\.'Human Robot Interaction and Cooperative Robots',Proceedings.1995 IEEE/RSJ International Conference on (Volume:3 ).
[13] 郑锋,王巧芝,程丽平等.51单片机典型应用开发范例大全.北京.中国铁道出版
社.2011:336~340.
37 页 桂林电子科技大学毕业设计(论文)报告 第
附 录1 电路原理图及PCB图
Stc89c51超声波测距电路原理图
Stc89c51超声波测距系统PCB图
38 页 桂林电子科技大学毕业设计(论文)报告 第
+5V电源PCB
39 页 桂林电子科技大学毕业设计(论文)报告 第
附 录2 程序清单
1.距离显示程序
#include
#include
#define uchar unsigned char #define uint unsigned int #define ulong unsigned long #define jump_ROM 0xCC #define start 0x44 #define read_EEROM 0xBE
sbit DQ = P1^1; //DS18B20数据端 sbit Trig = P1^0; //产生脉冲引脚 sbit Echo = P3^2; //回波引脚 sbit led1=P1^2; sbit led2=P1^3; sbit fmq=P1^4; sbit k1=P3^5; sbit k2=P3^6; sbit k3=P3^7; uint time=0;
bit flag ; //超声波接收成功标志位 unsigned char const ledcode[]
={ 0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xBF,0xff/*-*/}; //数码管显示0~9,“-”以及全灭 uchar outcomeH,outcomeL,i; uint ge,shi,bai; ulong distance; float v;
void delay_20us() { uchar bt ;
for(bt=0;bt<30;bt++); }
void delay_1(int n) { int i;
for(i=0;i INT0_() interrupt 0 // 外部中断是0号 { outcomeH =TH0; //取出定时器的值 outcomeL =TL0; //取出定时器的值 flag=1; //至成功测量的标志