




已阅读5页,还剩37页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
-基于单片机的汽车水箱温度的检测【摘要】:随着汽车行业的不断发展,汽车电子产业逐渐成为一个更加有前景的新型产业。因此,对于汽车水箱温度的检测技术也将成为汽车电子技术中一个而不可或缺的技术。本文主要研究的是汽车水箱温度的检测,该项目是以AT89C51单片机为控制中心,以DS18B20作为温度采集的测温单元,然后将处理后的温度传送给单片机,利用单片机来控制LCD1602,最后实时温度将会在液晶显示屏上面显示出来。本系统可同时测量汽车室内温度和汽车水箱温度,当两者温度过高时,分别会有相应的语音报警提示。【关键词】:单片机;DS18B20;测温单元;实时温度;语音报警-i-Abstract:Withthecontinuousdevelopmentoftheautomotiveindustry,automobileelectronicindustryhasgraduallybecomeamorepromisingnewindustry.Thus,forcarradiatortemperaturedetectiontechnologyiswillbecomeanautomotiveelectronictechnologyandessentialtechnology.Thispaperismainlytostudythedetectingofthetankcarstemperature.TheprojectisbasedonAT89C51controlcenter,taketheDS18B20asthetemperatureunittocollectthetemperature,thensendingthetemperaturetotheMCUaftertreatment,usingtheMCUtodriveLCD,finallyreal-timetemperaturewillbedisplayedontheLCDscreen.Thesystemcansimultaneouslymeasurethecarindoortemperatureandautowatertanktemperature,whenthetemperatureistoohigh,whichwillhavethecorrespondingvoicealarm.Keywords:MCU;DS18B20;thetemperatureunit;real-timetemperature;voicealarm-ii-目录前言.2第1章绪论.3第1.1节课题研究的现状.3第1.2节课题研究方向.3第2章系统分析.5第2.1节系统的功能概述.5第2.2节系统的特点.5第2.3节系统的操作.5第2.4节系统的设计与实现.6第2.5节系统的架构.6第3章系统的硬件设计与实现.8第3.1节单片机电路的设计.8第3.2节复位电路的设计.9第3.3节晶振电路的设计.10第3.4节DS18B20的电路设计.11第3.5节液晶显示LCD的电路设计.16第3.6节语音报警模块的设计.17第3.7节硬件的完成.19第4章软件设计.20第4.1节主程序的设计.20第4.2节读取ID的设计.20第4.3节单片机温度测量软件设计.21第4.4节温度传感器测温软件设计.22第4.5节语音报警模块程序设计.23第5章系统测试.25第5.1节测试方法与结果.25第5.2节测量结果.25第5.3节测量结果分析.29第5.4节误差分析.29第5.5节本系统需要改进的地方.29第6章结论.30参考文献.31感谢.32附录1:实物照片说明.33附录2:电路仿真图.34附录3:部分源程序.35第0页前言随着科技和经济的不断发展,我们的物质生活有了很大的改变,人们的生活也因为汽车等快捷的交通工具而变得简单快捷!据调查统计,近年来,中国汽车保有量逐年增加,2008年保有量为4975万辆,2009年就达到6300多万辆,到2012年底、最晚2013年就能达到7500万辆的规模。面对着日益增多的汽车数量,汽车存在的隐患也越来越成为人们日益关注的话题。作为一名车主也越来越追求性价比高,安全度高,舒适度高,方便度高集一体的全方位的汽车。面对汽车所存在的各种隐患,车主最希望的是在第一时间得到讯息,及时想出解决方案,并提前做好准备工作。对于一辆汽车来说,汽车水箱所处的位置一个不容易被人一眼就能观察到的地方,所以对于汽车水箱温度的影响往往会成为一个被忽略的隐患。一般发动机温度在90左右可以正常工作,温度过高时就会像人体发烧,会烧坏汽车内部元件。温度过低时达到汽车防冻液冰点以下时,水箱里面的水就会结冰,会将水循环通道冻裂,使汽车不能正常工作。在夏天,汽车水箱的温度往往会随着发动机的转动,汽车内的温度以及环境温度,汽车水箱的温度将会随之上升很快。水温高是车辆最难解决的问题之一,出现水温过高的原因有很多,可能是电子扇使用时间过长,存在丢转的问题,也可能是节温器使用时间太长,有时会发生无法全部打开的问题再或者是水泵使用时间过长,造成间歇大循环不可以正常工作等等。而在冬天就会出现汽车水箱温度过低的情况。如何将水箱的实时温度及时地反馈给车主,并采取相应的措施,防患于未然,成为一个紧迫的问题。第1页第1章绪论第1.1节课题研究的现状目前在各个领域内测温仪器都已普遍使用,但是智能化则是现代温度控制系统发展的大趋所示。特别是近年来,温度控制已应用到人们的生活的各个方面,而温度控制则像一个未开发的宝藏,一片神奇的领域,却又是与人们紧密相连的一个问题,对于目前这种状况,设计一个智能化的温度检测系统,具有广泛的应用前景和深远的意义。从目前的市场行情来看,汽车水箱温度的检测已经逐渐被车主所认可。目前市场上,稍微高档一点的汽车里面都会有仪表指针式的温度显示器,当冷车发动时,指针指向0,并且水温标记灯发绿光;当汽车正常运转的时候温度是90,指针指在仪表中心;当温度超过95时,水温标记灯显示红色。虽然这种仪表式的温度显示器很实用,但是也存在着一些缺点,数字能给人视觉上更大的冲击,有时候指针会容易被人给会忽略,但是如果温度可以在一个液晶显示屏上面显示出来,就会比较直观,醒目,能让车主一眼就可以看清楚,让车主更方便的了解自己的车所处的状态!因此数字式的汽车水箱温度检测器一方面可以采用精确数字测温传感器,准确的将汽车水箱的温度反馈给控制单元单片机,显示在LCD屏幕上将更加方便用户观察,也会更放心的依赖屏幕上的温度,因此具有很强的智能性,同时当温度过高或者过低时,会有报警提示,这一功能也再次增加了水箱温度检测仪智能性和方便性。第1.2节课题研究方向本文讲述的是一款基于单片机AT89C51的汽车水箱温度的检测仪。控制模块使用了Atmel公司的89C51芯片,以温度传感器DS18B20作为测温模块,结合外围设备LCD1206等电路,用C语言编写主控模块的程序,设计一个能够准确测试水箱温度的温度检测仪,并将温度以数字的形式在LCD显示屏上面显示出来,当温度高于警戒值时进行相应的语音播报。在本文中首先介绍一下从整个电路设计到选择元器件的详细过程,分别会从单片机的选择,温度传感器的选择以及液晶显示屏的选择和语音模块的选择以及整个模块的电路图的设计做出详细的阐述。接着将介绍软件系统的设计,如何实现预想的功能一部分还是要靠系统设计的,在第三章,我也会向上一章一样做出详细的解释。再接下来,就是硬件焊接完成之后的测试了,软件与硬件的匹配度,硬件的焊接等都可能出现让人意想不到的结果,我会将真实的测试结果反映在上面。第2页最后就是将整个设计中遇到的一些问题和思想和专业知识上面的一些学习作出一系列的总结,这会是在我整个毕业设计之间的收获的最有价值的体会。在该文章的最后,我将感谢我的指导老师吴文明老师,还有身边一些帮助我的同学,由于他们的帮助我才可以顺利的完成该毕业设计和毕业论文。第3页第2章系统分析第2.1节系统的功能概述本系统的设计目标是设计一款基于单片机的汽车水箱温度的检测仪,该测量仪能够实现以下功能:1.能够在LCD上准确显示汽车水箱的低温;2能够在LCD上面准确显示汽车水箱的高温;3在显示温度的同时LCD可以显示作者名字的英文首字母(大写);4.测量汽车车内的温度(拓展功能,也是本文的难点:多点测量);5检测仪在温度过高时,有语音提示(拓展功能)。将电源接好后,屏幕上就会显示温度传感器所传输的温度,以及作者的名字。在后面的拓展中,我将首次设计的单个传感器传输,改为了两个传感器的同时传输,这就形成了一个多点测量的系统,我利用传感器1来测量汽车室内的温度,利用传感器2来传输水箱的温度,从而实现在一个现象就是LCD显示屏的上面一排显示汽车室内温度和汽车水箱温度,而下一排显示的就是作者名字的英文首字母(大写),当汽车水箱温度和汽车车内温度过高时,都会有相应的语音提示进行播报。第2.2节系统的特点1.模块化:系统是由许多模块组成的,有测温单元,处理单元,显示单元,语音报警模块,因此在拓展功能时更加方便。2.可靠性和耐用性:在低温和高温时都可以将实时温度准确的显示出来,当温度过高或者过低时都会有相应的语音播报进行提醒。3.管理工具:采集方式比较简单,过程不会过于繁琐,结果同时也以简单的形式显示出来。4.使用方便:在用户的使用过过程中,每一个过程在概念上都很简单,用户易于理解和操作。第2.3节系统的操作利用传感器来测量温度,起到一个数据采集模块的功能,然后将采集的数据传输给单片机,经过单片机的分析和处理,将传感器采集到的温度传输至液晶显示屏上面,液晶显示屏显示数字温度,当汽车水箱温度和汽车车内温度过高或者过低时,语音模块就会进行相对应的温度提醒,因此整个简单的流程就是这样,如图2.1所示。整个设计的难点在于两个温度传感器的同时传输,如何让单片机识别是哪一传感器所传输的温度,是第4页至关重要的。因此在采集温度之前,应该先给每一个传感器一个ID,以方便在后面的传输过程中,单片机可以识别温度传感器1和温度传感器2。在后续的温度采集中,单片机就可以利用ID编号,有条不紊的接收,处理和发送各个传感器所反馈的信息了。其次就是语音播报模块,相应的温度警戒线对应相应的语音播报,也成为本文的一个难度之一。DS18B20复位晶振单片机AT89C51LCD1602语音报警图2.1温度测量流程第2.4节系统的设计与实现对于该系统的设计和开发,使用了软件和系统的硬件设计方法,系统的实际设计过程包括以下步骤:1.)系统定义:系统硬件的广义的定义,包括单片机,温度传感器,液晶显示屏,语音播报等。2.)电路设计:整个电路的设计包括4大模块,传感器数据的采集模块,LCD的显示模块,单片机的电源电路和复位电路,语音播报模块。3.)PCB的设计与制作:电路原理图的设计与仿真决定着后续电路板元器件的购买和焊接。4.)硬件修改:在初始硬件测试之后,做出一些必要的修改,以产生一个改善后的电路板原理图和整体布局。6.)芯片集成和最终测试:整个硬件和软件组合在一起,进行数据实验操作的最终测试。因此,完整的设计分为两部分:1)硬件实现。2)软件实现。第2.5节系统的架构本系统4个大模块组成:主控模块,液晶显示模块,温度传感器模块,语言提示模第5页块。主控模块:采用89C51单片机,主控模块读取传感器的ID,接收传感器所测的实时温度,控制LCD显示屏的显示,温度过高或者过低时进行语音播报的语音提示模块;液晶显示模块:采用LCD1602,用于显示所读取的传感器的ID和所测温度汽车水箱温度和汽车车内温度;温度传感器模块:采用DS18B20数字防水传感器,用于测量实时温度(包括水箱温度和车内温度);语音播报模块:采用ISD1700语音模块,当温度超过警戒值时进行语音提示。系统框图如图2.2所示。主控模块AT89C51DS18B20测温模块LCD温度显示模块语音模块图2.2系统框图第6页第3章系统的硬件设计与实现第3.1节单片机电路的设计单片机是整个设计中的核心模块,但是对于单片机自身电路的设计就是一个单片机最小系统。单片机最小系统是由主控单片机AT89C51,电源电路,复位电路,晶振电路组成。单片机AT89C51则作为核心控制器控制着整个系统的工作,电源电路的作用是供电,复位电路的作用是使得单片机能够正常,有序,稳定的工作,晶振的作用是产生单片机工作所需要的时钟信号。最小系统如下图3.1。P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78RST9P3.710P3.611P3.512P3.413P3.314P3.215P3.116P3.017XTAL218XTAL119GND20VCC21P0.022P0.123P0.224P0.325P0.426P0.527P0.628P0.729EA30ALE31PSEN32P2.733P2.634P2.535P2.436P2.337P2.238P2.139P2.040AT89C5189C5130p12M30pVCCVCC+10u10K图3.1单片机最小系统3.1.1.单片机AT89C51的介绍8051系列微控制器是基于嵌入式控制系统进行了优化的架构。它被用很多方面,从军事设备到汽车还有键盘等等。在8位处理器的领域具有很高的销售量,仅次于摩托罗拉68HC11,8051系列单片机是目前使用最早且使用最广泛的一种单片机,功能齐全,价格便宜,容易购买是它的一系列优点。目前的8051已经经过改进增加了很多功能接口,如I2C接口,模拟到数字转换器接口,看门狗定时器和脉宽调制输出。8051的时钟变化速度最高可达40MHz同时它的电压需求也可以降低到1.5V。AT89C51是一种低功耗,高性能的CMOS,有着4K字节的Flash可编程和可擦除只读存储器(PEROM)的8位单片机。该设备是采用Atmel的高密度非易失性存储器技第7页术制造,与工业标准的MCS-51指令集和引脚兼容。片上Flash允许程序存储器在系统内重新编程或由传统的非易失性存储器编程器重新编程。把Flash和一个多功能8位CPU集成在一个芯片上,Atmel的AT89C51是一个强大的微型计算机,它提供了一个高度灵活和具有成本效益的解决方案,被应用在许多嵌入式控制应用中。主要特性如下:1.4K字节可编程闪烁存储器2.寿命:1000写/擦循环3.数据保留时间:10年4.全静态工作:0Hz-24Hz5.三级程序存储器锁定6.128*8位内部RAM7.32可编程I/O线8.两个16位定时器/计数器9.5个中断源10.可编程串行通道11.低功耗的闲置和掉电模式12.片内振荡器和时钟电路3.1.2.电源电路的设计对于一个完整的电路设计首要的问题是为整个系统提供供电模块,电源模块的稳定可靠是整个系统平稳运行的前提和基础。51单片机虽然使用时间最早、应用范围最广,但是在实际的适用中,和其他系列的单片机相比,一个典型的问题就是,51单片机更容易受到干扰而出现程序跑飞的问题,克服这种现象的出现的一个重要手段就是为单片机配置一个稳定可靠的电源供电模块。在最小系统中的电源模块电源可以通过USB口供给,也可使用外部稳定的5V电源供给,本实验中采用的是通过USB接口供给,如图3.2所示。如图3.2电源电路第3.2节复位电路的设计单片机的置位和复位,都是为了把电路初始化到一个确定的状态。一般来说,单片机的复位电路的作用就是把正在运行的单片机初始化到一个空状态。而在单片机的内部,复位的时候是把一些寄存器以及存储设备装入一个预设值。第8页单片机的复位操作使单片机进入初始化状态,其中包括使程序计数器PC0000H,这表明程序从0000H地址单元开始执行。单片机冷启动后,片内RAM为随机值,运行中的复位操作不改变片内RAM区中的内容,21个特殊功能寄存器复位后的状态为确定值。复位电路原理是在单片机的复位引脚RST上面外接电容和电阻,组成R-C电路,实现上电复位。当复位电平持续两个周期以上时复位电路有效。复位电平的持续时间必须大于单片机的两个机器周期,周期有RC的数值决定,复位电路如图3.3所示。VCC+10u10KRST如图3.3复位电路第3.3节晶振电路的设计单片机系统里面都有晶振,在单片机系统里面晶振的作用非常大,全称叫做晶体振荡器,它结合单片机内部电路产生所需要的时钟频率,单片机提供的晶振提供的时钟频率越高,那么单片机运行速度就越快,单片机一切指令的执行都是建立在单片机晶振提供的时钟频率上的。AT89C51单片机芯片内部设有一个由反向放大器所构成的振荡器。引脚XTAL1和XTAL2分别是此放大器的输入端和输出端。这个放大器与作为反馈元件的片外晶体谐振器一起构成一个自激振荡器。外接晶体谐振器以及电容C1和C2构成并联谐振电路,接在放大器的反馈回路中。对外接电容的值虽然没有严格的要求,但电容的大小会影响震荡器频率的高低、震荡器的稳定性、起振的快速性和温度的稳定性。此系统电路的晶体振荡器的值为12MHz。反相放大器和内部时钟发生电路的输入端,18脚(XTAL2)为振荡器反相放大器的输出端。在XTAL1和XTAL2引脚上外接定时元器件,内部振荡电路就会产生自激振荡。本系统采用的定时元器件为石英晶体(晶振)和电容组成的并联谐振回路。晶振频率为12MHz,电容大小为1530pF,电容的大小可以起到频率微调的作用,时钟电路如图3.4所示。第9页30p12M30pXT2XT1图3.4晶振电路第3.4节DS18B20的电路设计由DALLAS半导体公司生产的DS18B20型单线智能温度传感器,属于新一代适配微处理器的智能温度传感器,可广泛用于工业、民用、军事等领域的温度测量及控制仪器、测控系统和大型设备中。它具有体积小,接口方便,传输距离远等特点。DS18B20可以程序设定912位的分辨率,精度为0.5。可选更小的封装方式,更宽的电压适用范围。分辨率设定,及用户设定的报警温度存储在EEPROM中,掉电后依然保存。DS18B20的性能特点:采用单总线专用技术,既可通过串行口线,也可通过其它I/O口线与微机接口,无须经过其它变换电路,直接输出被测温度值(16位二进制数);测温范围为-55+125,测量分辨率为0.0625;内含64位经过激光修正的只读存储器ROM;适配各种单片机或系统机;用户可分别设定各路温度的上、下限;内含寄生电源。DS18B20内部结构主要由四部分组成:64位光刻ROM,温度传感器,非易失性温度报警触发器TH和TL,高速暂存器。64位光刻ROM是出厂前被光刻好的,它可以看作是该DS18B20的地址序列号。3.4.1.DS18B20的温度测量与控制(1)DS18B20的操作指令使用DS18B20来测量温度时,首先复位DS18B20,先保持至少480s的低电平信号,然后释放,等待15-60s左右,然后发出60-240s的低电平信号,控制器接收到该信号即表示复位成功,接着发送一条ROM指令。下表为DS18B20的ROM指令集。第10页表3.1DS18B20的ROM指令集指令代码名称功能0x33读ROM读DS18B20ROM中的编码0x55匹配ROM发出此命令之后,接着发出64位ROM编码,访问单总线上与编码相对应DS18B20使之作出响应,为下一步对该DS18B20的读写作准备0xF0搜索ROM用于确定该总线上的器件个数并识别各器件的ROM地址0xCC跳过ROM忽略ROM地址,直接发送温度采集命令0xEC警报设置发送该指令后,只有当现场温度超过上限或下限报警值时,器件才进行响应接下来发送存储器指令,存储器指令用于对温度传感器中的RAM和EPROM进行访问操作,下表为DS18B20的存储器指令集。表3.2DS18B20的存储器指令集指令代码名称功能0x4E写RAM向内部RAM写入TH和TL数据,设置温度上限和下限0xBE读RAM将RAM存放的数据按照地址从低到高的顺序读出,当读出不完全时,允许通过复位终止读取0x48复制暂存器把暂存器中的内容拷贝到非易失性存储器中(仅指地址2和3)0x44启动温度转化启动DS18B20进行温度转化0xB8重调EPROMEPROM中的内容恢复到RAM中的第3,4字0xB4读取供电方式当DS18B20使用外部电源时,读取数据为“1”,否则为“0”(2)DS18B20的读写时序DS18B20需要严格的协议以确保数据的完整性。协议包括几种单线信号类型:复位脉冲、存在脉冲、写0、写1、读0和读1。所有这些信号,除存在脉冲外,都是由总线控制器发出的。1初始化和DS18B20间的任何通讯都需要以初始化序列开始,初始化序列见图3.6所示。一个复位脉冲跟着一个存在脉冲表明DS18B20已经准备好发送和接收数据。总线控制器发出(TX)一个复位脉冲(一个最少保持480s的低电平信号),然后释放总线,进入接收状态(RX)。单线总线由5K上拉电阻拉到高电平。探测到I/O引脚上的上升沿后,DS18B20等待1560s,然后发出存在脉冲(一个60240s的低电平信号)。第11页图3.6初始化过程“复位和存在脉冲”2读/写时间隙DS18B20的数据读写是通过时间隙处理位和命令字来确认信息交换。写时间隙当主机把数据线从逻辑高电平拉到逻辑低电平的时候,写时间隙开始。有两种写时间隙:写1时间隙和写0时间隙。所有写时间隙必须最少持续60s,包括两个写周期间至少1s的恢复时间。I/O线电平变低后,DS18B20在一个15s到60s的窗口内对I/O线采样。如果线上是高电平,就是写1,如果线上是低电平,就是写0(如图3.6)。主机要生成一个写时间隙,必须把数据线拉到低电平然后释放,在写时间隙开始后的15s内允许数据线拉到高电平。主机要生成一个写0时间隙,必须把数据线拉到低电平并保持60s。读时间隙当从DS18B20读取数据时,主机生成读时间隙。当主机把数据线从高平拉到低电平时,写时间隙开始。数据线必须保持至少1s;从DS18B20输出的数据在读时间隙的下降沿出现后15s内有效。因此,主机在读时间隙开始后必须停止把I/O脚驱动为低电平15s,以读取I/O脚状态(见图3.7)。在读时间隙的结尾,I/O引脚将被外部上拉电阻拉到高电平。所有读时间隙必须最少60s,包括两个读周期间至少1s的恢复时间。图3.8表示TINIT,TRC和TSAMPLE之和必须小于15s。图3.9示,系统时间可以用下面方法达到最大:TINIT和TRC保持时间尽可能小;把控制器采样时间放到15s周期的最后。第12页图3.7读/写时序图图3.8控制器读“1”的详细时序第13页图3.9推荐控制器读”1”的时序(3)温度测温电路图温度测量通过温度传感器DS18B20来进行测温操作,DS18B20通过其2脚DS与单片机AT89S51的P2.3口相连,实现数据通信,1脚为接地端,3脚为VCC端,外接5V电源。DS18B20与AT89C51的连接图如下图3.10。图3.10DS18B20测温图(4)DS18B20的实物图DS18B20的引脚定义:(1)GND为电源地;(2)DS为数字信号输入/输出端;(3)VDD为外接供电电源输入端(在寄生电源接线方式时接地)。图3.11DS18B20实物图DS18B20的温度传感器与数字数据输出全集成在一个芯片上面,从而抗干扰能力更第14页强。其一个工作周期可分为两个部分,即温度检测和数据处理。DS18B20共有3中形态的存储器资源,它们是ROM只读存储器,用于存放DS18B20编码,其前八位是单线系列编码,后面48位是芯片唯一的序列号,最后8位是以上56位的CRC码(即冗余校验码)。RAM数据暂存器,用于计算和数据存取,数据掉电丢失,DS18B20共9个字节RAM,每个字节为8位。第1、2个字节是温度转换后的数据值信息,第3、4个字节是用户EEPROMDE镜像。在上电复位时其值被刷新。第5个字节则是用户的第3个EEPROM的镜像。第6、7、8个字节为计数寄存器,是为了让用户得到更高的分辨率而设计的,同样也是内部转换、计算的暂存单元。第9个字节为前8个字节的CRC码。DS18B20有3个引脚,VCC,DQ和VDD。DS18B20的内部有64位的ROM单元和9字节的暂存器单元。64位ROM包含了DBS18B20唯一的序列号即ID。该温度传感器的测温范围为-55+125,在-1085范围内,精度为0.5,其精度最差的时候是2。现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。适合于恶劣环境的现场测温,如环境控制、设备或者过程控制、测温类电子消费产品等。因为本实验所涉及的是汽车水箱温度的检测,汽车正常工作时汽车水箱温度为8090,汽车室内的温度肯定也在-1085的范围内,所以在本实验中选择该温度传感器,不仅可以在总线的传输上面减小误差,同时在测温中存在不可避免的误差也会降到最低,数字式温度传感器DS18B20则最为合适。第3.5节液晶显示LCD的电路设计LCD1602是一款字符型液晶模块的液晶显示器,是一种用57点阵图形来显示的,根据显示的容量可以分为1行16个字、2行16个字、2行20个字等等,这里以常用的2行16个字的1602液晶模块来介绍它的编程方法。3.5.1.LCD1602的接线原理图LCD1602接线原理图如图3.12所示。第15页D714D613D512D41D310D29D18D07E6RW5RS4VS1VD2VE3LCD11602P2.0P2.1P2.2P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7VS5V5V图3.12LCD1602液晶模块接线原理图3.5.2.LCD1602引脚LCD1602引脚表格如图所示。编号符号引脚说明1VSS电源地2VDD电源正极3VL液晶显示偏压4RS数据/命令选择5R/W读/写选择6E使能信号7D0数据8D1数据9D2数据10D3数据11D4数据12D5数据13D6数据14D7数据15BLA背光源正极16BLK背光源负极表1LCD1602引脚图3.5.3.LCD1602基本特性单5V电源电压,低功耗、寿命长、可靠性高;内置192种字符,提供160个57点阵字符和32个510点阵字符;具有64个字节的自定义字符RAM,可自定义8个58点阵字符或4个511点阵字符;第16页显示方式:STN、半透、正显;驱动方式:1/16DUTY,1/5BIAS;背光方式:底部LED;通讯方式:4位或者8位并口可选;内置DC-DC转换电路,无需外加负压;标准接口特性,适配MC51和M6800系列MPU的操作时序;工作温度:0+55,存储温度:-20+60。第3.6节语音报警模块的设计ISD1700语音模块是快速熟悉和掌握ISD1700系列芯片而设计的一款简单实用电路板。它适用于ISD1700全系列芯片,具有操作简单、功能完备等特点。ISD1700系列录放芯片是一种高集成度,高性能的芯片。它可以多段录音,采样率可在4K至12K间调节,供电范围可以在2.4V至5.5V之间。ISD1700还有有新录音提示功能,当有新的录音后,LED回每几秒闪一次来提示用户有新的录音,可以根据自己的需要进行录音。此外还有4种音效来提示用户的操作结果,如开始录音、停止录音、擦除、下一曲和全部擦除等。录音数据存储在芯片的FLASH内,没有经过任何压缩,所以有较好的音质和断电存储。芯片有两路独立的语音信号输入通道,话筒输入与模拟信号输入。在独立按键模式下,当某功能操作完成后芯片会自动进入掉电模式来降低功耗。在SPI模式下,用户可对芯片进行更多功能操作。如对任意存储地址进行录放,对模拟通道配置寄存器进行读写等。3.6.1.语音模块的描述1.尺寸:5.2CM*5.5CM;2.供电:5V;3.录音时间:6K时75秒,8K时60秒;4.芯片工作频率6KHZ和8KHZ可选择;5.带电源指示灯、芯片指示灯灯;6.操作简单,不需要单片机或其他模块就能直接工作;7.芯片控制引脚已经引出,方便控制连接。3.6.2.语音模块的功能该汽车水箱温度检测系统实现的功能不仅是在显示屏上面将实时温度显示出来,同时当温度超过警戒值或者温度低于警戒值的时候,语音模块将会进行相应的语音播报,起到警示作用。语音模块ISD1700如图3.13所示。第17页图3.13语音模块第3.7节硬件的完成最终的硬件设计如图3.14所示。图3.14硬件成品第18页第4章软件设计该系统的软件设计是采用C语言编程模块来编程的,由于是模块化设计,相对来说简单,易于修改,采用KEIL环境对软件进行仿真。第4.1节主程序的设计主程序流程图如图4.1所示,接好电源以后,按下开关按钮,对LCD进行初始化,然后传感器开始进行温度测量,传输至单片机,最后再在显示屏上显示出来。开始LCD初始化DS18B20初始化语音模块初始化调用读DS18B20的序列号子程序调用温度显示子模块读取温度到缓冲区调用温度转换子程序调用温度显示子程序温度高于90调用报警模块结束YN图4.1主程序流程图第4.2节读取ID的设计由于在拓展中采用两个传感器测量不同地方的多点的温度,即多点测量,从而在设计在软件的设计中需要先设计一个如何让单片机区分传感器1和传感器2的程序,程序流程如图4.2所示。第19页开始初始化传感器发出读命令是否读满8次分辨出传感器1和2结束NY图4.2读ID流程第4.3节单片机温度测量软件设计所谓单片机读取温度,就是指单片机将温度传感器DS18B20所测温度通过总线将实时温度反馈给单片机,并对温度进行处理,将十六进制的温度转换成十进制的温度,以便在显示屏上面显示,如图4.3所示。开始复位DS18B20存放序列号发出跳过ROM的指令发出读命令,返回16进制数调用从总线读一个字节的命令复位DS18B20发出跳过ROM的指令发转换命令将温度转换成10进制结束图4.3单片机读取温度第20页第4.4节温度传感器测温软件设计温度传感器测温,即传感器DS18B20进行测量温度,在这个过程中定义了温度传感器的读写时序。4.4.1.DS18B20的复位程序设计在任何电路的设计中都会使用到复位电路,同样在该设计中使用与DS18B20进行通信时,首先要对该温度传感器进行复位操作,对DS18B20进行初始化的过程,需要将总线先拉高再拉低,同时总线必须保持48s以上的低电平,然后释放总线等待15-60s,初始化完成。其设计流程如图4.4所示。开始设置总线为1,延时4ms设置总线为0,延时0.1s设置总线为1,延时40ms结束图4.4复位程序设计流程图4.4.2.从DS18B20写入的程序设计写命令程序是循环8次,将1byte数据发送出去,低字节在前,高字节在后。写数据时,总线拉高再拉低,延时5s,然后将数据放到总线上(15s内有效),延时60s以上,再将总线置高,循环8次。如图4.5所示流程图。第21页开始设置循环次数为8设置总线为0延时10ms总线设置为1右移1位最低位移除结束图4.5写入DS18B20的程序设计流程图4.4.3.从DS18B20读出的程序设计读数据程序是循环8次后,就读回一个字节数据。低字节在前,高字节在后。读数据时,先发送一个下降沿,延时15s,期间要释放总线以便读回数据。然后检查总线的电平,将电平的值存入51的内存里。60s后,开始另一个读循环,循环8次。程序流程图如图4.6所示。开始设置循环次数为8总线设置为0右移一位DQ=1?将总线上的数据放在缓冲器里面延时10ms返回YN总线设置为1图4.6从DS18B20读出的程序设计流程图第4.5节语音报警模块程序设计语音报警模块是在测量温度的基础上,不管是汽车内的还是汽车水箱的温度,当温度过高或者过低时分别有语音报警,因此在改报警系统中共有两段报警语音。当其中一个条件符合时,都会有相应的语音播报。程序设计如图4.7所示。第22页开始初始化语音模块延时0.1s扫描温度1扫描温度2水箱温度#includemy_main.hsbitFWD=P10;sbitPLAY=P11;sbitRESET=P12;externunsignedinttvalue;/温度值sbitflag=P30;voidmain()unsignedchari,j;unsignedcharl,h,c=0x0e;unsignedcharflag1=0,flag2=0;lcd_init();/初始化LCDdelay(50);ds1820rst();/DS18B20初始化if(!flag)第35页RED=1;GREEN=0;readserialnumber();/读序列号i=0;lcd_pos(0);while(dis1i!=0)lcd_wdat(dis1i);i+;i=0;for(i=0;i4;/获取低四位h=laseredrom2i/获取高四位lcd_pos(0x4e-i*2);/显示位置lcd_wdat(dis2l);/显示低四位的16进制码lcd_wdat(dis2h);/显示高四位的16进制码c-=2
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 银行泥石流应急预案方案(3篇)
- 液化气防灾减灾应急预案(3篇)
- 浙江省档案安全应急预案(3篇)
- 修文县数据安全应急预案(3篇)
- 健身房全馆停电应急预案(3篇)
- 洱源县应急预案处置培训(3篇)
- 货架施工方案(3篇)
- 直播电商中用户体验的全流程优化对GMV增长的影响研究
- 直播电商中跨地域直播的本地化运营对GMV增长研究
- 兰州市气象灾害应急预案(3篇)
- 《液压与气动控制》课件
- GA/T 1280-2024银行自助设备安全性规范
- 带状疱疹后神经痛的诊治课件
- 火灾地震逃生演练课件
- 广东省深圳市2024-2025学年高一上学期期中考试数学试卷(含答案)
- 第6讲立体几何(2022-2023年高考真题)(原卷版)
- 中医耳针技术
- 山东省第二届化学分析检验人员行业职业技能竞赛理论试题库资料(含答案)
- AQ 1097-2014 井工煤矿安全设施设计编制导则(正式版)
- NBT 47013.13-2015 承压设备无损检测 第13部分:脉冲涡流检测
- 2024年三亚市海棠区营商环境建设局一级科员招录1人《行政职业能力测验》高频考点、难点(含详细答案)
评论
0/150
提交评论