




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、机电信息工程学院机电信息工程学院 单片机系统课程设计报告单片机系统课程设计报告 完成日期:完成日期:2010 年年 5 月月 28 日日 系:电子工程系 专 业:通信工程 班 级:071 班 设计题目:超声波测距 学生姓名: 指导教师: 目目 录录 一、设计任务和性能指标 .2 1.1 设计任务.2 1.2 性能指标.2 二、设计方案 .3 三、系统硬件设计 .4 3.1 单片机最小系统.4 3.2 超声波发射电路.4 3.3 超声波检测接收电路.5 3.4.温度补偿电路.6 3.5 显示电路.7 四.系统软件设计 .8 4.1 主程序设计.8 4.2 温度补偿子程序.8 五.调试及性能分析
2、.10 5.1 调试步骤.10 5.2 性能分析.10 六.心得体会 .11 参考文献 .12 附录 1 系统硬件电路图 .13 附录 2 程序清单 .14 一、设计任务和性能指标一、设计任务和性能指标 1.11.1 设计任务设计任务 利用单片机及外围接口电路(键盘接口和显示接口电路)设计制作一个含有温度补偿的 超声波测距仪器,用 LED 把环境温度和测距仪距被测物的距离显示出来。 要求用 AD6.0 画出系统的电路原理图,印刷电路板,绘出程序流程图,并给出程序 清单。 1.21.2 性能指标性能指标 1.距离显示:用三位 LED 数码管进行显示(单位是 CM) 。 2.环境温度:用三位数码管
3、进行显示温度(绝对温度) 。 3.测距范围:5CM 到 300CM 之间。 4.键位:复位键 、便携电源开关、USB 供电开关,温度显示距离显示 二、设计方案二、设计方案 按照系统设计的功能的要求,初步确定设计系统由单片机主控模块、电源模块、显示 模块、键扫描模块、超声波发射模块,超声波接收模块,温度补偿模块共七个模块组成。 主控芯片使用51系列STC89C52单片机,该单片机工作性能稳定,同时也是在单片机课 程设计中经常使用到的控制芯片。本设计在接受模块采用了由索尼公司生产的CX2016A红外 接收芯片来实现超声波的接收。CX2016A是一款红外线检波接收的专用芯片,常用于电视机 红外遥控接
4、收器。考虑到红外遥控常用的载波频率38KHz与测距超声波频率40KHz较为接近, 可以利用它作为超声波检测电路。实验证明其具有很高的灵敏度和较强的抗干扰能力。同 时通过改变部分参数来改变接受电路的灵敏度和抗干扰能力,所以我们采用该芯片作为接 收模 3.4.3.4.温度补偿电路温度补偿电路 温度传感器使用了DSl8B20数字温度计提供可选择的12位(二进制)温度读数来指示周围 环境的温度信息。经过单线接口DQ与单片机进行数据交互。从主机CPU到DSl8B20仅需一条 数据接线(和地线)。DSl8B20的电源可以由数据线本身提供而不需要接外部电源。由于每一 个DSl8B20在出厂时已经给定了唯一的
5、序号因此任意多个DSl8B20可以存放在同一条单线总 线上实现多点温度测量。温度传感器DSl8B20的测温范围从-55摄 氏度到+125摄氏度增量 值为0.5度可在l s(典型值)内把温度变换成数字量,因此采用DS18B20实现温度补偿电路的 设计。 图 3-3 超声波接收电路原理图 3.53.5 显示电路显示电路 显示电路主要由74ls273芯片驱动,用PNPC8550三级管进行位选,七段共阳极数码管 显示,硬件电路图如图3-5所示: 图 3-4 温度补偿电路原理图 图 3-5 显示电路原理图 四四. .系统软件设计系统软件设计 4.14.1 主程序设计主程序设计 主程序中包括温度补偿子程序
6、,计算子程序,显示子程序 ,如图 4-1 所示: 在主程序设计中,我们采用了汇编编程。首先进行系统初始化。其次利用循环产生4个 40KHZ的方波,由输出口进行输出,并开始计时。第三读取外界环境的温度,由该温度确定 环境中的超声波传输速度。第四等待中断,若超声波被接收探头捕捉到,那么通过中断可 测得超声波在环境中的传播时长。第五进行计算,求得测距仪到被测物的距离。第六进行 距离显示。 图 4-1 程序流程图 图 4-1 主程序流程图 4.24.2 温度补偿子程序温度补偿子程序 DS18B20 正常工作需要严格的工作时序,操作起来很复杂,图 4-2 给出的是 DS18B20 的时序图,其控制程序如
7、下: TEMP: SETB DQ NOP CLR DQ MOV R0,#0FBH TSR1: DJNZ R0,TSR1 SETB DQ MOV R0,#25H ; TSR2: JNB DQ TSR3 DJNZ R0,TSR2 ; TSR3: SETB FLAG1 CLR P2.0 AJMP TSR5 TSR4: CLR FLAG1 LJMP TSR7 TSR5: MOV R0,#06BH TSR6: DJNZ R0,TSR6 TSR7:SETB DQ RET 图 4-2 DS18B20 时序图 *读转换后的温度值* GET_TEMPER: SETB DQ LCALL TEMP JB FLAG1
8、,TSS2 RET TSS2:MOVA,#0CCH LCALL WRITE_18B20 MOVA,#44H LCALL WRITE_18B20 LCALL TEMP MOV A,#0CCH LCALL WRITE_18B20 MOV A,#0BEH ; LCALL WRITE_18B20 LCALL READ2_18B20 ; RET *写 ds18b20 汇编程序* WRITE_18B20: MOV R2,#8 CLR C WR1:CLR DQ MOV R3,#6 DJNZ R3,$ RRC A MOV DQ,C MOV R3,#23 DJNZ R3,$ SETB DQ NOP DJNZ R
9、2,WR1 SETB DQ RET ; *读 18B20 程序,读出两个字节的温度 * READ2_18B20: MOV R4,#2 ; MOV R1,#29H RE00: MOV R2,#8 RE01: CLR C SETB C NOP NOP CLR DQ NOP NOP NOP SETB DQ MOV R3,#7 DJNZ R3,$ MOV C,DQ MOV R3,#23 DJNZ R3,$ RRC A DJNZ R2,RE01 MOV R1,A DEC R1 DJNZ R4,RE00 RET *读出的温度进行数据转换* CHANGE: MOV A,29H ; MOVC,28H.0 RR
10、C A MOV C,28H.1 RRC A MOV C,28H.2 RRC A MOV C,28H.3 RRC A MOV 29H,A 五五. .调试及性能分析调试及性能分析 5.15.1 调试步骤调试步骤 我们的步骤是先焊接各个模块,焊接完每个模块以后,再进行模块的单独测试,以确 保在整个系统焊接完能正常的工作,首先焊接的是电源模块,其中包括USB供电和电池供电 两种方式,电源模块焊接完以后,进行电源模块的测试,当插上USB以后电源指示灯并没有 亮,说明电源模块有问题,后来发现稳压芯片发烫,得出一定是电源和地短了,接下来就 开始检查USB的地和电源是不是接反了,然后开始检查PCB和电路图,发
11、现确实是封装错了, USB解决以后测试,发现电源指示灯还是没有亮,不过7805还是发热,经检查知道,7805的 封装也错了,经改装电源模块可以正常工作了,接下来是单片机最小系统的测试,焊接完 以后发现系统没有问题,程序可以正常下载,然后是超声波发送模块的焊接,焊接完以后, 编写一个专门的发射超声波的程序,然后用示波器测试通过,在测试显示程序的时候数码 管不能正常工作,不亮,后来发现是驱动芯片74LS273的CLK没有和单片机的控制端连接上, 不能将数据锁存到数码管中,后来用跳线连接上了。接下来是软件的调试过程,在软件的 调试过程中,遇到了很多的问题 ,每个问题也解决了。经过3,4天的调试终于将
12、程序调试 通过了。 5.25.2 性能分析性能分析 虽然结果和预想的有很大的差距,但总体来说已经基本上达到了要求,理想上超声 波测距能达到5到7米左右,而我们所能实现的最大距离只有3米,造成这种原因我想有以下 几点: 1.由于我们采用的是11.0592MHZ的晶振,理论上是按照12MHZ的晶振计算的,所以对系 统造成了一定的误差。 2.由于温度传感器DS18B20距离单片机较近,所采集到的温度严重受到单片机的影响, 造成系统误差。 3.单片机接收端其中有个电阻是4.7欧姆的,由于种种原因没有找到4.7欧姆的,就找 了个5.5欧姆的代替,造成系统误差。 六六. .心得体会心得体会 俗话说“好的开
13、始是成功的一半” 。通过这次实习,我们学到了很多东西。在进行课程 设计时,我们应该做到以下三点:首先,我认为最重要的就是认真的研究老师给的题目。 其次,在老师讲解的基础上认真研究硬件电路的设计,和软件流程的设计。最后,重点实 现软硬结合的综合调试。 这次的实习算起来一共进行了三周,在这三周的时间里我们进行了硬件电路图设计, PCB板的设计,以及软件的编程实现,软硬件的综合调试。最终一个完整的课程设计成果出 来了,很高兴它能按着设计的思想与要求运作起来。 当然,这其中也有很多问题,第一、 不够细心。比如在PCB制作过程中没有建立网络报表导致了部分连线没有倒入PCB板中,还 有部分封装出现了错误。
14、第二,实践环节上,这次课设是对我所学的理论课程的一次检验, 对于这次单片机综合课程实习,使我们的动手能力得到提升,同时纠正我们对“系统”这 一概念以往的错误理解。 就实现功能来说,设计结果能够符合题意,成功完成了此次实习要求,我们不只在乎 这一结果,更加在乎的,是这个过程。这个过程中,我们花费了大量的时间和精力,更重 要的是,我们在学会创新的基础上,同时还懂得合作精神的重要性,学会了与他人合作。 在已度过的大学时间里,我们大多数接触的是理论课。我们在课堂上掌握的仅仅是专业课 的理论知识,如何去锻炼我们的实践能力?如何把我们所学的专业基础课理论知识运用到 实践中去呢?我想做类似实习就为我们提供了
15、良好的实践平台。 同时这次实习给我们带来前所未有的的启发: 首先,查阅资料的必要性。在做本次实习的过程中,我感触最深的当属查阅大量的设 计资料了。为了让自己的设计更加完善,查阅这方面的设计资料是十分必要的,同时也是 必不可少的。我们是在做单片机实习,但我们不是艺术家,他们可以抛开实际尽情在幻想 的世界里翱翔,而我们一切都要有据可依,有理可寻,不切实际的构想永远只能是构想, 永远无法升级为设计,我们能做的就是理论结合实际。 其次,在这次课程设计中,我们运用到了以前所学的专业课知识,如:模拟和数字电 路知识等。虽然过去从未独立应用过它们,但在学习的过程中带着问题去学我发现效率很 高,这是我做这次课
16、程设计的又一收获。 再次,在实习之前,我们要对所用单片机的内部结构有一个系统的了解,知道该单片 机内有哪些资源;要有一个清晰的思路和一个完整的的软件流程图;在设计程序时,不能 妄想一次就将整个程序设计好,反复修改、不断改进是程序设计的必经之路;要养成注释 程序的好习惯,一个程序的完美与否不仅仅是实现功能,而应该让人一看就能明白你的思 路,这样也为资料的保存和交流提供了方便;在实习过程中遇到问题是很正常的,但我们 应该将每次遇到的问题记录下来,并分析清楚,以免下次再碰到同样的问题。但是从中学 到的知识会让我受益终身。发现、提出、分析、解决问题和实践能力提高都会受益于我在 以后的学习、工作和生活中
17、 最后,我们在这次实习中我们使用了分模块焊接,分模块测试的方法进行硬件电路的 焊接和测试,这是我们最宝贵的收获,这样做可以避免走很多弯路。使得调试也条理分明。 总体上说,这次实习中收获很多,感触也很多。 参考文献参考文献 1 徐维祥、刘旭敏. 单片微型机原理及应用. 大连:大连理工大学出版社,1996 2 李光飞、楼然苗、胡佳文、谢象佐. 单片机课程设计与实例指导. 北京: 北京航空航 天大学出版社,2004 3 余永权. 89系列FLASH单片机原理及应用. 北京:电子工业出版社,2002 4 李群芳,黄建. 单片机微型计算机与接口技术. 北京:电子工业出版社,2001 5 楼然苗、李光飞.
18、 51系列单片机设计实例. 北京:北京航空航天大学出版社,2003 6 王守中 51单片机开发入门与典型实例. 北京:人民邮电出版社,2009 附录附录 1 1 程序清单程序清单 VOUT EQU P1.0 TEMP1 EQU 36H TEP1 EQU 37H DQ EQU P1.7 FLAG1 EQU 38H ORG 0000H JMP START ORG 0003H JMP PINT0 ;*主程序* START:MOV P3,0FFH MOV P0,0FFH MOV P1,0FFH MOV P2,0FFH MOV TMOD,#01H MOV TH0,#00H MOV TL0,#00H CL
19、R IE0 SETB PX0 SETB EA SETB EX0 CLR IT0 MOV R4,#4 SETB TR0 k: CPL P1.0 NOP NOP NOP NOP NOP NOP NOP NOP NOP DJNZ R4,K JNB IE0,$ LCALL TEMP LCALL GET_TEMPER LCALL CHANGE LCALL WORK LCALL DISPLAY1 LJMP START PINT0:CLR TR0 CLR EX0 MOV 30H,TL0 MOV 31H,TH0 RETI TEMP: SETB DQ NOP CLR DQ MOV R0,#0FBH ;给延 时程
20、序赋初值 TSR1: DJNZ R0,TSR1 ; 延时 SETB DQ MOV R0,#25H ;给延 时程序赋初值 TSR2: JNB DQ ,TSR3 ; S18B20 是否存在,存在就跳转到 TSR3 DJNZ R0,TSR2 ;不 存在等待 TSR3: SETB FLAG1 ;置 标志位,表明 DS18B20 存在; CLR P2.0 ;二极管 指示 AJMP TSR5 TSR4: CLR FLAG1 LJMP TSR7 TSR5: MOV R0,#06BH TSR6: DJNZ R0,TSR6 ;延时 TSR7:SETB DQ ;表 明不存在 RET *读转换后的温度值* GET_
21、TEMPER: SETB DQ LCALL TEMP JB FLAG1,TSS2 RET ;若 不存在则返回 TSS2: MOV A,#0CCH ;跳 过 ROM LCALL WRITE_18B20 MOV A,#44H ;发 出温度转换命令 LCALL WRITE_18B20 LCALL TEMP MOV A,#0CCH ;跳 过 ROM LCALL WRITE_18B20 MOV A,#0BEH ; 发出读温度换命令 LCALL WRITE_18B20 LCALL READ2_18B20 ;读两个字节的温度 RET ; *写 ds18b20 汇编程序* WRITE_18B20: MOV R
22、2,#8 CLR C WR1:CLR DQ MOV R3,#6 DJNZ R3,$ RRC A MOV DQ,C MOV R3,#23 DJNZ R3,$ SETB DQ NOP DJNZ R2,WR1 SETB DQ RET ; *读 18B20 程序,读出两个字节的温度 * READ2_18B20: MOV R4,#2 ;低位存在 29 H,高位存在 28H MOV R1,#29H RE00: MOV R2,#8 RE01: CLR C SETB C NOP NOP CLR DQ NOP NOP NOP SETB DQ MOV R3,#7 DJNZ R3,$ MOV C,DQ MOV R3
23、,#23 DJNZ R3,$ RRC A DJNZ R2,RE01 MOV R1,A DEC R1 DJNZ R4,RE00 RET ; *读出的温度进行数据转换* CHANGE: MOV A,29H ; MOV C,28H.0 ; 将 28H 中的最低位移入 C RRC A MOV C,28H.1 RRC A MOV C,28H.2 RRC A MOV C,28H.3 RRC A MOV 29H,A LCALL CONVERSE RET ;* *DISPLAY* CONVERSE: MOV A,29H;将 29H 中的 十六进制数转换成 10 进制 MOV DPTR,#TABLE MOVC
24、A,A+DPTR MOV TEMP1,A TABLE: DB 165D,165D,165D,166D,166D,166D,167D,16 7D,167D,167D DB 168D,168D,168D,169D,169D,169D,170D,17 0D,170D,171D DB 171D,171D,172D,172D,172D,173D,173D,17 3D,174D,174D DB 174D,174D,175D,175D,175D RET ;* *计算子程序* WORK: ; MOV PSW, #18h ;选择 3 区 R 系列寄存器 MOV R3, 31H MOV R2, 30H MOV R
25、1, #00D MOV R0, TEMP1 LCALL MUL2BY2 MOV R3, #27H MOV R2, #10H LCALL DIV4BY2 LCALL HBCD RET *两字节无符号数乘法程序* ; R7R6R5R4 = R3R2 * R1R0 速度 X 时 间/2 MUL2BY2: CLR A MOV R7, A MOV R6, A MOV R5, A MOV R4, A MOV 46H, #10H MULLOOP1: CLR C MOV A, R4 RLC A MOV R4, A MOV A, R5 RLC A MOV R5, A MOV A, R6 RLC A MOV R6
26、, A MOV A, R7 RLC A MOV R7, A MOV A, R0 RLC A MOV R0, A MOV A, R1 RLC A MOV R1, A JNC MULLOOP2 MOV A, R4 ADD A, R2 MOV R4, A MOV A, R5 ADDC A, R3 MOV R5, A MOV A, R6 ADDC A, #00H MOV R6, A MOV A, R7 ADDC A, #00H MOV R7, A MULLOOP2: DJNZ 46H, MULLOOP1 RET * 四字节/两字节无符号数除法程序 * ;R7R6R5R4/R3R2=R7R6R5R4(商
27、). .R1R0(余数)/10000 DIV4BY2: MOV 46H, #20H MOV R0, #00H MOV R1, #00H DIVLOOP1: MOV A, R4 RLC A MOV R4, A MOV A, R5 RLC A MOV R5, A MOV A, R6 RLC A MOV R6, A MOV A, R7 RLC A MOV R7, A MOV A, R0 RLC A MOV R0, A MOV A, R1 RLC A MOV R1, A CLR C MOV A, R0 SUBB A, R2 MOV B, A MOV A, R1 SUBB A, R3 JC DIVLOOP2 MOV R0, B MOV R1, A DIVLOOP2: CPL C DJNZ 46H, DIVLOOP1 MOV A, R4 RLC A MOV R4, A MOV A, R5 RLC A MOV R5, A MOV A, R6 RLC A MOV R6, A MOV A, R7 RLC A MOV
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 37605-2025耐蚀合金焊管
- 2025吉林大学招聘教师5人(1号)考前自测高频考点模拟试题及答案详解(夺冠)
- 2025福建三明清流县金星园建设发展有限公司招聘消防员2人模拟试卷有答案详解
- 2025昆明市禄劝县人民法院司法协警招录(2人)模拟试卷附答案详解
- 2025辽宁沈阳水务集团有限公司“智汇水务”招聘考前自测高频考点模拟试题及完整答案详解1套
- 2025江西抚州市崇仁县县属国有企业招聘员工有关事项模拟试卷及答案详解(名校卷)
- 2025湖北武汉大学中南医院咸宁医院咸宁市第一人民医院招聘15人考前自测高频考点模拟试题及答案详解(各地真题)
- 2025昆明市盘龙区汇承中学招聘教师(12人)考前自测高频考点模拟试题附答案详解(突破训练)
- 2025年合肥经济学院人才招聘72人模拟试卷及参考答案详解
- 2025福建新华发行(集团)有限责任公司漳州辖区分公司招聘模拟试卷及参考答案详解
- 10.5带电粒子在电场中的运动(第1课时加速)课件-高二上学期物理人教版
- 2025至2030中国法律服务行业发展趋势分析与未来投资战略咨询研究报告
- 2025至2030中国居住物业行业发展分析及发展趋势分析与未来投资战略咨询研究报告
- 采购员考试题及答案
- 2024年新课标全国ⅰ卷英语高考真题文档版(含答案)
- 糖尿病酮症酸中毒护理疑难病历讨论
- SF6设备带压封堵技术规范2023
- 大数据与人工智能在冶金产业的应用-洞察阐释
- 三年级信息科技第28课《初识人工智能》教学设计、学习任务单及课后习题
- 监理工程师借调合同协议书范本三方版5篇
- 培养“最好的我”新时代品质少年-学校课程规划与实施方案
评论
0/150
提交评论