版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
汽车水温表设计基于单片机的汽车水温表设计作者张旭覃庆环摘要随着汽车工业的迅速发展和人们生活水平及需要的不断提高,越来越多的汽车走入了大众的生活,而在汽车的发展过程中对汽车水温表的设计和实现技术要求又尤为重要本论文是主要介绍基于51单片机汽车水温表的设计思路、流程及应用;论文结合且参考各类有关汽车水温表书籍,主要阐述汽车水温表的总体原理设计、硬件设计和软件设计,以及水温表显示调试方法。关键词:单片机,汽车,DS18B20,水温表;目录1前言.............................................................-0-2汽车水温表简介......................................................-1-2.1汽车水温表概述.................................................-2-2.2常见汽车水温表的工作原理.......................................-2-3水温表总体原理及设计................................................-4-3.1硬件的总体设计.................................................-4-3.1.1硬件系统子模块...........................................-4-3.2软件的总体设计.................................................-4-4水温表的硬件设计.....................................................-5-4.1单片机最小系统电路...............................................-5-4.2数码管显示电路....................................................-5-4.3温度采集电路...................................................-6-5水温表的软件设计....................................................-10-5.1主流程图.......................................................-11-5.2读取温度DS18B20模块的流程....................................-11-6水温表的调试......................................................-13-6.1硬件电路调试.................................................-13-6.2软件调试.....................................................-13-7总结..............................................................-14-8参考文献...........................................................-15-附录壹水温表程序前言从第壹辆汽车诞生到当下已有壹百多年的历史,随着社会和科学技术的发展,如今汽车已经走进了寻常百姓家,成为人们必备的交通工具之壹;而且我国经济发展水平和汽车产业发展水平有着密切的关系,汽车产业是衡量我国经济发展水平的重要指标,汽车工业在我国已经X公司厂商都运用大量的电子技术和计算机技术,从而改善汽车经济性、安全性和舒适性,且且提高了汽车技术性能。然而汽车水温表测量准确、显示正确,对汽车发动机来说尤为重要。2汽车水温表简介2.1汽车水温表概述汽车水温表是用来指示汽车发动机冷却水的工作温度,且向司乘人员显示发动机工作水温是否工作正常。它由装在气缸盖上的温度传感器和转在仪表盘上的水温表组成。2.2常见汽车水温表的工作原理常见的汽车水温表有电热式、电磁式和蒸气压力是三类,它们和不同的感应器相配合,进行水温测定。2.2.1电热式水温表工作原理水温降低时,触电压力增大,平均电流增大,水温表的双金属片弯曲怎大,指针指向低温。如图2-1所示;图2-1电热式水温表2.2.2电磁式水温表工作原理电磁式水温表内有俩个铁芯式线圈,在线圈交叉位置上,装有小磁片、配重和指针等组成的1000L2和大电阻串联,L132150L2L1相对减少,磁场的综合作用是指针向高温100℃刻度移动。如图2-2所示;图2-2电磁式水温表3.1.1蒸气压力式水温表工作原理当水温表的感温包受热时,充灌在其中的介质(氯乙烷或乙醚等)受热蒸发(乙醚液体在大气压力下的沸点是34管的自由端和连杆的壹头销钉连接,连杆的另壹端和扇形齿轮固定。传动机构中,扇形齿轮和中心齿轮啮合传动,且使装在中心齿轮轴上的指针在刻度盘上指出被测介质温度值。感温包内液体体积受感温包和弹簧管相对位置影响。如图2-3所示;图2-3蒸气压力式水温表3水温表总体原理及设计3.1硬件总体设计设计且制作壹个基于单片机的汽车水温表的电路,其结构框图如图2-1:图3-1系统结构框图3.1.1硬件系统子模块(1)单片机最小系统电路部分(2)温度采集电路部分(3)数码管温度显示电路部分3.2软件总体设计良好的设计方案能够减少软件设计的工作量,提高软件的通用性,扩展性和可读性。本系统的设计方案和步骤如下:(1)根据需求按照系统的功能要求,逐级划分模块。(2)编制和调试。(3)确定软件开发环境,选择设计语言,完成模块功能设计,且分别调试通过。(4)按照开发式软件设计结构,将各模块有机的结合起来,即成壹个较完善的系统。首先接通电源系统开始工作,系统开始工作后,通过温度传感器开始实时检测,调用显示子程序显示检测结果。4水温表硬件设4.1单片机最小系统电路因为89S52单片机内部自带8K的ROM和256字节的RAM,因此不必构建单片机系统的扩展电路。如图3-1,单片机最小系统有复位电路和振荡器电路。值得注意的壹点是单片机的31脚必须接高电平,否则系统将不能运行。因为该脚不接时为低电平,单片机将直接VCC电解电容,滤除交流干扰,增加系统抗干扰能力。图4-1单片机最小系统图4.2数码管显示电路(1)数码管显示说明各个数码管的段码都是单片机的数据口输出,即各个数码管输入的段码都是壹样的,为了使其分别显示不同的数字,可采用动态显示的方式,即先只让最低位显示0(含点),经过壹段延时,再只让次低位显示1,如此类推。由视觉暂留,只要我们的延时时间足够短,就能够使得数码的显示见起来非常的稳定清楚,过程如表3-1。表4-1数码管编码表段码位码显示器状态08H01H□□□□□□□0abH02H□□□□□□1□12H22Ha1H24H04HaaH04H08H10H20H40H80H□□□□□2□□□□□□3□□□□□□4□□□□□□5□□□□□□6□□□□□□7□□□□□□□本论文中使用了3候,俩个数码管是闪烁,以提示目前处在温度设置状态。第三位数码管静态显示符号“℃”。4.3温度采集电路(1)DS18B20介绍Dallas最新单线数字温度传感器DS18B20简介新的“壹线器件”体积更小、适用电压更宽、更经济。Dallas半导体X公司的数字化温度传感器DS1820是世界上第壹片支持“壹线总线”接口的温度传感器。壹线总线独特而且经济的特点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。DS18B20DS1822“壹线总线”数字化温度传感器同DS18B20壹样,DS18B20”-55℃~+125-10℃~+85℃范围内,精度为±0.5℃。DS1822的精度较差为±2℃。现场温度直接以“壹线总线”的数字方式传输,大大提高了系统的抗干扰性。其DS18B20的管脚配置和封装结构如图3-4所示。图4-2DS18B20封装引脚定义:①DQ为数字信号输入/输出端;②GND为电源地;③VDD(2)DS18B20的单线(1-wirebus)系统单线总线结构是DS18B20的突出特点,也是理解和编程的难点。从俩个角度来理解单线总线:第壹,单线总线只定义了壹个信号线,而且DS18B20智能程度较低(这点能够和微控制器和SPIDS18B20和处理器之间的通信必然要通过严格的时序控制来完成。第二,DS18B20的输出口是漏级开路输出,这里给出壹个微控制器和DS18B20连接原理图。这种设计使总线上的器件在合适的时间驱动它。显然,总线上的器件和(wiredAND1)微控制器不能单方面控制总线状态。之所以提出I/O口的置1操作是为了给DS18B20壹个发送数据的信号。这是壹个错误的观点。如果当前DS18b20发送0,即使微控制器I/O口置1,总线状态仍是0;置1操作是为了是I/O口截止(cutoff2DS18B20发送0动截止。自动截止是为确保:1时,在总线操作的间隙总线处于空闲状态,即高态。2时,确保微控制器在写1的时候DS18B20能够正确读入。由于DS18B20采用的是1-Wire对AT89S52单片机来说,硬件上且不支持单总线协议,因此,我们必须采用软件的方法来模拟单总线的协议时序来完成对DS18B20芯片的访问。DS18B20的复位时序,如图3-5图4-3DS18B20的复位时序图②DS18B20的读时序对于DS18B20的读时序分为读0时序和读1时序俩个过程。对于DS18B20的读时隙是从主机把单总线拉低之后,在15秒之内就得释放单总线,以让DS18B20DS18B2060us才能完成。DS18B20的读时序图如图3-6所示。图4-4DS18B20的读时序③DS18B20的写时序对于DS18B20的写时序仍然分为写0时序和写1时序俩个过程。对于DS18B20写0时序和写1060us,保证DS18B20能够在15us到45us之间能够正确地采样IO总线上的“0”电平,当要写1时序时,单总线被拉低之后,在15us之内就得释放单总线。如图3-7所示。图4-5DS18B20的写时序图(3)DS18B20的供电方式在图3-8中示出了DS18B20的寄生电源电路。当DQ或VDD引脚为高电平时,这个电路便“取”的电源。寄生电路的优点是双重的,远程温度控制监测无需本地电源,缺少正常电源条件下也能够读ROM。为了使DS18B20能完成准确的温度变换,当温度变换发生时,DQ线上必须提供足够的功率。有俩种方法确保DS18B20在其有效变换期内得到足够的电源电流。第壹种方法是发生温度DQ3-8所MOSFET把DQDS18B20工作在寄生电源工作方式,在该方式下VDD引脚必须连接到地。图4-6DS18B20供电方式1另壹种方法是DS18B203-9DQ线上不要求强的上拉,总线上主机不需要连接其它的外围器件便在温度变换期间使总线保持高电平,这样也允许在变换期间其它数据在单总线上传送。此外,在单总线上能够且联多个DS18B20完成温度变换。图4-7DS18B20供电方式2(4)DS18B20设计中应注意的几个问题DS18B20具有测温系统简单、测温精度高、连接方便、占用接口线少等优点,但在实际应用中也应注意以下几方面的问题:较小的硬件开销需要相对复杂的软件进行补偿,由于DS18B20和微处理器间采用串行数据传送。因此,在对DS18B20进行读写编程时,必须严格的保证读写时序,否则将无法读取测温结果。在DS18B20有关资料中均未提及1Wire上所挂DS18B20数量问题,容易使人误认为能够挂任意多个DS18B20,在实际应用中且1Wire上所挂DS18B20超过8壹点在进行多点测温系统设计时要加以注意。连接DS18B20的总线电缆是有长度限制的。4VCC和地线,屏蔽层在源端单点接地。本文以广泛应用的数字温度传感器DS18B201Wire总线的操作过程和基本原理。事实上,基于1Wire总线的产品仍有很多种,如1Wire总线的E2PROM、实时时钟、电子标签等。他们都具有节省I/O优点,因此有广阔的应用空间,具有较大的推广价值。本设计将温度传感器DS18B20和单片机TXDDS18B20和单片机连接图如图所示4-8所示。图4-8DS18B20和单片机连接图5水温表的软件设计DS18B20读温度程序,数码管的驱动程序,键盘扫描程序,以及抱经处理程序。5.1主程序流程图开始初始化读D18B20温度转换显示温度返回图5-1主程序流程图5.2读取温度DS18B20模块的流程图由于DS18B20采用的是壹根数据线实现数据的双向传输,而对AT89S52单片机来说,硬件上且不支持单总线协议,因此,我们必须采用软件的方法来模拟单总线的协议时序来完成对DS18B20芯片的访问。DS18B20单线通信功能是分时完成的,它有严格的时隙概念。因此系统对DS18B20的各DS18B20(发复位脉冲)→发ROM功能命令→发存储器操作命令→处理数据DS18B20占用口线少等优点,DS18B2012位转换,则应该是最大750mS,另外在对DS18B20超作时,时序要求非常严格,因此最好禁止系统中断。由于DS18B20是在壹根I/O线上读写数据,因此,对读写的数据位有着严格的时序要求。DS18B20有严格的通信协议来保证各位数据传输的正确性和完整性。该协议定义了几种信号的时序:初始化时序、读时序、写时序。所有时序都是将主机作为主设备,而每壹次命令和数据的传输都是从主机主动启动写时序开始,如果要求单总线器件回送数据,在进行写命令后,主机需启动读时序完成数据接收。数据和命令的传输都是低位在先。DS18B20的读时序:(1)对于DS18B20的读时序分为读0时序和读1时序俩个过程。(2)对于DS18B20的读时隙是从主机把单总线拉低之后,在15秒之内就得释放单总线,以让DS18B20DS18B2060us才能完成。DS18B20的写时序:(1)对于DS18B20的写时序仍然分为写0时序和写1时序俩个过程。(2)对于DS18B20写0时序和写1时序的要求不同,当要写0时序时,单总线要被拉低至少60usDS18B20能够在15us到45us之间能够正确地采样IO总线上的“0”电平,当要写1时序时,单总线被拉低之后,在15us之内就得释放单总线。系统程序设计主要包括三部分:读出温度子程序、温度转换命令子程序、显示温度子程序。图5-2读取温度DS18B20模块的流程图程序代码为:unsignedintReadTemperature(void){unsignedchara=0;unsignedintb=0;unsignedintt=0;Init_DS18B20();WriteOneChar(0xCC);//跳过读序号列号的操作WriteOneChar(0x44);//启动温度转换DelayMs(10);Init_DS18B20();WriteOneChar(0xCC);//跳过读序号列号的操作WriteOneChar(0xBE);//读取温度寄存器等a=ReadOneChar();//低位b=ReadOneChar();//高位b<<=8;t=a+b;return(t);}6水温表的系统调试6.1硬件电路调试仔细检查所接电路,按照硬件原理图接线,理论上是能实现的,如果数码管不显示,则应该检查线路是否正确,或是因为单片机没有工作,仍有集电极和发射极是否接对。如果只显示俩个八,则可能是DS18B20没有接正确,检查上拉电路是否接好。如果能注意这些问题,电路基本不会出错。6.2软件调试如果硬件电路检查后,没有问题却实现不了设计要求,则可能是软件编程的问题,首先应检查初始化程序,然后是读温度程序,显示程序,对这些分段程序,要注意逻辑顺序,调用关系,除此之外,仍要熟悉各语句的用法,以免出错。仍有壹个容易忽略的问题就是,源程序生成的代码是否烧入到单片机中,如果这壹过程出错,那不能实现设计要求也是情理之中的事。硬件和软件调试相结合,仔细检查各个模块的设计,旧能顺利完成任务,实现设计要求,在调试过程中必须认真耐心,不能有壹点马虎,否则遗漏壹个小的问题就会导致整个设计的失败。总结通过本次的设计,使我们不仅对单片机这门课程有了更深刻的认识,懂得了如何运用课本知识结合实际来完成定时器的显示和编程方法以及数码显示电路的驱动方法,使我们能够很快的适应现代控制技术发展的需求,同时也提高了我们的思维能力和实际操作能力,为以后更好的走上工作岗位奠定了坚实的基础。AT89S51等芯片的引脚功能以及使用方法,使我学会了应用不同的芯片来配合完成整个设计的操作。在做硬件电路的这段时间里,从思考设计到对电路的调试经过了壹些困难。同样在对软件进行设计时,也可为壹路坎坷。可是通过对软硬件不断撞墙,不断思考解决问题的过程中,我学会了很多东西,同时对单片机也有了更深的认识。在做设计的时候,很需要耐心和对事物的细心,很多时候壹个简单问题的壹个简单的疏忽就会导致整个电路的不工作,只有不断的检查不断的调试,才能真正完成壹个设计的制作。只有不断的发现问题解决问题,才能从问题中改变自己,提升自己对单片机的能力。此设计虽然能够完成温度的显示,但功能和精度有待于进壹步提高。以后能够通过加入壹些算法优化控制功能,且通过液晶显示屏实时显示温度,增加、拓展壹些功能。参考文献[l]乐建波编著《温度控制系统》化学工业出版社[2]谢自美编著《电子线路设计·实验·2000[3]陈东光编著《单片微型计算机原理及C语言程序设计》华中科技大学出版社2004.4[4]武庆生仇梅编著《单片机原理和应用》电子科技大学出版社1998.2[5]谭浩强编著《C程序设计》.北京:清华大学出版社1999年[6]华中理工大学电子学教研室编《电子技术基础模拟部分(第四版)》高等教育出版社1999.6[7]华中理工大学电子学教研室编《电子技术基础数字部分(第四版)》高等教育出版社2000.6[8]王彬任艳颖编著《DigitalICSystemDesign》西安电子科技大学出版社2005.9[9]赵丽娟邵欣编著《基于单片机的温度监控系统的设计和实现》机械制造[10]赵仁杰编著《汽车电器设备》人民交通出版社1998.10附录壹:系统源程序#include<reg52.h>//包含头文件,壹般情况不需要改动,头文件包含特殊功能寄存器的定义#defineDataPortP0//定义数据端口程序中遇到DataPort则用P0替换sbitLATCH1=P2^2;//定义锁存使能端口段锁存sbitLATCH2=P2^3;//位锁存sbitDQ=P1^3;bitReadTempFlag;//定义读时间标志unsignedcharcodedofly_DuanMa[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//显示段码值0~9unsignedcharcodedofly_WeiMa[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//分别对应相应的数码管点亮,即位码unsignedcharTempData[8];//存储显示值的全局变量/*------------------------------------------------uS延时函数,含有输入参数unsignedchart,无返回值unsignedchar是定义无符号字符变量,其值的范围是0~255这里使用晶振12M,精确延时请使用汇编,大致延时长度如下T=tx2+5uS------------------------------------------------*/voidDelayUs2x(unsignedchart){while(--t);}/*------------------------------------------------mS延时函数,含有输入参数unsignedchart,无返回值unsignedchar是定义无符号字符变量,其值的范围是0~255这里使用晶振12M,精确延时请使用汇编------------------------------------------------*/voidDelayMs(unsignedchart){while(t--){//大致延时1mSDelayUs2x(245);DelayUs2x(245);}}/*------------------------------------------------18b20初始化------------------------------------------------*/bitInit_DS18B20(void){bitdat=0;DQ=1;//DQ复位DelayUs2x(5);//稍做延时DQ=0;//单片机将DQ拉低DelayUs2x(200);//精确延时大于480us小于960usDelayUs2x(200);DQ=1;//拉高总线DelayUs2x(50);//15~60us后接收60-240us的存在脉冲dat=DQ;//如果x=0则初始化成功,x=1则初始化失败DelayUs2x(25);//稍作延时返回returndat;}/*------------------------------------------------读取壹个字节------------------------------------------------*/unsignedcharReadOneChar(void){unsignedchari=0;unsignedchardat=0;for(i=8;i>0;i--){DQ=0;//给脉冲信号dat>>=1;DQ=1;//给脉冲信号if(DQ)dat|=0x80;DelayUs2x(25);}return(dat);}/*------------------------------------------------写入壹个字节------------------------------------------------*/voidWriteOneChar(unsignedchardat){unsignedchari=0;for(i=8;i>0;i--){DQ=0;DQ=dat&0x01;DelayUs2x(25);DQ=1;dat>>=1;}DelayUs2x(25);}/*------------------------------------------------读取温度------------------------------------------------*/unsignedintReadTemperature(void){unsignedchara=0;unsignedintb=0;unsignedintt=0;Init_DS18B20();WriteOneChar(0xCC);//跳过读序号列号的操作WriteOneChar(0x44);//启动温度转换DelayMs(10);Init_DS18B20();WriteOneChar(0xCC);//跳过读序号列号的操作WriteOneChar(0xBE);//读取温度寄存器等(共可读9个寄存器)前俩个就是温度a=ReadOneChar();//低位b=ReadOneChar();//高位b<<=8;t=a+b;return(t);}voidDisplay(unsignedcharFirstBit,unsignedcharNum);//数码管显示函数voidInit_Timer0(void);//定时器初始化/*------------------------------------------------主函数------------------------------------------------*/voidmain(void){unsignedintTempH,TempL,temp;Init_Timer0();while(1)//主循环{if(ReadTempFlag==1){ReadTempFlag=0;temp=ReadTemperature();if(temp&0x8000){TempData[0]=0x40;//负号标志temp=~temp;//取反加1temp+=1;}elseTempData[0]=0;TempH=temp>>4;TempL=temp&0x0F;TempL=TempL*6/10;//小数近似处理TempData[1]=dofly_DuanMa[(TempH%1000)/100];//十位温度if((TempH/1000==0)&&((TempH%1000)/100==0))/
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 企业管理-钢铁企业生产工艺流程 SOP
- 2024-2025学年度文化教育职业技能鉴定题库【考点梳理】附答案详解
- 2024-2025学年度反射疗法师大赛理论考前冲刺测试卷含答案详解(突破训练)
- 2024-2025学年度河南工业职业技术学院妇产护理期末试题(B卷)附答案详解
- 2024-2025学年度中医助理医师考试综合练习及完整答案详解【全优】
- 2024-2025学年度助听器验配师考前冲刺测试卷含答案详解(培优B卷)
- 2024-2025学年度粮油食品检验人员真题附答案详解【巩固】
- 2024-2025学年度电工全真模拟模拟题附参考答案详解(培优)
- 2024-2025学年度法律硕士练习题及完整答案详解【典优】
- 2025年6月山东临沂高新控股集团有限公司三级子公司招聘管理人员拟聘用人员笔试历年难易错考点试卷带答案解析
- 管理会计学 第10版 课件 第3章 本-量-利分析
- Unit 3 Zhong Nanshan- Part B(小学英语教学)闽教版英语五年级下册
- 消防维保方案(消防维保服务)(技术标)
- 车辆交通危险点分析预控措施
- QC成果提高SBS防水卷材铺贴质量一次合格率
- 大舜号海难事故案例分析
- TGRM 057.1-2023 非煤岩岩爆倾向性评价规范 第1部分:室内指标测定及等级分类
- 2023年安徽新闻出版职业技术学院单招考试职业技能考试模拟试题及答案解析
- LY/T 2271-2014造林树种与造林模式数据库结构规范
- GB/T 6554-2003电气绝缘用树脂基反应复合物第2部分:试验方法电气用涂敷粉末方法
- GB/T 19409-2013水(地)源热泵机组
评论
0/150
提交评论