【单片机控制的超声波测距系统硬件和软件设计案例12000字】_第1页
【单片机控制的超声波测距系统硬件和软件设计案例12000字】_第2页
【单片机控制的超声波测距系统硬件和软件设计案例12000字】_第3页
【单片机控制的超声波测距系统硬件和软件设计案例12000字】_第4页
【单片机控制的超声波测距系统硬件和软件设计案例12000字】_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

单片机控制的超声波测距系统硬件和软件设计案例目录TOC\o"1-3"\h\u17490单片机控制的超声波测距系统硬件和软件设计案例 1275801系统硬件电路设计 2243671.1整体方案设计 2154091.2单片机最小系统电路 3250401.2.1单片机介绍 3212351.2.2单片机最小系统 6209211.3HC-SR04模块 7138981.3.1HC-SR04模块使用器件 780931.3.2超声波模块电路 9126691.3.3HC-SR04模块工作原理 1065321.3.4超声波模块电路 11130311.4液晶显示电路 12130621.1.11602液晶简介 12193971.1.2液晶引脚说明 13318461.1.3指令介绍 14264601.1.4液晶的操作时序图 17101381.1.5液晶显示模块电路 18154681.5DS18B20传感器电路 19129321.2.1DS18B20简介 19212511.2.2时序说明 20183991.2.3DS18B20模块电路图 2226111.6报警模块 23134881.3.1蜂鸣器的介绍 2392761.3.2蜂鸣器报警电路 24323231.3.3发光二极管 24217881.3.4LED灯报警电路 24176531.7按键输入模块 25283371.8总模块图 26169812软件设计 27242682.1程序语言及开发环境 27259672.2程序流程图 2758552.2.1总体流程图 27261652.2.21602液晶程序设计 29292362.2.3超声波模块程序流程图设计 30126402.2.4温度传感器程序设计 3158422.3主程序 32226013系统联调及测试 33282723.1硬件搭载实物 33195853.2测试结果分析 341系统硬件电路设计1.1整体方案设计设计中,把STC89C52作为主要的部件,最小系统的构成是结合一些电阻及电容,晶振等器件来完成的,其他的模块则是搭在最小系统的周围运行,系统框图如图1.1所示:图1.1系统框图所用到的模块如上图,利用超声波模块来收发超声波,温度传感器则是对环境温度的把控,让超声波在传送的时候,所起到温度补偿的辅助作用,还有液晶显示模块,显示出测量的距离值和温度值。按键模块是对报警限制的调整。发光二极管和蜂鸣器组成的报警电路,每当测量的值小于设置的报警值时,会进行闪烁性地声光报警,最后采用一个5V供电的接口,采用USB线型,对移动性供电方便使用。1.2单片机最小系统电路1.2.1单片机介绍1、概述STC89C52是一款低功耗,高性能CMOS8位微控制器。它包含8k字节的可擦写闪存只读程序存储器(ROM)和512字节的随机存取数据存储器(RAM)。该微控制器由STC生产。它与标准MCS-51命令系统兼容,高密度,不容易失存储技术,有内置存储,8位中央处理器,而且在这基础上做了更多的改进。STC89C52采用的是MCS-51的内核,但是在此基础上做出了许多改动,也是大多数51单片机没有的功能。STC89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,STC89C52可在线编程,也可以常规编程。另外,STC89C52可以将静态逻辑操作减少到0Hz,然而通用的单片机结合着FLASH可以降低成本。STC89C52提供PDIP,DIP和LDIP封装,以适应不同的市场需求。2、主要功能特性兼容传统的MCS51指令系统;(1)工作电压范围:两种不同工作电压的单片机,分别是5V和3V单片机;(2)8kB的FlashROM;(3)可编程的全双I/O端口有32个;(4)512字节的RAM;(5)有三个16bit可编程的定时/计数器中断;(6)工作在0~40MHz的频率,甚至实际可以达到48MHz;(7)多个串口可以用定时器软件来实现,两个个串行中断,可编程串口串行通道;(8)四个外部中断源,下降沿中断或低电平触发电路;(9)两个读写中断口线,三级加密位;(10)低功耗空闲和掉电模式,可以软件设置睡眠;(11)看门狗定时器;(12)具有EEPROM功能;(13)局限性的可以工作在-40~+85℃温度;(14)PDIP、DIP、LDIP封装。3、STC89C52单片机的引脚功能图1.2STC89C52引脚图MCS-51系列单片机一般采用40个引脚,双列直插式封装,用HMOS工艺制造[11]。其外部引脚排列如图1.2所示。其中,各引脚的功能为:(1)P0口是一个双向输入输出、8bit的漏极开路端口,作为输出口,每个bit都可以驱动八个TTL逻辑电平,对P0口写入“1”时,引脚会当作是高电阻抗的输入,每当访问外面的程序,还有数据存储时,P0口会被默认当作低8bit的地址或者数值来反复使用,在这种情况中,P0是具有上拉电阻的,并且在访问的期间是活跃的,在flash编程过程中,P0口用来接收Byte,然而在校验程序的时候输出Byte,并且此时需要一个外接的上拉电阻。(2)P1口,不仅仅是一个P0口内部所没有的上拉电阻,而且还是一个8bit的双向输入输出口,P1口的输出缓冲,可以驱动四个TTL逻辑电平,当对P1写“1”时,P1口的内部上拉电阻会把端口拉高,此时的P1口就可以当作输入口所使用,处在此时的作用,由于内部电阻拉低了外接的引脚,所以将会输出IIL电流。另外,P1.0和P1.2会分别当作定时器/计数器2,也就是对外部计数输入,对定时/计数2的触发输入,见下图所示:在flash编程,程序校准期间,P1连接低8bit地址。(3)P2口和P1口同样具有内部电阻,也是一个8bit双向I/O口,输出缓冲能驱动四个TTL电平,对于写“1”给P2口,和 P1相同的是,同样内部电阻把外接端口拉高,当作输入口使用,当作输入口的同时,由于内部电阻的原因,外部引脚被拉低,输出IIL电流。访问外部存储,或者使用16bit地址来读取外部存储时,P2送出高8bit的地址数据,在当前应用中,P2口会用内部很强的上拉发送“1”的信号。使用8bit访问外部存储时,P2锁存器会被P2口向外部输出,编写flash时,同时校验,P2口接收高8bit和部分控制信号。(4)P3口除了作为51单片机典型I/O口,P3还是MCU重要第二功能端口,它接收部分控制信号,为编程和校验做足准备。(5)RST复位输入。晶振工作时,复位操作会被两个周期甚至多个周期以上的机械周期的高电平所复位。(6)ALE/PROG,每次访问外部存储和数据储存时,低8bit的地址锁存用于输出脉冲,在这种情况下,地址锁存仍然是输出时钟振动频率的六分之一固定的脉冲信号。所以他的作用是定时和对外输出时钟信号,在这里,需要注意的是,每到访外部数据存储时,都会跳过一个地址锁存允许的脉冲信号。对于flash编程而言,本引脚还可以用作输入PROG,如果有需要,还可以通过SFR中的8EH的D0位进行置位操作,也可以封禁对ALE操作,置位以后,能将ALE激活也就只有MOVC和MOVX指令操作了。另外,引脚会稍微被拉高一点,在MCU工作时,对ALE设置禁止位没用。(7)选通信号会通过外部程序储存向PSEN输入,进行读取数据。在STC89C52读取外部数据时,一个周期内可以使PSEN操作两次有效的结果,即它输出两个脉冲。在此期间,访问外部数据时,PSEN会跳过两次信号。(8)EA/VPP是外部访问允许,此引脚仅仅是让CPU访问外部储存,EA必须接GND,在这里需要注意,在加密位LB1被编程的时候,复位时间EA端会被内部锁存。如果EA为高电平,那么CPU就会执行内部存储的指令来操作运行。(9)XTAL1是输入端口,他是连接振荡反相放大器,内部时钟发生器的。(10)XTAL2是输出端口,作用是接振荡器反相放大器的。表1.1P3口第二用途1.2.2单片机最小系统STC89C52的整个最小系统由三个部分组成,晶振电路部分、复位电路部分、电源电路等三个部分组成[12]。如图1.3所示:图1.3单片机最小系统晶振电路包括2个30pF的电容C2和C3,以及12M的晶振X1。电容的作用在这里是起振作用,帮助晶振更容易的起振,取值范围是15-33pF。晶振的取值也可以是24M,晶振的取值越高,单片机的执行速度越快。在进行电路设计的时候,晶振部分越靠近单片机越好[14]。单片机复位电路就好比电脑的重启部分,当电脑在使用中出现死机,按下重启按钮电脑内部的程序从头开始执行;单片机也一样,当单片机系统在运行中,受到环境干扰出现程序跑飞的时候,按下复位按钮内部的程序自动从头开始执行[13]。复位电路由10uF的极性电容C1和10K的电阻R4构成。利用电容电压不能突变的性质,可以知道,当系统一上电,RESET脚将会出现高电平,并且这个高电平持续的时间由电路的RC值来决定。典型的51单片机当RESET脚的高电平持续两个机器周期以上就将复位,所以适当组合RC的取值就可以保证可靠的复位。最后一个是电源部分,采用5V的USB直接供电,可采用手机充电器、电脑USB口、移动电源等设备进行供电。此外,除了单片机最小系统的3个部分之外,这里还多了一些外部电路。由于STC89C52的P0口是漏极开路输出,因此在P0口接了一个10K的排阻R1,使得P0口可以作为普通的I/O口使用,本设计用P0口来做液晶的数据口。特别注意的是,对于31脚(EA),当接高电平时,单片机在复位后从内部ROM的0000H开始执行;当接低电平时,复位后直接从外部ROM的0000H开始执行。由于我们的程序存储在了单片机内部,所以EA要接高电平,保证单片机是从内部读取程序去执行的[15]。1.3HC-SR04模块该模块采用可不用接触式的感应功能,同时检测距离范围可达2-400cm,它的结构很简单,容易得到单片机的控制,并且性价比高,实物如图1.4所示:图1.4HC-SR04模块实物图1.3.1HC-SR04模块使用器件1、MAX232此芯片是由美信公司制造,标准的RS-232的串口,单电源转换,5v供电,在本次设计中主要作用是对T40-16的电压进行放大。此芯片共有14个引脚,一共有三个部分组成,一是电荷泵电路,由1引脚到6引脚,4个电容组成的电荷泵电路,它的功能是可以产生正负12伏的双电源,给串口RS-232提供电源的需求。二是数据转化通路,它由7脚到14脚来构成的两个数据通路。第一数据通路有:R1IN、R1OUT、T1IN、T1OUT,分别是13脚,12脚,11脚和14脚;第二数据通路是:R2IN、R2OUT、T2IN、T2OUT,分别是8脚,9脚,10脚,7脚。三是供电接口:GND(15脚)和+5V的VCC(16脚)。MAX232引脚图如图1.5所示:图1.5MAX232引脚图2、TL074该集成电路是个运算放大器,有着低噪声和JFET输入四的放大器,1引脚,2引脚和3引脚、脚分别是1通路的输入端,反相输入同相输入。5引脚,6引脚,和7引脚分别是2通路的输出端,反相和同相输入。4引脚是接的正向电源,11引脚接的是负电源,同相输入和反相输入,输出端分别对应的是4通道的12引脚,13引脚,14引脚。TL074引脚图如图1.6所示:图1.6TL074引脚图3、T40-16与R40-16人们为了更好地利用和研究超声波,所以设计生产了许多的超声波的发射器,总的来说,发射器可以分为两个大类:一种是电气的方式生产超声波,另一种是通过机械的方式产生,前者有压电型,电动型等等,后者主要包含加尔统迪类型,和气流旋笛类型的等等。两种类型各产生的频率,功率和特性大有不同,从而应用的方面就不同,现在使用压电式的比较多。压电式的发生器主要是通过压电晶体的谐振动来实现超声波的产生的,它的内部结构是有一个共振板和两个压电形式的晶片组成的,当晶体两极加上脉冲电信号,它的频率是压电晶片的固定频率时,晶片就会产生共振,而且还会带动共振板一起振动,从而产生超声波。相反,假如两端没有加入电脉冲信号,共振板收到超声波的时候,会压迫晶片振动,把机械能转化为电信号,这个时候它的作用就是接收器了,采用的是T40-16T/R的压电型超声波转换模块。传感器实物如图1.7所示:图1.7传感器实物图T40-16T/R的特性如下:(1)标称频率为40kHz;(2)发射电压大于110dB;(3)接收灵敏度大于-70dB;(4)探测距离为0.03m-4m;(5)外径为16mm;(6)通用型;(7)TR定义:T为发射头,R为接收头,TR为收发兼用;适合家用电器的遥控装置,测距以及汽车倒车测距,探测液面,使用超声波开关的应用场合等。1.3.2超声波模块电路HC-SR04模块电路如图1.8所示:图1.8超声波模块电路1.3.3HC-SR04模块工作原理1、电气参数HC-SR04模块参数如表1.2所示:表1.2模块参数电气参数HC-SR04超声波模块工作电压DC5V工作电流15mA工作频率40khz最远射程4m最近射程2cm测量角度15°输入触发信号10us的TTL脉冲输入回响信号输出TTL电平信号,与射程成比例规格尺寸45*20*15cm2、基本工作原理通过IO口给出一个差不多10ms的高电平来触发TRIG进行测距。然后该模块会发送频率为40千赫兹的8个方波,再自动检测信号是否返回,如果有,则通过ECH0口输出一个高电平,高电平存在的周期就是超声波在过程中返回到接收端的时间,利用这个时间乘以传输速度再除以2,就可以计算出超声波的发射与遇障碍物的之间的距离了。测距的周期通常要到六十毫秒以上,这是为了避免在发射与接收信号的影响。HC-SR04模块的工作时序如图1.9所示:图1.9超声波时序图1.3.4超声波模块电路超声波模块一共有4个引脚,一个引脚接电源,另一个引脚接地,剩下的两个引脚分别接到单片机相应的IO口去,这次的设计中,引脚所接到的地方是单片机的P23口和P22口。超声波模块如图1.10所示:图1.10超声波模块电路1.4液晶显示电路1.1.11602液晶简介1602是一种液晶显示模块,它不但轻便小巧,轻便,功耗低,而且功能还强大,能够显示文本图形,还有曲线等。不被电磁辐射所干扰,使用寿命长,目前在便携式电子产品中被大量地使用。本次显示系统采用的是1602工业级字符型显示模块,可以显示2行16字符型的字符,其包括显示阿拉伯数字,英文大小写字母,常用的通用符号等等。用户还可以通过自定义显示汉字,在通信系统中,办公自动化设备被常使用,还有智能操作仪器仪表,主要的功能就是显示ASCII字符,所以常被称作字符型显示器。当内部字库没有合适的汉字或者字符的时候,第一步就是可通过添加想显示的汉字或者图形子模块,所运用的子模块软件不能直接提取5x8点阵型的模块数据,可以手工提取汉字的模具,最后就是把这些子模数据存放到1602的存储器中。1602显示模块有背光的,有不背光的两种,控制器大多使用HD44780,前者比后者的用料厚,实质两者在夜间使用时候有些差别,其次并无差别。两者尺寸如图1.11所示:图1.11液晶尺寸说明1602LCD主要技术参数:(1)可以显示32个字符(2)工作电压为1.5到2.5V(3)工作电流为2mA(4)最佳工作电压在5V(5)字符尺寸为2.95×1.35mm1.1.2液晶引脚说明1602的引脚如表1.3所示:编号符号引脚说明编号符号引脚说明1VSS电源地9D2数据2VCC电源正极10D3数据3VO液晶显示偏压11D4数据4RS数据/命令选择12D5数据5R/W读/写选择13D6数据6EN使能信号14D7数据7D0数据15BLA背光源正极8D1数据16BLK背光源负极表1.31602液晶引脚说明1引脚:接地端2引脚:接正5伏电源。3引脚:VO是可调节显示的背光亮度端口,可以通过一个10k的可调电位器,使其调整亮度4引脚:RS是选择寄存器,高电平选择数据存储,低电平选择命令存储5引脚:R/W是读/写信号选择,进行读取要给高电平,写入要低电平,RS能够决定R/W的状态。6引脚:EN是使能信号发射端,当信号1到0的时候,显示模块的命令开始执行。7引脚至14引脚:8位的双向数据线。15引脚:背光源正极。16引脚:背光源负极。1.1.3指令介绍1、清屏指令指令如表2.4所示:表1.4清屏指令功能表指令功能指令编码执行时间/msRSR/WDB7DB6DB5DB4DB3DB2DB1DB0清屏00000000011.64功能:(1)可以将显示内容清除,其原理是DDRAM全部的内容就加到空的ASCII码20II里面(2)把光标重置在显示屏左上方(3)把地址显示器数值都清零2、光标归位指令指令如表1.5所示:表1.5光标归位指令功能表指令功能指令编码执行时间/msRSR/WDB7DB6DB5DB4DB3DB2DB1DB0光标定位000000000X 1.64 功能:(1)将光标重置到显示器的左上方;(2)地址计数器数值被清零;(3)DDRAM会保存全部内容3、进入模式设置指令指令如表1.6所示:表1.6进入模式设置指令功能表指令功能指令编码执行时间/usRSR/WDB7DB6DB5DB4DB3DB2DB1DB0模式设置00000000I/DS40当输入一位数据之后光标移动的方向将被设置,参数设定的情况如下:I/D:0即为光标会左移当新数据被写入,1即为光标会右移当新数据被写入。S:0即为显示屏不会移当新数据被写入,1即为显示屏幕会整体向右移动一个字符当新数据被写入。4、显示开关设置指令指令如表1.7所示:表1.7显示开关设置指令功能表指令功能指令编码执行时间/usRSR/WDB7DB6DB5DB4DB3DB2DB1DB0显示开关控制0000001DCB40 能够控制显示器的开关与否,光标的显示或者关闭,光标是否需要闪烁,参数设定的情况如下:D:0为显示的功能关闭,1为显示的功能开启。C:0为取消光标的存在,1为使光标存在。B:0为光标设置为闪烁,1为光标设置为不闪烁。5、设定显示屏或光标移动方向指令指令如表1.8所示:表1.8设定显示屏或光标移动方向指令功能表指令功能指令编码执行时间/usRSR/WDB7DB6DB5DB4DB3DB2DB1DB0设置显示屏或光标移动方向000001S/CR/LXX40将光标移动或者整个显示屏幕移动位置,参数设定的情况如下:S/C为0,R/L为0,光标将向左移动一位同时AC的值减去1。S/C为0,R/L为1,光标将向右移动一位同时AC的值加上1。S/C为1,R/L为0,显示器上面的全部字符向左移动一位同时光标不动位置。S/C为1,R/L为1,显示器上面的全部字符向右移动一位同时光标不动位置。 6、功能设定指令指令如表1.9所示:表1.9功能设定指令功能表指令功能指令编码执行时间/usRSR/WDB7DB6DB5DB4DB3DB2DB1DB0功能设置00001DLNFXX40数据总线的位数何所显示出来的行数字型将被设定,参数设定情况如下:D:0为数据总线为4位,1为数据总线为8位。N:0为只显示一行,1为显示两行内容。F:0为显示5乘7点阵每个字符,1为显示5乘10点阵每个字符。7、设定CGRAM地址指令指令如表1.10所示:表1.10设定CGRAM地址指令功能表指令功能指令编码执行时间/usRSR/WDB7DB6DB5DB4DB3DB2DB1DB0CGRAM设置地址0001CGRAM的地址共六位40功能:下一次被存入数据的CGRAM地址将被设置,字符号为DB5DB4DB3即未来显示此字符的时候被采用的字符的地址(000-111)可同时定义八个字符,行号为DB2DB1DB0(000-111)八行。8、设定DDRAM地址指令指令如表1.11所示表1.11设定DDRAM地址指令功能表指令功能指令编码执行时间/usRSR/WDB7DB6DB5DB4DB3DB2DB1DB0DDRAM设置地址001CGRAM的地址共七位40功能:下一次要存入数据的DDRAM地址将被设置。9、读取忙或AC地址指令指令如表1.12所示:表1.12读取忙或AC地址指令功能表指令功能指令编码执行时间/usRSR/WDB7DB6DB5DB4DB3DB2DB1DB0读取忙信号或AC地址指令01FBAC内容共七位40功能:下一次要存入数据的DDRAM地址将被设置。(1)HF(忙碌信号)读取,假如液晶显示器忙碌的时候则BF=1,暂时不能接收被单片机送出的数据和指令,当BF=0的时候则相反。(2)地址计数器(AC)内容被接收。10、数据写入DDRAM或者CGRAM指令指令如表2.13所示:表1.13数据写入DDRAM或者CGRAM指令指令功能表指令功能指令编码执行时间/msRSR/WDB7DB6DB5DB4DB3DB2DB1DB0清屏00000000011.64功能:(1)DREAM被写入字符码,液晶显示屏随即显示出相应的字符;(2)OGRAM被存入由使用者设计的图案1.1.4液晶的操作时序图图1.121602LCD的读时序1602LCD的时序包括读时序如图1.12和写时序如图1.13所示。图1.131602LCD的写时序1.1.5液晶显示模块电路此显示模块有电路连接图可知,1引脚接到电路的地端,2引脚则接到电路的电源端,这两个引脚是整个显示模块的电源输入端口,3引脚是接一个10k的电位器,再接到接地端,可以通过调节电位器来定义显示的亮度,4引脚是控制寄存器的引脚,接到单片机相应的13引脚,5引脚是对读写的控制功能,接到单片机相应的额14引脚,6引脚是信号的使能端口,接单片机15引脚,7引脚直到14引脚是一个8位的地址/数据总线,接单片机P0口,最后的15引脚和16引脚分别是显示模块的背光的电源输入脚,直到系统的VCC,GND。液晶显示模块如图1.14所示:图1.14液晶模块连接图1.5DS18B20传感器电路1.2.1DS18B20简介1、概述它是由美国半导体公司生产的首个温度传感器,不仅小巧,功能强大,功耗也比较低,不受其它元件干扰,并且和多种微处理器兼容,可以把温度系数直接变成数字信号进行处理,可测量负55摄氏度到125摄氏度,允许测量误差值是0.5摄氏度。最大可以达到12位分辨率的编程,可以识别到最低温度0.0625的准确值,比热电偶传感器,精确的温度值要稳定的多。DS18B20如图1.15所示:图1.15DS18B20图2、特性(1)仅需一个脚口来通信,独一无二的1-wire总线接口;(2)设备的内部储存ROM都写入了唯一的62位序列号;(3)多路采集能力强;(4)不需要外围元件;(5)供电电压最高2.5V,最低3.0;(6)可检测-55℃至+125℃(7)低至-10℃,或者高于85℃之后有正负0.5℃的精度;(8)可自定义温度采集精度;(9)精度到12bit时,上升至750ms最大值;(10)可设置不容易丢失的温度报警;(11)定义温度报警搜索命令;(12)兼容DS1822程序;3、管脚定义1管脚是可选择电源引脚VDD;2管脚是单线运用的数据输入/输出引脚VQ;3管脚是接地端,接电源负极VDD[16]。4、应用领域(1)产品适用于冷冻库,粮仓等。(2)小空间范围的设备测温。(3)汽车空调,中低温干燥箱等。(4)管道热量计量,工业领域的测温。1.2.2时序说明单总线信号的DS18B20为确保数据的完整必须执行严格的单总线协议,包括收集于一体的单总线信号类型的写入“0”“1”,读取“1”“0”,脉冲复位,则有脉冲,除了有脉冲,还有总线发出的其它信号。如何说明DS18B20已经准备好收发数据了?和DS18B20建立通信都是要进行一系列的初始化,如下图所示,在一个脉冲的后面必须还有一个复位的脉冲信号。序列初始化。控制器在每480ms会发出复位脉冲,而且总线会被控制器拉低,然后总线再次被放出,之后总控制器又接收信号。5K的电阻就可以把一个单总线拉到高电平,随后被IO检测出是一个高电平,就会等待15到60微妙的区间值,最终发出60到240微妙的低电平,已达到构成脉冲的目的,如图1.16所示:图1.16DS18B20初始化时序图写入时序有两种,分别是写“1”和“0”时序,DS18B20通过总线控制器写入“1”时序和逻辑“1”,“0”时序和逻辑“0”。所有的写时序的周期不能少于60ms,所以在进行写时序的时候,最少都会抽出1微妙来恢复,如果再次写时序,总线就会从高拉到低电平。如果总控制器在写时序,那么它就会把总线从高拉到低,然后在放出总线,过了15微妙,然后再次放出总线,在总线被放出之后,经过一个5K的电阻,再次把总线拉高。总控制器写“0”时,总线保持最少60ms低电平。当总控制器在写时序的时候,温度传感器向IO采样的时间保持在15ms到60ms之间,假如IO线是高电平,那么久写入“1”,反之亦然。读/写时序图如图1.17所示:图1.17读/写时序图在总控制器读时序的时候,控制器会把温度传感器当作只传送数据,因此,在总控制器发出读取暂存指令之后,开始读时序。读电源模式指令也是一样的道理,可以向传感器发送请求,除了暂存指令和电源指令外,总控制器可发出温度的转换,收回可电擦除存储器指令以后才开始读时序。读时序必须保持在60ms以上的时间,并且在读时序的时候,至少需要1ms的恢复。在总线把数据线拉到低电平时,开始读时序。总线等保持1ms的数据线之后再放出。在总控制器读时序的时候,传感器会被拉高,或者总线会被拉低,之后传送0和1,在执行0结束之后,总线会再一次被放出,最后经过上拉电阻再次回到上升沿在读时序的下降沿触发了之后,被DB18B20输出的数据只有15ms之内有效。所以,要使总线读取IO状态,必须在读时序开始之后,暂停IO的驱动并且为15ms的低电平。1.2.3DS18B20模块电路图如图1.18所示:图1.18DS18B20电路连接图1.6报警模块在超声波测距的时候,需要加入报警的功能,在报警模块的设计中,设置一个确切的距离报警值,当小于设定的值时,系统则会报警。发光二极管亮,蜂鸣器啸叫,达到一个集合报警功能。1.3.1蜂鸣器的介绍蜂鸣器采用的一体化的结构设计,供电方式是小直流电压,经常被作为报警器,定时器计数器,等电子设备的发生器件。在广大的电子产品领域发挥着不错的作为警示的功能。蜂鸣器还有压电式的蜂鸣器,也有电磁式的蜂鸣器。由压电蜂鸣片,多谐振荡器为主要器件,并结合共鸣箱体,阻抗匹配,外壳一同组成。多谐振荡器在接通电源之后工作,发出的音频率范围在1.5kHz到2.5kHz,随后压电蜂鸣片会在阻抗匹配的作用下,起振发出声音。电磁式蜂鸣器,由磁铁,振荡器等作为主要部分,结合外壳箱体来发声,当接入电源之后,振荡器发出声音信号,然后电流通过线圈,使线圈产生磁场,振动的膜片受到磁场的作用,振动的频率是呈周期性的,之后发声,故此设计采用电磁式蜂鸣器。蜂鸣器又分为有源式和无源式的两种,我们要注意到的是,“源”并不是电源的意思,而是它们采用的振荡方式是通过什么来振荡的。换个角度来说,有源式的采用它内部的振荡源,所以,有源式只要接入电源以后,就会自动的叫。然而无源式的蜂鸣器没有有源式自带的内部振荡,即使是接入电源之后也无法鸣叫,要想使其鸣叫就要用2到5K的方波来促使它鸣叫。1.3.2蜂鸣器报警电路由2.19的电路图所知,是一个驱动电路,之所以要加驱动电路,是蜂鸣器在工作时,工作电流大,单片机是不能直接驱动蜂鸣器发声的,所以我们要加一个三极管,来设计出蜂鸣器的驱动电路,电路的原理是把三极管基极接到单片机P20口,所以只要IO口输出低电平,蜂鸣器就会发声,如下图所示:图1.19驱动电路1.3.3发光二极管采用的化合物材料,比如镓,磷,氮等材料,其原理就是空穴和电子的结合,产生光能,发光二极管可以用来当作指示灯,组合起来与单片机集合还可以显示文字,数字等。发光二极管是半导体的一种,其作用是把电能转换为光能,它和普通的二极管一样,都只有一个PN结,我们得知,发光二极管和普通的二极管一样,都有单向导电的特性,在正向电压的作用下,P区中的空穴移动到N区。电子和空穴相结合,在正向电压的激励下,就会发出光。半导体中电子和空穴的能量在不同的半导体也随之不同,释放的能量也不同,发出的光波长越短,释放出来的能量就很多,根据不同的化合物材料所发出的颜色光就不同。发光二极管不能加以大电压工作,所以,反向击穿电压必须得多于5V,而且在电路中,必须有限流电阻来施加保护,确保其正常工作。1.3.4LED灯报警电路由图看出,发光二极管的正极,通过串联一个限流电阻连接到电源,负极则是直接连接到单片机IO口,因此,只要负极接收到单片机给出的低电平,二极管就会发光。如图1.20所示:图1.20LED灯电路1.7按键输入模块键盘是人机交互的重要使用工具,矩阵键盘和独立式键盘多半都表现在单片机中使用,各有各自的特点,比如独立键盘来说,它的硬件键盘简单,驱动键盘的程序也相对简单,一般都用在简单的硬件电路之中,作按键辅助,然而,矩阵就要比独立键盘要复杂。首先它的硬件电路错综复杂,在程序的算法中比较的麻烦和困难,但是好处的是,会节省很多的端口使用,比较更适合于按键电路,再者还可以消除按键过程中,所存在的毛刺问题,在模块中,我们还加入延时,重复扫描的功能来为按键模块添加色彩。它的原理就是毛刺的保持的时间短,大概就几毫秒,在我们使用按键操作时,通常都会有大于几毫秒的动作,当我们按下键位的时候,单片机会感觉到我们正在按键操作,并且过一会儿才会判断电平状态是否改变,如果是改变则无效,原来状态则按键有效。由于本次设计的按键较少,分别是设置,加,减三个按键,所以我们采用独立式的键盘,K1,K2,K3分别接到单片机的P32,P33,P34接口,如图1.21所示:图1.21按键电路1.8总模块图图1.22总模块图前面分别介绍了各个模块,完整电路图如图1.22所示,各个模块相结合起来实现最终的测距功能。

5软件设计2.1程序语言及开发环境C语言是早期最常用的计算机编程语言,也是现在流行的编程语言,也是一种高级语言,1972年,美国的贝尔实验室丹尼斯.M.里奇发明了C语言,并且推向世界,1978年以后,C语言被大量的移植到大小,中等的微机上,作为微机的主要系统编程语言,用于编写系统软件程序,编写要求不依赖于硬件的要求,它的作用广泛,有很高的数据逻辑处理能力,不仅趋于软件的开发,在各大科学研究领域都有着举足轻重的作用。还适应三维,二维的图形以及动画制作,大多都用在嵌入式领域和单片机领域。由美国KeilSoftware公司开发的兼容51单片机的KeilC51C语言开发环境,对比器汇编语言,C语言在各个方面都要突出于汇编语言,比如功能,结构,易读和可持续维护的优点。用户方便学也容易懂和运用,Keil开发环境还具有编译,库管理等等工具,为用户的开发过程中提供了可靠良好的开发环境,结合着硬件集成环境,在win98以上版本的操作系统才能够运行,NT等环境下使用,如果要进行C语言开发,那么就首先Keil,即使使用汇编而不用C语言,Keil强大的编译,集成和仿真环境在开发中也能让用户的开发效率得到大量的提高。2.2程序流程图2.2.1总体流程图由图2.1所示,是本次设计的软件流程图。开始进行的是显示初始化,接着定时器的初始化,最后就进入一个循环的过程。最开始进行的是温度采集模块,检测环境周围的温度并显示到屏的第一行,并且在采集的温度下计算出超声波能够在多少的传输速度进行传输,出给一个实时的值。然后再利用控制超声波模块进行测值,所将测到的值再用温度

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论