1、 超声波传感器及应用超声波测距摘要:介绍了一种基于 AT89C52 单片机的超声波测距系统,由 555 和运放及比较器配合超声波传感器有效组成了超声波的发射电路和接收电路。同时在数据处理,盲区消隐方面提出了有效解决方法! 从而提高了检测的精度及灵敏度,以及用 LCD液晶显示器配合美妙的音乐进行显示。本文主要阐述了超声测距系统的硬件电路构成、工作原理及软件设计方法。该系统硬件结构简单、工作可靠,有良好的测量精度和灵敏度。关键字 超声波 测距 LCD 液晶前言随着科技的迅猛发展越来越多科技成果被广泛的运用到人们的日常生活当中,给我们的生活带来了诸多方便。这一设计就是本着这个宗旨出发,利用超声波的特
2、性来为我们服务。人们能听到声音是由于物体振动产生的,它的频率在 20HZ-20KHZ 范围内,超过 20KHZ 称为超声波,低于 20HZ 的称为次声波。常用的超声波频率为几十 KHZ-几十 MHZ。由于超声波指向性强,因而常于距离的测量。利用超声波检测往往比较迅速、方便、计算简单、易于做到实时控制,并且在测量精度方面能达到工业实用的要求,因此在移动机器人,汽车安全,海洋测量等上得到了广泛的应用。本设计提供一种液晶显示测距装置,该装置利用了发射接收一体化的超声波传感器和微处理器。采用超声波传感器分时工作于发射和接收,利用声波在空气中的传播速度和发射脉冲到接收反射脉冲的时间间隔计算出障碍物到超声
3、波测距器之间的距离。距离是在不同的场合和控制中需要检测的一个参数,所以,测距就成为数据采集中要解决的一个问题。尽管测距有多种方式,比如,激光测距,微波测距,红外线测距和超声波测距等。但是,超声波测距不失为一种简单可行的方法。虽然超声波测距电路多种多样,甚至已有专用超声波测距集成电路。但是,有的电路复杂,技术难度大,有的调试困难,有的元件不易购买。本文介绍的电路,成本低廉,性能可靠,所用元件易购,并且利用测距原理,结合单片机的数据处理,使测量精度提高,电路实现容易,无须调试,工作稳定可靠。目 录前言 .I第一章 绪论 .11.1 选题背景及研究意义 1第二章 方案论证 .22.1 超声波测距原理
4、 22.2 系统的工作原理 2第三章 系统硬件电路的设计 .43.1AT89C52 单片机 .43.2 超声波发射电路 53.3 超声波接收电路 83.4 LCD 液晶显示部分结构 .103.5 音乐播放模块 .15第四章 系统软件设计 164.1 超声波接收发射软件设计 .164.2 音频脉冲的产生 .194.3 LCD 液晶显示部分软件设计 .19结论 22参考文献 23致谢 24附录 25第一章 绪论1.1 选题背景及研究意义1.1.1 选题背景在日常生活中,有各种各样的测距仪。与激光测距、红外线测距相比,超声波对外界光线、色彩和电磁场不敏感,更适于黑暗、电磁干扰强、有毒、灰尘或烟雾的恶
5、劣环境,在识别透明及漫反射性差的物体上也更有优势。而且超声波还有其指向性强、能量消耗缓慢、传播距离较远等优点。超声波测距是一种非接触式测量,广泛应用于倒车防撞雷达、机器人接近觉、海洋测量、物体识别等领域。距离是在不同的场合和控制中需要检测的一个参数,所以,测距就成为数据采集中要解决的一个问题。1.1.2 研究意义本设计是超声波测距仪装置,该装置利用了发射接收一体化的超声波传感器和微处理器。采用超声波传感器分时工作于发射和接收,利用声波在空气中的传播速度和发射脉冲到接收反射脉冲的时间间隔计算出障碍物到超声波测距器之间的距离。因此经常用于距离的测量,如测距仪和物位测量仪等都可以通过超声波来实现。在
6、日常生活中起了广泛的作用。第二章 方案论证2.1 超声波测距原理 为了研究和利用超声波,人们已经设计和制成了许多超声波发生器。总体上讲,超声波发生器可以分为两大类:一类是用电气方式产生超声波,一类是用机械方式产生超声波。电气方式包括压电型、磁致伸缩型和电动型等;机械方式有加尔统笛、液哨和气流旋笛等。它们所产生的超声波的频率、功率和声波特性各不相同,因而用途也各不相同。目前较为常用的是压电式超声波发生器超声波测距通常采用度越时间法,即利用 s=vt/2 计算被测物体的距离。式中s 为收发头与被测物体之间的距离, v 为超声波在介质中的传播速度 (v = 331. 41+T/273m/s),t 为
7、超声波的往返时间间隔。工作原理为:发射头发出的超声波以速度 v 在空气中传播,在到达被测物体时被其表面反射返回,由接收头接收,其往返时间为 t,由 s 算出被测物体的距离。T 为环境温度,在量精度要求高的场合必须考虑此影响,但在一般情况下,可舍去此法,由软件进行调整补偿。由于超声波也是一种声波,其声速 c 与温度有关,附表 1 列出了几种不同温度下的声速。在使用时,如果温度变化不大,则可认为声速是基本不变的。如果测距精度要求很高,则应通过温度补偿的方法加以校正。声速确定后,只要测得超声波往返的时间,就可以求出距离。这就是超声波测距原理。表 1 温度与声速的关系温度() 30 20 10 0 1
8、0 20 30 100声速(m/s ) 313 319 325 333 338 344 349 3862.2 系统的工作原理 系统的工作是由软件和硬件的配合过程。先由微机使 555 使能端置 1,继而555 送出 40kHz 频率的方波信号经过压电换能器(超声波发射头)将信号发射出去及发射超声波,同时该时刻启动定时器开时计时。该信号遇到障碍物反射回来在此称为回波。同时,压电换能器(超声波接收头)将接收的回波及接收超声波,通过信号处理的检波放大,及通过三级放大后再送到比较器进行比较输出比较电压, 输出电压经过三极管以后,使之电压与 AT89C52 的 I/O 口相匹配最后送至微机处理。最后进行
9、LCD 液晶显示同时配上美妙的音乐。超声波测距系统设计框图如图2.1 所示。微处理器AT89C52LCD 液晶显示温度采集超声波发射超声波接收音乐播放5V 电源图 2.1 超声波测距系统组成框图第三章 系统硬件电路的设计硬件电路主要分为单片机系统及显示电路、超声波发射电路、超声波接收电路和电路音乐回放电路等部分组成。3.1AT89C52 单片机AT89C52 是美国 ATMEL 公司生产的低电压、高性能 CMOS 8 位单片机,片内含8KB 的可反复檫写的程序存储器和 12B 的随机存取数据存储器(RAM) ,器件采用Atmel 公司的高密度、非易失性存储技术生产,兼容标准 MCS-51 指令
10、系统,片内配置通用 8 位中央处理器(CPU)和 Flash 存储单元,功能强大的 AT89C52 单片机可灵活应用于各种控制领域。单片机正常工作时,都需要有一个时钟电路,和一个复位电路。本设计中选择了内部时钟方式和按键电平复位电路,来构成单片机的最小电路。如图 3.1 所示。AT89C52VccGNDGNDC322UFR21KR1200RESET晶振 C230PFC130PFVcc XTAL1RST XTLL2Vss图 3.1 单片机的最小电路3.1.1 时钟电路计算机工作时,是在统一的时钟脉冲控制下一拍一拍的进行的,这个脉冲是由单片机控制器中的时序电路发出的。单片机的时序就是 CPU 在执
11、行指令时所需控制信号的时间顺序。为了保证各部件间的同步工作。单片机内部电路就在惟一的时钟信号控制下严格的按时序进行工作。要给单片机提供时序要有相关的硬件电路,即振荡器和时钟电路。因此选择了内部时钟方式。利用蕊片内部的振荡器,然后在引脚 XTAL1 和 XTAL 两端跨接晶体或陶瓷谐振器,就构成了稳定的自激振荡器,其发出的脉冲直接送入内部时钟电路如图 1 所示,外接晶振时,C1 和 C2 值通常选择为 30PF 左右。C1,C2 对频率有微调作用。晶体的频率范围可在 1.212MHZ 之间选择。在实际连接中,为了减少寄生电容,更好地保证振荡器稳定。可靠地工作,振荡器和电容应尽可能安装得与单片机蕊
12、片靠近。3.1.2 复位电路有图可以看出,是按键电平复位电路,相当于按复位键后复位端通过电阻与Vcc 电源接通。复位是单片机的初始化操作。单片机在启动运行时,都需要先复位,其作用是使 CPU 和系统中其他部件都处于一个确定的初始状态,并从这个状态开始工作。因而,复位是一个很重要的操作方式。但单片机本身是不能自动进行复位的,必须配合相应的外部电路来实现。3.2 超声波发射电路发射电路由 555 构成的多谐振荡器和超声波发射头组成。3.2.1 多谐振荡器采用 555 构成多谐振荡器可以实现宽范围占空比的调节!并且电路设计简单!占用面积小。 如图 3.2 所示 ,由单片机 AT89C52 的 P2.
13、3 口发出同步脉冲信号!该同步脉冲启动多谐振荡器!使其输出 40KHZ 的高频电压信号! 经过整形直接加至超声波换能器探头! 根据逆压电效应! 产生振动频率为 40KHZ 的超声波。TRIG2Q 3R4CVolt5 THR 6DIS 7VCC8GND1U1NE555R110KR210K5VC10.1UFC20.01UFP2.3VC图 3.2 超声波发射电路接通电源后,电容 C 被充电,VC 上升,当 VC 上升到 2/3VCC 时,触发器被复位,同时放电 BJT T 导通,此时 Vo 为低电平,电容 C 通过 R2 和 T 放电,使 VC 下降。当 VC 下降到 1/3VCC 时,触发器又被置
14、位,Vo 翻转为高电平。电容器 C 放电所需的时间为 Rtpl 27.0ln2当 C 放电结束时,T 截止,VCC 将能过 R1,R2 向电容器充电,VC 由 1/3VCC上升到 2/3VCC 所需的时间为CtPH217.0ln21当 VC 上升到 2/3VCC 时,触发器又发生翻转,如此周而复始,在输出端就得到一个周期性的方波,其频率为 RtfPLH2143.由于 555 内部的比较器的灵敏度较高,而且采用差分电路形式,它的振荡频率受电源电压的温度变化的影响很小。Vc PHtLtVo2/3vcc 1/3vcc 图 3.3 555 的工作波形图从 555 的工作波形图,可看出占空比是固定不变的
15、。为了调解的方便,我把R1 和 R2 都换成了电位器,就形成了占空比可调的电位器。使的超声波的发射电路更加具有高效性。也能满足波尽可能的减小失真。从面达到测距更长的效果。3.2.2 超声波传感器从图 3.2 超声波的发射电路上看还有一个超声波传感器。它具有把电信号转化为机械信号,同时又能把机械信号转化为电信号的功能。在设计中选择了压电式超声波发声器。压电式超声波发生器实际上是利用压电晶体的谐振来工作的。超声波发生器内部结构如图 3.4 所示,它有两个压电晶片和一个共振板。压电晶体组成的超声波传感器是一种可逆传感器,它可以将电能转变成机械振荡而产生超声波,同时它接收到超声波时,也能转变成电能,所
16、以它可以分成发送器或接收器。当它的两极外加脉冲信号,其频率等于压电晶片的固有振荡频率时,压电晶片将会发生共振,并带动共振板振动,便产生超声波。反之,如果两电极间未外加电压,当共振板接收到超声波时,将压迫压电晶片作振动,将机械能转换为电信号,这时它就成为超声波接收器了。本文所采用的超声波传感器是 T/R-40-16(其中 T 表示发送,R 表示接收,40 表示频率为 40KHZ,16 表示其外径尺寸,以毫米计)压电晶片电极共振板图 3.4 超声波传感器结构3.3 超声波接收电路超声波接收电路包括由 MC3403 构成的三级回波放大电路以及 LM358 电压比较整形电路两部分,与超声波接收传感器
17、T-40-16 配合使用,实现超声波的接收功能。32 1411U3AMC340356 7U3BMC3403109 8U3CMC3403C81000PC91000PC121000PC130.1UFR110KR210K R310KR410KR510KR61MR71M5VR?POT2R?POT2R?POT2R?POT2R110K5V 5VC130.1UFC130.1UF32184U?ALM358R?POT2R?RES25VQ1NPNR105.1K 5VP2.5图 3.5 超声波接收电路3.3.1 放大电路及其参数的设计当测量距离较大时,超声波的回波较弱,这时候就需要将信号放大,否则其转换成电信号的幅
18、值也会比较小。如图 3.5 所示,设计中,采用三级放大电路,将信号最大能放大 50 万倍。其中运算放大器 IC3A、IC3B 放大倍数为 100 倍,IC3C 放大倍数为可调的。根据公式 Au=R6/R4(以第一级放大电路为例),可以求得各放大电路的参数。计算后,取值如下,R3=10K,R4=10K,R6=1M,R7=1M。第三给放大是可调的 Au=Rx/R2.其中 R2=10K。Rx 为 500K 可调的滑动变阻器。所以放大倍数是在(050)之间。从图 3.5 中,可以看到各个运放的基准电压都是可调的。这样更有利于达到自己想要的理想结果。超声波接收头接收到的 40 kHz 反射波交流信号。电
19、容 C5、C9、C12 的作用为滤掉直流信号,对电容的大小无特别要求,所以一律选为 1000PF。其中的放大电路是由 MC3403 构成的。MC3403 是四低功耗运算放大器。它的引脚结构如图 3.6 所示。图 3.6 MC3403 的引脚结构3.3.2 电压比较电路及其参数的设计电压比较器的功能是比较两个电压值的大小,例如,将一个信号电压 U1 和另一个参考电压 UR 进行比较,在 U1UR 和 U1UR 时,电压比较器输出两个不同的电平,即高电平和低电平。比较器的输出通常只有高电平和低电平两个稳定状态,因此它相当于一个受输入信号控制的开关,当输入电压经过阈值时开关动作,使输出从一个电平跳转
20、到另一个电平。系统中,比较器的作用是将信号电压与设定的基准电压相比较,当信号电压大于基准电压时,比较器输出正脉冲,Q1 导通,P2.5 接收负脉冲信号,单片机 CPU 发出中断,记录发射信号与接受信号之间的时间,并计算距离。在比较器的设计中要考虑两点因素:第一,要使 Q1 导通;第二,要使经过三极管以后的电压与 AT89C52 的 P2.5 口相匹配。为了在实际应用时能得到合适的参数,将 R10 设计为最大阻值为 5.1 k 的电阻,这样,R10 的阻值便可得到满足上述条件的电压信号。用做电压比较器的的 LM358,从图3.5 可以看出比较器的的基准电压是可调的,因为从超声波接收的信号,要求有
21、很高的灵敏度和精度,从放大电路出来的电压变化是非常微妙的,必须配和可调的基准电压采能满足进行比较达到达到设计中的需要。LM358 内部包括有两个独立的、高增益、内部频率补偿的双运算放大器,适合于电源电压范围很宽的单电源使用,也适用于双电源工作模式,在推荐的工作条件下,电源电流与电源电压无关。它的使用范围包括传感放大器、直流增益模块和其他所有可用单电源供电的使用运算放大器的场合。图 3.7 为 LM358 的引脚结构图。图 3.7 LM358 的引脚结3.4 LCD 液晶显示部分结构在显示模块中,选择了 JM12864J 型图形点阵液晶显示模块进行显示。通过硬件电路和软件结合使得在液晶中显示如图
22、 3.8 所示。JM12864J 一共有有 20 个引脚,包括数据引脚,控制引脚和电源引脚,硬件电路非常简单。强大的功能主要是通过软件实现。LCD JM12864J超声波测距仪黄益展距离:00.0000 米当前温度:00图 3.8 LCD 显示屏3.4.1 LCD 的参数和性能及引脚介绍JM12864J 是一种图形点阵液晶显示器,它主要由行驱动器/ 列驱动器及12864 全点阵液晶显示器组成.可完成图形显示,也可以显示 84 个(1616 点阵)汉字.LCD 显示器是把 LCD 显示屏和控制模块结合在一起组成一个的整体。主要技术参数和性能: 电源:VDD:+5V;LCD 外接驱动电压为 -3.
23、0-8.0V 显示内容:128(列)64(行)点 全屏幕点阵 七种指令 与 CPU 接口采用 8 位数据总线并行输入输出和 8 条控制线. 占空比 1/64 工作温度:-10 +60 ,存储温度: -20 +70显示器模块的外部接口是通过它的外接引脚,由外部对其进行读写操作共同形成的。外部引脚提供了接口的通道,而外部单片机对模块的读写操作则执行了单片机的模块之间的信息交流,也就是显示内容的交流.JM12864J 一共有 20 个引脚,外部引脚编号为 120。外接引脚编号、符号及其含义如表 2 所示。表 2 外部引脚及含义管脚号 管脚名称 电平 管脚功能描述1 VSS 0V 电源地2 VDD 5
24、.0V 电源电压3 V0 - 液晶显示器驱动电压:0-5V4 RS H/L RS=“H”,表示 DB7DB0 为显示数据RS=“L”,表示 DB7DB0 为显示指令数据5 R/W H/L R/W=“H”,E=“H”,数据被读到 DB7DB0R/W=“L”,E=“HL”, DB7DB0 的数据被写到 IR 或DR6 E H/L 使能信号:R/W=“L”,E 信号下降沿锁存 DB7DB0R/W=“H”,E=“H” DDRAM 数据读到DB7DB0 714 DB0DB7 H/L 数据总线15 CS1 H/L H:选择芯片(右半屏)信号16 CS2 H/L H:选择芯片(左半屏)信号17 RESET
25、H/L 复位信号,低电平复位18 VOUT -10V LCD 驱动负电压19 LED+ DC+5V LED 背光板电源20 LED- DC0V LED 背光板电源3.4.2 AT89C52 和 LCD 显示器模块的接口AT89C52 和 LCD 显示器模块的接口包括硬件接口和软件接口两个部分。硬件接口是指 AT89C52 和 LCD 显示器模块的信息逻辑接线方法。软件接口是指AT89C52 对 LCD 显示器模块的显示控制方法及程序。下面分别介绍这两种接口方法。3.4.2.1 AT89C52 和 LCD 显示器模块的硬件接口AT89C52 和 JM12864J 的硬件接口连线如图 3.9 所示
26、。在图中看出,LCD 显示器模块的能动信号 E 是由 AT89C52 的 P3.2 控制。当 P3.2 电平由高到低产生一个下降沿脉冲,就产生能动信号 E。AT89C52 的 P3 端口的 P3.0P3.5 用于产生控制信号,用于控制 LCD 显示模块的工作。其中 P3.0 用于产生数据指令标志信号 RS;P3.1 用于产生读写信号R/W;P3.3、P3.4 用于产生选择信号 CS1、CS2;P3.5 用于产生复位信号 RST。AT89C52 的 P1 端口用于传送数据或指令,故 P1.0P1.7 和 LCD 显示器模块的 DB0DB7 相连。为使显示屏能具有满意的亮度,在+5V 和-5V 之
27、间接一个电位器,用于调节VEE 的电压。VEE 的电压一般取 0-5V。EA/VP31X119 X218RESET9RD17 WR16INT012 INT113T014 T115P101 P112P123 P134P145 P156P167 P178P00 39P01 38P02 37P03 36P04 35P05 34P06 33P07 32P20 21P21 22P22 23P23 24P24 25P25 26P26 27P27 28PSEN 29ALE/P30TXD 11RXD 10AT89C52GND 1VDD 2V0 3RS 4RW 5E 6DB0 7DB1 8DB2 9DB3 10
28、DB4 11DB5 12DB6 13DB7 14CSA 15CSB 16RST 17VEE 18BLA 19BLK 20JM12864JLCDRX100K5V入5V图 3.9 AT89C52 和 LCD 显示器模块接口3.4.2.2 AT89C52 和 LCD 显示器模块的软件接口在 JM12864J 型 LCD 显示器模块就用中,有 7 种指令格式。这些指令用于对模块执行专门的控制功能,为些指令及其功能分别说明如下。1)显示开关控制(DISPLAY ON/OFF)代码 R/W RS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0形式 0 0 0 0 1 1 1 1 1 DD=
29、1:开显示(DISPLAY ON) 意即显示器可以进行各种显示操作D=0:关显示(DISPLAY OFF) 意即不能对显示器进行各种显示操作 2)设置显示起始行(DISPLAY START LINE) 代码 R/W RS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0形式 0 0 1 1 A5 A4 A3 A2 A1 A0Z 地址计数器是一个 6 位计数器。此计数器具备循环计数功能,是用于显示行扫描同步的。当一行扫描完成,此地址计数器自动加 1,指向下一行扫描。RST复位后 Z 地址计数器为 0。显示起始行是由 Z 地址计数器控制的。A5A0 6 位地址自动送入 Z 地址计数器
30、,起始行的地址可以是 063 的任意一行。例如:选择 A5A0 是 62,则起始行与 DDRAM 行的对应关系如下:DDRAM 行:62 63 0 1 2 3 28 29屏幕显示行: 1 2 3 4 5 6 31 323) 设置页地址(SET PAGE “X ADDRESS”)代码 R/W RS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0形式 0 0 1 0 1 1 1 A2 A1 A0所谓页地址就是 DDRAM 的行地址,8 行为一页,模块共 64 行即 8 页,A2A0 表示 07 页。读写数据对地址没有影响,页地址由本指令或 RST 信号改变复位后页地址为 0。页地址
31、与 DDRAM 的对应关系见 DDRAM 地址表。4) 设置 Y 地址(SET Y ADDRESS) 代码 R/W RS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0形式 0 0 0 1 A5 A4 A3 A2 A1 A0此指令的作用是将 A5A0 送入 Y 地址计数器,作为 DDRAM 的 Y 地址指针。在对 DDRAM 进行读写操作后,Y 地址指针自动加 1,指向下一个 DDRAM 单元。DDRAM 地址表如表 3 所示。表 3 DDRAM 地址表CS1=1 CS2=1Y= 0 1 62 63 0 1 62 63 行号X=0DB0DB7DB0DB7DB0DB7DB0DB7
32、DB0DB7DB0DB7DB0DB7DB0DB7DB0DB7DB0DB707DB0DB7DB0DB7DB0DB7DB0DB7DB0DB7DB0DB7DB0DB7DB0DB7DB0DB7DB0DB7855X=7DB0DB7DB0DB7DB0DB7DB0DB7DB0DB7DB0DB7DB0DB7DB0DB7DB0DB7DB0DB756635) 读状态(STATUS READ)代码 R/W RS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0形式 0 1 BUSY 0 ON/OFF RET 0 0 0 0当 R/W=1 RS=0 时,在 E 信号为“H”的作用下,状态分别输出到数据总
33、线(DB7DB0)的相应位。BF: BF 标志组件内部的工作情况。BF=1 表示组件在进行内部操作,此时组件不接受外总指令和数据;BF=0 时,组件为准备状态,随时可接受外总指令和数据。ON/OFF: 表示 DFF 触发器的状态,用于控制屏幕显示的开和关。RST: RST=1 表示内部正在初始化,此时组件不接受任何指令和数据6) 写显示数据(WRITE DISPLAY DATE) 代码 R/W RS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0形式 0 1 D7 D6 D5 D4 D3 D2 D1 D0D7D0 为显示数据,此指令把 D7D0 写入相应的 DDRAM 单元,Y
34、 地址指针自动加 1。7) 读显示数据(READ DISPLAY DATE) 代码 R/W RS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0形式 1 1 D7 D6 D5 D4 D3 D2 D1 D0此指令把 DDRAM 的内容 D7D0 读到数据总线 DB7DB0,Y 地址指针自动加 1。3.5 音乐播放模块在音乐播放模块中,硬件电路主要是由功率放大器 LM386 和杨声器构成。和单片机的硬件接线图如图 3.9 所示.从图中可以看出 AT89C52 单片机的 P2.7 口来控制扬声器来播放的,图中 3.10 所示,LM386 构成的是增益为 50 的放大电路,一些滤波电容
35、配合,尽量减小失真,使得声间能达到清晰宏亮的效果。电路简单,只要配合软件使得 I/O 中输出不同的音频脉冲,就能放出美妙的音乐。LM386 是美国国家半导体公司生产的音频功率放大器,主要应用于低电压消费类产品。为使外围元件最少,电压增益内置为 20。当 1 脚和 8 脚之间开路时,电压增益为 26DB;若在 1 脚和 8 脚之间增加一只外接电阻和电容,3251 864ALM386R?10KC110UFC2220UF5VMICROPHONE1P2.7图 3.10 LM386 的硬件接线图便可将电压增益调为任意值,则增益可达 46DB,改变阻容值则增益可在 26DB-46DB 之间任意选取。电阻值
36、越小增益越大。输入端以地位参考,同时输出端被自动偏置到电源电压的一半,在 6V 电源电压下,它的静态功耗仅为 24mW,使得LM386 特别适用于低电压供电的场合。因而在便携式无线电设备、收音机、录音机、小型放大设备中得到广泛应用。LM386 的引脚结构如图 3.11 所示。1入入2入入入入3入入入入4入入 5 入入6 VCC7 入入8 入入入入LM386图 3.11 LM386 的引脚结构第四章 系统软件设计系统软件部分包括主程序、中断子程序和其他子程序。主程序完成系统初始化后调用 LCD 液晶显示程序,再调用测距在内的各个子程序完成距离测量并显示输出。各子程序主要有:延时子程序、距离计算子
37、程序及 BCD 码转换子程序,压缩BCD 码乘法子程序,压缩 BCD 码加子法程序等。主程序流程图如图 4.1 所示。4.1 超声波接收发射软件设计4.1.1 距离计算问题超声波发射接收所测距离的软件设计中,让单片机省去了繁杂的除法计算。以 170 乘上超声波从发射到接收的时间。即有压缩 BCD 码乘法进行计算。当然我们知道,定时器计数的最大值是 65535us,如果以这个时间乘以 170m 距离能达到11.140950m.。因此在设计中,考虑到用上了定时器 0 溢出标志 TF0。当超声波从发射到接收的时间超过了 65535us,就把 TF0 置 1,然后软件将 TF0 清 0。接着开始计数。
38、最后是把后来的计数时间乘以 170。所得的结果加上 11.140950N。N 为TF1 置 1 次数。即调用压缩 BCD 码加法。最后就进行解压缩进行显示。把所得的结果的每一位分配到不同的地址上。最后就根据地址确定位数了。超声波接收发射软件流程图如图 4.2 所示。4.1.2 串扰问题设计中,超声波发射极和接收极距离较近,这样,当发射极发射超声波后,有部分超声波没经过障碍物反射就直接绕射到接收极上,这部分信号是无用的,会引起系统误测。设计中采用延时技术来解决这个问题,并设定延时时间为 1 ms,即在发射极发射超声波 1 ms 内,没有启动定时器 ,接收电路对此期间接收到的任何信号不予理睬,1
39、ms 后立即启动 T0,这时接收到的信号才有效,并在接收到回波信号的同时,T0 停。此时 T0 所记录的 CPU 发送脉冲信号的前沿到回波脉冲信号之间的时间才是需要的.YN初始化 LCD刷新 LCD调用 DS18B20调用 LCD 显示按键等待返回测距初始化超声小波发射接收距离计算LCD 显示图 4.1 主程序流程图4.1.3 二/十进制数(BCD 码)的转换问题为了简化硬件电路和节省转换时间,首先用二进制对每 1 位十进制数字编码,即 BCD 码,这种编码方式的特点是保留十进制的权,而数字用二进制表示。这时获得的是压缩的 BCD 码,要想获得要显示的十进制数,还必须执行一个分离 BCD 码的
40、子程序分别屏蔽每一字节高低 4 位,然后将所获得的高低 4位分别存放在 1 个字节中。TF0=0YNYNTF0=1发射超声波脉冲查询定时溢出有回波吗计算距离调用液晶显示初始化按键等待计时开始停止计时图 4.2 超声波接收发射软件流程图4.2 音频脉冲的产生要产生音频脉冲,只要算出某一音频的周期(1/频率) ,然后将此周期除以2,即为半周期的时间,利用定时器计时这半个周期时间,每当计时到后就将输出脉冲的 I/O 反相,就可以在 I/O 端上得到此脉冲。利用 AT89C52 的内部定时器使期工作在计数器模式 MODE1 下,改变计数器值TH1 及 TL1 以产生不同频率的方法。例如,频率为 523
41、HZ,其周期 T=1/523=1912us,因此,只要令计数器计时956us/1us=956,在每计数 956 次时将 I/O 反相,就可得到中间 DO(523HZ) 。计数脉冲值与频率的关系如下。N=Fi2Fr式中 N计数值;Fi内部计时一次为us,故其频率为 1MHZ;Fr要产生的频率。其计数的方法如下:T65536N65536Fi2Fr 每个音符使用一个字节,字节的高 4 位代表音符的高低,低 4 位代表音符的节拍,如果 1 拍为 0.4S,1/4 拍是 0.1s,只要设定延迟时间就可求得节拍时间。假设 1/4 拍为 1DELAY,则 1 拍应为 4DELAY,依次类推。所以,只要求得
42、1/4 拍的DELAY 时间,其余的节拍就是它的倍数。4.3 LCD 液晶显示部分软件设计JM12864J 有 12864 的点的显示阵列。可显示汉字(48 个 1616 点阵汉字) ,也可显示数字(416 个 168 点阵数字) 。在软件编程必须要严格遵守点阵的坐标位置,否则就容易汉字数字的重叠,达不到理想的效果,出现一批乱码。在软件设计中,首先要写入全部字符。查要寻址的的二进制编码的坐标位置,定位好后,就写进二进制字符。紧接着就是内部写数据代码指针定位,再写入数据。每一次写字符时,都是写字符的上半部,接着再写字符的下半部。同时必须配合刷新程序,才能在屏幕上显示清晰的效果,不会出现乱码。4.
43、3.1 读/写时序利用单片机可以实现对 LCD 显示器模块的读写操作,也就是把显示信息取出或写入到模块中的显示数据存储器 DDRAM 中读写有一定的时序要求。这时分别介绍其读时序和写时序。4.3.1.1JM12864J 型 LCD 显示模块的读时序LCD 显示器模块的读时序由信号 E,R/W,CS,RS 和 DB0DB7 组成。E 是能动信号,R/W 是读写信号,RS 是显示/指令标志位,CS 是选择信号,DB0DB7 是数据信号。JM12864J 的读时序如图 4.3 所示。从图中可以看出:R/W=1 时,执行读操作,在 E 信号的上升沿开始执行读出,把 JM12864J 内的 DDRAM
44、内容读出到数据总线DB0DB7 上。这时如果 RS=1,则读出的是显示数据:如果 RS=0,则读出的是指令数据。CS2=1,CS1=0,读右半屏的内容:CS2=0,CS1=1,读左半屏的内容。图 4.3 JM12864J 的读时序4.3.1.2JM12864J 型 LCD 显示器模块的写时序JM12864J 的写时序如图 4.4 所示。写时序和读时序的区别在于 R/W 信号为低电平,即 R/W=0。这时,必须先把写入的数据由外部单片机送入数据总线DB0DB7,然后在能动信号 E 的下降沿时,把数据从 DB0DB7 写入到模块的显示数据存储器 DDRAM 中。同样,在 RS=1 时,写入的是数据
45、;RS=0 时,写入的是指令。在 CS2=1,CS1=0 时,把数据写入右半屏;在 CS2=0,CS1=1 时,把数据写入左半屏。图 4.4 JM12864J 的写时序结论系统测量范围较大(最大限定 2.5 m),测量误差小,所用都是常规部件,具有较强的实用价值。另外,由于其结构简单、体积小、抗干扰性能好,所以比较适用于行走机器人。当然,要满足更高的精度要求,还须进行适当改进,例如可增加温度补偿单元;在某些特殊场合的应用中,还要考虑超声波的入射角、反射角以及超声波传播介质的密度、表面光滑度等因素。在设计中感觉在硬件方面还存在的诸多问题。在超声波发射电路中,曾经试用过晶体管来加大功率,但是无法达
46、到预想的效果。在超声波接收接收电路中,波形失真太大,而且杂波信号也非常的强,有时候甚至超过接收到的信号,结果是肯定达不到灵敏度和精度要求。也尝试过在放大电路后出来加上整流电路,把交流信号转化直流信号送到比较器进行比较结果也无法达到预想的效果。而且整个系统相当的不稳定,必须要时不时地进行调试,才能使系统正常的工作。如果要进一步展开研究,在超声波发射电路中,加上达林顿管,进行两级功率放大,可能能过使超声波发射的更长,达到距离更远的效果。在超声波接收电路中,可以当超声波接收到信号,将机械信号转化为电信号时,就进行整流,把交流信号转化为直流电压信号,然后进行三级放大,可能能达到比较好的果。也可以在超声
47、波接收电路加上高阻滤波电路和低阻滤波电路,滤除杂波,只让 40KHZ 的信号能过,这样就可以消除外界的干扰。或者还可以,将比较器换在音频译码集成块 LM567,把它调成只让 40KHX 的信号通过,当接收到 40KHZ 的信号时,输出端就变成低电平,可以触发单片机,这样就可以使系统更稳定。参考文献1 LM567.PDF. MAXIM INTEGRATED PRODUCTS 19972 MAX232.PDF. TEXAS INSTRUMENTS INCORPORATED 19983 MC3403.PDF. STMICROELECTRONICS 19984 ISD1400.PDF.ISD COMP
48、ANY 19985 C8550.PDF.USHA(INDIA)LTD 19986 LM318N.PDF.NATIONAL SEMICONDUCTOR CORPORATION 20047 LM358P.PDF. STMICROELECTRONICS 20038 L7905.PDF. STMICROELECTRONICS 20039 ULN2004.PDF. STMICROELECTRONICS 200210 DS18B20.PDF.DALLAS SEMICONDUCTOR CROP 200011 何立民.单片机应用技术选编(5).北京:北京航空航天大学出版社 199712 楼然苗等.51 系列单片机设计实例.北京:北京航空航天大学出版社 200313 胡汉才.单片机原理及接口技术.北京:清华大学出版社 199614 张迎新等.单片机初级教程.北京:北就航空航天大学出版社 200015 康华光.电子技术基础模拟部分.北京:高等教育出版社 199716 康华光.电子技术基础数字部分.北京:高等教育出版社 199717 刘文涛.单片机应用开发实例.北京:清华大学出版社 200518 李光飞等.单片机课程设计实例指导.北京:北京航空航天大学出版 200419 余永权.ATMEL89 系列单片机应用技术.北京:北京航空航天大学出 200220 付家才.单片机控制工程实践技