版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数字超声波倒车测距仪设计 学生:XX 指导教师:XX内容摘要:在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用。单片机是把主要计算机功能部件都集成在一块芯片上的微型计算机。它是一种集计数和多中接口于一体的微控制器。而52单片机是个单片机中最为典型和最有代表性的一种。 本设计主要应用AT89C52作为控制核心,与显示器,驱动电路等相结合的系统。基于单片机设计。利用单片机AT89C52作为报警装置的控制器,能充分发挥AT89C52的数据处理和实时控制功能而设计的数字超声波倒车测距仪。使系统工作于最佳状态,提高系统的灵敏度。其优点是体积小、使用方便、硬件电路简单,软件功能完
2、善,控制系统可靠,具有一定的使用和参考价值。若将安全距离设为0.5m,就可作为汽车倒车报警器,提高汽车倒车时的安全性。 该数字超声波倒车测距仪利用超声波实现对汽车的测距。利用单片机的实时控制和数据处理功能完成系统的控制。文章给出了测距仪的硬件电路原理及软件设计。关键词:AT89C52 超声波 测距仪The design of Digital ultrasonic Reverse rangefinderAbstract: In the application system of single-chip microcomputer of real-time detection and automa
3、tic control, the single-chip microcomputer always be used as a core components. The single-chip microcomputer is a microcomputer which collect all the important computer components to a chip.It is a kind of micro controller which contains count and varieties of interface. However, the 52 single-chip
4、 is the most typical and representative one of all the single-chip.This design is mainly taking AT89C52 as the control core, it is a system of connecting monitor, drive circuit etc. According to the design of the single-chip, using AT89C52 as the controller of alarm device will fully develop the fun
5、ction of data processing and real-time control of AT89C52. This kind of single-chip ensures the best condition and arises the sensitivity of the system. The merit of this single-chip is the small volume, convenience, simple hardware circuit, perfect software functions, the Control system is reliable
6、,as well as the value of using and reference. If the safety distance is 0.5m, the single-chip may be setted as the reverse alarm and the safety will be improved. This digital ultrasonic reverse rangefinder uses ultrasonics to finish the test of the distance of vehicles. Completing the control of the
7、 system with real-time detection and the function of data processing. This essay is mainly talking about the hardware circuit principle and the software design of rangefinder.Keywords: AT89C52 ultrasonic rangefind目 录前言11 数字超声波倒车测距仪介绍11.1 数字超声波倒车测距仪功能分析11.1.1 数字超声波倒车测距仪的基本功能11.2.1 AT89C52的硬件结构图21.2.2
8、 AT89C52各部分的作用与工作原理32 系统硬件电路设计62.1 单片机的最小系统62.2 时钟电路62.3 复位电路72.4 多谐振荡器72.5 超声波传感器82.6 超声波接收电路92.7 放大电路及参数设定92.8 电压比较电路及参数设计102.9 AT89C52和LCD显示器模块的硬件接口113 系统软件设计143.1 超声波接收发射软件设计143.1.1 距离计算问题143.1.2 串扰问题143.1.3程序流程图153.2 LCD液晶显示器软件设计163.2.1 读/写时序174 结束语18附录:19参考文献:25数字超声波倒车测距仪设计前言 人们能听到声音是由于物体振动产生的
9、,它的频率在20HZ-20KHZ范围内,超过20KHz称为超声波,低于20Hz的称为次声波。常用的超声波频率为几十KHz几十MHz。由于超声波指向性强,因而常于距离的测量。利用超声波检测往往比较迅速、方便、计算简单、易于做到实时控制,并且在测量精度方面能达到工业实用的要求,因此在移动机器人,汽车安全,海洋测量等上得到了广泛的应用。本设计提供一种液晶显示测距装置,该装置利用了发射接收一体化的超声波传感器和微处理器。采用超声波传感器分时工作于发射和接收,利用声波在空气中的传播速度和发射脉冲到接收反射脉冲的时间间隔计算出障碍物到超声波测距器之间的距离。距离是在不同的场合和控制中需要检测的一个参数,所
10、以,测距就成为数据采集中要解决的一个问题。尽管测距有多种方式,比如,激光测距,微波测距,红外线测距和超声波测距等。但是,超声波测距不失为一种简单可行的方法。虽然超声波测距电路多种多样,甚至已有专用超声波测距集成电路。但是,有的电路复杂,技术难度大,有的调试困难,有的元件不易购买。本文介绍的电路,成本低廉,性能可靠,所用元件易购,并且利用测距原理,结合单片机的数据处理,使测量精度提高,电路实现容易,无须调试,工作稳定可靠。1 数字超声波倒车测距仪 超声波倒车测距仪俗称倒车雷达又称泊车辅助系统,一般由超声波传感器(俗称探头)、控制器和显示器等部分组成,现在市场上的倒车雷达大多采用超声波测距原理,驾
11、驶者在倒车时,启动倒车雷达,在控制器的控制下,由装置于汽车车尾保险杠上的探头发送超声波,遇到障碍物,产生回波信号,传感器接收到回波信号后经过控制器进行数据处理,判断障碍物的位置,由显示器显示距离并发出警示信号,得到及时警示,从而使驾驶者倒车时做到心中有数,使倒车变得更轻松。介绍1.1 数字超声波倒车测距仪功能分析这部分阐述了数字超声波倒车测距仪的各种动作功能和控制要求,给出了完整的数字超声波倒车测距仪操作规程,并介绍了数字超声波倒车测距仪运行系统种所包括的人工操作步骤。1.1.1 数字超声波倒车测距仪的基本功能在进行程序编写之前,首先要做的工作是数字超声波倒车测距仪本身所具备的功能及在进行某种
12、操作后所具有的状态。数字超声波倒车测距仪的基本功能就是对汽车尾部到静止物体的距离进行运算,并根据所测距离数值判断是否能够顺利完成车辆的倒车,并作出相应的反应。数字超声波倒车测距仪的工作框图如图1.1.1-1所示:AT89C52单片机超声波发射头放大电路超声波接收头放大电路LCD显示键盘图1.1.1-1 超声波倒车测距仪工作框图1.2 控制器的选型与工作原理当某一个控制任务决定由控制器来完成后,选择控制器就成为最重要的事情。一方面要选择多大容量的控制器 ,另一方面是选择什么公司的单片机及外设。对第一个问题,首先要对控制任务进行详细的分析,把所有的I/O口找出来,包括每个端口的具体功能。1.2.1
13、 AT89C52的硬件结构图XTAL1RESETEAPSTNALEXTAL2CPU(运算器)(控制器)程序存储器4Kb Flash ROM数据存储器RAM特殊功能寄存器SFRP0P2看门狗定时器串行口定时器/计数器 16位 2个中断系统P1P3图1.2.1-1 AT89C52硬件结构图1.2.2 AT89C52各部分的作用与工作原理 1.2.2.1 中央处理器 CPU是由控制器和运算器组成的。运算器也称为算术逻辑单元,它的功能就是进行算术运算和逻辑运算。控制器的作用是控制整个计算机的各个部件有条不紊地工作,其基本功能是从内存中取指令和执行指令。他的重要功能如下: 为一般控制应用的 8 位单芯片
14、; 晶片内部具时钟振荡器(传统最高工作频率可至 12MHz); 内部程式存储器(ROM)为 4KB; 内部数据存储器(RAM)为 128B; 外部程序存储器可扩充至 64KB; 外部数据存储器可扩充至 64KB; 32 条双向输入输出线,且每条均可以单独做 I/O 的控制; 5 个中断向量源; 2 组独立的 16 位定时器; 1 个全多工串行通信端口; 8751 及 8752 单芯片具有数据保密的功能; 单芯片提供位逻辑运算指令。1.2.2.2 存储器AT89C52的存储器分为两大部分一大部分是程序存储器,用来存放系统管理程序、监控程序及其系统内部数据;二大部分是数据存储器,用于存放中间运算结
15、果、数据暂存和缓冲、标志位。1.2.2.3 I/O口介绍图1.2.2.3-1 AT89C52管脚图 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 端口写
16、“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2的触发输入(P1.1/T2EX),具体如下表所示。在flash编程和校验时,P1口接收低8位地址字节。在flash编程和校验时,P1口接收低8位地址字节。具体如下所示:P1端口第二功能:P1.0T2(定时器/计数器T2的外部计数输入),时钟输出P1.1T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制)P1.5MOSI(在系统编程用)P1.6MISO(在系统编程用
17、)P1.7SCK(在系统编程用) 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位地址字节和一些控制信号。
18、 P3 口:P3 口是一个具有内部上拉电阻的8 位双向I/O 口,p2 输出缓冲器能驱动4 个TTL 逻辑电平。对P3 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。P3口亦作为AT89C52特殊功能(第二功能)使用。在flash编程和校验时,P3口也接收一些控制信号。P3端口第二功能:P3.0RXD(串行输入)P3.1TXD(串行输出)P3.2INT0(外部中断0)P3.3INT1(外部中断1)P3.4T0(定时器0外部输入)P3.5T1(定时器1外部输入)P3.6WR(外部数据存储器写选通)P3.7
19、RD(外部数据存储器写选通) RST: 复位输入。晶振工作时,RST脚持续2 个机器周期高电平将使单片机复位。看门狗计时完成后,RST 脚输出96 个晶振周期的高电平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能无效。DISRTO默认状态下,复位高电平有效。 ALE/PROG:地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低8 位地址的输出脉冲。在flash编程时,此引脚(PROG)也用作编程输入脉冲。在一般情况下,ALE 以晶振六分之一的固定频率输出脉冲,可用来作为外部定时器或时钟使用。然而,特别强调,在每次访问外部数据存储器时,ALE脉冲将会跳过。如果需要,通过将
20、地址为8EH的SFR的第0位置 “1”,ALE操作将无效。这一位置 “1”,ALE 仅在执行MOVX 或MOVC指令时有效。否则,ALE 将被微弱拉高。这个ALE 使能标志位(地址为8EH的SFR的第0位)的设置对微控制器处于外部执行模式下无效。 PSEN:外部程序存储器选通信号(PSEN)是外部程序存储器选通信号。当AT89C52从外部程序存储器执行外部代码时,PSEN在每个机器周期被激活两次,而在访问外部数据存储器时,PSEN将不被激活。 EA/VPP:访问外部程序存储器控制信号。为使能从0000H 到FFFFH的外部程序存储器读取指令,EA必须接GND。为了执行内部程序指令,EA应该接V
21、CC。在flash编程期间,EA也接收12伏VPP电压。 XTAL1:振荡器反相放大器和内部时钟发生电路的输入端。 XTAL2:振荡器反相放大器的输出端。1.2.2.3 系统的基本工作原理系统的工作是由软件和硬件的配合过程。先由AT89C52单片机使NE555使能端置1,继而NE555送出40kHz频率的方波信号经过压电换能器(超声波发射头)将信号发射出去及发射超声波,同时该时刻启动定时器开时计时。该信号遇到障碍物反射回来在此称为回波。同时,压电换能器(超声波接收头)将接收的回波及接收超声波,通过信号处理的检波放大,及通过三级放大后再送到比较器进行比较输出比较电压, 输出电压经过三极管以后,使
22、之电压与AT89C52的I/O口相匹配最后送至微机处理。最后进行LCD液晶显示。数字超声波倒车测距仪的工作框图如图1.1.1-1所示。2 系统硬件电路设计2.1 单片机的最小系统单片机正常工作时,都需要有一个时钟电路,和一个复位电路。本设计中选择了内部时钟方式和按键电平复位电路,来构成单片机的最小电路。如图2.1-1所示。图2.1-1 AT89C52最小系统2.2 时钟电路计算机工作时,是在统一的时钟脉冲控制下一拍一拍的进行的,这个脉冲是由单片机控制器中的时序电路发出的。单片机的时序就是CPU在执行指令时所需控制信号的时间顺序。为了保证各部件间的同步工作。单片机内部电路就在惟一的时钟信号控制下
23、严格的按时序进行工作。要给单片机提供时序要有相关的硬件电路,即振荡器和时钟电路。因此选择了内部时钟方式。利用蕊片内部的振荡器,然后在引脚XTAL1和XTAL两端跨接晶体或陶瓷谐振器,就构成了稳定的自激振荡器,其发出的脉冲直接送入内部时钟电路如图1所示,外接晶振时,C1和C2值通常选择为30PF左右。C1,C2对频率有微调作用。晶体的频率范围可在1.212MHZ之间选择。在实际连接中,为了减少寄生电容,更好地保证振荡器稳定。可靠地工作,振荡器和电容应尽可能安装得与单片机芯片靠近。2.3 复位电路复位是单片机的初始化操作。单片机在启动运行时,都需要先复位,其作用是使CPU和系统中其他部件都处于一个
24、确定的初始状态,并从这个状态开始工作。因而,复位是一个很重要的操作方式。但单片机本身是不能自动进行复位的,必须配合相应的外部电路来实现。2.4 多谐振荡器采用NE555 构成多谐振荡器可以实现占空比的调节。并且电路设计简单,占用面积小。由单片机AT89C52的P2.3口发出同步脉冲信号,该同步脉冲启动多谐振荡器,使其输出40KHz的高频电压信号,经过整形直接加至超声波换能器探头。根据逆压电效应, 产生振动频率为40KHz的超声波。如图2.3-1所示:图2.4-1 多谐振荡器和超声波发射电路接通电源后,电容C被充电,VC上升,当VC上升到2/3VCC时,触发器被复位,同时放电BJT T导通,此时
25、Vo为低电平,电容C通过R2和T放电,使VC下降。当VC下降到1/3VCC时,触发器又被置位,Vo翻转为高电平。电容器C放电所需的时间为: (2.4-1) 当C放电结束时,T截止,VCC将能过R1,R2向电容器充电,VC由1/3VCC上升到2/3VCC所需的时间为: (2.4-2)当VC上升到2/3VCC时,触发器又发生翻转,如此周而复始,在输出端就得到一个周期性的方波,其频率为: (2.4-3)由于NE555内部的比较器的灵敏度较高,而且采用差分电路形式,它的振荡频率受电源电压的温度变化的影响很小。图2.4-2 NE555的工作波形图从NE555的工作波形图,可看出占空比是固定不变的。为了调
26、解的方便,我把R1和R2都换成了电位器,就形成了占空比可调的电位器。使的超声波的发射电路更加具有高效性。也能满足波尽可能的减小失真。从面达到测距更长的效果。2.5 超声波传感器从图2.4-1超声波的发射电路上看还有一个超声波传感器。它具有把电信号转化为机械信号,同时又能把机械信号转化为电信号的功能。在设计中选择了压电式超声波发声器。压电式超声波发生器实际上是利用压电晶体的谐振来工作的。超声波发生器内部结构中,它有两个压电晶片和一个共振板。压电晶体组成的超声波传感器是一种可逆传感器,它可以将电能转变成机械振荡而产生超声波,同时它接收到超声波时,也能转变成电能,所以它可以分成发送器或接收器。当它的
27、两极外加脉冲信号,其频率等于压电晶片的固有振荡频率时,压电晶片将会发生共振,并带动共振板振动,便产生超声波。反之,如果两电极间未外加电压,当共振板接收到超声波时,将压迫压电晶片作振动,将机械能转换为电信号,这时它就成为超声波接收器了。本文所采用的超声波传感器是T/R-40-16(其中T表示发送,R表示接收,40表示频率为40KHZ,16表示其外径尺寸,以毫米计)。2.6 超声波接收电路超声波接收电路包括由MC3403构成的三级回波放大电路以及LM358电压比较整形电路两部分,与超声波接收传感器T-40-16配合使用,实现超声波的接收功能。图2.6-1 超声波接收电路2.7 放大电路及参数设定当
28、测量距离较大时,超声波的回波较弱,这时候就需要将信号放大,否则其转换成电信号的幅值也会比较小。在设计中,采用三级放大电路,将信号最大能放大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中,可以看到各个运放的基准电压都是可调的。这样更有利于达到自己想要的理想结果。超声波接收头接收到的4
29、0 kHz反射波交流信号。电容C5、C9、C12的作用为滤掉直流信号,对电容的大小无特别要求,所以一律选为1000PF。其中的放大电路是由MC3403构成的。MC3403是四低功耗运算放大器。MC3403的引脚结构如图2.7-1所示:图2.7-1 MC3403的引脚结构2.8 电压比较电路及参数设计电压比较器的功能是比较两个电压值的大小,例如,将一个信号电压和另一个参考电压进行比较,在和时,电压比较器输出两个不同的电平,即高电平和低电平。比较器的输出通常只有高电平和低电平两个稳定状态,因此它相当于一个受输入信号控制的开关,当输入电压经过阈值时开关动作,使输出从一个电平跳转到另一个电平。系统中,
30、比较器的作用是将信号电压与设定的基准电压相比较,当信号电压大于基准电压时,比较器输出正脉冲,导通,P2.5接收负脉冲信号,单片机CPU发出中断,记录发射信号与接受信号之间的时间,并计算距离。在比较器的设计中要考虑两点因素:第一,要使导通;第二,要使经过三极管以后的电压与AT89C52的P2.5口相匹配。为了在实际应用时能得到合适的参数,将设计为最大阻值为5.1 k的电阻,这样,的阻值便可得到满足上述条件的电压信号。用做电压比较器的的LM358,从图2.8-1可以看出比较器的的基准电压是可调的,因为从超声波接收的信号,要求有很高的灵敏度和精度,从放大电路出来的电压变化是非常微妙的,必须配和可调的
31、基准电压采能满足进行比较达到达到设计中的需要。LM358内部包括有两个独立的、高增益、内部频率补偿的双运算放大器,适合于电源电压范围很宽的单电源使用,也适用于双电源工作模式,在推荐的工作条件下,电源电流与电源电压无关。它的使用范围包括传感放大器、直流增益模块和其他所有可用单电源供电的使用运算放大器的场合。LM358的引脚结构图:图2.8-1 LM358的引脚结构2.9 AT89C52和LCD显示器模块的硬件接口AT89C52和JM12864J的硬件接口连线如图2.9-1所示。在图中看出,LCD显示器模块的能动信号E是由AT89C52的P3.2控制。当P3.2电平由高到低产生一个下降沿脉冲,就产
32、生能动信号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之间接一个电位器,用于调节VEE的电压。VEE的电压一般取0-5V。AT89C52和LCD显示器模块的硬件接口:图2.9-1 AT89C52和LCD显示器模块的硬件接口在JM12864J型LCD显
33、示器模块就用中,有7种指令格式。这些指令用于对模块执行专门的控制功能,为些指令及其功能分别说明如下。 表2.9-1 显示开关控制(DISPLAY ON/OFF)指令代码R/WRSDB7DB6DB5DB4DB3DB2DB1DB0形式 0 0 0 0 1 1 1 1 1 DD=1:开显示(DISPLAY ON) 意即显示器可以进行各种显示操作D=0:关显示(DISPLAY OFF) 意即不能对显示器进行各种显示操作 表2.9-2 设置显示起始行(DISPLAY START LINE)指令代码R/WRSDB7DB6DB5DB4DB3DB2DB1DB0形式 0 0 1 1 A5 A4 A3 A2 A1
34、 A0 Z地址计数器是一个6位计数器。此计数器具备循环计数功能,是用于显示行扫描同步的。当一行扫描完成,此地址计数器自动加1,指向下一行扫描。RST复位后Z地址计数器为0。显示起始行是由Z地址计数器控制的。A5A0 6位地址自动送入Z地址计数器,起始行的地址可以是063的任意一行。例如:选择A5A0是62,则起始行与DDRAM行的对应关系如下:DDRAM 行:62 63 0 1 2 3 28 29屏幕显示行: 1 2 3 4 5 6 31 32表2.9-3 设置页地址(SET PAGE “X ADDRESS”)指令代码R/WRSDB7DB6DB5DB4DB3DB2DB1DB0形式 0 0 1
35、0 1 1 1 A2 A1 A0所谓页地址就是DDRAM的行地址,8行为一页,模块共64行即8页,A2A0表示07页。读写数据对地址没有影响,页地址由本指令或RST信号改变复位后页地址为0。页地址与DDRAM的对应关系见DDRAM地址表。 表2.9-4 设置Y地址(SET Y ADDRESS)代码R/WRSDB7DB6DB5DB4DB3DB2DB1DB0形式 0 0 0 1 A5 A4 A3 A2 A1 A0此指令的作用是将A5A0送入Y地址计数器,作为DDRAM的Y地址指针。在对DDRAM进行读写操作后,Y地址指针自动加1,指向下一个DDRAM单元。表2.9-5读状态(STATUS READ
36、)代码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触发器的状态,用于控制屏幕显示的开和关。RST: RST=1表示内部正在初始化,此时组件不接受任何指令和数据表2.9-6 写显示数据(WRITE DISPLAY DATE) 代码R/W RSDB7
37、DB6DB5DB4DB3DB2DB1DB0形式 0 1 D7 D6 D5 D4 D3 D2 D1 D0D7D0为显示数据,此指令把D7D0写入相应的DDRAM单元,Y地址指针自动加1。表2.9-7 读显示数据(READ DISPLAY DATE) 代码R/WRSDB7DB6DB5DB4DB3DB2DB1DB0形式 1 1 D7 D6 D5 D4 D3 D2 D1 D0 此指令把DDRAM的内容D7D0读到数据总线DB7DB0,Y地址指针自动加1。3 系统软件设计系统软件部分包括主程序、中断子程序和其他子程序。主程序完成系统初始化后调用LCD液晶显示程序,再调用测距在内的各个子程序完成距离测量并
38、显示输出。各子程序主要有:延时子程序、距离计算子程序及BCD码转换子程序,压缩BCD码乘法子程序,压缩BCD码加子法程序等。3.1 超声波接收发射软件设计3.1.1 距离计算问题采用单片机来控制的超声波测距仪是先由单片机产生一个信号,经过信号线,把信号引入到与超声波发射器相连的信号引脚上,再由超声波发射器向某一方向发射超声波,在发射时刻的同时开始计时,超声波在空气中传播,途中碰到障碍物就立即返回来,超声波接收器收到反射波就立即停止计时。超声波在空气中的传播速度为340m/s,根据计时器记录的时间t,就可以计算出发射点距障碍物的距离(s),即: (3.1.1-1)超声波发射接收所测距离的软件设计
39、中,让单片机省去了繁杂的除法计算。以170乘上超声波从发射到接收的时间。即有压缩BCD码乘法进行计算。当然我们知道,定时器计数的最大值是65535us,如果以这个时间乘以170m距离能达到11.m。因此在设计中,考虑到用上了定时器0溢出标志TF0。当超声波从发射到接收的时间超过了65535us,就把TF0置1,然后软件将TF0清0,着开始计数。最后是把后来的计数时间乘以170。所得的结果加上11.N。N为TF1置1次数。即调用压缩BCD码加法。最后就进行解压缩进行显示。把所得的结果的每一位分配到不同的地址上。最后就根据地址确定位数了。3.1.2 串扰问题设计中,超声波发射极和接收极距离较近,这
40、样,当发射极发射超声波后,有部分超声波没经过障碍物反射就直接绕射到接收极上,这部分信号是无用的,会引起系统误测。设计中采用延时技术来解决这个问题,并设定延时时间为1 ms,即在发射极发射超声波1 ms内,没有启动定时器 ,接收电路对此期间接收到的任何信号不予理睬,1 ms后立即启动T0,这时接收到的信号才有效,并在接收到回波信号的同时,T0停。此时T0所记录的CPU发送脉冲信号的前沿到回波脉冲信号之间的时间才是需要的。3.1.3 程序流程图程序主流程图:YN程序初始化调用LCD显示按键等待返回测距初始化超声小波发射接收距离计算LCD显示开始结束图3.1.3-1 程序主流程图超声波发射接收程序流
41、程图:TF0=0YNYNTF0=1发射超声波脉冲查询定时溢出有回波吗?计算距离调用LCD液晶显示初始化按键等待计时器计时开始停止计时开始结束图3.1.3-2 超声波发射接收程序流程图3.2 LCD液晶显示器软件设计JM12864J有12864的点的显示阵列。可显示汉字(48个1616点阵汉字),也可显示数字(416个168点阵数字)。在软件编程必须要严格遵守点阵的坐标位置,否则就容易汉字数字的重叠,达不到理想的效果,出现一批乱码。在软件设计中,首先要写入全部字符。查要寻址的的二进制编码的坐标位置,定位好后,就写进二进制字符。紧接着就是内部写数据代码指针定位,再写入数据。每一次写字符时,都是写字
42、符的上半部,接着再写字符的下半部。同时必须配合刷新程序,才能在屏幕上显示清晰的效果,不会出现乱码。3.2.1 读/写时序利用AT89C52单片机可以实现对LCD显示器模块的读写操作,也就是把显示信息取出或写入到模块中的显示数据存储器DDRAM中读写有一定的时序要求。这时分别介绍其读时序和写时序。3.2.1.1 LCD显示模块读时序LCD显示器模块的读时序由信号E,R/W,CS,RS和DB0DB7组成。E是能动信号,R/W是读写信号,RS是显示/指令标志位,CS是选择信号,DB0DB7是数据信号。JM12864J的读时序如图4.3所示。从图中可以看出:R/W=1时,执行读操作,在E信号的上升沿开
43、始执行读出,把JM12864J内的DDRAM内容读出到数据总线DB0DB7上。这时如果RS=1,则读出的是显示数据:如果RS=0,则读出的是指令数据。CS2=1,CS1=0,读右半屏的内容:CS2=0,CS1=1,读左半屏的内容。图3.2.1.1 LCD显示模块读时序3.2.1.2 LCD显示模块写时序JM12864J的写时序如图4.4所示。写时序和读时序的区别在于R/W信号为低电平,即R/W=0。这时,必须先把写入的数据由外部单片机送入数据总线DB0DB7,然后在能动信号E的下降沿时,把数据从DB0DB7写入到模块的显示数据存储器DDRAM中。同样,在RS=1时,写入的是数据;RS=0时,写
44、入的是指令。在CS2=1,CS1=0时,把数据写入右半屏;在CS2=0,CS1=1时,把数据写入左半屏。图3.2.1.2 LCD显示模块写时序4 结束语首先感谢XX老师、XX老师对本次课程设计的大力支持和帮助,让我顺利的完成了本次设计,是两位老师的专业知识感染了我,使我能够用严谨的工作态度面对学习。在本次设计的过程中,我发现很多的问题,给我的感觉就是很难,很不顺手,看似很简单的电路,要动手把它给设计出来,是很难的一件事,主要原因是我们没有经常动手设计过电路以及在设计过程中用到的知识我学得不是很扎实,还有资料的查找也是一大难题,这就要求我们在以后的学习和工作中,应该注意到这一点,更重要的是我们要
45、学会把从书本中学到的知识和实际的电路联系起来,这不论是对我们以后的就业还是学习,都会起到很大的促进和帮助。不过本次设计中仍有不足之处,其中主要的不足之处就是回波的设计要求。其主要原因是设计条件不够。同时,通过课程毕业设计,巩固了我们学习过的专业知识,也使我们把理论与实践从真正意义上相结合了起来;考验了我们借助互联网络搜集、查阅相关文献资和组织材料的综合能力;从中可以自我测验,认识到自己哪方面有欠缺、不足,以便于在日后的工作中得以改进、提高。通过使用电路设计软件Altium Designer提高了工作效率。最后,感谢父母给予我的生命,感谢他们为我的付出!感谢老师们的无私奉献!附录:#includ
46、e#include#define uchar unsigned char#define uint unsigned int#define ulong unsigned longuint c=340; /定义10度时声音的速度ulong l,time;char ii=1,k=80,aa;char t,ts,tg,lb,ls,lg,lsf,fh,cb,cs,cg;sbit RW=P21; /定义LCD读/写选择端sbit RS=P20;/定义LCD数据/命令选择端sbit E=P22; /定义LCD使能端sbit k3=P12;sbit k4=P13;sbit sg=P37; /定义超声波射引脚s
47、bit ctl=P35;/定义超声波控制引脚uchar tplsb,tpmsb; /温度值低位、高位字节sbit DQ=P36; /DS18B20数据通信线ulong tp,sw,gw,sfw,bfw,tppp;uchar *p;void delay(uint i) /延时程序while(i-); /*产生复位脉冲初始化DS18B20*/void Txreset()DQ=0; delay(100); /拉低约900US DQ=1; /产生上升沿 delay(4); /*等待应答脉冲*/ void Rxwait()while(DQ); while(DQ=0); /检测到应答脉冲 delay(4)
48、; /*读取数据的一位,满足读时隙要求*/bit Rdbit()uint i; bit b; DQ=0; i+; /保持至少1US DQ=1; i+; i+; /延时节15US以上 b=DQ; i=8; while(i0)i-; return(b); /读时隙不低于60US/*读取数据的第一个字节*/uchar Rdbyte()uchar i,j,b; b=0; for(i=1;i=8;i+) j=Rdbit(); b=(j1); return(b);/*写数据的第一个字节,满足写1和写0的时隙要求*/void Wrbyte(uchar b)uint i; uchar j; bit btmp;
49、 for(j=1;j1; /取下一位(由低位向高位) if(btmp) DQ=0; i+; i+; /延时,使得15US以内拉高 DQ=1; i=8; while(i0)i-;/整个写1时隙不低于60US DQ=1; i+; i+; else DQ=0; i=9; while(i0)i-; /保持低在60至120US之间 DQ=1; i+; i+; /启动温度变换/void convert() Txreset();/产生复位脉冲,初始化DS18B20 Rxwait();/等待DS18B20给出的应答脉冲 Wrbyte(0xcc); /skip rom命令 Wrbyte(0x44); /convert T命令void Rdtemp() /温度读取值/Txreset(); /产生复位脉冲,初始化DS18B20 Rxwait(); /等待DS18B20给出
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 网络安全技术发起人协议书
- 矿山开采土方施工协议
- 武汉市飞机租赁合同范本
- 康复设备租赁合同小区康复规定
- 国际度假村建设合同范本
- 商品房限价销售管理规定
- 供应链优化条例
- 珠宝首饰合同签订及执行管理办法
- 污水处理项目评审案例
- 古城墙遗址翻新改造合同
- 一校一策规划实施方案
- 《对外开放的中国》课件
- GB/T 43619-2023超压保护安全装置受控安全泄压系统
- 工程地质勘察收费标准
- 劳务投标技术标
- 幼儿园大班韵律《朱迪警官破案记》课件
- 《强化学习简介》课件
- 《常用局域网设备》课件
- 卵巢恶性肿瘤教学查房
- 《玄武岩纤维沥青混合料技术规范》征求意见稿
- 2023年秋季国开《学前教育科研方法》期末大作业(参考答案)
评论
0/150
提交评论