超声波测距系统的研究毕业论文

上传人:仙*** 文档编号:32722068 上传时间:2021-10-15 格式:DOC 页数:50 大小:692KB
返回 下载 相关 举报
超声波测距系统的研究毕业论文_第1页
第1页 / 共50页
超声波测距系统的研究毕业论文_第2页
第2页 / 共50页
超声波测距系统的研究毕业论文_第3页
第3页 / 共50页
点击查看更多>>
资源描述
大学本科生毕业设计(论文)摘 要超声波具有指向性强,能量消耗缓慢,传播距离较远等优点,所以,在利用传感器技术和自动控制技术相结合的测距方案中,超声波测距是目前应用最普遍的一种,它广泛应用于防盗、倒车雷达、水位测量、建筑施工工地以及一些工业现场。本课题详细介绍了超声波传感器的原理和特性,以及Atmel公司的AT89C51单片机的性能和特点,并在分析了超声波测距的原理的基础上,指出了设计测距系统的思路和所需考虑的问题,给出了以AT89C51单片机为核心的低成本、高精度、微型化数字显示超声波测距仪的硬件电路和软件设计方法。该系统电路设计合理、工作稳定、性能良好、检测速度快、计算简单、易于做到实时控制,并且在测量精度方面能达到工业实用的要求。关键词:超声波;单片机;测距;AT89C51AbstractUltrasonic wave has strong pointing to nature, slowly energy consumption, propagating distance farther ,so ,in utilizing the scheme of distance finding that sensor technology automatic control technology combine together ,ultrasonic wave finds range to use the most general one at present ,it applies to guard against theft ,move backward the radar ,water level measuring ,building construction site and some industrial scenes extensivelyThis subject has introduced principle and characteristic of the ultrasonic sensor in detail ,and the performance and characteristic of one-chip computer AT89C51 of Atmel Company ,and on the basis of analyzing principle that ultrasonic wave finds range ,the systematic thinking and questions needed to consider that have pointed out that designs and finds range ,provide low cost , the hardware circuit of high accuracy , ultrasonic range finder of miniature digital display and software design method taking AT89C51 as the core ,this circuit of system is reasonable in design, working stability, performance good measuring speeding soon , calculating simple , apt to accomplish real-time control ,and can reach industrys practical demand in measuring the precision .Key Words: Ultrasonic wave;One-chip computer;Range finding;AT89C51II目 录第1章 概 述11.1 单片机应用系统概述11.2 超声波测距系统的研究背景与意义2第2章 超声波测距的原理32.1 超声波的基本理论32.2 超声波测距系统原理4第3章 系统主要硬件设计73.1 方案论证与比较73.2 单片机基础知识113.3 单片机主机系统电路183.4 温度采集DS18B20电路203.5 LED数码管显示电路213.6 超声测距系统软件实现21第4章 系统软件设计234.1 系统程序的结构234.2 系统主程序254.3 40KHZ超声波发生及中断子程序264.4 DS18B20温度采集程序274.5 距离计算程序304.6 LCD显示程序31第5章 试验分析335.1 实验测试335.2 试验数据335.3 误差分析335.4 系统改进34总 结35参考文献36致 谢37附录1 超声波测距系统原理图38附录2 实验源程序3946第1章 概 述1.1 单片机应用系统概述单片机是一个单芯片形态、面向控制对象的嵌入式应用计算机系统。它的出现及发展使计算机技术从通用型数值计算领域进入到智能化的控制领域。从此,计算机技术在两个重要领域通用计算机领域和嵌入式计算机领域都得到了极其重要的发展,并正在深深地改变着我们的社会。嵌入式系统无疑是当前最热门、最具有发展前景的IT应用之一。嵌入式系统的应用可以使传统的电子系统升级成为智能化的电子产品,使其成为具有“生命”的现代化智能系统。嵌入式系统一般应用于对实时响应要求较高的设备中,单片机作为嵌入式系统的核心部件,其应用使电子系统的智能化出现了意想不到的效果,常常无需对硬件资源做任何改动,只需更新系统软件就能使系统功能升级。现代社会中嵌入式系统无处不在,早已被应用在国防、国民经济、以及人们日常生活的各个领域,主要可以归纳为以下几个方面。(1)军事装备:各种武器控制(火炮控制、弹道控制、炮弹引信等),坦克、舰船、轰炸等各种电子装备,雷达、电子对抗、军事通讯装备等。(2)家用电器:各种家电产品,如数字电视、机顶盒、数码相机、VCD、DVD、可视电话、洗衣机、电冰箱、手机、智能玩具等。(3)工业控制:各种智能仪器仪表、数控装置、可编程控制器、分布式控制系统、工业机器人、机电一体化设备、汽车电子设备等。(4)商用设备:各种收款机、POS系统、电子秤、条形码阅读器、商务终端、IC卡输入设备、自动柜员机、防盗系统等。(5)办公用品:复印机、打印机、传真机、扫描仪、手机、个人数字助理(PDA)、变频空调设备、通信终端、程控变换机、网络设备等。(6)医疗电子设备:各种医疗电子仪器,如X光机、超声诊断仪、心脏起搏器、监护仪器等,以及辅助诊断系统、专家系统等。单片机应用系统的设计包括单片机基本扩展、外围电路设计和程序设计、单片机应用系统开发环境、系统可靠性设计、电磁兼容性设计等内容。通常开发一个单片机系统的步骤如下:总体方案设计设计单元电路安装调试编写软件程序在线调试软硬件图 11 设计步骤1.2 超声波测距系统的研究背景与意义在基于传统的测量距离存在不可克服的缺陷。例如,液面测量就是一种距离测量,传统的电极法是采用差位分布电极,通过给电或脉冲来检测液面,电极长期浸泡于水中或其他液体中,极易被腐蚀、电解,失去灵敏性。由于超声波具有强度大,方向性好等特点,利用超声波测量距离就可以解决这些问题。随着人们生活水平的提高,城市发展建设的加快,城市车辆逐渐增多,因为停车不当而造成的交通事故也越来越多。为了避免此类事故的发生,一个能够直观测出汽车与障碍物之间的距离的装置就变得十分重要。它可以及时将车辆与障碍物之间的距离反应出来,给司机以更准确的信息和更多的反应时间,减少事故的发生。此外,超声波测量距离技术还在工业控制、勘探测量、机器人定位和军事应用等领域得到了广泛的应用。超声波测距电路可以由传统的模拟或者数字电路构建,但是基于这些传统电路构建的系统往往可靠性差,调试困难,可扩展性差,所以基于单片机的超声波测距系统被广泛的应用。通过简单的外围电路发生和接收超声波,单片机通过采样获取到超声波的传播时间,用软件来计算出距离,并且可以采集环境温度进行测距补偿,其测量电路小巧,精度高,反映速度快,可靠性好。第2章 超声波测距的原理2.1 超声波的基本理论超声波是一门以物理、电子、机械、以及材料科学为基础的、各行各业都要使用的通用技术之一。该技术在国民经济中,对提高产品质量,保障生产安全和设备安全运作,降低生产成本,提高生产效率特别具有潜在能力。因此,我国对超声波的研究特别活跃。超声技术是通过超声波的产生、传播以及接收的物理过程完成的。超声波具有聚束、定向及反射、投射等特性。按超声波振动辐射大小不同大致可以分为:用超声波使物体或物性变化的功率应用,称之为功率超声;用超声波获取信息,称为检测超声。超声波是听觉阈值之外的振动,其频率范围在10 Hz到10亿KHz,其中通常的频率大约在10000Hz到300万Hz之间。超声波在超声场(被超声波充满的范围)传播时,超声波就像处在一种无限的介质中,超声波自由地向外扩散;反之,如果超声波的波长与相邻介质的尺寸相近,则超声波受到界面限制不能自由的向外扩散。于是超声波在传播过程中有如下的特性和作用:1 超声波的传播速度超声波在介质中可以产生三种形式的振荡波:横波质点振动方向垂直于传播方向的波;纵波质点振动方向与传播方向一致的波;表面波质点振动介于纵波和横波之间,沿表面传播的波。横波只能在固体中传播,纵波能在固体液体中和气体中传播,表面波随深度的增加其衰减很快。为了测量各种状态下的物理量多采用纵波形式的超声波。超声波的频率越高,越与光波某些特性相似。2 超声波对声场产生的作用(1) 机械作用超声波传播过程中,会引起介质质点交替的压缩与伸张,构成了压力的变化,这种压力的变化将引起机械效应。超声波引起质点的运动,虽然位移和速度不大,但是与超声波振动的频率的平方成正比的质点的加速度却很大。有时足以达到破坏介质的程度。(2) 空化作用在流体动力学指出,存在于液体中的微气泡在声场的作用下振动,当声压达到一定的值时,气泡将迅速膨胀,然后突然闭合,在气泡闭合时产生冲击波,这种膨胀、闭合、振动等一系列动力学过程称为空化。(3) 热学作用如果超声波作用于介质时被介质所吸收,实际上也就是有能量吸收,同时,由于超声波的振动,使介质产生强烈的高频振荡介质相互摩擦产生热热量,这种能量使介质温度升高。 3 超声波传感器超声波传感器主要有电致伸缩和磁致伸缩两类,电致伸缩采用双压电陶瓷晶片制成,具有可逆特性。压电陶瓷片具有如下特性:当在其两端加上大小和方向不断变化的交流电压时,就会产生“压电效应”,使压电陶瓷也产生机械变形,这种机械变形的大小以及方向与外加电压的大小和方向成正。也就是说,若在压电晶片两边加以频率为的交流电电压时,它就会产生同频率的机械振动,这种机械振动推动空气的张弛,当落在音频范围内时便会发出声音。反之,如果由超声波机械振动作用于陶瓷片使其发生微小的形变时,那么压电晶片也会产生与振动频率相同的微弱的交流信号。超声波传感器结构如下: 图 21元件内部结构 图 22超声波外部结构2.2 超声波测距系统原理超声波测距原理是通过超声波发射器向某一方向发射超声波,在发射时刻的同时开始计时,超声波在空气中传播时碰到障碍物就立即返回来,超声波接收器收到反射波就立即停止计时。超声波在空气中的传播速度为v ,而根据计时器记录的测出发射和接收回波的时间差t ,就可以计算出发射点距障碍物的距离S ,即: S = v * t / 2 这就是所谓的时间差测距法。由于超声波也是一种声波, 其声速C与温度有关,表1列出了几种不同温度下的声速。在使用时,如果温度变化不大, 则可认为声速是基本不变的。常温下超声波的传播速度是334 米/秒,但其传播速度V 易受空气中温度、湿度、压强等因素的影响,其中受温度的影响较大,如温度每升高1 , 声速增加约0. 6 米/ 秒。如果测距精度要求很高, 则应通过温度补偿的方法加以校正(本系统正是采用了温度补偿的方法)。已知现场环境温度与常温的差值为T 时, 超声波传播速度V 的计算公式为:V = 331.45 + 0.607T 限制该系统的最大可测距离存在四个因素:超声波的幅度、反射物的质地、反射和入射声波之间的夹角以及接收换能器的灵敏度。接收换能器对声波脉冲的直接接收能力将决定最小可测距离。为了增加所测量的覆盖范围,减少测量误差,可采用多个超声波换能器分别作为多路超声波发射/接收的设计方法。由于超声波发球声波范围,其波速c与温度有关。下图列出了几种不同温度下的波速:表 21 温度与声速关系温度-30-20-100102030100声速米秒313319325332338344349386单片机发出40kHZ的信号,经放大后通过超声波发射器输出;超声波接收器将接收到的超声波信号经放大器放大,用锁相环电路进行检波处理后,启动单片机中断程序,测得时间为t,再由软件进行判别、计算,得出距离数并送液晶显示器显示。超声波测距原理框图如图所示。超声波发射器放大电路超声波接收器放大电路锁相环检波器定时器单片机控制显示器 图 23超声波测距仪原理框图第3章 系统主要硬件设计3.1 方案论证与比较超声波发射电路:下图是由非门构成的一个振荡器发送电路,用非门构成的电路简单,调试容易。很容易通过软件控制。图中把两个非门的输出接到一起的目的是为了提高其吸入电流,电路驱动能力提高。且成本低廉。图 31 超 声 波 发 射 电 路从图中可知,当输入的信号为高电平时,上面经过两级反向CSB40T的1引脚为高电平,下面经过一级反向后为低电平;当输入信号为低电平时,正好相反,实现了振荡的信号驱动CSB40T,只要控制信号接近40KHz,就能产生超声波。超声波发生器包括超声波产生电路和超声波发射控制电路两个部分,超声波探头(“也称为超声波换能器”)的型号选用CSB40T(其中心频率为40KHz)。可以采用软件产生40KHz的超声波信号,通过输出引脚输入至驱动器,经过动器驱动后推动探头产生超声波。这种方法的特点是充分利用软件,灵活性好,但是需要设计一个驱动电流为100mA以上的驱动电路。第二种方法是利用超声波专用发生电路或通用发生电路产生超声波信号,并直接驱动超声波换能器产生超声波。这种方法的特点是无需驱动电路,但缺乏灵活性。本次我们采用第一种方法产生超声波,非门可以选用74LS04, 74HC04内部集成了六个反向器,同时具有放大的功能。74HC04的管脚如下图所示。图 32 74LS04管脚图超声波接收电路:超声波接收包括接收探头,信号放大以及波形变换电路三部分,超声波接收探头必须与发送探头相同的型号,否则可能导致接收效果甚至不能接收。由于超声波接收探头的信号非常弱,所以必须用放大器放大,放大后的正弦波不能被微处理器处理,所以必须经过波形变换。本次设计为了降低调试难度,减少成本,提供系统可靠性,所以我们采用了一种用在彩色电视机上面的一种红外接收检波芯片CX20106,由于红外遥控的中心频率在38KHz,和超声波的40KHz很接近,所以可以用来做接收电路。CX20106是日本索尼公司的产品,采用单列8引脚的直插式封装,内部包含自动偏置控制电路、前置放大电路、带通滤波、峰值检波、积分比较器、斯密特整形输出电路,配合少量外接元件就可以对38KHz左右的信号的接收与处理,该芯片内部。超声波接收及信号处理电路是此系统设计和调试的一个难点。超声波接收器接收反射的超声波转换为40KHz毫伏级的电压信号,需要经过放大、处理、用于触发单片机中断INT0。一方面传感器输出信号微弱,同时根据反射条件不同信号大小变化较大,需要放大倍数大约为100到5000倍,另一方面传感器输出阻抗较大,这就需要高输入阻抗的多级放大电路,这就会引入两个问题:高输入阻抗容易接收干扰信号,同时多级放大电路容易自激振荡。参考各种资料最后选用了SONY公司的专用集成前置放大器CX20106达到了比较好的效果。CX20106由:前置放大器、限幅放大器、带通滤波器、检波器、积分器、整型电路组成。其中的前置放大器具有自动增益控制功能,可以保证在超声波传感器接收较远反射信号输出微弱电压时放大器有较高的增益,在近距离输入信号强时放大器不会过载。其带通滤波器中心频率可由芯片脚5的外接电阻调节。其主要指标:单电源5V供电,电压增益77 - 79DB , 输入阻抗27 K , 滤波器中心频率30 K- 60 KHz。功能可描述为: 在接收到与滤波器中心频率相符的信号时,其输出脚7脚输出低电平。芯片中的带通滤波器、积分器等使得它抗干扰能力很强。使用CX20106A集成电路对接收探头受到的信号进行放大、滤波。其总放大增益80db。CX20106构成本次设计接收电路如下图:图 33 cx20106接收电路使用CX20106A集成电路对接收探头受到的信号进行放大、滤波。其总放大增益80db。以下是CX20106A的引脚注释。1脚:超声信号输入端,该脚的输入阻抗约为40k。2脚:该脚与地之间连接RC串联网络,它们是负反馈串联网络的一个组成部分,改变它们的数值能改变前置放大器的增益和频率特性。增大电阻R4或减小C4,将使负反馈量增大,放大倍数下降,反之则放大倍数增大。但C4的改变会影响到频率特性,一般在实际使用中不必改动,推荐选用参数为R4=4.7,C4=1F。3脚:该脚与地之间连接检波电容,电容量大为平均值检波,瞬间相应灵敏度低;若容量小,则为峰值检波,瞬间相应灵敏度高,但检波输出的脉冲宽度变动大,易造成误动作,推荐参数为3.3f。4脚:接地端。5脚:该脚与电源间接入一个电阻,用以设置带通滤波器的中心频率f0,阻值越大,中心频率越低。例如,取R=200k时,f042kHz,若取R=220k,则中心频率f038kHz。6脚: 该脚与地之间接一个积分电容,标准值为330pF,如果该电容取得太大,会使探测距离变短。7脚:遥控命令输出端,它是集电极开路输出方式,因此该引脚必须接上一个上拉电阻到电源端,推荐阻值为22k,没有接受信号是该端输出为高电平,有信号时则产生下降。8脚:电源正极,4.55V。为了使测量更加精准我们直接采用HC-SR04超声波收发模块,它可提供2cm-400cm的非接触式距离感测功能。测量精度可达到3mm(本作品因测量工具限制,测量精度在10mm)。模块包括超声波发射器、接收器及其控制电路。基本工作原理:图 34 按时打发打发(1) 采用IO口TRIG触发测距,给至少10us的高电平信号。(2) 模块自动发射8个40khz的方波,并检测信号是否有返回。(3) 有信号返回,通过IO端口ECHO输出一个高电平,高电平持续的时间就是超声波从发射到接收所用的时间。测量距离=高电平持续时间*声速/2。如实物图所示:VCC提供5V电压,GND接地,GRIG触发控制信号输入,ECHO回响信号输出等四只线。表 31电气参数电气参数HC-SR04超声波模块工作电流15mA工作频率40Hz工作电压DC5V最远射程4m最近射程2cm测量角度15度输入触发信号10us的TTL脉冲输出回响信号输出TTL电平信号,与射程成正比规格尺寸45*20*15mm该模块只需要提供1个10uS以上的脉冲触发信号,其内部将发出8个40KHz周期电平并检测回波。一旦检测到有回波信号则输出回响信号。回响信号的脉冲宽度与所测的距离成正比。由此通过发射信号到收到回响信号时间间隔可以计算得到距离。测距时需注意被测物体面积不少于0.5平方米且平面尽量要平整,否则影响测量的结果。此外此模块不宜带电连接,若要带电连接,则先让模块的GND端先连接,否则会影响模块的正常工作。3.2 单片机基础知识单片微型计算机简称单片机,特别适用于控制领域,故又称为微控制器(Microcontroller)。单片微型计算机是微型计算机的一个重要分支,也是一种非常活跃且颇具生命力的机种。通常,单片机由单块集成电路芯片构成,内部包含有计算机的基本功能部件:CPU(Central Processing Unit,中央处理器)、存储器和I/O接口电路等。因此,单片机只需要与适当的软件及外部设备相结合,便可成为一个单片机控制系统。3.2.1 单片机的内部结构单片机内部结构如图3-5所示。图 35 单片机内部结构与单片机相比,微型计算机是一种多片机系统。它是由中央处理器(CPU)芯片、ROM芯片、RAM芯片和I/O接口芯片等通过印刷电路板上总线(地址总线AB、数据总线DB和控制总线CB)连成一体的完整计算机系统。其中,中央处理器(CPU)的字长长,功能强大;ROM和RAM的容量很大;I/O接口的功能也大,这是单片机无法比拟的。因此,单片机在结构上与微型计算机十分相似,是一种集微型计算机主要功能部件于同一块芯片上的微型计算机,并由此而得名。由图3-5可见,中央处理器(CPU)是通过内部总线与ROM、RAM、I/O接口以及定时器/计数器相连的,这个结构并不复杂,但并不好理解。为此,在分析单片机工作原理前,先对图3-5中各部件作一基本介绍是十分必要的。1.存储器在单片机内部,ROM和RAM存储器是分开制造的。通常,ROM存储器容量较大,RAM存储器的容量较小,这是单片机用于控制的一大特点。(1)ROM ROM(Read Only Memory,只读存储器)一般为132K字节,用于存放应用程序,故又称为程序存储器。由于单片机主要在控制系统中使用,因此一旦该系统研制成功,其硬件和应用程序均已定型。为了提高系统的可靠性,应用程序通常固化在片内ROM中,根据片内ROM的结构,单片机又可分为无ROM型、ROM型和EPROM(Erasable Programmable Read Only Memory,可擦除可编程只读存储器)型三类。近年来,又出现了EEPROM(Electrically Erasable Programmable Read Only Memory,电擦除可编程只读存储器)和Flash型ROM存储器。无ROM型单片机特点是片内不集成ROM存储器,故应用程序必须固化到外接的ROM存储器芯片中,才能构成有完整功能的单片机应用系统。ROM型单片机内部,其程序存储器是采用掩膜工艺制成的,程序一旦固化进去便永远不能修改。EPROM型单片机内部的程序存储器是采用特殊FAMOS管构成的,程序一旦写入,也可以通过特殊手段加以修改。因此,EPROM型单片机是深受研制人员欢迎的。 (2)RAM通常,单片机片内RAM(Random Access Memory,随机存取存储器)容量为64256字节,最多可达48K字节。RAM主要用来存放实时数据或作为通用寄存器、数据堆栈和数据缓冲器之用。2.中央处理器(CPU)中央处理器的内部结构极其复杂,要像电子线路那样画出它的全部电路原理图来加以分析介绍是根本不可能的。下面简单概述一下几个主要部分的工作原理。(1)运算器运算器用于对二进制数进行算术运算和逻辑操作;其操作顺序在控制器控制下进行。运算器由算术逻辑单元ALU、累加器A、通用寄存器R0、暂存器TMP和状态寄存器PSW等五部分组成。累加器A(Accumulator)是一个具有输入/输出能力的移位寄存器,由8个触发器组成。TR(Temporary Register,暂存器)也是一个8位寄存器,用于暂存另一操作数。ALU(Arithmetic and Logical Unit,算术逻辑单元)主要由加法器、移位电路和判断电路等组成,用于对累加器A和暂存器TMP中两个操作数进行四则运算和逻辑操作。PSW(Program Status Word,程序状态字)也由8位触发器组成,用于存放ALU操作过程中形成的状态。(2)控制器控制器是发布操作命令的机构,是计算机的指挥中心,相当于人脑的神经中枢。控制器由指令部件、时序部件和微操作控制部件等三部分组成。指令部件是一种能对指令进行分析、处理和产生控制信号的逻辑部件,也是控制器的核心。指令是一种能供机器执行的控制代码,有操作码和地址码两部分。时序部件由时钟系统和脉冲分配器组成,用于产生微操作控制部件所需的定时脉冲信号。微操作控制部件可以为ID(Instruction Decoder,指令译码器)输出信号配上节拍电位和节拍脉冲,也可与外部进来的控制信号组合,共同形成相应的微操作控制序列,以完成规定的操作。3.内部总线单片机内部总线是CPU连接片内各主要部件的纽带,是各类信息传送的公共通道。内部总线主要由三种不同性质的连线组成,它们是地址线、数据线和控制线/状态线。地址线主要用来传送存储器所需要的地址码或外部设备的设备号,通常由CPU发出并被存储器或I/O接口电路所接收。数据线用来传送CPU写入存储器或经I/O接口送到输出设备的数据,也可以传送从存储器或输入设备经I/O接口读入的数据。因此,数据线通常是双向信号线。控制/状态线有两类:一类是CPU发出的控制命令,如读命令、写命令、中断响应等;另一类是存储器或外设的状态信息,如外设的中断请求、存储器忙和系统复位信号等。4.I/O接口和特殊功能部件I/O接口电路有串行和并行两种。串行I/O用于串行通信,它可以把单片机内部的并行8位数据(8位机)变成串行数据向外传送,也可以串行接收外部送来的数据并把它们变成并行数据送给CPU处理。并行I/O口电路可以使单片机和存储器或外设之间并行地传送8位数据(8位机)。 3.2.2 单片机的基本工作原理单片机是通过执行程序来工作的,机器执行不同程序就能完成不同的运算任务。因此,单片机执行程序的过程实际上也体现了单片机的基本工作原理。为此,先从指令程序谈起。1.单片机的指令系统和程序编制前面已经介绍,指令是一种可以供机器执行的控制代码,故它又称为指令码(Instruction Code)。指令码由操作码(Operation Code)和地址码(Address Code)构成:操作码用于指示机器执行何种操作;地址码用于指示参加操作的数在哪里。指令码的二进制形式既不便于记忆,又不便于书写,故人们通常采用助记符形式来表示,表3-2所列。表3-2 指令的三种形式指令的二进制形式指令的十六进制形式指令的汇编形式01110100 data174 data1MOV A,#data1;Adata100100100 data224 data2ADD A,#data2; Adata1+data210000000 111111080 FESJMP $;停机指令的集合或指令的全体称为“指令系统”(Instruction System)。微处理器类型不同,它的指令系统也不一样。所谓程序就是采用指令系统中的指令根据题目要求排列起来的有序指令的集合。程序的编制称为“程序设计”。通常,设计人员采用指令的汇编符(即助记符)形式编程,这种程序设计称为“汇编语言程序设计”。显然,设计人员如果不熟悉机器的指令系统是无法编出优质高效的程序的。2.单片机执行程序的过程为了弄清单片机的工作原理,现以如下的Y=5+10求和程序来说明单片机的工作过程。7405HMOVA,#05H;A05H240AHADDA,#0AH;A5+1080FEHSJMP$;停机该程序由三条指令组成,每条指令均为双字节指令(即第一字节为操作码,第二字节为地址码)。第一条指令的含义是把05H传送到累加器A中;第二条指令是加法指令,它把累加器A中的5和立即数10相加,结果保留到累加器A中;第三条是停机指令,机器执行后处于动态停机状态。3.2.3 单片机AT89C51的特性AT89C系列单片机是Atmel公司生产的一款标准型单片机。其中数字9表示内含Flash存储器,C表示CMOS工艺。其管脚图如图3-6所示。 图3-6 AT89C单片机管脚图AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS 8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。1主要特性:与MCS-51 兼容 4K字节可编程闪烁存储器 寿命:100写/擦循环数据保留时间:10年全静态工作:0Hz-24Hz三级程序存储器锁定1288位内部RAM32可编程I/O线两个16位定时器/计数器5个中断源 可编程串行通道低功耗的闲置和掉电模式片内振荡器和时钟电路 2管脚说明:VCC:供电电压。GND:接地。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流,这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,如下所示: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),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。3振荡器特性:XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。4芯片擦除:整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms 来完成。在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU停止工作。但RAM,定时器,计数器,串口和中断系统仍在工作。在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。3.3 单片机主机系统电路3.3.1 复位电路 单片机在RESET端加一个大于20ms正脉冲即可实现复位,上电复位和按钮组合的复位电路如下: 图 37 蜂鸣器电路在系统上电的瞬间,RST与电源电压同电位,随着电容的电压逐渐上升,RST电位下降,于是在RST形成一个正脉冲。只要该脉冲足够宽就可以实现复位,即ms。一般取R1,C22uF。当人按下按钮S1时,使电容C1通过R1迅速放电,待S1弹起后,C再次充电,实现手动复位。R1一般取200。3.3.2 时钟电路 当使用单片机的内部时钟电路时,单片机的XATL1和XATL2用来接石英晶体和微调电容,如图所示,晶体一般可以选择3M24M,电容选择30pF左右。我们选择晶振为12MHz,电容33pF。图 38 时钟电路3.3.3 按键电路 我们通过P1.0来启动测量,程序中通过查询P1.0的电平来检测是否按键被按下,电路原理如下: 当按下按键时P1.0为低电平,单片机通过 查询到低电平开始测量距离,当松开按键,P1.0即为高电平。在软件中通过软件延时来消除按键的机械抖动。 图 39 按键电路3.3.4 蜂鸣器电路 本次设计通过一只蜂鸣器来提示用户按键按下了,现在单片机开始了测距。蜂鸣器时一块压电晶片,在其两端加上35V的直流电压,就能产生3KHz的蜂鸣声。电路如下图 通过单片机软件产生3KHz的信号从P2.1口送到三极管的基极,控制着电压加到蜂鸣器上,驱动蜂鸣器发出声音。 图 310 蜂鸣器电路3.4 温度采集DS18B20电路波的速度变化为0.6m/s。可见温度对声速影响很大,测量时必须进行温度补偿。常用的温度补偿方法有:热敏电阻、铂电阻、热电偶以及温度传感器补偿。使用传统的温度传感器,硬件电路复杂,而且输出为电压或是电流值,需要进行周D转换。使用传统的温度传感器,硬件电路复杂,而且输出为电压或电流值,需要进行川D转换。DS18B20温度传感器是美国DALLAS半导体公司推出的一种改进型智能温度传感器l2v,测温范围为55125,最大分辨率可达0.0625。物理学告诉我们,超声波在空气中的传播速度为:V=334.1+0.61*T,由此可见,超声波的速度和温度密切关系,即温度每增加1C,超声波速度约增加0.61m/s,本次我们考虑温度补偿,以使我们的设计更加精确,温度的采集通常使用DS18B20一线式数字温度传感器,电路非常简洁,具体电路图如下图所示。DS18B20是美国DALLS公司推出的DS1820的替代产品,具有9、10、11、12位的转换精度,未编程时默认的精度是12位,测量精度一般为0.5C,软件处理后可以达到0.1C,温度输出以16位符号扩展的二进制数形式提供,低位在先,以0.0625C/LSB形式表达。其中高五位为扩展符号位。转换周期与转换精度有关,9位转换精度时,最大转换时间为93.7 ms,12位转换精度时,最大转换时间为750ms。DS18B20引脚判断方法是:字面朝人,从左到右依次是1 (GND)、2(输入/输出)、3(VDD)。图中的R13为上拉电阻,阻值选5K左右。 图 311 一线式数字温度传感器3.5 LED数码管显示电路显示电路采用简单实用的4位共阳LED数码管动态显示,段码用PNP三极管驱动。对于动态显示,一般将所有位的段选线的同名端联在一起,由一个8位刀O口控制,形成段选线的多位复用。而各位的公共阳极或公共阴极则分别由相应的UO口线控制,实现各位形成段的分时选通,即同一时刻只有被选通位才能显示相应的字符,而其他所有位都是熄灭的。由于人眼有视觉暂留现象,只要每位显示间隔足够短,则会造成多位同时点亮的假象。这就需要单片机不断地对显示进行控制,牺牲单片机的CPU时间来换取元件的减少以及显示功耗的降低。3.6 超声测距系统软件实现单片机和其开发应用系统具有语言简洁、可移植性好、表达能力强、表达方式灵活、可进行结构化设计、可以直接控制计算机硬件、生成代码质量高、使用方便等优点。本超声测距系统就是用八T89551单片机开发设计的。它采用模块化设计,由主程序、超声波发生子程序、超声波接收中断程序、测温子程序及显示子程序组成21。LED(Light-Emitting Diode,发光二极管)有七段和八段之分,也有共阴和共阳两种。LED数码管结构简单,价格便宜。图1-7示出了八段LED数码显示管的结构和原理图。图3-12(a)为八段共阴数码显示管结构图,图3-12(b)是它的原理图,图3-12(c)为八段共阳LED显示管原理图。八段LED显示管由八只发光二极管组成,编号是a、b、c、d、e、f、g和SP,分别与同名管脚相连。七段LED显示管比八段LED少一只发光二极管SP,其他与八段相同。图 312 八段LED数码显示管原理和结构单片机对LED管的显示可以分为静态和动态两种。静态显示的特点是各LED管能稳定地同时显示各自字形;动态显示是指各LED轮流地一遍一遍显示各自字符,人们由于视觉器官惰性,从而看到的是各LED似乎在同时显示不同字形。为了减少硬件开销,提高系统可靠性并降低成本,单片机控制系统通常采用动态扫描显示。但是由于本系统所用的单片机引脚少,剩余引脚很多,而且也只需显示三位字符,所以,采用了静态的显示方式,且采用了软件译码,这样单片机引脚输出可直接接到LED显示管上。这样省去了外部复杂的译码电路。第4章 系统软件设计4.1 系统程序的结构本系统采用模块化设计,由主程序、发射子程序、接收子程序、定时子程序、显示子程序等模块组成。该系统的主程序处于键控循环工作方式,当按下测量键时,主程序开始调用发射子程序、查询接收子程序、定时子程序,并把测量结果用显示子程序在数码显示器上显示出来。 (1)DS18B20温度传感器接口模块,分为初始化程序、写入命令以及读取子程序等部分;(2)基于LED数码管的显示模块,分为数码管段选和位选。(3)温度补偿与距离计算模块、分为超声波发送控制程序、接收处理程序、温度补偿子程序等; (4)本次设计使用C语言编写程序,C语言相比汇编有许多的优势;编译器使用Keil进行程序编译,Keil功能强大使用方便。主程序,分为系统初始化、按键处理以及各个子程序的调度管理等部分。如下图所示描述了各个模块的关系:开 始N初始化定时器模块,液晶模块,超声波模块启动超声波高电平计数 NYN开定时器低电平计数 计数计数计数Y定时中断NY Y关定时器液晶显示超出范围显示距离结束图 41 流程图4.2 系统主程序主程序首先是对系统环境初始化,设置定时器T0工作模式为16位定时计数器模式,置位总中断允许位EA并给显示端口PO和PZ清O。然后调用超声波发生子程序控制发射电路送出一组超声波脉冲,发射后等待1ms打开外部中断刀呵TO。当主程序检测到接收成功的标志位后,将计数器TO中的数与温度补偿后的声速按距离计算公式,即可得被测物体与测距器之间的距离。测出距离后结果将以十进制BCD码方式送往LED显示,然后再发超声波脉冲重复测量过程。等待1ms的原因是,超声波发射探头发射的超声波一般都会存在余波干扰,有部分声波会直接传到接收探头,经接收电路放大后,系统就会把它误认为是检测的回波信号,发射后等待1ms可以避免检测到余波信号,当然这也会导致测量盲区的存在。本设计主程序的思想如下: (1)温度为两位显示,距离为四位显示单位为mm; (2)温度每隔900ms采样一次,DS18B20在12位精度下转换周期为750ms ,故900ms满足该速度要求;超声波每隔60ms发送一次。 (3)系统采用AT89S51的内时钟:12MHz; (4)超声波发送一定时间后才开始启动检测,避免直达信号造成误判。所以系统最小测量约为1CM; 系统主程序如下:void main( void ) TMOD=0x11; /设T0为方式1,GATE=1;TH0=0;TL0=0; TH1=0xf8; /2MS定时TL1=0x30;ET0=1; /允许T0中断ET1=1; /允许T1中断TR1=1; /开启定时器EA=1; /开启总中断while(1) while(!RX);/当RX为零时等待 TR0=1; /开启计数 while(RX);/当RX为1计数并等待 TR0=0;/关闭计数 Conut(); /计算4.3 40KHZ超声波发生及中断子程序在系统中,AT89551对发射的控制就是对40kHz方波产生电路的控制。超声波发生子程序的作用是通过Pl.0端口发送一组超声波脉冲序列(频率约40kHz的方波),脉冲宽度为12群:左右,在程序中用定时器的自动重装载方式实现,脉冲发射同时把计数器T0打开进行计时,等待回波反射到接收探头。超声波发生子程序较简单,但要求程序运行时间准确,C语言程序如下:void zd3() interrupt 3 /T1中断用来扫描数码管和计800MS启动模块 TH1=0xf8; TL1=0x30; Display(); timer+; if(timer=400) timer=0; TX=1; /800MS 启动一次模块 _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); TX=0; 超声波接收中断程序:超声测距系统主程序利用外中断0检测返回超声波信号,一旦接收到返回超声波信号(即INTO引脚出现低电平),立即进入中断程序。进入该中断后就立即关闭计时器TO停止计时,并将测距成功标志字赋值1。如果当计时器溢出时还未检测到超声波返回信号,则定时器刊溢出中断将外中断0关闭,并将测距成功标志字赋值2以表示本次测距不成功。4.4 DS18B20温度采集程序 DS18B20的工作流程是,初始化ROM操作指令存储器操作指令数据传输。其工作时序包括:初始化时序、写时序和读时序。(1)DS18B20的初始化DS18B20的初始化的实质是使DS18B20复位,主要是通过判断存在脉冲的形式来实现的。以延时等待,然后通过输入/输出线读存在脉冲,为低说明存在,复位成功;否则说明不存在,复位失败,必须对DS18B20重新初始化。ow_reset(void)char presence=1;while(presence) while(presence) DQ=1;_nop_();_nop_();/从高拉倒低DQ=0; delay(50); /
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!