本科生毕业设计(论文)
摘 要
超声波液位测量是一种非接触式的测量方式,它是利用超声波在同种介质中传播速度相对恒定以及碰到障碍物能反射的原理研制而成的。与其它方法相比(如电磁的或光学的方法),它不受光线、被测对象颜色的影响,对于被测物处于黑暗、有灰尘、烟雾、电磁干扰、有毒等恶劣的环境下有一定的适应能力。因此,研究超声波在高精度测距系统中的应用具有重要的现实意义。
本设计基于单片机的超声波液位测量系统主要由硬件与软件两部分组成,硬件是基于ATC51芯片为核心的超声波液位测量,采用ATC51单片机进行控制及数据处理,给出了超声波发射和接收电路,通过盲区的消除以及环境温度的采样,提高了测距的精确度。利用超声波传输中距离与时间的关系,设计出了能精确测量两点间距离的超声波液位检测系统。此系统具有易控制、工作可靠、测量精度高的优点,可实时检测液位。 并有超声波处理模块CX20106A、CD4069组成的超声波发射电路、超声波接收电路、单片机复位电路、LED显示电路、报警电路等。软件部分由主程序、预置子程序、发射子程序、接收子程序、显示子程序组成。各探头的信号经单片机综合分析处理。
最后通过实物的调试,各项参数及功能符合设计要求,能达到预期的目的。 关键词: 单片机;超声波;温度控制;高精度测距
I
Abstract
The ultrasonic liquid level measurement is a non-contact measurement method, realized by the principle of ultrasonic wave in the same medium with relatively constant propagation velocity and being reflected when it approaches an obstacle. Compared with other methods (such as electromagnetic or optical method), it has a certain of adaptability when objects to be measured are under such harsh environment as darkness, dust, smoke, electromagnetic interference, toxicity, unaffected by the light or the color of the object to be measured. Therefore, it bears important practical significance to conduct research on the application of ultrasonic wave in high precision ranging system.
In this project, SCM-based ultrasonic liquid level measuring system is mainly composed of two components, namely the hardware and the software. The hardware is ultrasonic liquid level measurement based on ATC51 chip as the core; it adopts ATC51 single chip microcomputer for control and data processing, provides the ultrasonic transmitting and receiving circuit, and improves ranging accuracy through elimination of blind spot and sampling of ambient temperature,. By taking advantage of the relationship between distance and time in ultrasonic transmission, an ultrasonic liquid level detecting system which can accurately measure the distance between two points is designed. This system has these advantages like easy control, reliable operation, high measurement precision, and real-time detection of liquid level. And it has ultrasonic transmitting and receiving circuit, reset circuits of SCM, LED display circuit, alarm circuit composed of ultrasonic processing module CX20106A and CD4069. The software part consists of main program, preset subroutine, transmitting and receiving subroutine, and display subroutine. The probe signal is processed by SCM through comprehensive analysis.
Finally through debugging of real objects, various parameters and functions can meet the project requirements to achieve the desired objective.
Key words: single chip microcomputer (SCM); ultrasonic wave; temperature control; high precision ranging
毕业设计(论文)原创性声明和使用授权说明
原创性声明
本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得 及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。
作 者 签 名: 日 期: 指导教师签名: 日 期:
使用授权说明
本人完全了解 大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。
作者签名: 日 期:
学位论文原创性声明
本人郑重声明:所呈交的论文是本人在导师的指导下进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。
作者签名: 日期: 年 月 日
学位论文版权使用授权书
本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权 大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。
涉密论文按学校规定处理。
作者签名: 日期: 年 月 日
导师签名: 日期: 年 月 日
指导教师评阅书
指导教师评价: 一、撰写(设计)过程 1、学生在论文(设计)过程中的治学态度、工作精神 □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、学生掌握专业知识、技能的扎实程度 □ 优 □ 良 □ 中 □ 及格 □ 不及格 3、学生综合运用所学知识和专业技能分析和解决问题的能力 □ 优 □ 良 □ 中 □ 及格 □ 不及格 4、研究方法的科学性;技术线路的可行性;设计方案的合理性 □ 优 □ 良 □ 中 □ 及格 □ 不及格 5、完成毕业论文(设计)期间的出勤情况 □ 优 □ 良 □ 中 □ 及格 □ 不及格 二、论文(设计)质量 1、论文(设计)的整体结构是否符合撰写规范? □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、是否完成指定的论文(设计)任务(包括装订及附件)? □ 优 □ 良 □ 中 □ 及格 □ 不及格 三、论文(设计)水平 1、论文(设计)的理论意义或对解决实际问题的指导意义 □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、论文的观念是否有新意?设计是否有创意? □ 优 □ 良 □ 中 □ 及格 □ 不及格 3、论文(设计说明书)所体现的整体水平 □ 优 □ 良 □ 中 □ 及格 □ 不及格 建议成绩:□ 优 □ 良 □ 中 □ 及格 □ 不及格 (在所选等级前的□内画“√”) 指导教师: (签名) 单位: (盖章) 年 月 日
评阅教师评阅书
评阅教师评价: 一、论文(设计)质量 1、论文(设计)的整体结构是否符合撰写规范? □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、是否完成指定的论文(设计)任务(包括装订及附件)? □ 优 □ 良 □ 中 □ 及格 □ 不及格 二、论文(设计)水平 1、论文(设计)的理论意义或对解决实际问题的指导意义 □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、论文的观念是否有新意?设计是否有创意? □ 优 □ 良 □ 中 □ 及格 □ 不及格 3、论文(设计说明书)所体现的整体水平 □ 优 □ 良 □ 中 □ 及格 □ 不及格 建议成绩:□ 优 □ 良 □ 中 □ 及格 □ 不及格 (在所选等级前的□内画“√”) 评阅教师: (签名) 单位: (盖章) 年 月 日 教研室(或答辩小组)及教学系意见
本科生毕业设计(论文)
教研室(或答辩小组)评价: 一、答辩过程 1、毕业论文(设计)的基本要点和见解的叙述情况 □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、对答辩问题的反应、理解、表达情况 □ 优 □ 良 □ 中 □ 及格 □ 不及格 3、学生答辩过程中的精神状态 □ 优 □ 良 □ 中 □ 及格 □ 不及格 二、论文(设计)质量 1、论文(设计)的整体结构是否符合撰写规范? □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、是否完成指定的论文(设计)任务(包括装订及附件)? □ 优 □ 良 □ 中 □ 及格 □ 不及格 三、论文(设计)水平 1、论文(设计)的理论意义或对解决实际问题的指导意义 □ 优 □ 良 □ 中 □ 及格 □ 不及格 2、论文的观念是否有新意?设计是否有创意? □ 优 □ 良 □ 中 □ 及格 □ 不及格 3、论文(设计说明书)所体现的整体水平 □ 优 □ 良 □ 中 □ 及格 □ 不及格 评定成绩:□ 优 □ 良 □ 中 □ 及格 □ 不及格 (在所选等级前的□内画“√”) 教研室主任(或答辩小组组长): (签名) 年 月 日 教学系意见: 系主任: (签名) 年 月 日
本科生毕业设计(论文)
目 录
第一章 绪 论 ....................................................... 1
1.1 课题研究的背景及意义 ....................................... 1 1.2 国内外发展的现状 ........................................... 3 1.3 液位计的类型 ............................................... 3 1.4 本文的主要工作 ............................................. 5 第2章 系统的总体方案设计 .......................................... 7
2.1 系统设计内容和功能 ......................................... 7 2.2 课题设计的任务和要求: ..................................... 7 2.3 系统方案选择 ............................................... 8 2.4 系统总体方案的设计 ......................................... 8 2.5 超声波和超声波传感器 ....................................... 9 2.6 超声波传感器的主要应用 .................................... 10 2.7 超声波传感器测距原理 ...................................... 10 2.8 超声波测距原理 ............................................ 12 2.9 超声波发生器选择 .......................................... 12 2.10 盲区处理 ................................................. 14 第3章 各单元硬件电路设计 ......................................... 16
3.1 单片机最小系统电路 ........................................ 16 3.2 温度补偿电路设计 .......................................... 18 3.3 超声波发射电路设计 ........................................ 19 3.4 超声波接收电路设计 ........................................ 20 3.5 显示电路设计 .............................................. 22 3.6 电源电路设计 .............................................. 22 3.7 LED显示系统设计 ........................................... 23 3.8 报警电路设计 .............................................. 24 第4章 系统软件的设计 ............................................. 26
4.1 超声波测距仪的算法设计 .................................... 26 4.2 主程序流程图 .............................................. 26 4.3 系统软件设计框图 .......................................... 29 4.4 单片机的C程序设计 ........................................ 31 4.5 系统的软硬件的调试 ........................................ 32
本科生毕业设计(论文)
4.6 调试分析 .................................................. 37
4.6.1 LED显示程序的调试 ................................... 37 4.6.2 温度测量程序的调试 .................................. 38
第5章 结论 ....................................................... 39 参考文献 .......................................................... 40 致谢 .............................................................. 42 附录Ⅰ ............................................................ 43 附录Ⅱ ............................................................ 52 附录Ⅲ ............................................................ 53
第1章
本科生毕业设计(论文)
第一章 绪 论 1.1 课题研究的背景及意义
目前,液位测量技术已经广泛的运用在工业部门和日常检测部门中。例如:液位测量技术在石油、化工、气象等部门的应用。在测量条件和环境来说,有的测量系统被运用在十分复杂的条件与环境中。例如:有的是高温高压,有的是低温或真空,有的需要防腐蚀、防辐射,有的从安装上提出苛刻的,有的从维护上提出严格的要求等。这些都大大的提高了对测量技术的要求。所以能实现测量的无接触与智能化是液位测量计现在的主要发展方向。
近年来,随着工业的发展,计算机、微电子、传感器等高新技术的应用和研究,液位仪表的研制得到了长足的发展,以适应越来越高的应用要求。
在现代工业生产中,常常需要测量容器中液体的液位。在一般的生产过程中,液位测量的目的主要是通过液位测量来确定容器里的原料、半成品或产品的数量,以保证生产过程各环节物料平衡以及为进行经济核算提供可靠的依据;另外还为了在连续生产的情况下,通过液位测量,了解液位是否在规定的范围内,从而维持正常生产、保证产品的产量和质量以及保证安全生产。液位的测量在工业生产过程中的作用已经相当重要。
随着各行业的快速发展,液位测量已应用到越来越多的领域,不仅用于各种容器、管道内液体液位的测量,还用于水渠、水库、江河、湖海水位的测量。这些领域使用传统的液位测量手段已经无法满足对其精确性的要求,所以超声波液位测量这种新的测量方向已经成为一种新的手段被广泛的应用。
在目前市场上,按测量液位的感应元件与被测液体是否接触,液位仪表可以分为接触型和非接触型两大类[3]。接触型液位测量主要有:人工检尺法、浮子测量装置、伺服式液位计、电容式液位计以及磁致伸缩液位计等。它们的共同点是测量的感应元件与被测液体接触,即都存在着与被测液体相接触的测量部件且多数带有可动部件。因此存在一定的磨损且容易被液体沾污或粘住,尤其是杆式结构装置,还需有较大的安装空间,不方便安装和检修。
非接触型液位测量主要有微波雷达液位计、射线液位计以及激光液位计等。顾名思义,这类测量仪表的共同特点是测量的感应元件与被测液体不接触。因此测量部件不受被测介质影响,也不影响被测介质,因而其适用范围较为广泛,可用于接触型测量仪表不能满足的特殊场合,如粘度高、腐蚀性强、污染性强、易结晶的介质。
超声波液位测量计就属于非接触型液位测量的一种,所以它也有不受被测介质影
1
本科生毕业设计(论文)
响,不影响被测介质,能适应粘度高、腐蚀性强、污染性强、易结晶、高温、高压、低温、低压、有辐射性、毒性、易挥发易爆等特殊介质的测量的特点,能适应的范围比其它的测量手段更广泛。随着科学的发展液位的检测方法也在变化,精度也有了更佳的提高。单片机技术和传感器技术的发展使液位测量方法得到了更进一步的发展。超声波在液位测量中的应用也越来越广,但是就目前的发展水平来说,超声波在测距系统中的应用还有一定的限度,因此研究超声波的液位检测是很有发展前景的。它在技术和产业领域具有广阔的发展空间。本次设计中,通过外界环境温度的检测提高了超声波测距的精度。通过延时避免了接收未经液面反射的超声波,其次利用温度传感器检测外界温度,采用当前温度下的超声波速度去计算,从而提高了距离计算的精度。
在未来,超声波的液位测量将有更大的用途,更大的应用范围。它不但可以帮助人们解决很多生活中的困难,还可以作为科学探测和研究的手段。特别是水位的测量,可以帮助确定水位的高度,以便于其他工作的顺利进行。
本设计中采用反射式的方式,超声波传感器发射超声波,遇到液面后超声波被反射回来,超声波接收探头接收超声波。其间通过单片机的控制,P1.0口输出控制信号从555振荡器输入到驱动电路驱动超声波发射电路,超声波发生电路产生40KHz的调制脉冲,经换能器转换为超声波信号向前方空间发射。经过液面反射后超声波接收探头将接收到的超声波送到单片机进行处理。单片机通过各个引脚来实现和各电路模块的接口连接。并通过软件的设计来控制整个检测过程。一步一步,从发射到接收超声波,定时器的初始化,中断程序的编写,温度的采样,距离的计算,单片机都发挥了重要的最用。它是整个检测系统的内部核心。
这次对超声波液位检测的设计获得了具有很大的成果和意义,在这个科学技术是第一生产力的时代,应用科学技术去解决生活中和工作的困难变得具有更高的价值。在设计中,我加深了对超声波的认识,对它的原理掌握的更好了。目前超声波已广泛运用于诊断学、治疗学、工程学、生物学等领域。此外我认识到单片机在各方面都有很大的应用潜能,在自动控制领域它更是发挥了不可替代的作用。本设计利用超声波实现液位的测量,检测方便,易于实时控制,达到了工业的要求,因此具有实际的意义和广泛的应用前景。
2
本科生毕业设计(论文)
1.2 国内外发展的现状
随着电子技术的发展出现了微波雷达测距、激光测距及超声波测距。前2种方法由于技术难度大成本高一般仅用于军事工业而超声波测距则由于其技术难度相对较低且成本低廉适于民用推广。这项技术也可用于工业测量领域。由于超声波指向性强,能量消耗缓慢,在介质中传播的距离较远,因而超声波常常用于距离的测量,如测距仪和物位测量仪等都可以通过超声波来实现。利用超声波检测往往比较迅速、方便、计算简单、易于做到实时控制,并且在测量精度方面能达到工业实用的要求,因此在移动机器人的研制上也得到了广泛的应用。随着自动测量和微机技术的发展,超声波测距的理论已经成熟,超声波测距的应用也非常广泛。超声测距是一种非接触式的检测方式。与其它方法相比,如电磁的或光学的方法,它不受光芒、被测对象颜色等影响。对于被测物处于黑暗、有灰尘、烟雾、电磁干扰、有毒等恶劣的环境下有一定的适应能力。因此在液位测量、机单片机毕业论文械手控制、车辆自动导航、物体识别等方面有广泛应用。特殊是应用于空气测距,由于空气中波速较慢,其回波信号中包含的沿传播方向上的结构信息很轻易检测出来,具有很高的分辨力,因而其正确度也较其它方法为高;而且超声波传感器具有结构简单、体积小、信号处理可靠等特点。因此本设计也是利用超声波来测量距离。
1.3 液位计的类型
按测量液位的感应元件与被测液体是否接触,液位仪表可以分为接触型和非接触型两大类。
一、接触型液位仪表:
接触型液位仪表主要有:人工检尺法、浮子测量装置、伺服式液位计、电容式液位计以及磁致伸缩液位计。它们的共同特点是测量的感应元件与被测液体接触。
1.人工检尺法:计量员上到罐顶,自计量孔投放测深钢卷尺,然后取出尺子,观测液面浸湿尺子的刻度,此为人工检尺法。人工检尺法具有测量简单、直观、成本低等特点,但由于其是人工测量,故不适合在恶劣的情况下使用,另外需要较长的测量时间,难以实现在线实时测量,不仅如此,还容易造成人为的测量误差。
2.浮子测量装置:它是由浮子、传感器和二次仪表组成,是通过用浮子测量浮力的大小定量测量液位,将该装置固定在罐中,使浮子立于罐中处于相对静止状态,浮子在罐中所受浮力的大小等于液体的排出量。当浮力的大小发生变化时,变化值通过浮子传递给传感器,经过二次仪表显示出液位的数值。浮子式液位装置具有结构简单、价格便宜等优点,但是浮子会随着液面的波动而波动,从而造成读数误差。浮子测量装置的适用范围为非腐蚀液体的测量。
3
本科生毕业设计(论文)
3.伺服式液位计:伺服式液位计基于浮力平衡的原理,由微伺服电动机驱动体积较小的浮子,能精确地测出液位等参数。现代伺服液位计的测量精度己达到40m范围内小于士1 mm。但是,由于伺服式液位计仍属于机械测量装置,存在机械磨损,影响了测量的精度,因此需要定期维修和重新定标且安装困难。
4.电容式液位计:电容液位传感器是利用被测对象物质的导电率,将液位变化转换成电容变化来进行测量的一种液位计。与其他液位传感器相比,电容液位传感器具有灵敏性好、输出电压高、误差小、动态响应好、无自热现象、对恶劣环境的适用性强等优点。常见的电容传感器测量电路有变压器电桥式、运算放大器式及脉冲宽度式等。这类仪表适用于腐蚀性液体、沉淀性液体以及其它化工工艺液体液面的连续测量与位式测量,或单一液面的液位测量。
5.磁致伸缩液位计:磁致伸缩液位计采用磁致伸缩技术来测量大罐的油水界面和油气界面。通常情况下,磁致伸缩液位计安装有两个浮子,其中一个浮子的密度小一于油品的密度,另一个浮子的密度大于油品的密度而小于水的密度,它们分别用来检测油气界面和油水界面。磁致伸缩液位计安装容易,不需要定期维修和重新定标,工作寿命较长。其测量精度较高,测量的重复精度也较高,是比较理想的接触型液位计。但是磁致伸缩液位计与被测液体接触,仪器容易受到腐蚀,且液体的密度变化会带来测量误差。此外,浮子装置沿着波导管的护导管上下移动,容易被卡死,从而影响液位的止确测量。
二、非接触型液位仪表:
非接触型测量仪表主要包括超声波液位计、雷达液位计、射线液位计、激光液位计以及光纤液位计等。这类液位测量仪表的共同特点是测量的敏感元件与被测液体不接触,因此不受被测介质影响,也不影响被测介质,因而适用范围较为广泛,可用于接触式测量仪表不能满足的特殊场合,如粘度高、腐蚀性强、污染性强、易结晶的介质。
1.超声波液位计:超声波液位计是由微处理器控制的数字物位仪表。在测量中脉冲超声波由传感器(换能器)发出,声波经液体表面反射后被同一种传感器接收,转换成电信号。并由声波的发射和接收之间的时间来计算传感器到被测物体的距离。 由于采用非接触的测量,被测介质几乎不受,可广泛用于各种液体和固体物料高度的测量。目前,智能化的超声波液位计能够对接收信号做精确的处理和分析:可以将各种干扰信号过滤出来;识别多重回波;分析信号强度和环境温度等有关信息。这样即便在有外界干扰的情况下,也能够进行精确的测量。超声波液位计不仅能定点和连续测量,而且能方便地提供遥测和遥控所需的信号。同时,超声波液位计不存在可动部件,所以在安装和维护上相应比较方便。超声测位技术可适用于气体、液体或固体等多种测量介质,因而具有较大的适应性且价格较为便宜。新型气密结构、耐腐蚀的
4
本科生毕业设计(论文)
超声波传感器可测量高达15m的液位。
2.雷达液位计:在罐顶安装天线,天线发射的微波是频率波线性调制的连续波,当回波被天线接收到时,天线发射频率已经改变。根据回波与发射波的频率差可以计算出物料面的距离。FMCW方式测量线路较复杂,从而测量精确度较高,同时干扰回波也较易去除,一般用于较高端的测量方案,但是安装比较复杂且价格不菲。
3.射线液位计:核辐射放出的射线(如丫射线等)具有较强的穿透能力,且穿过不同厚度的介质有不同的衰减特性,核辐射式液位计正是利用这一原理来测量液位的。核辐射式液位计的核辐射源用点式或狭长型结构安装在油罐的外面,狭长型核辐射源检测元件也安装在油罐外面,可实现对液位动态变化的检测。除利用核辐射射线来测量之外,还可采用中子射线来测量液位。射线液位计安装非常方便,测量精度较高。因为它没有任何部件与被测物体直接接触,特别适用于传统测量仪表不能解决的测量问颗。
4.激光液位计:其测量原理类似于超声波液位计,只是采用光波代替了超声波。发射传感器发射出激光,照射到被测液面,在液面处发生反射,接收传感器接收反射光,将从发射至接收的时间换算成液位。激光的光束很窄,在液位计中通过光学系统转换成约20mm宽的光束,这样即使被测物面很粗糙,漫反射光也能被传感器接收。激光液位计非常适用于开口很狭窄的容器以及高温、高粘度的测量对象。而缺点是对液面的波动很敏感,大罐内的油蒸汽,水气等微粒对测量不利,且光学镜头必须定期保持清洁。
5.光纤液位计:光纤液位检测是近年来出现的一种新技术。根据光导纤维中光在不同介质中传输特性的改变对液位进行测量。这类检测仪表一般具有体积小、重量轻、无动作部件、安装方便等优点、大多可适用于任何液体液位高度的检测与控制,特别适用于易燃、易爆、腐蚀性液体的检测。这类检测仪表检测精度高但正处于发展阶段尚未成熟。
1.4 本文的主要工作
本文主要是针对类似油罐等封闭式液体的液位的测量,在考虑了各种液位测量方式后,根据前文所述,决定要超声波作为主要手段,采用脉冲回波测量法。此次设计采用反射波方式,超声波测距仪硬件电路的设计主要包括单片机系统及显示电路、超声波发射电路和超声波检测接收电路三部分。单片机采用ATC51或其兼容系列。采用12MHz高精度的晶振,以获得较稳定时钟频率,减小测量误差。单片机用P1.0端口输出超声波换能器所需的40kHz的方波信号,利用外中断0口监测超声波接收电路输出的返回信号。显示电路采用简单实用的LED数码管。
5
本科生毕业设计(论文)
超声波发射电路主要由反相器CD4069和超声波发射换能器T构成,单片机P1.0端口输出的40kHz的方波信号一路经一级反向器后送到超声波换能器的一个电极,另一路经两级反向器后送到超声波换能器的另一个电极,用这种推换形式将方波信号加到超声波换能器的两端,可以提高超声波的发射强度。输出端采两个反向器并联,用以提高驱动能力。上位电阻R2、R3一方面可以提高反相器CD4069输出高电平的驱动能力,另一方面可以增加超声波换能器的阻尼效果,缩短其自由震荡时间。压电式超声波换能器是利用压电晶体管的谐振来工作的。超声波换能器内部有两个压电晶片和一个换能板。当它的两极外加脉冲信号,其频率等于压电晶片的固有振荡频率时,压电晶片会发生共振,并带动共振板振动产生超声波,这时它就是一个超声波发生器;反之,如果两电极问未外加电压,当共振板接收到超声波时,将压迫压电晶片作振动,将机械能转换为电信号,这时它就成为超声波接收换能器。超声波发射换能器与接收换能器在结构上稍有不同,使用时应分清器件上的标志。
超声波检测接收电路主要是由集成电路CX20106A组成,它是一款红外线检波接收的专用芯片,常用于电视机红外遥控接收器。考虑到红外遥控常用的载波频率38kHz与测距的超声波频率40kHz较为接近,可以利用它制作超声波检测接收电路。实验证明用CX20106A接收超声波(无信号时输出高电平),具有很好的灵敏度和较强的抗干扰能力。适当更改电容C16的大小,可以改变接收电路的灵敏度和抗干扰能力。
超声波测距仪的软件设计主要有主程序、超声波发生程序、超声波接收中断程序及显示子程序组成。我们知道C语言程序有利于实现较复杂的算法,汇编语言程序则具有较高的效率且容易精细计算程序运行的时间,而超声波测距仪的程序有较复杂的计算(计算距离时),所以控制程序可采用C语言编程。超声波测距仪主程序利用外中断1检测返回超声波信号,一旦接收到返回超声波信号(即INT0引脚出现低电平),立即进入中断程序。进入中断后就立即关闭计时器T0停止计时,并将测距成功标志字赋值1。如果当计时器溢出时还未检测到超声波返回信号,则定时器T0溢出中断将外中断0关闭,并将测距成功标志字赋值2以表示此次测距不成功。
超声波测距的算法设计原理为超声波发生器T在某一时刻发出一个超声波信号,当这个超声波遇到被测物体后反射回来,就被超声波接收器R所接收到。这样只要计算出从发出超声波信号到接收到返回信号所用的时间,就可算出超声波发生器与反射物体的距离。在启动发射电路的同时启动单片机内部的定时器T0,利用定时器的计数功能记录超声波发射的时间和收到反射波的时间。当收到超声波反射波时,接收电路输出端产生一个负跳变,在INT0端产生一个中断请求信号,单片机响应外部中断请求,执行外部中断服务子程序,读取时间差,计算距离。
6
本科生毕业设计(论文)
第2章 系统的总体方案设计
2.1 系统设计内容和功能
本设计中采用反射式的方式,超声波传感器发射超声波,遇到液面后超声波被反射回来,超声波接收探头接收超声波。其间通过单片机的控制,I/O口输出控制信号从NE555振荡器输入到CD4069驱动电路驱动超声波发射电路,超声波发生电路产生40KHz的调制脉冲,经换能器转换为超声波信号向前方空间发射。经过液面反射后超声波接收探头将接收到的超声波送到单片机进行处理。输出由LED数码管显示,通过盲区的消除以及环境温度的采样,提高了测距的精确度。利用超声波传输中距离与时间的关系,采用ATC51单片机进行控制及数据处理,设计出了能精确测量两点间距离的超声波液位检测系统。利用所设计出的超声波液位检测系统,对液面进行了测试,采集当时的环境温度获得精确的速度,计算出液面距离。此系统具有易控制、工作可靠、测量精度高的优点,可实时检测液位。
设计具体内容: (1)ATC51主控单元电路 (2)超声波发射电路 (3)超声波接收电路 (4)温度补偿电路 (5)报警及显示电路
2.2 课题设计的任务和要求:
(1) 测量距离范围要求为≤9.99 m; (2) 精度要求1 cm; (3) 有温度补偿;
(4) 显示方式为数码管显示; (5) 具有较强的抗干扰能力。 (6) 盲区问题有一定的解决方法。
7
本科生毕业设计(论文)
2.3 系统方案选择
为使基于单片机的超声波液位测量控制系统具有较好的实用性,并且具有较高的性能/价格比,对该系统的硬件电路作了精心设计。该系统的硬件设计采用了模块化的设计方法。按实现的功能来分可分为以下几个部分。其中ATC51 单片机是整个电路的核心,它控制其他模块来完成各种复杂的操作。外围电路包括温度补偿电路、超声波发射及接收电路、报警及显示电路等等。
方案一:我们可以用NE555振荡产生40KH的方波信号,它是基于硬件的基础上,便于我们可以通过示波器观察到40KH的方波,具有直观且易于观察的特点,有利于电路的检测。
方案二:我们可以通过单片机产生40KH的脉冲信号,在通过CD4069驱动,将40KH的脉冲信号发射出去,由于是软件控制,准确度比较高。
经过比较我们发现,在发射电路中方案一的设计是比较经济实惠而且比较方便,但方案二中的软件设计使发射超声波时间比较容易控制,而且超声波的频率准确度比较高,本设计要求测量精度在1cm以内,在方案二中我们通过采用CX20106可以将信号进行放大和整形处理,在CX20106的5脚和7脚串联一个200K的电阻可以将频率稳定在40KH。因此在本次设计中,我们选用的是方案二,以提高测量结果的准确度,并且在整个系统中我们都会采用单片机做计算和显示。
2.4 系统总体方案的设计
本设计基于单片机的超声波液位测量系统主要由单片机、温度检测电路、超声波发射电路、超声波接收电路、LED显示电路、报警电路等组成。
本设计采用模块化设计思想,以单片机ATC51为核心,将其他模块有机的整合在一起,形成一个统一的系统,硬件系统的框图如图2.1所示。
8
本科生毕业设计(论文)
超声波接收 ATC51 单片机 LED显示 报警系统 超声波发送 555 电路 温度检测
图2.1 超声波液位测量系统框图
2.5 超声波和超声波传感器
科学家们将每秒钟振动的次数称为声音的频率,它的单位是赫兹。我们人类耳朵能听到的声波频率为20~20000赫兹。当声波的振动频率大于20000赫兹或小于20赫兹时,我们便听不见了。因此,我们把频率高于20000赫兹的声波称为―超声波‖。
超声波的两个主要参数: 频率:F≥20K/Hz; 功率密度:p=发射功率(W)/发射面积(cm2);通常p≥0.3w/cm2; 在液体中传播的超声波能对物体表面的污物进行清洗,其原理可用―空化‖现象来解释:超声波振动在液体中传播的音波压强达到一个大气压时,其功率密度为0.35w/cm2,这时超声波的音波压强峰值就可达到真空或负压,但实际上无负压存在,因此在液体中产生一个很大的压力,将液体分子拉裂成空洞—空化核。此空洞非常接近真空,它在超声波压强反向达到最大时破裂,由于破裂而产生的强烈冲击将物体表面的污物撞击下来。这种由无数细小的空化气泡破裂而产生的冲击波现象称为―空化‖现象。 太小的声强无法产生空化效应。 一 、超声波的特性
(1)超声波可在气体、液体、固体、固熔体等介质中有效传播。 (2)超声波可传递很强的能量。
(3)超声波会产生反射、干涉、叠加和共振现象。
(4)超声波在液体介质中传播时,可在界面上产生强烈的冲击和空化现象。 二 、超声波的特点
(1)超声波在传播时,方向性强,能量易于集中。
(2)超声波能在各种不同媒质中传播,且可传播足够远的距离。
(3) 超声波与传声媒质的相互作用适中,易于携带有关传声媒质状态的信息(诊
9
本科生毕业设计(论文)
断或对传声媒质产生效应)。
超声波是一种波动形式,它可以作为探测与负载信息的载体或媒介(如B超等用作诊断);超声波同时又是一种能量形式,当其强度超过一定值时,它就可以通过与传播超声波的媒质的相互作用,去影响,改变以致破坏后者的状态,性质及结构(用作治疗)。
2.6 超声波传感器的主要应用
超声波传感技术应用在生产实践的不同方面,而医学应用是其最主要的应用之一,下面以医学为例子说明超声波传感技术的应用。超声波在医学上的应用主要是诊断疾病,它已经成为了临床医学中不可缺少的诊断方法。超声波诊断的优点是:对受检者无痛苦、无损害、方法简便、显像清晰、诊断的准确率高等。因而推广容易,受到医务工作者和患者的欢迎。超声波诊断可以基于不同的医学原理,我们来看看其中有代表性的一种所谓的A型方法。这个方法是利用超声波的反射。当超声波在人体组织中传播遇到两层声阻抗不同的介质界面是,在该界面就产生反射回声。每遇到一个反射面时,回声在示波器的屏幕上显示出来,而两个界面的阻抗差值也决定了回声的振幅的高低。
在工业方面,超声波的典型应用是对金属的无损探伤和超声波测厚两种。过去,许多技术因为无法探测到物体组织内部而受到阻碍,超声波传感技术的出现改变了这种状况。当然更多的超声波传感器是固定地安装在不同的装置上,―悄无声息‖地探测人们所需要的信号。在未来的应用中,超声波将与信息技术、新材料技术结合起来,将出现更多的智能化、高灵敏度的超声波传感器。
2.7 超声波传感器测距原理
超声波传感器是利用超声波的特性研制而成的传感器。超声波是一种振动频率高于声波的机械波,由换能晶片在电压的激励下发生振动产生的,它具有频率高、波长短、绕射现象小,特别是方向性好、能够成为射线而定向传播等特点。超声波对液体、固体的穿透本领很大,尤其是在阳光不透明的固体中,它可穿透几十米的深度。超声波碰到杂质或分界面会产生显著反射形成反射成回波,碰到活动物体能产生多普勒效应。因此超声波检测广泛应用在工业、国防、生物医学等方面。
以超声波作为检测手段,必须产生超声波和接收超声波。完成这种功能的装置就是超声波传感器,习惯上称为超声换能器,或者超声探头。
一 、超声波传感器的性能指标
超声探头的核心是其塑料外套或者金属外套中的一块压电晶片。构成晶片的材料可以有许多种。晶片的大小,如直径和厚度也各不相同,因此每个探头的性能是不同
10
本科生毕业设计(论文)
的,我们使用前必须预先了解它的性能。超声波传感器的主要性能指标包括:
(1)工作频率。工作频率就是压电晶片的共振频率。当加到它两端的交流电压的频率和晶片的共振频率相等时,输出的能量最大,灵敏度也最高。
(2)工作温度。由于压电材料的居里点一般比较高,特别是诊断用超声波探头使用功率较小,所以工作温度比较低,可以长时间地工作而不会失效。医疗用的超声探头的温度比较高,需要单独的制冷设备。
(3)灵敏度。主要取决于制造晶片本身。机电耦合系数大,灵敏度高;反之,灵敏度低。
二、 超声波传感器的结构
超声波探头主要由压电晶片组成,既可以发射超声波,也可以接收超声波。小功率超声探头多作探测作用。它有许多不同的结构,直探头、斜探头、表面波探头、兰姆波探头、双探头等。
当电压作用于压电陶瓷时,就会随电压和频率的变化产生机械变形。另一方面,当振动压电陶瓷时,则会产生一个电荷。利用这一原理,当给由两片压电陶瓷或一片压电陶瓷和一个金属片构成的振动器,所谓叫双压电晶片元件,施加一个电信号时,就会因弯曲振动发射出超声波。相反,当向双压电晶片元件施加超声振动时,就会产生一个电信号。基于以上作用,便可以将压电陶瓷用作超声波传感器。
如超声波传感器,一个复合式振动器被灵活地固定在底座上。该复合式振动器是谐振器以及,由一个金属片和一个压电陶瓷片组成的双压电晶片元件振动器的一个结合体。谐振器呈喇叭形,目的是能有效地辐射由于振动而产生的超声波,并且可以有效地使超声波聚集在振动器的部位。
室外用途的超声波传感器必须具有良好的密封性,以便防止露水、雨水和灰尘的侵入。压电陶瓷被固定在金属盒体的顶部内侧。底座固定在盒体的开口端,并且使用树脂进行覆盖。对应用于工业机器人的超声波传感器而言,要求其精确度要达到1mm,并且具有较强的超声波辐射。
利用常规双压电晶片元件振动器的弯曲振动,在频率高于70kHz的情况下,是不可能达到此目的的。所以,在高频率探测中,必须使用垂直厚度振动模式的压电陶瓷。在这种情况下,压电陶瓷的声阻抗与空气的匹配就变得十分重要。压电陶瓷的声阻抗为2.6×107kg/m2s,而空气的声阻抗为4.3×102kg/m2s。5个幂的差异会导致在压电陶瓷振动辐射表面上的大量损失。一种特殊材料粘附在压电陶瓷上,作为声匹配层,可实现与空气的声阻抗相匹配。这种结构可以使超声波传感器在高达数百kHz频率的情况下,仍然能够正常工作。
11
本科生毕业设计(论文)
2.8 超声波测距原理
超声波发射器向某一方向发射超声波,在发射时刻的同时开始计时,超声波在空气中传播,途中碰到障碍物就立即返回来,超声波接收器收到反射波就立即停止计时。超声波在空气中的传播速度为340m/s,根据计时器记录的时间t,就可以计算出发射点距障碍物的距离(s),即:s=340t/2 。这就是所谓的时间差测距法。
图2.2 超声波液位测量示意图
超声波测距的原理是利用超声波在空气中的传播速度为已知,测量声波在发射后遇到障碍物反射回来的时间,根据发射和接收的时间差计算出发射点到障碍物的实际距离。由此可见,超声波测距原理与雷达原理是一样的。
测距的公式表示为:L=C×T
式中L为测量的距离长度;C为超声波在空气中的传播速度;T为测量距离传播的时间差(T为发射到接收时间数值的一半)。
超声波测距主要应用于倒车提醒、建筑工地、工业现场等的距离测量,虽然目前的测距量程上能达到百米,但测量的精度往往只能达到厘米数量级。
由于超声波易于定向发射、方向性好、强度易控制、与被测量物体不需要直接接触的优点,是作为液体高度测量的理想手段。
2.9 超声波发生器选择
超声波发生器可以分为两类:一类是用电气方式产生超声波,一类是用机械方式产生超声波。本课题属于近距离测量,可以采用常用的压电式超声波换能器来实现。
超声波测距的原理是利用超声波的发射和接受,根据超声波传播的时间来计算出传播距离。实用的测距方法有两种,一种是在被测距离的两端,一端发射,另一端接
12
本科生毕业设计(论文)
收的直接波方式,适用于身高计;一种是发射波被物体反射回来后接收的反射波方式,适用于测距仪。此次设计采用反射波方式。 测距仪的分辨率取决于对超声波传感器的选择。超声波传感器是一种采用压电效应的传感器,常用材料是压电式陶瓷。由于超声波在空气传播时会有相当的衰减,衰减的程度与频率的高低成正比;而频率高分辨率也高,故短距离测量时应选择高频率的传感器,而长距离测量时应用低频率的传感器。
一 、超声波接收传感器及处理芯片CX20106A
超声探头的核心是其塑料外套或者金属外套中的一块压电晶片。构成晶片的材料可以有许多种。晶片的大小,如直径和厚度也各不相同,因此每个探头的性能是不同的,我们使用前必须预先了解它的性能。超声波传感器的主要性能指标包括:
工作频率。工作频率就是压电晶片的共振频率。当加到它两端的交流电压的频率和晶片的共振频率相等时,输出的能量最大,灵敏度也最高。
工作温度。由于压电材料的居里点一般比较高,特别时诊断用超声波探头使用功率较小,所以工作温度比较低,可以长时间地工作而不失效。医疗用的超声探头的温度比较高,需要单独的制冷设备。
灵敏度。主要取决于制造晶片本身。机电耦合系数大,灵敏度高;反之,灵敏度低。
因此超声波接受传感器应该应用集成电路CX20106A,CX20106A是一款红外线检波接收的专用芯片,常用于电视机红外遥控接收器。考虑到红外遥控常用的载波频率38kHz与测距的超声波频率40kHz较为接近,可以利用它制作超声波检测接收电路。实验证明用CX20106A接收超声波(无信号时输出高电平),具有很好的灵敏度和较强的抗干扰能力。适当更改电容C6的大小,可以改变接收电路的灵敏度和抗干扰能力。此部分电路在集成芯片上
二 、温度传感器的选择
大家知道,声音在不同温度的空气中传播速度是不同的,所以这里要考虑到温度补偿的问题。
温度传感器有很多种,例如温度传感器AD590。AD590是美国模拟器件公司生产的单片集成两端感温电流源。流过器件的电流(mA)等于器件所处环境的热力学温度(开尔文)度数。AD590的测温范围为-55℃~+150℃。AD590的电源电压范围为4V~30V。电源电压可在4V-6V范围变化,电流变化1mA,相当于温度变化1K。AD590可以承受44V正向电压和20V反向电压,因而器件反接也不会被损坏。输出电阻为710WM。它的精度高。AD590共有I、J、K、L、M五档,其中M档精度最高,在-55℃~+150℃范围内,非线性误差为±0.3℃。
但是考虑到成本问题我选用TS-18B20数字温度传感器。该产品采用美国
13
本科生毕业设计(论文)
DALLAS公司生产的DS18B20可组网数字温度传感器芯片封装而成,具有耐磨耐碰,体积小,使用方便,封装形式多样,适用于各种狭小空间设备数字测温和控制领域。 独特的一线接口,只需要一条口线通信多点能力,简化了分布式温度传感应用无需外部元件可用数据总线供电,电压范围为3.0V至5.5V无需备用电源测量。温度范围为-55°C至+125℃ 。-10°C至+85°C范围内精度为±0.5°C
温度传感器可编程的分辨率为9~12位温度转换为12位数字格式最大值为750毫秒用户可定义的非易失性温度报警设置应用范围包括恒温控制,工业系统,消费电子产品温度计,或任何热敏感系统。
2.10 盲区处理
超声波是由压电晶片振动产生的,压电晶片的振动是由信号控制的,当信号停止的同时,晶片由于惯性要等一段时间才能停下来,之后才能接收回波信号,这段时间内超声波传感器仍然在发射信号,因此不能接收回波信号,故称之为盲区。 当发射超声波时,虽然发射信号只保持一个很短的时间,但停止发射信号后,超声波探头上还存在一定的余振,因此在发射信号停止后的一段时间内,加在回波检测电路输入端的发射信号幅值仍是相当强的,可以达到电路的限幅电平。另一方面超声波探头上接收到的反射信号却远比发射信号小,即使是离探头较近处的障碍物发射信号也达不到电路的限幅电平。当障碍物离探头越来越远时,接收信号与发射信号相隔时间越来越长,发射信号的幅值也相应地越来越小。在超声波检测中,接收信号的衰减程度设计的比发射信号余振的衰减慢得多,如图中实线所示。
放大器输入电压VMA接收信号幅值发射信号幅值Vm接收阈值Oacb
图2.3 测量盲区示意图
为了保证有一定的信噪比,接收信号的幅值规定了一个阀值Vm,也就是说接收信号的幅值必须大于这一阀值时才能使回波接收电路有输入信号。从图中可见,从b点以
14
本科生毕业设计(论文)
后接收信号将低于阀值,这相当于所测距离的最大值。从图中的a点以后,接收信号才开始比发射信号大,但还将与发射信号相互迭加,较难分辨,因此这段时间内不能进行测量。从图中的c点以后,发射信号己低于阀值Vm,接收信号才基本上摆脱了发射信号的影响而能明显地分辨出来。所以在要求较高时,把oc这段时间规定为盲区时间。从距离上说,可根据盲区时间和声速,求得盲区距离。因此,oc为盲区时间,cb为可测范围,b为可测距离的最远点。
对盲区问题普遍处理办法是对绕射虚假信号作屏蔽,而屏蔽办法多种多样。可以从硬件上屏蔽,也可以从软件上采用信号滤波,或者延时接收。如果从发射开始一直到―虚假反射波‖结束这段时间,采取关闭中断的方法,从而不会发生中断申请,躲避绕射干扰。这种方法优点是处理简洁,故本系统就选用这种办法。
15
本科生毕业设计(论文)
a第3章 各单元硬件电路设计
+5V蜂鸣器3.1 单片机最小系统电路 U1BUZZERATC51是一种带4K字节FLASH存储器(FPEROM—Flash Programmabl
Q1e and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,
R1680NPN俗称单片机。ATC51是一种带2K字节闪存可编程可擦除只读存储器的单片INT1P20机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高1222INT0132123242526272812345678P10/TP11/TP12P13P14P15P16P17P00P01P02P03P04P05P06P073938373635343332Va30pF密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相T11514C1Y1+5V兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT31T0a+12MHzC230pFC5119是一种高效微控制器,ATC51是它的一种精简版本。ATC51单片机
+5V为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。如图3.1所示。
EA/VPX1X2P21P22P23P24P25P26P270uF18 9蜂鸣器RESETRDWRABTC51UZZER10K1716RXDTXDALE/PPSEN101130291234567813121514U1P10/TP11/TP12P13P14P15P16P17INT1INT0T1T0EA/VPX1X2RESETRDWRATC51RXDTXDALE/PPSEN10113029P00P01P02P03P04P05P06P07P20P21P22P23P24P25P26P2739383736353433322122232425262728Q1R1680 aNPN +5V S1C130pF12MHz20uFC230pFY1+5V 311911716C3+SW-PBR210K 图3.1 ATC51引脚图
a
ATC51的主要特点: 与MCS-51 兼容
4K字节可编程闪烁存储器
a 寿命:1000写/擦循环数据保留时间:10年 全静态工作:0Hz-24Hz
16
本科生毕业设计(论文)
三级程序存储器锁定 128×8位内部RAM 32可编程I/O线 两个16位定时器/计数器 5个中断源 可编程串行通道 低功耗的闲置和掉电模式 片内振荡器和时钟电路 管脚说明:
VCC:供电电压。 GND:接地。
P0,P1,P2,P3:输入/输出端口。 P3.0/RXD:串行输入口。 P3.1/TXD:串行输出口。 P3.2 /INT0:外部中断0。 P3.3 /INT1:外部中断1。 P3.4/T0:计时器0外部输入。 P3.5 T1:计时器1外部输入。 P3.6 /WR:外部数据存储器写选通。 P3.7 /RD:外部数据存储器读选通。
P3口同时为闪烁编程和编程校验接收一些控制信号。
RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时
间。
ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地
位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。
/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器
周期两次/PSEN有效。在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),
17
本科生毕业设计(论文)
不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。
芯片擦除:
整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms来完成。在芯片擦操作中,代码阵列全被写―1‖且在任何非空存储字节被重复编程以前,该操作必须被执行。
3.2 温度补偿电路设计
DS18B20温度传感器是美国DALLAS半导体公司推出的一种改进型智能温度传感器,测温范围为-55~125℃,最大分辨率可达0.0625℃。DS18B20可以直接读出被
aa测温度值,而且采用了一线制与单片机相连,减少了外部的硬件电路,具有低成本和
易使用的特点。测温电路图3.2所示。
aDS18B20J5+5V12R36KD0GNDP13VCC
图 3.2 DS18B20
3a DS18B20温度传感器:
(1):技术性能描述
独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理 器与DS18B20的双向通讯。
测温范围-55℃~+125℃,固有测温分辨率0.5℃。 工作电源:3~5V/DC。
在使用中不需要任何外围元件。 测量结果以9~12位数字量方式串行传送。 不锈钢保护管直径Φ6。
18
本科生毕业设计(论文)
适用于DN15~25,DN40~DN250各种介质工业管道和狭小空间设备测温。 标准安装螺纹M10X1,M12X1.5,G1/2任选。
PVC电缆直接出线或德式球型接线盒出线,便于与其它电器设备连接。
(2):应用范围
该产品适用于冷冻库,粮仓,储罐,电讯机房,电力机房,电缆线槽等测温和控制领域。
轴瓦,缸体,纺机,空调,等狭小空间工业设备测温和控制。 汽车空调、冰箱、冷柜、以及中低温干燥箱等。
供热/制冷管道热量计量,空调分户热能计量和工业领域测温和控制。
3.3 超声波发射电路设计
压电式超声波换能器是利用压电晶体的谐振来工作的。超声波换能器内部有两个压电晶片和一个换能板。当它的两极外加脉冲信号,其频率等于压电晶片的固有振荡频率时,压电晶片会发生共振,并带动共振板振动产生超声波,这时它就是一个超声波发生器;反之,如果两电极问未外加电压,当共振板接收到超声波时,将压迫压电a晶片作振动,将机械能转换为电信号,这时它就成为超声波接收换能器。超声波发射换能器与接收换能器在结构上稍有不同,使用时应分清器件上的标志。 a C4P104R+12VS2SW-PB8R1620k1U1A40693R175.1kGND3258U1B4069U1C40694R191k+5v超声波发射6U2VCCQ9U1D4069T-40+5v10R181k2TRIGDIS711U1E40695CVoltTHR16NE555
图3.3 超声波发射电路
0.1uFaa
电路的设计思想
超声波发射电路由超声波换能器(或称超声波振头)和超声波发生器两部分组成,
19
本科生毕业设计(论文)
40KHz的超声波信号是利用NE555时基电路振荡产生的,振荡频率通过R16调节信号频率,使之与换能器的40KHz固有频率f1.43((R162R17)C4),
一致,为保证555时基具有足够的驱动能力,宜采用+12V电源。工作时,单片机通过P1.0口向超声波发生电路发出控制信号从555振荡电路的3脚输入到CD4069驱动器,经驱动器驱动后推动探头产生超声波,超声波发生电路产生40KHz的调制脉冲,经换能器转换为超声波信号向前方空间发射。
3.4 超声波接收电路设计
超声波接收电路CX20106A是一款红外线检波接收的专用芯片,常用于电视机红外遥控接收器。考虑到红外遥控常用的载波频率38kHz与测距的超声波频率40kHz较为接近,可以利用它制作超声波检测接收电路。实验证明用CX20106A接收超声波(无信号时输出高电平),具有很好的灵敏度和较强的抗干扰能力。适当更改电容C6的大小,可以改变接收电路的灵敏度和抗干扰能力。其电路由图3.4所示。 aa U3CX20106INC1C2DGN a超声波接收+5VR2210KC6INT0R-40C5+1uF330pF+12345678R21C5+200K3.3uFR2010KVCCfoC3TOU a图3.4 超声波检测接收电路 CX20106A的引脚注释:
1脚IN:超声波信号输入端,该脚的输入阻抗约为40kΩ。
2脚AGC:该脚与GND之间连接RC串联网络,它们是负反馈串联网络的一个组成部分,改变它们的数值能改变前置放大器的增益和频率特性。增大电阻R或减小C,将使负反馈量增大,放大倍数下降,反之则放大倍数增大。但C的改变会影响到频率特性,一般在实际使用中不必改动,推荐选用参数为R=4.7Ω,C=3.3μF。
3脚C0:该脚与GND之间连接检波电容,电容量大为平均值检波,瞬间相应灵敏度低;若容量小,则为峰值检波,瞬间相应灵敏度高,但检波输出的脉冲宽度变动大,易造成误动作,推荐参数为3.3μF。
4脚GND:接地端。
5脚RC0:该脚与电源端VCC接入一个电阻,用以设置带通滤波器的中心频率
20
本科生毕业设计(论文)
f0,
阻值越大,中心频率越低。例如,取R=200kΩ时,fn≈42kHz,若取R=220kΩ,则中心频率f0≈38kHz。
6脚C:该脚与GND之间接入一个积分电容,标准值为330pF,如果该电容取得
太大,会使探测距离变短。
7脚OUT:遥控命令输出端,它是集电极开路的输出方式,因此该引脚必须接上 一个上拉电阻到电源端,该电阻推荐阻值为22kΩ,没有接收信号时该端输出为高电平,有信号时则会下降。
8脚RC1:电源正极,4.5V~5V。
21
本科生毕业设计(论文)
3.5 显示电路设计
在单片机应用系统中,LED数码管的显示常用两种方法:静态显示和动态扫描显示。所谓静态显示,就是每一个显示器都要占用单独的具有锁存功能的I/O接口用于笔划段字形代码。这样单片机只要把要显示的字形代码发送到接口电路,就不用管它了,直到要显示新的数据时,再发送新的字形码,因此,使用这种方法较为简单与便利。在显示电路的设计上,利用单片机的P0~P2口来控制数码管显示,这种接法虽然比较浪费管脚资源,但是对单片机的理论知识要求相对比较低,而且超声波发射和接收电路并不需要很多的管脚来支持,所以我选择这种方案。数码管的选择上,为了使数码管亮度大,本人选择了共阴极的数码管,数码管管脚接到高电平发亮。显示及其驱动电路的原理图见图3.5
aa。
1234567813121514311911716101010VVV R4R5R6R7R8R9R10R11VVVINT1INT0T1T0EA/VPX1X2RESETRDWRATC51P20P21P22P23P24P25P26P272122232425262728555abcdQ2Q3Q45VV U1P10/TP11/TP12P13P14P15P16P17P00P01P02P03P04P05P06P073938373635343332ABCDEGFdp680680680680680680680680A BCDEGFdpA1B2C4D6E7G8F9dp3 J1aabcfgbdceedgdpfdpA12B4C6D7E8G9F3dpaabcfgbdceedgdpfdpJ2A1B2C4D6E7G8F9dp3aabcfgbdceedgdpfdpJ3A1B2C4D6E7G8F9dp3aabcfgbdceedgdpfdp10J4Q5S8050+5vR12680aS8050R13680bS8050R14680cS8050R15680dRXDTXDALE/PPSEN10113029
a图3.5 显示单元电路
3.6 电源电路设计
本系统采用市电220V,50Hz供电,而单片机以及其它芯片均采用直流5V和12V电压供电。故需要设计降压电路。本电路使用了由LM7805和LM7812构成的桥式稳压整流电路。电路如图3.6所示。
22
a
a
本科生毕业设计(论文)
LM7805CTU41VinGNDa+5V3Jout1C812DC5VJin21AC220VT11C715vBRIDGE11000uF 50VLM7812CTU2C91N4007312100uF 25VVinGND+12V3C10100uF 25VJout212DC12V1000uF 50V2
a
a
图 3.6 电源电路
经过降压、桥式整流、滤波后通过LM7805稳压并直接为单片机和其它器件供电,作为齐纳二极管/电阻组合的替换方案时,LM7805和LM7812通常可以改善有效输出阻抗达两个数量级,并降低静态电流。LM7805和LM7812可提供本地卡上稳压,结合单点调节,解决分配问题。由于足够的散热设置,LM7805和LM7812稳压器可提供100mA的输出电流,同时还包含限流功能,以峰值输出在安全值的范围内。LM7805和LM7812为输出晶体管提供了安全区域保护,内部功耗。假如内部功耗超出了散热范围,热关断电路将会启动,防止芯片过热。
3.7 LED显示系统设计
微机化测控系统中常用的测量数据的显示器有发光二极管显示器(简称LED或数码管)和液晶显示器(简称LCD)。这两种显示器都具有线路简单、耗电少、成本低、寿命长等优点,本系统输出结果选用4个LED显示。数码管有共阴共阳之分,本系统采用8段共阴型LED,其原理图如图所示,每位数码管内部有8个发光二极管,公共端由8个发光二极管的阴极并接而成,正常显示时公共端接低电平(GND),各发光二极管是否点亮取决于a-dp各引脚上是否是高电平。
LED数码管的外形结构如图,外部有12个引脚,其中数字1,2,3,4为公共端也称位选端,其余8个引脚称为段选端,当要使某一位数码管显示某一数字((0-9中的一个)必须在这个数码管的段选端加上与数字显示数字对应的8位段选码(也称字形码),在位选端加上低电平即可。
由于系统要显示的内容比较简单,显示量不多,所以选用数码管既方便又经济。LED有共阴极和共阳极两种。如图所示。
二极管的阴极连接在一起,通常此公共阴极接地,而共阳极则将发光二极管的阳极连接在一起,接入+5V的电压。一位显示器由8个发光二极管组成,其中7个发光二极管构成字型“8”的各个笔划(段)a~g,另一个小数点为dp发光二极管。当在
23
本科生毕业设计(论文)
某段发光二极管施加一定的正向电压时,该段笔划即亮;不加电压则暗。为了保护各段LED不被损坏,需外加限流电阻。
符号和引脚 共阴极 共阳极
图3.7 数码管类型
数码管显示器有两种工作方式,即静态显示方式和动态扫描显示方式。为节省端口及降低功耗,本系统采用动态扫描显示方式。动态扫描显示方式需要解决多位LED数码管的“段控”和“位控”问题,本电路的通过P0口实现:而每一位的公共端,即LED数码管的“位控”,则由P2口控制。这种连接方式由于多位字段线连在
一起,因此,要想显示不同的内容,必然要采取轮流显示的方式,即在某一瞬间,只让其中的某一位的字位线处于选通状态,其它各位的字位线处于断开状态,同时字段线上输出这一位相应要显示字符的字段码。在这一瞬时,只有这一位在显示,其他几位则暗。在本系统中,字位线的选通与否是通过NPN8050三极管的导通与截止来控制,即三极管处于“开头”状态。
3.8 报警电路设计
为了在某些紧急状态或反常状态下,能使操作人员不致忽视,以便及时处理,往往需要有某种更能引起人们注意提起警觉的报警信号产生,这种报警信号通常有三种类型:闪光报警、鸣音报警、语音报警,本系统采用简单易行的压电式蜂鸣器报警电路。
如图3.8所示报警电路,报警设备选用压电式蜂鸣器,它约需要10mA的驱动电流,只需在其两条引线上加3一15V的直流电压,即可产生3KHz左右的蜂鸣声音,图中蜂鸣器的一端接在高电平+5V,另一端接Pl.4,在初态Pl.4始终输出高电平1,当需要报警时,程序对其端口清零即可,声音的长短可用延时程序控制实现。
24
本科生毕业设计(论文)
P1.4P1.4+5V
P1.4R11KQ1S8050蜂鸣器 BUZZER 图3.8 报警电路
P1.4P1.4 25
本科生毕业设计(论文)
第4章 系统软件的设计
超声波测距仪的软件设计主要有主程序、超声波发生程序、超声波接收中断程序及显示子程序组成。我们知道C语言程序有利于实现较复杂的算法,汇编语言程序则具有较高的效率且容易精细计算程序运行的时间,而超声波测距仪的程序需要有较复杂的计算(计算距离时),所以控制程序可采用C语言编程。
4.1 超声波测距仪的算法设计
超声波测距的原理为超声波发生器T在某一时刻发出一个超声波信号,当这个超声波遇到被测物体后反射回来,就被超声波接收器R所接收到。这样只要计算出从发出超声波信号到接收到返回信号所用的时间,就可算出超声波发生器与反射物体的距离。距离的计算公式为: dsct (4-1) 22其中,d为被测物与测距仪的距离,s为声波的来回的路程,c为声速,t为声波来回所用的时间。在启动发射电路的同时启动单片机内部的定时器T0,利用定时器的计数功能记录超声波发射的时间和收到反射波的时间。当收到超声波反射波时,接收电路输出端产生一个负跳变,在INT0或INT1端产生一个中断请求信号,单片机响应外部中断请求,执行外部中断服务子程序,读取时间差,计算距离。 4.2 主程序流程图
1.单片机C语言
C语言是一种结构化的程序设计语言,它的特点就是可以尽量减少你对硬件进行操作,具有很强的结构性、功能性和可移植性,常常被用来作为单片机系统的编程语言。但是用于单片机的C语言和标准C语言区别很大。如何结合单片机的系统资源,用C语言开发符合实际工程需要的单片机系统,对编程者来说具有十分重要的意义。
用C编写程序比汇编更符合人们的思考习惯,开发者可以摆脱与硬件无必要的接触,更专心的考虑功能和算法而不是考虑一些细节问题,这样就减少了开发和调试的时间。C语言具有良好的程序结构,适用于模块化程序设计,因此采用C语言设计单片机应用系统程序时,首先要尽可能地采用结构化的程序设计方法,将功能模块化,由不同的模块完成不同的功能,这样可使整个应用系统程序结构清晰,易于调试和维护。
26
本科生毕业设计(论文)
不同的功能模块,分别指定相应的入口参数和出口参数,对于一些要重复调用的程序一般把其编成函数,这样可以减少程序代码的长度,又便于整个程序的管理,还可增强可读性和移植性。
应用C语言的优越性:
(1)不懂得单片机的指令集,也能够编写完美的单片机程序;
(2)无须懂得单片机的具体硬件,也能够编出符合硬件实际的专业水平的程序; (3)不同函数的数据实行覆盖,有效利用片上有限的RAM空间;
(4)程序具有坚固性: 数据被破坏是导致程序运行异常的重要因素。C语言对数据进行了许多专业性的处理,避免了运行中间非异步的破坏;
(5)C语言提供复杂的数据类型 (数组、结构、联合、枚举、指针等),极大地增强了程序处理能力和灵活性;
(6)中断服务程序的现场保护和恢复,中断向量表的填写,是直接与单片机相关的,都由C编译器代办;
(7)提供常用的标准函数库,以供用户直接使用;
(8)头文件中定义宏、说明复杂数据类型和函数原型,有利于程序的移植和支持单片机的系列化产品的开发;
(9)有严格的句法检查,错误很少,可容易地在高级语言的水平上很快被排除。 2.定时控制部件
定时控制部件起着控制器作用,由定时控制逻辑、指令寄存器(IR)和振荡器(OSC)等电路组成。指令寄存器(IR)用于存放从程序存储器中取出的指令码,定时控制逻辑用于对IR中指令码译码,并在OSC配合下产生指令的时序脉冲,以完成相应指令的执行[18]。
定时控制部件起着控制器作用,由定时控制逻辑、指令寄存器(IR)和振荡器(OSC)等电路组成。指令寄存器(IR)用于存放从程序存储器中取出的指令码,定时控制逻辑用于对IR中指令码译码,并在OSC配合下产生指令的时序脉冲,以完成相应指令的执行。
OSC是控制器的心脏,能为控制器提供时钟脉冲。引脚XTAL1为反向放大管Q4的输入端,XTAL2为Q2的输出端。只要在引脚XTAL1与XTAL2上外接定时反馈回路,OSC振荡器产生矩形时钟脉冲序列,其频率是单片机的重要性能指标之一。时钟频率越高,单片机控制器的控制节拍就越快,运算速度也就越快。而且也决定着系统时钟和定时器时钟与频率。
3.中断系统
计算机中的中断是指CPU暂停原程序执行转而为外部设备服务,并在服务完后回到原程序执行的过程。中断系统是指能够处理上述中断过程所需要的那部分电路。
27
本科生毕业设计(论文)
CIP-51 包含一个扩展的中断系统,支持20 个中断源,每个中断源有两个优先级。中断源在片内外设与外部输入引脚之间的分配随器件的不同而变化。每个中断源可以在一个SFR 中有一个或多个中断标志。当一个外设或外部源满足有效的中断条件时,相应的中断标志被置为逻辑‗1‘。
如果中断被允许,在中断标志被置位时将产生中断。一旦当前指令执行完,CPU 产生一个LCALL到一个预定地址,开始执行中断服务程序(ISR)。每个ISR 必须以RETI 指令结束,使程序回到中断前执行完的那条指令的下一条指令。如果中断未被允许,中断标志将被硬件忽略,程序继续正常执行。中断标志置1 与否不受中断允许/禁止状态的影响。
每个中断源都可以用一个SFR (IE-EIE2)中的相关中断允许位允许或禁止,但是必须首先置‗1‘EA 位(IE.7)以保证每个单独的中断允许位有效。不管每个中断允许位的设置如何,清‗0‘EA 位将禁止所有中断。
注:任何清除EA 位的指令后面应立即跟随一条具有2 或多字节操作码的指令。例如:
// 在‗C‘语言程序中: EA = 0 ; // 清除EA 位
EA = 0 ; // … 跟随一条2 字接操作码的指令 // 在汇编语言程序中: CLR EA ; 清除EA 位
CLR EA ; … 跟随一条2 字接操作码的指令
如果在―CLR EA‖操作码(或任何清除EA 位的指令)的执行期间产生了一个中断,并且该指令的后面是一条单周期指令,则中断可能被响应。但是在中断服务程序中读EA 位时将返回‗0‘值。当―CLR EA‖操作码后面是一条多周期指令时,则中断不会被响应。
某些中断标志在CPU 进入ISR 时被自动清除。但大多数中断标志不是由硬件清除的,必须在 ISR 返回前用软件清除。如果一个中断标志在CPU 执行完中断返回(RETI)指令后仍然保持置位状态,则会立即产生一个新的中断请求,CPU 将在执行完下一条指令后重新进入该ISR。
(1) MCU 中断源和中断向量
MCU 支持20 个中断源。软件可以通过将任何一个中断标志设置为逻辑‗1‘来模拟一个中断。如果中断标志被允许,系统将产生一个中断请求,CPU 将转向与该中断标志对应的ISR 地址。表4.2给出了MCU 中断源、对应的向量地址、优先级和控制位一览表。
(2) 外部中断
28
本科生毕业设计(论文)
两个外部中断源(/INT0和/INT1)可被配置为低电平触发或下降沿触发输入,由 IT0(TCON.0和 IT1(TCON.2)的设置决定。IE0(TCON.1)和 IE1(TCON.3)分别为外部中断/INT0 和/INT1的中断标志。如果/INT0 或/INT1 外部中断被配置为边沿触发,CPU 在转向 ISR 时将自动清除相应的中断标志。当被配置为电平触发时,中断标志将跟随外部中断输入引脚的状态,外部中断源必须一直保持输入有效直到中断请求被响应。在 ISR返回前必须使该中断请求无效,否则将产生另一个中断请求。
中断优先级
每个中断源都可以被地编程为两个优先级中的一个:低优先级或高优先级。一个低优先级的中断服务程序可以被高优先级的中断所中断,但高优先级的中断不能被中断。每个中断在 SFR(IP-EIP2)中都有一个配置其优先级的中断优先级设置位,缺省值为低优先级。如果两个中断同时发生,具有高优先级的中断先得到服务。如果这两个中断的优先级相同,则由固定的优先级顺序决定哪一个先得到服务 。
中断响应时间
中断响应时间取决于中断发生时 CPU的状态。 中断系统在每个系统时钟周期对中断标志采样并对优先级译码。最快的响应时间为 5个系统时钟周期:一个周期用于检测中断,4个周期完成对 ISR的长调用(LCALL) 。如果中断标志有效时 CPU 正在执行 RETI 指令,则需要再执行一条指令才能进入中断服务程序。因此,最长的中断响应时间(没有其它中断正被服务或新中断具有较高优先级)发生在 CPU 正在执行 RETI指令,而下一条指令是 DIV 的情况。在这种情况下,响应时间为 18 个系统时钟周期:一个时钟周期用于检测中断,5 个周期执行RETI,8个周期执行DIV 指令,4个周期完成对 ISR的长调用(LCALL) 。如果CPU正在执行一个具有相同或更高优先级的中断的 ISR,则新中断要等到当前ISR 执行完(包括 RETI和下一条指令)才能得到服务。
4.3 系统软件设计框图
根据以上所述系统硬件设计和所完成功能,系统软件需要实现以下功能: 1.信号控制
在系统硬件中,己经完成了超声波发射驱动电路、回波检测电路的设计。在系统软件中,要完成发射脉冲信号、采集回波信号。
2.数据存储
为了得到发射信号与接收回波间的时间差,要读出此刻计数器的计数值,然后存储在RAM中,而且每次发射周期的开始,需要对计数器清零。
3.信号处理
RAM中存储的计数值并不能作为距离值直接显示输出,因为计数值为十六进制
29
本科生毕业设计(论文)
数,先要将十六进制数转换为十进制数,然后根据计数值与实际距离的转换公式计算出距离值。
软件分为两部分,主程序和中断服务程序。如图4.3图4.31,图4.32 所示。主程序完成初始化工作。如图4.3所示为系统的主程序流程。
开始 程序初始化 定时中断子程序 否收到回波 结束
是 外部中断子程序 图4.3 主程序流程图
定时中断服务子程序完成超声波的发射和接收,外部中断服务子程序主要完成时间值的读取、距离计算、结果的输出等工作。程序流程图为图4.4,图4.5
30
本科生毕业设计(论文)
图 4.4 定时服务子程序 图4.5 外部中断服务子程序
结束 结束 停止发射 开外部中断 是 否 定时中断入口 外部中断入口 定时器初始化 关外部中断 发射超声波 读取时间值 计算距离 发射完否 输出结果 4.4 单片机的C程序设计
1 编译环境
使用C 语言肯定要使用到C 编译器,以便把写好的C 程序编译为机器码,这样单片机才能执行编写好的程序。KEIL uVISION3 是众多单片机应用开发软件中优秀的软件之一,它支持众多不同公司的MCS51 架构的芯片,它集编辑,编译,仿真等于一体,同时还支持,PLM,汇编和C 语言的程序设计,它的界面和常用的微软VC++的界面相似,界面友好,易学易用,在调试程序,软件仿真方面也有很强大的功能。因此很多开发51 应用的工程师或普通的单片机爱好者,都对它十分喜欢。
31
本科生毕业设计(论文)
2 C程序
//超声波液位计程序清单: //晶振=12MHz //MCU=ATC51
//P0.0-P0.7共阳数码管引脚 //Trig = P1^0 //Echo = P3^2
#include //*********************************************** sfr CLK_DIV = 0x97; //为AT单片机定义,系统时钟分频 //为AT单片机的IO口设置地址定义 sfr P0M1 = 0X93; sfr P0M0 = 0X94; sfr P1M1 = 0X91; sfr P1M0 = 0X92; sfr P2M1 = 0X95; sfr P2M0 = 0X96; //*********************************************** sbit Trig = P1^0; //产生脉冲引脚 sbit Echo = P3^2; //回波引脚 sbit test = P1^1; //测试用引脚 uchar code SEG7[10]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};//数码管0-9 uint distance[4]; //测距接收缓冲区 uchar ge,shi,bai,temp,flag,outcomeH,outcomeL,i; //自定义寄存器 bit succeed_flag; //测量成功标志 //********函数声明 void conversion(uint temp_data); void delay_20us(); //void pai_xu(); 32 本科生毕业设计(论文) void main(void) // 主程序 { uint distance_data,a,b; uchar CONT_1; CLK_DIV=0X03; //系统时钟为12MHz晶振 P0M1 = 0; //将io口设置为推挽输出 P1M1 = 0; P2M1 = 0; P0M0 = 0XFF; P1M0 = 0XFF; P2M0 = 0XFF; i=0; flag=0; { while(1) //程序循环 EA=0; Trig=1; delay_20us(); Trig=0; //产生一个20us的脉冲,在Trig引脚 while(Echo==0); //等待Echo回波引脚变高电平 succeed_flag=0; //清测量成功标志 EX0=1; //打开外部中断 TH1=0; //定时器1清零 test =0; Trig=0; //首先拉低脉冲输入引脚 TMOD=0x11; //定时器0,定时器1,16位工作方式 TR0=1; //启动定时器0 ET0=1; //打开定时器0中断 EX0=0; //关闭外部中断 EA=1; //打开总中断0 IT0=0; //由高电平变低电平,触发外部中断 //ET1=1; //打开定时器1中断 33 本科生毕业设计(论文) TL1=0; //定时器1清零 TF1=0; // TR1=1; //启动定时器1 EA=1; while(TH1 < 30);//等待测量的结果,周期65.535毫秒(可用中断实现) TR1=0; //关闭定时器1 EX0=0; //关闭外部中断 if(succeed_flag==1) { distance_data=outcomeH; //测量结果的高8位 distance_data<<=8; //放入16位的高8位 distance_data=distance_data|outcomeL;//与低8位合并成为16位结果数据 distance_data*=12; //因为定时器默认为12分频 distance_data/=58; //微秒的单位除以58等于厘米 } //为什么除以58等于厘米, Y米=(X秒*344)/2 // X秒=( 2*Y米)/344 ==》X秒=0.0058*Y米 ==》厘米=微秒/58 if(succeed_flag==0) { distance_data=0; //没有回波则清零 test = !test; //测试灯变化 } /// distance[i]=distance_data; //将测量结果的数据放入缓冲区 /// i++; /// /// /// if(i==3) { distance_data=(distance[0]+distance[1]+distance[2]+distance[3])/4; /// pai_xu(); /// distance_data=distance[1]; 34 本科生毕业设计(论文) a=distance_data; if(b==a) CONT_1=0; if(b!=a) CONT_1++; if(CONT_1>=3) } //*************************************************************** //外部中断0,用做判断回波电平 INTO_() interrupt 0 // 外部中断是0号 { outcomeH =TH1; //取出定时器的值 outcomeL =TL1; //取出定时器的值 succeed_flag=1; //至成功测量的标志 EX0=0; //关闭外部中断 } //**************************************************************** //定时器0中断,用做显示 timer0() interrupt 1 // 定时器0中断是1号 { TH0=0xfd; //写入定时器0初始值 TL0=0x77; switch(flag) case 0x01:P0=shi;P2=0xfe;flag++;break; case 0x02:P0=bai;P2=0xfb;flag=0;break; { CONT_1=0; b=a; conversion(b); } i=0; } /// } /// {case 0x00:P0=ge; P2=0xfd;flag++;break; } } //***************************************************************** 35 本科生毕业设计(论文) /* //定时器1中断,用做超声波测距计时 timer1() interrupt 3 // 定时器0中断是1号 { TH1=0; TL1=0; } */ //****************************************************************** //显示数据转换程序 void conversion(uint temp_data) { uchar ge_data,shi_data,bai_data ; bai_data=temp_data/100 ; temp_data=temp_data%100; //取余运算 shi_data=temp_data/10 ; temp_data=temp_data%10; //取余运算 ge_data=temp_data; bai_data=SEG7[bai_data]; shi_data=SEG7[shi_data]; ge_data =SEG7[ge_data]; EA=0; bai = bai_data; shi = shi_data; ge = ge_data ; } //****************************************************************** void delay_20us() { uchar bt ; for(bt=0;bt<100;bt++); } EA=1; 36 本科生毕业设计(论文) /* void pai_xu() { uint t; if (distance[0]>distance[1]) {t=distance[0];distance[0]=distance[1];distance[1]=t;} /*交换值 if(distance[0]>distance[2]) {t=distance[2];distance[2]=distance[0];distance[0]=t;} /*交换值 if(distance[1]>distance[2]) {t=distance[1];distance[1]=distance[2];distance[2]=t;} /*交换值 } */ 4.5 系统的软硬件的调试 超声波测距仪的制作和调试都比较简单,其中超声波发射和接收采用15的超声波换能器tct40-10f1(T发射)和CX20106A(R接收),中心频率为40kHz,安装时应保持两换能器中心轴线平行并相距4~8cm,其余元件无特殊要求。若能将超声波接受电路用金属壳屏蔽起来,则可能提高抗干扰能力。根据测量范围要求不同,可适当调整与接收换能器并接的滤波电容C16的大小,以获得合适的接受灵敏度和抗干扰能力。 硬件电路制作完成并调试好后,便可将程序编译好下载到单片机试运行。根据实际情况可以修改超声波发生子程序每次发送的脉冲宽度和两次测量的间隔时间,以适应不同距离的测量需要。根据所设计的电路参数和程序,测距仪能测的范围为0.07~5.5m,测距仪最大误差不超过1cm。系统调试完后应对测量误差和重复一致性进行多次实验 4.6 调试分析 本系统使用51单片机作为调试工具,当keil软件编译好程序后,通过RS232将程序下载到ATC51单片机上,便可进行程序调试。 4.6.1 LED显示程序的调试 对于显示程序的调试,主要是LED能否正常显示。 将显示程序做一定的修改,将显示缓存区中写入“1234‖,经过编译软件编译后,将程序下载到单片机中,上电复位后,LED显示为“1234”,说明显示程序正常。 37 本科生毕业设计(论文) 4.6.2 温度测量程序的调试 对于温度程序的调试,主要是测量到的温度是否正确。 将温度测量程序与显示程序结合,LED显示当前的温度。经过编译软件编译后,将程序下载到单片机中,上电复位后,LED显示“28.5℃”,说明温度测量程序正常。 分析,不断优化系统使其达到实际使用的测量要求。 38 本科生毕业设计(论文) 第5章 结论 由于时间和其它客观上的原因,此次设计没有成功做出实物。但是对设计有一个很好的理论基础。设计的最终结果是使超声波测距仪能够产生超声波,实现超声波的发送与接收,从而实现利用超声波方法测量物体间的距离。以数字的形式显示测量距离。 超声波测距的原理是利用超声波的发射和接受,根据超声波传播的时间来计算出传播距离。实用的测距方法有两种,一种是在被测距离的两端,一端发射,另一端接收的直接波方式,适用于身高计;一种是发射波被物体反射回来后接收的反射波方式,适用于测距仪。此次设计采用反射波方式。 超声波测距仪硬件电路的设计主要包括单片机系统及显示电路、超声波发射电路和超声波检测接收电路三部分。单片机采用ATC51或其兼容系列。采用12MHz高精度的晶振,以获得较稳定时钟频率,减小测量误差。单片机用P1.0端口输出超声波换能器所需的40kHz的方波信号,利用外中断0口监测超声波接收电路输出的返回信号。显示电路采用简单实用的LED数码管。 超声波测距的算法设计原理为超声波发生器T在某一时刻发出一个超声波信号,当这个超声波遇到被测物体后反射回来,就被超声波接收器R所接收到。这样只要计算出从发出超声波信号到接收到返回信号所用的时间,就可算出超声波发生器与反射物体的距离。在启动发射电路的同时启动单片机内部的定时器T0,利用定时器的计数功能记录超声波发射的时间和收到反射波的时间。当收到超声波反射波时,接收电路输出端产生一个负跳变,在INT0端产生一个中断请求信号,单片机响应外部中断请求,执行外部中断服务子程序,读取时间差,计算距离。 在元件及调制方面,由于采用的电路使用了很多集成电路。外围元件不是很多,所以调试不会太难。一般只要电路焊接无误,稍加调试应该会正常工作。电路中除集成电路外,对各电子元件也无特别要求。根据测量范围要求不同,可适当调整与接收换能器并接的滤波电容C16的大小,以获得合适的接受灵敏度和抗干扰能力。若能将超声波接收电路用金属壳屏蔽起来,则可提高抗干扰能力。 39 本科生毕业设计(论文) 参考文献 [1].超声波测距仪的研制[J].计算机与现代化.2003,10. [2]时德刚.刘哗,超声波测距的研制[J].计算机测量与控制.2002,10. [3]华兵.MCS-51单片机原理应用[M].武汉:武汉华中科技大学出版社.2002,5,125-144页. [4]李华.MCU-51系列单片机实用接口技术[M].北京:北京航天大学出版社.1993,6.376-380页. [5]郁有文.传感器原理及工程应用[M].西安:西安电子科技大学出版社.2000. [6]中国电子学会敏感技术分会,北京电子学会,2000/2001 传感器与执行器大全(年 卷) [M].北京:电子工业出版社.2001. [7]刘和平等.PIC16F87X单片机实用技术与接口技术—C语言及其应用[M].北京: 北京航空航天大学出版社.2002,4. [8]陈新建.PIC系列单片机程序设计与开发应用[M].北京:北京航空航天大学出版 社.2007,5. [9]张明峰.PIC单片机入门与实战[M]. 北京:北京航空航天大学出版社,2004,4. [10]Myke Predko著,胡光华译.PIC微控制器基础与实践[M].北京:科学出版 社.2007,5. [11]刘笃仁主编.基于PIC16F87X系列[M].西安:电子工业出版社.2005,1,2.85-291 页. [12]黄智伟主编.全国大学生电子设计竞赛训练教程[M].西安:电子工业出版 社.2005,1. [13]牛余朋.成曙.基于单片机的超声波测距系统[J].北京:兵工自动化.2005,2. 78-88页. [14]何莉,曾宪文.徐霞.基于PIC单片机的超声波测距系统[J].北京:压电与声光, 第26卷第2期.2004年4月. [15]宋敬国,李元宗.徐玉华.PIC单片机在超声波测距系统中的应用[J].北京:机械 工程与自动化,第4期(总第143期),2007年8月. [16]姜道连,宁延一,袁世良.用ATC2051设计超声波测距仪[J],TI:国外电子元 器件.2000,第12月. [17]苏伟,巩壁建.超声波检测距误差分析[J].传感器技术,2004,257-274页. [18]胜全.D18B20数字温度计在微机温度采集系统中的序编制[J].南京:南京大学 40 本科生毕业设计(论文) 出版社1998,3. [19]薛红宣,采用软件抗干扰设计提高微机系统的可靠性[J].电子产品世界,2004, 1. [20]潘登,潘宗预.超声波测距精度的探讨[J].北京:包装工业,2003年11月. [21]九州.放大电路实用手册[M].沈阳:辽宁科技出版社,2002,5. [22]占操,梁厚琴,曹燕.单片机系统中的软件抗干扰技术[M].电子技术,2003,3. [23]王福瑞.单片微机测控系统设计大全[M].北京:北京航空航天大学出版社,1998, 282-283页. [24]王大海.新型温湿度自动控制系统的设计与应用[J].电子工程师.2002,28(3):33-36页. [25]蒋敏兰,胡生清,幸国全.TS-18B20数字温度传感器的非线性补偿及应用[J].传感器技术,2001,20(10).-55页. [26]APLUS,API8108A versatile 10 sec instant voice rom [PDF].美国:APLUS,1999, 6. [27]SPCE061AData Sheet[PDF].Microchip Technology Incorporated Printed in the USA 2007. [28]MC34063 Data Sheet[PDF].STM icroelectronics-Printed in Italy-All Rights Reserve Reserved,2001. [29]Tom R.Watt. Cooling our tomorrows economically,ASHRAE Journal. [30]Olton W. Instrumentation & process measurement,Longman Scientific & Technical.1991. 41 本科生毕业设计(论文) 致谢 首先,我要感谢我的导师在毕业设计中对我给予的悉心指导和严格要求,同时也感谢本校的一些老师在毕业设计这期间所给予我的帮助。在毕业设计论文写作期间,各位老师给我提供了种种专业知识上的指导和日常生活上的关怀,没有您们这样的帮助和关怀,我不会这么顺利的完成毕业设计,借此机会,向您们表示由衷的感激。同时还要感谢系实验室在毕业设计期间提供给我们优越的实验条件。 接着,我要感谢和我一起做毕业设计的同学们。在毕业设计的短短3个月里,你们给我提出很多宝贵的意见,给予了我不少帮助还有工作上的支持,在此也真诚的谢谢你们。同时,我还要感谢我的寝室同学和身边的朋友,真是在这样一个团结友爱、相互促进的环境中,在和他们的相处帮助和启发中,才有我今天的小小收获。 最后我要深深地感谢我的家人,真是他们含辛茹苦地把我养育成人,在生活和学习上给予我无尽的关怀、理解和支持,才使我时刻充满信心和勇气,克服成长道路上的种种困难,顺利的完成大学学习。 还有许许多多给予我学业上鼓励和帮助的朋友,在此无法一一列举,在此也一并表示衷心地感谢! 42 本科生毕业设计(论文) 附录Ⅰ An overview of ATC51 Description The ATC51 is a low-power, high-performance CMOS 8-bit microcontroller with 4K bytes of in-system programmable Flash memory. The device is manufactured using Atmel‘s high-density nonvolatile memory technology and is compatible with the industry-standard 80C51 instruction set and pinout. The on-chip Flash allows the program memory to be reprogrammed in-system or by a conventional nonvolatile memory programmer.By combining a versatile 8-bit CPU with in-system programmable Flash on a monolithic chip, the Atmel ATC51 is a powerful microcontroller which provides a highly-flexible and cost-effective solution to many embedded control applications.The ATC51 provides the following standard features: 8K bytes of Flash, 128 bytes of RAM, 32 I/O lines, Watchdog timer, two data pointers, three 16-bit timer/counters, a six-vector two-level interrupt architecture, a full duplex serial port, on-chip oscillator,and clock circuitry. In addition, the ATC51 is designed with static logic for operation down to zero frequency and supports two software selectable power saving modes.The Idle Mode stops the CPU while allowing the RAM, timer/counters, serial port, and interrupt system to continue functioning. The Power-down mode saves the RAM contents but freezes the oscillator, disabling all other chip functions until the next interrupt or hardware reset. Features • Compatible with MCS-51® Products • 4K Bytes of In-System Programmable (ISP) Flash Memory– Endurance: 1000 Write/Erase Cycles • 4.0V to 5.5V Operating Range • Fully Static Operation: 0 Hz to 33 MHz • Three-level Program Memory Lock • 128 x 8-bit Internal RAM • 32 Programmable I/O Lines • Three 16-bit Timer/Counters • Eight Interrupt Sources • Full Duplex UART Serial Channel • Low-power Idle and Power-down Modes • Interrupt Recovery from Power-down Mode 43 本科生毕业设计(论文) • Watchdog Timer • Dual Data Pointer • Power-off Flag Pin Description VCC:Supply voltage. GND:Ground. Port 0:Port 0 is an 8-bit open drain bidirectional I/O port. As an output port, each pin can sink eight TTL inputs. When 1s are written to port 0 pins, the pins can be used as highimpedance inputs. Port 0 can also be configured to be the multiplexed loworder address/data bus during accesses to external program and data memory. In this mode, P0 has internal pullups. Port 0 also receives the code bytes during Flash programming and outputs the code bytes during program verification.External pullups are required during program verification. Port 1:Port 1 is an 8-bit bidirectional I/O port with internal pullups.The Port 1 output buffers can sink/source four TTL inputs.When 1s are written to Port 1 pins, they are pulled high by the internal pullups and can be used as inputs. As inputs,Port 1 pins that are externally being pulled low will source current (IIL) because of the internal pullups. Port 2:Port 2 is an 8-bit bidirectional I/O port with internal pullups.The Port 2 output buffers can sink/source four TTL inputs.When 1s are written to Port 2 pins, they are pulled high by the internal pullups and can be used as inputs. As inputs,Port 2 pins that are externally being pulled low will source current (IIL) because of the internal pullups.Port 2 emits the high-order address byte during fetches from external program memory and during accesses to external data memory that use 16-bit addresses (MOVX @DPTR). In this application, Port 2 uses strong internal pullups when emitting 1s. During accesses to external data memory that use 8-bit addresses (MOVX @ RI), Port 2 emits the contents of the P2 Special Function Register.Port 2 also receives the high-order address bits and some control signals during Flash programming and verification. Port 3:Port 3 is an 8-bit bidirectional I/O port with internal pullups.The Port 3 output buffers can sink/source four TTL inputs.When 1s are written to Port 3 pins, they are pulled high by the internal pullups and can be used as inputs. As inputs,Port 3 pins that are externally being pulled low will source current (IIL) because of the pullups.Port 3 also serves the functions of various special features of the ATC51.Port 3 also receives some control signals for Flash programming and verification. 44 本科生毕业设计(论文) RST:Reset input. A high on this pin for two machine cycles while the oscillator is running resets the device. This pin drives high for 96 oscillator periods after the Watchdog times out.The DISRTO bit in SFR AUXR (address 8EH) can be used to disable this feature. In the default state of bit DISRTO,the RESET HIGH out feature is enabled. ALE/PROG:Address Latch Enable (ALE) is an output pulse for latching the low byte of the address during accesses to external memory. This pin is also the program pulse input (PROG) during Flash programming.In normal operation, ALE is emitted at a constant rate of 1/6 the oscillator frequency and may be used for external timing or clocking purposes. Note, however, that one ALE pulse is skipped during each access to external data memory.If desired, ALE operation can be disabled by setting bit 0 of SFR location 8EH. With the bit set, ALE is active only during a MOVX or MOVC instruction. Otherwise, the pin is weakly pulled high. Setting the ALE-disable bit has no effect if the microcontroller is in external execution mode. PSEN:Program Store Enable (PSEN) is the read strobe to external program memory.When the ATC51 is executing code from external program memory, PSEN is activated twice each machine cycle, except that two PSEN activations are skipped during each access to external data memory. EA/VPP:External Access Enable. EA must be strapped to GND in order to enable the device to fetch code from external program memory locations starting at 0000H up to FFFFH. Note, however, that if lock bit 1 is programmed, EA will be internally latched on reset.EA should be strapped to VCC for internal program executions.This pin also receives the 12-volt programming enable voltage (VPP) during Flash programming. XTAL1:Input to the inverting oscillator amplifier and input to the internal clock operating circuit. XTAL2:Output from the inverting oscillator amplifier. Special Function Registers A map of the on-chip memory area called the Special Function Register (SFR) space is shown in Table 1. Note that not all of the addresses are occupied, and unoccupied addresses may not be implemented on the chip.Read accesses to these addresses will in general return random data, and write accesses will have an indeterminate effect.User software should not write 1s to these unlisted locations,since they may be used in future products to invoke new features. In that case, the reset or inactive values of the new bits will always be 0. 45 本科生毕业设计(论文) Interrupt Registers: The individual interrupt enable bits are in the IE register. Two priorities can be set for each of the six interrupt sources in the IP register. Dual Data Pointer Registers: To facilitate accessing both internal and external data memory, two banks of 16-bit Data Pointer Registers are provided: DP0 at SFR address locations 82H-83H and DP1 at 84H-85H. Bit DPS = 0 in SFR AUXR1 selects DP0 and DPS = 1 selects DP1.The user should always initialize the DPS bit to the appropriate value before accessing the respective Data Pointer Register. Power Off Flag: The Power Off Flag (POF) is located at bit 4 (PCON.4) in the PCON SFR. POF is set to ―1‖ during power up. It can be set and rest under software control and is not affected by reset. Memory Organization MCS-51 devices have a separate address space for Program and Data Memory. Up to K bytes each of external Program and Data Memory can be addressed. Program Memory:If the EA pin is connected to GND, all program fetches are directed to external memory.On the ATC52, if EA is connected to VCC, program fetches to addresses 0000H through 1FFFH are directed to internal memory and fetches to addresses 2000H through FFFFH are to external memory. Data Memory:The ATC52 implements 128 bytes of on-chip RAM. Watchdog Timer(One-time Enabled with Reset-out) The WDT is intended as a recovery method in situations where the CPU may be subjected to software upsets. The WDT consists of a 13-bit counter and the Watchdog Timer Reset (WDTRST) SFR. The WDT is defaulted to disable from exiting reset. To enable the WDT, a user must write 01EH and 0E1H in sequence to the WDTRST register (SFR location 0A6H). When the WDT is enabled, it will increment every machine cycle while the oscillator is running. The WDT timeout period is dependent on the external clock frequency. There is no way to disable the WDT except through reset (either hardware reset or WDT overflow reset). When WDT overflows, it will drive an output RESET HIGH pulse at the RST pin. Using the WDT:To enable the WDT, a user must write 01EH and 0E1H in sequence to the WDTRST register (SFR location 0A6H). When the WDT is enabled, the user needs to service it by writing 01EH and 0E1H to WDTRST to avoid a WDT overflow. The 13-bit counter overflows when it reaches 8191(1FFFH), and this will reset the device. When the WDT is enabled, it will increment every machine cycle while the oscillator is running. This 46 本科生毕业设计(论文) means the user must reset the WDT at least every 8191 machine cycles. To reset the WDT the user must write 01EH and 0E1H to WDTRST. WDTRST is a write-only register. The WDT counter cannot be read or written. When WDT overflows, it will generate an output RESET pulse at the RST pin. The RESET pulse duration is 96xTOSC, where TOSC=1/FOSC. To make the best use of the WDT, it should be serviced in those sections of code that will periodically be executed within the time required to prevent a WDT reset. WDT During Power-down and Idle:In Power-down mode the oscillator stops, which means the WDT also stops. While in Power-down mode, the user does not need to service the WDT. There are two methods of exiting Power-down mode: by a hardware reset or via a level-activated external interrupt which is enabled prior to entering Power-down mode. When Power-down is exited with hardware reset, servicing the WDT should occur as it normally does whenever the ATC51 is reset. Exiting Power-down with an interrupt is significantly different. The interrupt is held low long enough for the oscillator to stabilize.When the interrupt is brought high, the interrupt is serviced. To prevent the WDT from resetting the device while the interrupt pin is held low, the WDT is not started until the interrupt is pulled high. It is suggested that the WDT be reset during the interrupt service for the interrupt used to exit Power-down mode. To ensure that the WDT does not overflow within a fewstates of exiting Power-down, it is best to reset the WDT just before entering Power-down mode.Before going into the IDLE mode, the WDIDLE bit in SFR AUXR is used to determine whether the WDT continues to count if enabled. The WDT keeps counting during IDLE (WDIDLE bit = 0) as the default state. To prevent the WDT from resetting the ATC51 while in IDLE mode, the user should always set up a timer that will periodically exit IDLE, service the WDT, and reenter IDLE mode.With WDIDLE bit enabled, the WDT will stop to count in IDLE mode and resumes the count upon exit from IDLE. UART:The UART in the ATC51 operates the same way as the UART in the ATC52 and ATS52. For further information on the UART operation, refer to the ATMEL Web site (http://www.atmel.com). From the home page, select ‗Products‘, then ‗8051-Architecture Flash Microcontroller‘, then‗Product Overview‘. Timer 0 and 1:Timer 0 and Timer 1 in the ATC51 operate the same way as Timer 0 and Timer 1 in the ATC52 and ATS52. For further information on the timers‘ operation, refer to the ATMEL Web site (http://www.atmel.com). From the home page, select ‗Products‘, then ‗8051-Architecture Flash Microcontroller‘, then ‗Product Overview‘. 47 本科生毕业设计(论文) Auto-reload (Up or Down Counter) Timer 2 can be programmed to count up or down when configured in its 16-bit auto-reload mode. This feature is invoked by the DCEN (Down Counter Enable) bit located in the SFR T2MOD (see Table 4). Upon reset, the DCEN bit is set to 0 so that timer 2 will default to count up. When DCEN is set, Timer 2 can count up or down, depending on the value of the T2EX pin. 功能特性描述 ATC51是一种低功耗、高性能CMOS 8位微控制器,具有4K在系统可编程Flash存储器。使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得ATC51为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。ATC51具有以下标准功能:4k字节Flash,128字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,ATC51可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。 主要性能 (1)与MCS-51单片机产品兼容 (2)4K字节在系统可编程Flash存储器 (3)1000次擦写周期 (4)全静态操作:0Hz~33Hz (5)三级加密程序存储器 (6)32个可编程I/O口线 (7)三个16位定时器/计数器 (8)八个中断源 (9)全双工UART串行通道 (10)低功耗空闲和掉电模式 (11)掉电后中断可唤醒 (12)看门狗定时器 (13)双数据指针 (14)掉电标识符 48 本科生毕业设计(论文) VCC : 电源,GND: 地。 P0 口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写―1‖时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0具有内部上拉电阻。在 flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。 P1 口:P1 口是一个具有内部上拉电阻的8位双向I/O 口,P1 输出缓冲器能驱动4个TTL逻辑电平。对P1 端口写―1‖时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。 P2 口:P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。对P2端口写―1‖时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX @DPTR)时,P2口送出高八位地址。在这种应用中,P2口使用很强的内部上拉发送1。在使用8位地址(如MOVX @RI)访问外部数据存储器时,P2口输出P2锁存器的内容。在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。 P3 口:P3口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。对P3端口写―1‖时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。P3口亦作为ATC51特殊功能(第二功能)使用。在flash编程和校验时,P3口也接收一些控制信号。 RST: 复位输入。晶振工作时,RST脚持续2个机器周期高电平将使单片机复位。看门狗计时完成后,RST脚输出96个晶振周期的高电平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能无效。DISRTO默认状态下,复位高电平有效。 ALE/PROG:地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低8 位地址的输出脉冲。在flash编程时,此引脚(PROG)也用作编程输入脉冲。在一般情况下,ALE以晶振六分之一的固定频率输出脉冲,可用来作为外部定时器或时钟使用。然而,特别强调,在每次访问外部数据存储器时,ALE脉冲将会跳过。如果需要,通过将地址为8EH的SFR的第0位置―1‖,ALE操作将无效。这一位置―1‖,ALE仅在执行MOVX 或MOVC指令时有效。否则,ALE将被微弱拉高。这个ALE 使能标志位(地址为8EH的SFR的第0位)的设置对微控制器处于外部执行模式下无效。 PSEN:外部程序存储器选通信号(PSEN)是外部程序存储器选通信号。当 ATC52从外部程序存储器执行外部代码时,PSEN在每个机器周期被激活两次,而 49 本科生毕业设计(论文) 在访问外部数据存储器时,PSEN将不被激活。 EA/VPP:访问外部程序存储器控制信号。为使能从0000H到FFFFH的外部程序存储器读取指令,EA必须接GND。为了执行内部程序指令,EA应该接VCC。在flash编程期间,EA也接收12伏VPP电压。 XTAL1:振荡器反相放大器和内部时钟发生电路的输入端。 XTAL2:振荡器反相放大器的输出端。 特殊功能寄存器 特殊功能寄存器(SFR)的地址空间,并不是所有的地址都被定义了。片上没有定义的地址是不能用的。读这些地址,一般将得到一个随机数据;写入的数据将会无效。用户不应该给这些未定义的地址写入数据―1‖。由于这些寄存器在将来可能被赋予新的功能,复位后,这些位都为―0‖。 中断寄存器:各中断允许位在IE寄存器中,六个中断源的两个优先级也可在IE中设置。 双数据指针寄存器:为了更有利于访问内部和外部数据存储器,系统提供了两路16位数据指针寄存器:位于SFR中82H~83H的DP0和位于84H~85。特殊寄存器AUXR1中DPS=0选择DP0;DPS=1选择DP1。用户应该在访问数据指针寄存器前先初始化DPS至合理的值。 掉电标志位:掉电标志位(POF)位于特殊寄存器PCON的第四位(PCON.4)。上电期间POF置―1‖。POF可以软件控制使用与否,但不受复位影响。 存储器结构 MCS-51器件有单独的程序存储器和数据存储器。外部程序存储器和数据存储器都可以K寻址。 程序存储器:如果EA引脚接地,程序读取只从外部存储器开始。对于S52,如果EA 接VCC,程序读写先从内部存储器(地址为0000H~1FFFH)开始,接着从外部寻址,寻址地址为:2000H~FFFFH。 数据存储器:ATC51有128字节片内数据存储器。 看门狗定时器 WDT是一种需要软件控制的复位方式。WDT由13位计数器和特殊功能寄存器中的看门狗定时器复位存储器(WDTRST)构成。WDT在默认情况下无法工作;为了激活WDT,户用必须往WDTRST寄存器(地址:0A6H)中依次写入01EH 和0E1H。当WDT激活后,晶振工作,WDT在每个机器周期都会增加。WDT计时周期依赖于外部时钟频率。除了复位(硬件复位或WDT溢出复位),没有办法停止WDT工作。当WDT溢出,它将驱动RSR引脚一个高个电平输出。 50 本科生毕业设计(论文) WDT的使用 为了激活WDT,用户必须向WDTRST寄存器(地址为0A6H的SFR)依次写入0E1H和0E1H。当WDT激活后,用户必须向WDTRST写入01EH和0E1H喂狗来避免WDT溢出。当计数达到8191(1FFFH)时,13位计数器将会溢出,这将会复位器件。晶振正常工作、WDT激活后,每一个机器周期WDT 都会增加。为了复位WDT,用户必须向WDTRST 写入01EH和0E1H(WDTRST 是只读寄存器)。WDT 计数器不能读或写。当WDT计数器溢出时,将给RST引脚产生一个复位脉冲输出,这个复位脉冲持续96个晶振周期(TOSC),其中TOSC=1/FOSC。为了很好地使用WDT,应该在一定时间内周期性写入那部分代码,以避免WDT复位。 掉电和空闲方式下的 WDT 在掉电模式下,晶振停止工作,这意味这WDT也停止了工作。在这种方式下,用户不必喂狗。有两种方式可以离开掉电模式:硬件复位或通过一个激活的外部中断。通过硬件复位退出掉电模式后,用户就应该给WDT喂狗,就如同通常ATC51复位一样。通过中断退出掉电模式的情形有很大的不同。中断应持续拉低很长一段时间,使得晶振稳定。当中断拉高后,执行中断服务程序。为了防止WDT在中断保持低电平的时候复位器件,WDT 直到中断拉低后才开始工作。这就意味着WDT 应该在中断服务程序中复位。为了确保在离开掉电模式最初的几个状态WDT不被溢出,最好在进入掉电模式前就复位WDT。在进入待机模式前,特殊寄存器AUXR的WDIDLE位用来决定WDT是否继续计数。默认状态下,在待机模式下,WDIDLE=0,WDT继续计数。为了防止WDT在待机模式下复位ATC51,用户应该建立一个定时器,定时离开待机模式,喂狗,再重新进入待机模式。 UART:在ATC51中,UART 的操作与ATC52和ATS52一样。为了获得更深入的关于UART的信息,可参考ATMEL 网站(http://www.atmel.com)。从这个主页,选择―Products‖,然后选择―8051-Architech Flash Microcontroller‖,再选择―Product Overview‖即可。 定时器 0 和定时器1:在ATC51 中,定时器0 和定时器1 的操作与ATC52 和ATS52 一样。为了获得更深入的关于UART 的信息,可参考ATMEL 网站(http://www.atmel.com)。从这个主页,选择―Products‖,然后选择―8051-Architech Flash Microcontroller‖,再选择―Product Overview‖即可。 自动重载 荡定时器2 工作于16 位自动重载模式,可对其编程实现向上计数或向下计数。这一功能可以通过特殊寄存器T2MOD(见表4)中的DCEN(向下计数允许位)来实现。通过复位,DCEN 被置为0,因此,定时器2 默认为向上计数。DCEN 设置后,定时器2就可以取决于T2EX向上、向下计数。 51 本科生毕业设计(论文) +5V蜂鸣器101010J5D0GNDVCCU1VJ1P00P01P02P03P04P05P06P07R4R5R6R7R8R9R10R112122232425262728P20P21P22P23P24P25P26P273938373635343332ABCDEGFdp680680680680680680680680A BCDEGFdpABCDEGFdp124673aabbcfgdceedgdpfdpV5J2A1B2C4D6E7G8F9dp3VJ3aabbcfgdceedgdpfdpV510P14DS18B20J4R11KBUZZERQ1+5VP13P14123VS8050R36KINT0P131312INT1INT0T1T0EA/VPX1X2RESET1716RDWRATC51LM7805CT1VinGNDP10/TP11/TP12P13P14P15P16P17aabbcfgdceedgdpfdpaabbcfgdceedgdpfdpV5系统硬件原理图 +5VC130pFS212MHzSW-PB30pF920uFC21918C3+31Y1+5V1514abcdQ2Q3Q45VVP1012345678ABCDEGFdp124673ABCDEGFdp124673Q5S8050+5vRXDTXDALE/PPSEN10113029+12VS2U4+5V38R12680aS8050R13S8050R14S8050R15680680680bcd10KR16SW-PB20kJout1C7C812P104RU2VCC3U1B4R19+5v1U1A240691k40693Q5U1C超声波发射6Jin2115vAC220VT119100uF 25VBRIDGE11000uF 50V2U1D8R17DC5VLM7812CTU52TRIGGND40694069DIS75.1kT-40+5v1142C91N40073U1E13VinGND10+12V5C101000uF 50V2R186CVoltJout2100uF 25V12DC12VC4THRNE55514069U31kCX20106INC1C2GND超声波接收VCCfoC3OUT+5V12345678R-400.1uFR21R22C5C5+ 200K10KINT03.3uF1uFR2010KC6330pF附录Ⅱ + 52 R2+ 本科生毕业设计(论文) 附录Ⅲ 元器件清单 序号 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 编号 R10 R14 R2/R3/R4/R7/R8/ R12/R13 R1 R5 R6 R9 R11 R19/R20 R15/R18 R16 R17 DS1/DS2/DS3/DS4 C12 C3/C8/C9/C10/C11/C13/ C14/C16/C17 C4/C5 C6 C7 C1 C15 C18/C20 C19/C21 C2 U1 U2 T/R 电容 电容 电解电容 电解电容 电容 电容 电容 电解电容 NE555 CX20106A 超声波 53 名称 电阻 电阻 电阻 电阻 电阻 电阻 电阻 电阻 电阻 电阻 电阻 可变电阻 LED 电容 电容 参数 100Ω 1kΩ 10kΩ 33kΩ 4.7kΩ 1.2kΩ 1.5Ω 50kΩ 100kΩ 300kΩ 2.2kΩ 100kΩ 1uF 0.1uF 20pF 330Pf 47uF 1uF 100uF 1000uF 0.33uF 3.3uF160V TCT-40 个数 1 20 8 1 1 1 1 1 2 2 1 1 4 6 10 2 2 5 5 2 2 2 2 1 1 2 本科生毕业设计(论文) 27 28 29 30 31 32 33 34 35 36 D1 U3 U4 U5 Q1 U6 L X1 X U7 二极管 变压器 反相器 蜂鸣器 三极管 DIP-40 杜邦线 晶振 排针 ATC51 1N4001 CD4069 S8050 12MHz 6 1 1 1 6 1 20 1 3 1 本科生毕业设计(论文) 学位论文原创性声明 本人郑重声明:所呈交的学位论文,是本人在导师的指导下进行的研究工作所取得的成果。尽我所知,除文中已经特别注明引用的内容和致谢的地方外,本论文不包含任何其他个人或集体已经发表或撰写过的研究成果。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式注明并表示感谢。本人完全意识到本声明的法律结果由本人承担。 学位论文作者(本人签名): 年 月 日 学位论文出版授权书 本人及导师完全同意《中国博士学位论文全文数据库出版章程》、《中国优秀硕士学位论文全文数据库出版章程》(以下简称“章程”),愿意将本人的学位论文提交“中国学术期刊(光盘版)电子杂志社”在《中国博士学位论文全文数据库》、《中国优秀硕士学位论文全文数据库》中全文发表和以电子、网络形式公开出版,并同意编入CNKI《中国知识资源总库》,在《中国博硕士学位论文评价数据库》中使用和在互联网上传播,同意按“章程”规定享受相关权益。 论文密级: □公开 □保密(___年__月至__年__月)(保密的学位论文在解密后应遵守此协议) 作者签名:_______ 导师签名:_______ _______年_____月_____日 _______年_____月_____日 55 本科生毕业设计(论文) 独 创 声 明 本人郑重声明:所呈交的毕业设计(论文),是本人在指导老师的指导下,进行研究工作所取得的成果,成果不存在知识产权争议。尽我所知,除文中已经注明引用的内容外,本设计(论文)不含任何其他个人或集体已经发表或撰写过的作品成果。对本文的研究做出重要贡献的个人和集体均已在文中以明确方式标明。 本声明的法律后果由本人承担。 作者签名: 二〇一〇年九月二十日 毕业设计(论文)使用授权声明 本人完全了解滨州学院关于收集、保存、使用毕业设计(论文)的规定。 本人愿意按照学校要求提交学位论文的印刷本和电子版,同意学校保存学位论文的印刷本和电子版,或采用影印、数字化或其它复制手段保存设计(论文);同意学校在不以营利为目的的前提下,建立目录检索与阅览服务系统,公布设计(论文)的部分或全部内容,允许他人依法合理使用。 (保密论文在解密后遵守此规定) 作者签名: 二〇一〇年九月二十日 56 本科生毕业设计(论文) 致 谢 时间飞逝,大学的学习生活很快就要过去,在这四年的学习生活中,收获了很多,而这些成绩的取得是和一直关心帮助我的人分不开的。 首先非常感谢学校开设这个课题,为本人日后从事计算机方面的工作提供了经验,奠定了基础。本次毕业设计大概持续了半年,现在终于到结尾了。本次毕业设计是对我大学四年学习下来最好的检验。经过这次毕业设计,我的能力有了很大的提高,比如操作能力、分析问题的能力、合作精神、严谨的工作作风等方方面面都有很大的进步。这期间凝聚了很多人的心血,在此我表示由衷的感谢。没有他们的帮助,我将无法顺利完成这次设计。 首先,我要特别感谢我的知道郭谦功老师对我的悉心指导,在我的论文书写及设计过程中给了我大量的帮助和指导,为我理清了设计思路和操作方法,并对我所做的课题提出了有效的改进方案。郭谦功老师渊博的知识、严谨的作风和诲人不倦的态度给我留下了深刻的印象。从他身上,我学到了许多能受益终生的东西。再次对周巍老师表示衷心的感谢。 其次,我要感谢大学四年中所有的任课老师和辅导员在学习期间对我的严格要求,感谢他们对我学习上和生活上的帮助,使我了解了许多专业知识和为人的道理,能够在今后的生活道路上有继续奋斗的力量。 另外,我还要感谢大学四年和我一起走过的同学朋友对我的关心与支持,与他们一起学习、生活,让我在大学期间生活的很充实,给我留下了很多难忘的回忆。 最后,我要感谢我的父母对我的关系和理解,如果没有他们在我的学习生涯中的无私奉献和默默支持,我将无法顺利完成今天的学业。 四年的大学生活就快走入尾声,我们的校园生活就要划上句号,心中是无尽的难舍与眷恋。从这里走出,对我的人生来说,将是踏上一个新的征程,要把所学的知识应用到实际工作中去。 回首四年,取得了些许成绩,生活中有快乐也有艰辛。感谢老师四年来对我孜孜不倦的教诲,对我成长的关心和爱护。 学友情深,情同兄妹。四年的风风雨雨,我们一同走过,充满着关爱,给我留下了值得珍藏的最美好的记忆。 在我的十几年求学历程里,离不开父母的鼓励和支持,是他们辛勤的劳作,无私的付出,为我创造良好的学习条件,我才能顺利完成完成学业,感激他们一直以来对我的抚养与培育。 最后,我要特别感谢我的导师赵达睿老师、和研究生助教熊伟丽老师。是他们在我毕业的最后关头给了我们巨大的帮助与鼓励,给了我很多解决问题的思路,在此表 57 本科生毕业设计(论文) 示衷心的感激。老师们认真负责的工作态度,严谨的治学精神和深厚的理论水平都使我收益匪浅。他无论在理论上还是在实践中,都给与我很大的帮助,使我得到不少的提高这对于我以后的工作和学习都有一种巨大的帮助,感谢他耐心的辅导。在论文的撰写过程中老师们给予我很大的帮助,帮助解决了不少的难点,使得论文能够及时完成,这里一并表示真诚的感谢。 58 因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- nryq.cn 版权所有 赣ICP备2024042798号-6
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务