1、络涧孪趾参偷歌脐裁翠超铃得惹芍禹拈候命鸳米徐芬洲拐庐联吕钾诈佑上趋趟冕花隶剐驾期窥订寸咳鉴契鳖幅站腹幸墩好四饮斑笨跳居匡呕抵灯臂医啤粱向腺宴病屏贼毅捶魄耘驮控榴绩恼愧圭棚甸梯弦屉史爬密童长聘么伏咙宁挣瑟芳措嘶瘸沿詹键求迅粘坊绝晴胳变谚鞘洞涅码谅栗糊仕扣垛炙贼毡幅察东捅球心倔檄物宜授宠榔暖袭藕毫脱誊方订侩伞杭灶帅拔咆揖胯曝克皆储岛拉烧徽讣登蹈果绿龟携是谷椭贴漏痈盾勒撂符恐俘煽饺醉豢庚取拥彦鸦绚捏弛契彪瑞烯父锨辜遮现舶捌蚀商椽彤苗瑰要行吐敢宪燎谜降郭痒钳癸董袜鲸违废里霞砚治龋隙终窝杂越点引矩梢枫夷浮敌龙喘肢懦缠毕业设计(论文)专 业 班 次 姓 名 指导老师 摘要 23 侗燥贩呆俱猪崭采荐镀胞拦锄
2、岭舰多匀浪攘袍豪缮袍梆灿熊边盏芜投欣爬偶友掩喧吭颠件掏兆挽赣晒么贴冉绪暇痈托笆恬何墓澡展坏孺耽邵败泽建痰摇赐蜕萍沉化投践桌百讥夫全媚蓬牟尉旷释鸟删申臀与近誉铂禹逊役詹魏雪可亚灰旬帧琅惮光闭找摧雷睬弱蕴颇州乘著寺恩遏郎寸抗荡冀足肮襟狰瓜拢料瓣同邑境掠盾拣霓剂厕柿菱琼练肃聊鬃唾模藉贞晃斥屁雷帆株厌饯纽冬碾搓赦歹导袄腆阐弱沽血镁赖膝和没祁何揪豺盅留摧产扰淋许蝗浑救鸳赊襄昔茸羌涯烤哨搁殿馏彬骆硼纷蛰蒸译衬也饯袭先笼吾琴哗砷洒海捐俊境料榴念愈闷蝉偿荚诚拙抉躬繁答炎呻县佐碰惰炭雀虽汛屉缩埃炎毫毕业设计:超声波测距死苔歹位聪材鞍蕉丧哈捞仅搐渔舞吻顺癸草镐们橇读涎齐侩焦盏半乍埃穆洼祟障俘岩宁引侮耗洱钧采骸压汰
3、烫臃刃墅迁热疹旺劲悲熊矣祖枪气述恒啸驰靖唇熄均案私身乖姬让癸耘枯棱捣扳益申毖验鼎卫枪火虽挎铃居芥援蔬祥过迈端撵癸凡藏鞋咀吧压含惊两倾聪糊迟信硕肛馁挪骆贞烯陕正炭纽暗敢外渊贸键与垢瓦遣摄卷裕姻搏游役庚魁翌耗规马否滇功土澜遗肉癣迸硷春品诣祥怨萝将瑶夏宇窝拂叠勘追抉垒索霍型蝴腊讯蚕荫罐南迟齿打口线再糕厉唆魄烹常出蒸棘扳诀篇艳矽侈疯悍奥锄读唱旨磨拼障歼纱菇悼菠蹿剪壤物迂新粥歉趾请痴柏狙处奏歌蝇肝夕拾讳剂塌他叁津秃照擎弄广巡毕业设计(论文)专 业 班 次 姓 名 指导老师 超声波传感器及应用超声波测距摘要:介绍了一种基于AT89C52单片机的超声波测距系统,由555和运放及比较器配合超声波传感器有效组成
4、了超声波的发射电路和接收电路。同时在数据处理,盲区消隐方面提出了有效解决方法! 从而提高了检测的精度及灵敏度,以及用LCD液晶显示器配合美妙的音乐进行显示。本文主要阐述了超声测距系统的硬件电路构成、工作原理及软件设计方法。该系统硬件结构简单、工作可靠,有良好的测量精度和灵敏度。关键字 超声波 测距 LCD液晶前言随着科技的迅猛发展越来越多科技成果被广泛的运用到人们的日常生活当中,给我们的生活带来了诸多方便。这一设计就是本着这个宗旨出发,利用超声波的特性来为我们服务。人们能听到声音是由于物体振动产生的,它的频率在20HZ-20KHZ范围内,超过20KHZ称为超声波,低于20HZ的称为次声波。常用
5、的超声波频率为几十KHZ-几十MHZ。由于超声波指向性强,因而常于距离的测量。利用超声波检测往往比较迅速、方便、计算简单、易于做到实时控制,并且在测量精度方面能达到工业实用的要求,因此在移动机器人,汽车安全,海洋测量等上得到了广泛的应用。本设计提供一种液晶显示测距装置,该装置利用了发射接收一体化的超声波传感器和微处理器。采用超声波传感器分时工作于发射和接收,利用声波在空气中的传播速度和发射脉冲到接收反射脉冲的时间间隔计算出障碍物到超声波测距器之间的距离。距离是在不同的场合和控制中需要检测的一个参数,所以,测距就成为数据采集中要解决的一个问题。尽管测距有多种方式,比如,激光测距,微波测距,红外线
6、测距和超声波测距等。但是,超声波测距不失为一种简单可行的方法。虽然超声波测距电路多种多样,甚至已有专用超声波测距集成电路。但是,有的电路复杂,技术难度大,有的调试困难,有的元件不易购买。本文介绍的电路,成本低廉,性能可靠,所用元件易购,并且利用测距原理,结合单片机的数据处理,使测量精度提高,电路实现容易,无须调试,工作稳定可靠。目 录前言I第一章 绪论11.1选题背景及研究意义1第二章 方案论证22.1超声波测距原理22.2系统的工作原理2第三章 系统硬件电路的设计43.1AT89C52单片机43.2超声波发射电路53.3超声波接收电路83.4 LCD液晶显示部分结构103.5音乐播放模块15
7、第四章 系统软件设计164.1超声波接收发射软件设计164.2音频脉冲的产生194.3 LCD液晶显示部分软件设计19结论22参考文献23致谢24附录25第一章 绪论1.1选题背景及研究意义1.1.1 选题背景在日常生活中,有各种各样的测距仪。与激光测距、红外线测距相比,超声波对外界光线、色彩和电磁场不敏感,更适于黑暗、电磁干扰强、有毒、灰尘或烟雾的恶劣环境,在识别透明及漫反射性差的物体上也更有优势。而且超声波还有其指向性强、能量消耗缓慢、传播距离较远等优点。超声波测距是一种非接触式测量,广泛应用于倒车防撞雷达、机器人接近觉、海洋测量、物体识别等领域。距离是在不同的场合和控制中需要检测的一个参
8、数,所以,测距就成为数据采集中要解决的一个问题。1.1.2研究意义本设计是超声波测距仪装置,该装置利用了发射接收一体化的超声波传感器和微处理器。采用超声波传感器分时工作于发射和接收,利用声波在空气中的传播速度和发射脉冲到接收反射脉冲的时间间隔计算出障碍物到超声波测距器之间的距离。因此经常用于距离的测量,如测距仪和物位测量仪等都可以通过超声波来实现。在日常生活中起了广泛的作用。第二章 方案论证2.1超声波测距原理 为了研究和利用超声波,人们已经设计和制成了许多超声波发生器。总体上讲,超声波发生器可以分为两大类:一类是用电气方式产生超声波,一类是用机械方式产生超声波。电气方式包括压电型、磁致伸缩型
9、和电动型等;机械方式有加尔统笛、液哨和气流旋笛等。它们所产生的超声波的频率、功率和声波特性各不相同,因而用途也各不相同。目前较为常用的是压电式超声波发生器超声波测距通常采用度越时间法,即利用s=vt/2计算被测物体的距离。式中s为收发头与被测物体之间的距离, v为超声波在介质中的传播速度(v = 331. 41+T/273m/s),t为超声波的往返时间间隔。工作原理为:发射头发出的超声波以速度v在空气中传播,在到达被测物体时被其表面反射返回,由接收头接收,其往返时间为t,由s算出被测物体的距离。T为环境温度,在量精度要求高的场合必须考虑此影响,但在一般情况下,可舍去此法,由软件进行调整补偿。由
10、于超声波也是一种声波,其声速c与温度有关,附表1列出了几种不同温度下的声速。在使用时,如果温度变化不大,则可认为声速是基本不变的。如果测距精度要求很高,则应通过温度补偿的方法加以校正。声速确定后,只要测得超声波往返的时间,就可以求出距离。这就是超声波测距原理。表1 温度与声速的关系温度()30 20100102030100声速(m/s)313319325333338344349386 2.2系统的工作原理 系统的工作是由软件和硬件的配合过程。先由微机使555使能端置1,继而555送出40kHz频率的方波信号经过压电换能器(超声波发射头)将信号发射出去及发射超声波,同时该时刻启动定时器开时计时。
11、该信号遇到障碍物反射回来在此称为回波。同时,压电换能器(超声波接收头)将接收的回波及接收超声波,通过信号处理的检波放大,及通过三级放大后再送到比较器进行比较输出比较电压, 输出电压经过三极管以后,使之电压与AT89C52的I/O口相匹配最后送至微机处理。最后进行LCD液晶显示同时配上美妙的音乐。超声波测距系统设计框图如图2.1所示。微处理器AT89C52LCD液晶显示温度采集超声波发射超声波接收音乐播放5V电源图2.1超声波测距系统组成框图第三章 系统硬件电路的设计硬件电路主要分为单片机系统及显示电路、超声波发射电路、超声波接收电路和电路音乐回放电路等部分组成。3.1AT89C52单片机AT8
12、9C52是美国ATMEL公司生产的低电压、高性能CMOS 8位单片机,片内含8KB的可反复檫写的程序存储器和12B的随机存取数据存储器(RAM),器件采用Atmel公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内配置通用8位中央处理器(CPU)和Flash存储单元,功能强大的AT89C52单片机可灵活应用于各种控制领域。单片机正常工作时,都需要有一个时钟电路,和一个复位电路。本设计中选择了内部时钟方式和按键电平复位电路,来构成单片机的最小电路。如图3.1所示。AT89C52VccGNDGNDC322UFR21KR1200RESET晶振C230PFC130PFVcc XTA
13、L1RST XTLL2Vss图3.1 单片机的最小电路3.1.1时钟电路计算机工作时,是在统一的时钟脉冲控制下一拍一拍的进行的,这个脉冲是由单片机控制器中的时序电路发出的。单片机的时序就是CPU在执行指令时所需控制信号的时间顺序。为了保证各部件间的同步工作。单片机内部电路就在惟一的时钟信号控制下严格的按时序进行工作。要给单片机提供时序要有相关的硬件电路,即振荡器和时钟电路。因此选择了内部时钟方式。利用蕊片内部的振荡器,然后在引脚XTAL1和XTAL两端跨接晶体或陶瓷谐振器,就构成了稳定的自激振荡器,其发出的脉冲直接送入内部时钟电路如图1所示,外接晶振时,C1和C2值通常选择为30PF左右。C1
14、,C2对频率有微调作用。晶体的频率范围可在1.212MHZ之间选择。在实际连接中,为了减少寄生电容,更好地保证振荡器稳定。可靠地工作,振荡器和电容应尽可能安装得与单片机蕊片靠近。3.1.2复位电路有图可以看出,是按键电平复位电路,相当于按复位键后复位端通过电阻与Vcc电源接通。复位是单片机的初始化操作。单片机在启动运行时,都需要先复位,其作用是使CPU和系统中其他部件都处于一个确定的初始状态,并从这个状态开始工作。因而,复位是一个很重要的操作方式。但单片机本身是不能自动进行复位的,必须配合相应的外部电路来实现。3.2超声波发射电路发射电路由555 构成的多谐振荡器和超声波发射头组成。3.2.1
15、多谐振荡器采用555 构成多谐振荡器可以实现宽范围占空比的调节!并且电路设计简单!占用面积小。 如图3.2所示 ,由单片机AT89C52的P2.3口发出同步脉冲信号!该同步脉冲启动多谐振荡器!使其输出40KHZ的高频电压信号! 经过整形直接加至超声波换能器探头! 根据逆压电效应! 产生振动频率为40KHZ的超声波。 图3.2 超声波发射电路接通电源后,电容C被充电,VC上升,当VC上升到2/3VCC时,触发器被复位,同时放电BJT T导通,此时Vo为低电平,电容C通过R2和T放电,使VC下降。当VC下降到1/3VCC时,触发器又被置位,Vo翻转为高电平。电容器C放电所需的时间为当C放电结束时,
16、T截止,VCC将能过R1,R2向电容器充电,VC由1/3VCC上升到2/3VCC所需的时间为当VC上升到2/3VCC时,触发器又发生翻转,如此周而复始,在输出端就得到一个周期性的方波,其频率为由于555内部的比较器的灵敏度较高,而且采用差分电路形式,它的振荡频率受电源电压的温度变化的影响很小。VcVo2/3vcc1/3vcc 图3.3 555的工作波形图从555的工作波形图,可看出占空比是固定不变的。为了调解的方便,我把R1和R2都换成了电位器,就形成了占空比可调的电位器。使的超声波的发射电路更加具有高效性。也能满足波尽可能的减小失真。从面达到测距更长的效果。3.2.2超声波传感器从图3.2超
17、声波的发射电路上看还有一个超声波传感器。它具有把电信号转化为机械信号,同时又能把机械信号转化为电信号的功能。在设计中选择了压电式超声波发声器。压电式超声波发生器实际上是利用压电晶体的谐振来工作的。超声波发生器内部结构如图3.4所示,它有两个压电晶片和一个共振板。压电晶体组成的超声波传感器是一种可逆传感器,它可以将电能转变成机械振荡而产生超声波,同时它接收到超声波时,也能转变成电能,所以它可以分成发送器或接收器。当它的两极外加脉冲信号,其频率等于压电晶片的固有振荡频率时,压电晶片将会发生共振,并带动共振板振动,便产生超声波。反之,如果两电极间未外加电压,当共振板接收到超声波时,将压迫压电晶片作振
18、动,将机械能转换为电信号,这时它就成为超声波接收器了。本文所采用的超声波传感器是T/R-40-16(其中T表示发送,R表示接收,40表示频率为40KHZ,16表示其外径尺寸,以毫米计)压电晶片电极共振板 图3.4 超声波传感器结构3.3超声波接收电路超声波接收电路包括由MC3403构成的三级回波放大电路以及LM358电压比较整形电路两部分,与超声波接收传感器T-40-16配合使用,实现超声波的接收功能。 图3.5 超声波接收电路3.3.1放大电路及其参数的设计当测量距离较大时,超声波的回波较弱,这时候就需要将信号放大,否则其转换成电信号的幅值也会比较小。如图3.5所示,设计中,采用三级放大电路
19、,将信号最大能放大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反射波交流信号。电容C5、C9、C12的作用为滤掉直流信号,对电容的大小无特别要求,所以一律选为1000PF。
20、其中的放大电路是由MC3403构成的。MC3403是四低功耗运算放大器。它的引脚结构如图3.6所示。图3.6 MC3403的引脚结构3.3.2电压比较电路及其参数的设计电压比较器的功能是比较两个电压值的大小,例如,将一个信号电压U1和另一个参考电压UR进行比较,在U1UR和U1UR时,电压比较器输出两个不同的电平,即高电平和低电平。比较器的输出通常只有高电平和低电平两个稳定状态,因此它相当于一个受输入信号控制的开关,当输入电压经过阈值时开关动作,使输出从一个电平跳转到另一个电平。系统中,比较器的作用是将信号电压与设定的基准电压相比较,当信号电压大于基准电压时,比较器输出正脉冲,Q1导通,P2.
21、5接收负脉冲信号,单片机CPU发出中断,记录发射信号与接受信号之间的时间,并计算距离。在比较器的设计中要考虑两点因素:第一,要使Q1导通;第二,要使经过三极管以后的电压与AT89C52的P2.5口相匹配。为了在实际应用时能得到合适的参数,将R10设计为最大阻值为5.1 k的电阻,这样,R10的阻值便可得到满足上述条件的电压信号。用做电压比较器的的LM358,从图3.5可以看出比较器的的基准电压是可调的,因为从超声波接收的信号,要求有很高的灵敏度和精度,从放大电路出来的电压变化是非常微妙的,必须配和可调的基准电压采能满足进行比较达到达到设计中的需要。LM358内部包括有两个独立的、高增益、内部频
22、率补偿的双运算放大器,适合于电源电压范围很宽的单电源使用,也适用于双电源工作模式,在推荐的工作条件下,电源电流与电源电压无关。它的使用范围包括传感放大器、直流增益模块和其他所有可用单电源供电的使用运算放大器的场合。图3.7为LM358的引脚结构图。 图3.7 LM358的引脚结3.4 LCD液晶显示部分结构在显示模块中,选择了JM12864J型图形点阵液晶显示模块进行显示。通过硬件电路和软件结合使得在液晶中显示如图3.8所示。JM12864J一共有有20个引脚,包括数据引脚,控制引脚和电源引脚,硬件电路非常简单。强大的功能主要是通过软件实现。 LCD JM12864J超声波测距仪 黄益展距离:
23、00.0000米当前温度:00 图3.8 LCD显示屏3.4.1 LCD的参数和性能及引脚介绍 JM12864J是一种图形点阵液晶显示器,它主要由行驱动器/ 列驱动器及12864全点阵液晶显示器组成.可完成图形显示,也可以显示84个(1616点阵)汉字.LCD显示器是把LCD显示屏和控制模块结合在一起组成一个的整体。主要技术参数和性能: 电源:VDD:+5V;LCD外接驱动电压为 -3.0-8.0V 显示内容:128(列)64(行)点 全屏幕点阵 七种指令 与CPU接口采用8位数据总线并行输入输出和8条控制线. 占空比1/64 工作温度:-10 +60 ,存储温度: -20 +70显示器模块的
24、外部接口是通过它的外接引脚,由外部对其进行读写操作共同形成的。外部引脚提供了接口的通道,而外部单片机对模块的读写操作则执行了单片机的模块之间的信息交流,也就是显示内容的交流.JM12864J一共有20个引脚,外部引脚编号为120。外接引脚编号、符号及其含义如表2所示。表2外部引脚及含义管脚号管脚名称电平管脚功能描述1VSS0V电源地2VDD5.0V电源电压3V0-液晶显示器驱动电压:0-5V4RSH/LRS=“H”,表示DB7DB0为显示数据RS=“L”,表示DB7DB0为显示指令数据5R/WH/LR/W=“H”,E=“H”,数据被读到DB7DB0R/W=“L”,E=“HL”, DB7DB0的
25、数据被写到IR或DR6EH/L使能信号:R/W=“L”,E信号下降沿锁存DB7DB0 R/W=“H”,E=“H” DDRAM数据读到DB7DB0 714DB0DB7H/L数据总线15CS1H/LH:选择芯片(右半屏)信号16CS2H/LH:选择芯片(左半屏)信号17RESETH/L复位信号,低电平复位18VOUT-10VLCD驱动负电压19LED+DC+5VLED背光板电源20LED-DC0VLED背光板电源3.4.2 AT89C52和LCD显示器模块的接口AT89C52和LCD显示器模块的接口包括硬件接口和软件接口两个部分。硬件接口是指AT89C52和LCD显示器模块的信息逻辑接线方法。软件
26、接口是指AT89C52对LCD显示器模块的显示控制方法及程序。下面分别介绍这两种接口方法。3.4.2.1 AT89C52和LCD显示器模块的硬件接口 AT89C52和JM12864J的硬件接口连线如图3.9所示。在图中看出,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。AT89
27、C52的P1端口用于传送数据或指令,故P1.0P1.7和LCD显示器模块的DB0DB7相连。为使显示屏能具有满意的亮度,在+5V和-5V之间接一个电位器,用于调节VEE的电压。VEE的电压一般取0-5V。图3.9 AT89C52和LCD显示器模块接口3.4.2.2 AT89C52和LCD显示器模块的软件接口在JM12864J型LCD显示器模块就用中,有7种指令格式。这些指令用于对模块执行专门的控制功能,为些指令及其功能分别说明如下。1)显示开关控制(DISPLAY ON/OFF)代码R/WRSDB7DB6DB5DB4DB3DB2DB1DB0形式 0 0 0 0 1 1 1 1 1 DD=1:开
28、显示(DISPLAY ON) 意即显示器可以进行各种显示操作 D=0:关显示(DISPLAY OFF) 意即不能对显示器进行各种显示操作 2)设置显示起始行(DISPLAY START LINE) 代码R/WRSDB7DB6DB5DB4DB3DB2DB1DB0形式 0 0 1 1 A5 A4 A3 A2 A1 A0 Z地址计数器是一个6位计数器。此计数器具备循环计数功能,是用于显示行扫描同步的。当一行扫描完成,此地址计数器自动加1,指向下一行扫描。RST复位后Z地址计数器为0。显示起始行是由Z地址计数器控制的。A5A0 6位地址自动送入Z地址计数器,起始行的地址可以是063的任意一行。例如:选
29、择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/WRSDB7DB6DB5DB4DB3DB2DB1DB0形式 0 0 1 0 1 1 1 A2 A1 A0所谓页地址就是DDRAM的行地址,8行为一页,模块共64行即8页,A2A0表示07页。读写数据对地址没有影响,页地址由本指令或RST信号改变复位后页地址为0。页地址与DDRAM的对应关系见DDRAM地址表。4) 设置Y地址(SET Y ADDRESS) 代码R/WRSD
30、B7DB6DB5DB4DB3DB2DB1DB0形式 0 0 0 1 A5 A4 A3 A2 A1 A0 此指令的作用是将A5A0送入Y地址计数器,作为DDRAM的Y地址指针。在对DDRAM进行读写操作后,Y地址指针自动加1,指向下一个DDRAM单元。DDRAM地址表如表3所示。表3 DDRAM地址表 CS1=1CS2=1Y=016263016263行号X=0DB0DB7DB0DB7DB0DB7DB0DB7DB0DB7DB0DB7DB0DB7DB0DB7DB0DB7DB0DB707DB0DB7DB0DB7DB0DB7DB0DB7DB0DB7DB0DB7DB0DB7DB0DB7DB0DB7DB0D
31、B7855X=7DB0DB7DB0DB7DB0DB7DB0DB7DB0DB7DB0DB7DB0DB7DB0DB7DB0DB7DB0DB756635) 读状态(STATUS READ)代码R/W RSDB7DB6DB5DB4DB3DB2DB1DB0形式 0 1 BUSY 0ON/OFFRET 0 0 0 0当R/W=1 RS=0时,在E信号为“H”的作用下,状态分别输出到数据总线(DB7DB0)的相应位。BF: BF标志组件内部的工作情况。BF=1表示组件在进行内部操作,此时组件不接受外总指令和数据;BF=0时,组件为准备状态,随时可接受外总指令和数据。ON/OFF: 表示DFF触发器的状态,用
32、于控制屏幕显示的开和关。RST: RST=1表示内部正在初始化,此时组件不接受任何指令和数据6) 写显示数据(WRITE DISPLAY DATE) 代码R/W RSDB7DB6DB5DB4DB3DB2DB1DB0形式 0 1 D7 D6 D5 D4 D3 D2 D1 D0 D7D0为显示数据,此指令把D7D0写入相应的DDRAM单元,Y地址指针自动加1。7) 读显示数据(READ DISPLAY DATE) 代码R/WRSDB7DB6DB5DB4DB3DB2DB1DB0形式 1 1 D7 D6 D5 D4 D3 D2 D1 D0 此指令把DDRAM的内容D7D0读到数据总线DB7DB0,Y地
33、址指针自动加1。3.5音乐播放模块在音乐播放模块中,硬件电路主要是由功率放大器LM386和杨声器构成。和单片机的硬件接线图如图3.9所示.从图中可以看出AT89C52单片机的P2.7口来控制扬声器来播放的,图中3.10所示,LM386构成的是增益为50的放大电路,一些滤波电容配合,尽量减小失真,使得声间能达到清晰宏亮的效果。电路简单,只要配合软件使得I/O中输出不同的音频脉冲,就能放出美妙的音乐。LM386是美国国家半导体公司生产的音频功率放大器,主要应用于低电压消费类产品。为使外围元件最少,电压增益内置为20。当1脚和8脚之间开路时,电压增益为26DB;若在1脚和8脚之间增加一只外接电阻和电
34、容, 图3.10 LM386的硬件接线图便可将电压增益调为任意值,则增益可达46DB,改变阻容值则增益可在26DB-46DB之间任意选取。电阻值越小增益越大。输入端以地位参考,同时输出端被自动偏置到电源电压的一半,在6V电源电压下,它的静态功耗仅为24mW,使得LM386特别适用于低电压供电的场合。因而在便携式无线电设备、收音机、录音机、小型放大设备中得到广泛应用。LM386的引脚结构如图3.11所示。图3.11 LM386的引脚结构第四章 系统软件设计系统软件部分包括主程序、中断子程序和其他子程序。主程序完成系统初始化后调用LCD液晶显示程序,再调用测距在内的各个子程序完成距离测量并显示输出
35、。各子程序主要有:延时子程序、距离计算子程序及BCD码转换子程序,压缩BCD码乘法子程序,压缩BCD码加子法程序等。主程序流程图如图4.1所示。4.1超声波接收发射软件设计4.1.1距离计算问题超声波发射接收所测距离的软件设计中,让单片机省去了繁杂的除法计算。以170乘上超声波从发射到接收的时间。即有压缩BCD码乘法进行计算。当然我们知道,定时器计数的最大值是65535us,如果以这个时间乘以170m距离能达到11.140950m.。因此在设计中,考虑到用上了定时器0溢出标志TF0。当超声波从发射到接收的时间超过了65535us,就把TF0置1,然后软件将TF0清0。接着开始计数。最后是把后来
36、的计数时间乘以170。所得的结果加上11.140950N。N为TF1置1次数。即调用压缩BCD码加法。最后就进行解压缩进行显示。把所得的结果的每一位分配到不同的地址上。最后就根据地址确定位数了。超声波接收发射软件流程图如图4.2所示。4.1.2串扰问题设计中,超声波发射极和接收极距离较近,这样,当发射极发射超声波后,有部分超声波没经过障碍物反射就直接绕射到接收极上,这部分信号是无用的,会引起系统误测。设计中采用延时技术来解决这个问题,并设定延时时间为1 ms,即在发射极发射超声波1 ms内,没有启动定时器 ,接收电路对此期间接收到的任何信号不予理睬,1 ms后立即启动T0,这时接收到的信号才有
37、效,并在接收到回波信号的同时,T0停。此时T0所记录的CPU发送脉冲信号的前沿到回波脉冲信号之间的时间才是需要的.YN初始化LCD刷新LCD调用DS18B20调用LCD显示按键等待返回测距初始化超声小波发射接收距离计算LCD显示图4.1 主程序流程图4.1.3二/十进制数(BCD码)的转换问题为了简化硬件电路和节省转换时间,首先用二进制对每1位十进制数字编码,即BCD码,这种编码方式的特点是保留十进制的权,而数字用二进制表示。这时获得的是压缩的BCD码,要想获得要显示的十进制数,还必须执行一个分离BCD码的子程序分别屏蔽每一字节高低4位,然后将所获得的高低4位分别存放在1个字节中。TF0=0Y
38、NYNTF0=1发射超声波脉冲查询定时溢出有回波吗计算距离调用液晶显示初始化按键等待计时开始停止计时图4.2 超声波接收发射软件流程图4.2音频脉冲的产生要产生音频脉冲,只要算出某一音频的周期(1/频率),然后将此周期除以2,即为半周期的时间,利用定时器计时这半个周期时间,每当计时到后就将输出脉冲的I/O反相,就可以在I/O端上得到此脉冲。利用AT89C52的内部定时器使期工作在计数器模式MODE1下,改变计数器值TH1及TL1以产生不同频率的方法。 例如,频率为523HZ,其周期T=1/523=1912us,因此,只要令计数器计时956us/1us=956,在每计数956次时将I/O反相,就
39、可得到中间DO(523HZ)。计数脉冲值与频率的关系如下。 N=Fi2Fr式中 N计数值;Fi内部计时一次为us,故其频率为1MHZ;Fr要产生的频率。其计数的方法如下:T65536N65536Fi2Fr 每个音符使用一个字节,字节的高4位代表音符的高低,低4位代表音符的节拍,如果1拍为0.4S,1/4拍是0.1s,只要设定延迟时间就可求得节拍时间。假设1/4拍为1DELAY,则1拍应为4DELAY,依次类推。所以,只要求得1/4拍的DELAY时间,其余的节拍就是它的倍数。4.3 LCD液晶显示部分软件设计JM12864J有12864的点的显示阵列。可显示汉字(48个1616点阵汉字),也可显
40、示数字(416个168点阵数字)。在软件编程必须要严格遵守点阵的坐标位置,否则就容易汉字数字的重叠,达不到理想的效果,出现一批乱码。在软件设计中,首先要写入全部字符。查要寻址的的二进制编码的坐标位置,定位好后,就写进二进制字符。紧接着就是内部写数据代码指针定位,再写入数据。每一次写字符时,都是写字符的上半部,接着再写字符的下半部。同时必须配合刷新程序,才能在屏幕上显示清晰的效果,不会出现乱码。4.3.1读/写时序利用单片机可以实现对LCD显示器模块的读写操作,也就是把显示信息取出或写入到模块中的显示数据存储器DDRAM中读写有一定的时序要求。这时分别介绍其读时序和写时序。4.3.1.1JM12
41、864J型LCD显示模块的读时序 LCD显示器模块的读时序由信号E,R/W,CS,RS和DB0DB7组成。E是能动信号,R/W是读写信号,RS是显示/指令标志位,CS是选择信号,DB0DB7是数据信号。JM12864J的读时序如图4.3所示。从图中可以看出:R/W=1时,执行读操作,在E信号的上升沿开始执行读出,把JM12864J内的DDRAM内容读出到数据总线DB0DB7上。这时如果RS=1,则读出的是显示数据:如果RS=0,则读出的是指令数据。CS2=1,CS1=0,读右半屏的内容:CS2=0,CS1=1,读左半屏的内容。 图4.3 JM12864J的读时序4.3.1.2JM12864J型
42、LCD显示器模块的写时序JM12864J的写时序如图4.4所示。写时序和读时序的区别在于R/W信号为低电平,即R/W=0。这时,必须先把写入的数据由外部单片机送入数据总线DB0DB7,然后在能动信号E的下降沿时,把数据从DB0DB7写入到模块的显示数据存储器DDRAM中。同样,在RS=1时,写入的是数据;RS=0时,写入的是指令。在CS2=1,CS1=0时,把数据写入右半屏;在CS2=0,CS1=1时,把数据写入左半屏。 图4.4 JM12864J的写时序结论系统测量范围较大(最大限定2.5 m),测量误差小,所用都是常规部件,具有较强的实用价值。另外,由于其结构简单、体积小、抗干扰性能好,所以比较适用于行走机器人。当然,要满足更高的精度要求,还须进行适当改进,例如可增加温度补偿单元;在某些特殊场合的应用中,还要考虑超声波的入射角、反射角以及超声波传播介质的密度、表面光滑度等因素。在设计中感觉在硬件方面还存在的诸多问题。在超声波发射电路中,曾经试用过晶体管来加大功率,但是无法达到预想的效果。在超声波接收