




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
南昌航空大学学士学位论文PAGE511绪论选题依据随着科学技术地发展,人们物质文化水平不断提高,交通运输业得到飞速发展。在众多交通工具当中,列车的作用尤其突出,使用也最为广泛及频繁。列车在交通运输当中一直起着至关重要的作用。因此,对列车的控制及其行驶安全尤为重要。由早期的蒸汽发动人力驾驶发展到现在的电力驱动及一整套自动化控制系统,列车的发展正顺应着时代的变化。自动化控制无人驾驶正是未来发展的重要趋势。本次设计是基于单片机的列车中控微机保护系统。硬件部分主要由单片机最小系统模块、电动机驱动模块、报警模块、显示模块、温度采集模块、车速采集模块等部分组成,使列车彰显人性化和安全。国内外研究概况及发展趋势自19世纪铁路诞生以来,如何控制铁路运输的安全就一直是世界各国铁路运输业面临的主要课题,而列车运行安全是列车运行控制的核心。早期蒸汽机车采用机械式控制,对机车驾驶员要求很高。20世纪后,特别是电子行业的崛起,列车也已进入了电气自动化时代。列车信息控制系统是保证列车控制有效性、安全性及旅客舒适性所必需的,国外已开行的高速列车,如德国的ICE、法国的TGV、日本的新干线等高速列车都装有完整的信息控制系统。控制网络技术作为现代列车的关键技术,在世界范围内得到了越来越广泛的应用。目前,世界上主要列车电气部件供应商都推出了基于网络的控制系统,比如:Siemens的SIBAS32R铁路自动化系统、ADtranz公司(现已被Bombardier公司收购)的MITRACR列车通信和控制系统、Alstom公司的A-GATER控制系统以及日本三菱、东芝公司的TCMS列车控制监视系统等。近年来,随着我国交流传动高速列车、电动车组、城市轨道交通车辆研究工作的开展,列车网络控制技术已成为高速列车、动车组的必备技术之一。为了保证列车运行安全,列车的安全相关技术越来越受到重视。2相关理论分析测速相关理论分析要测速,首先要解决是采样的问题。在使用模拟技术制作测速表时,常用测速发电机的方法,即将测速发电机的转轴与待测轴相连,测速发电机的电压高低反映了转速的高低。使用单片机进行测速,可以使用简单的脉冲计数法。只要转轴每旋转一周,产生一个或固定的多个脉冲,并将脉冲送入单片机中进行计数,即可获得转速的信息。在这里选用霍尔测速传感器可以解决问题。在电机转轴上固定一圆盘,在圆盘上固定一到多个小磁钢。再用霍尔传感器靠近电机的磁钢,距离不超过5mm,这样电机转动,小磁钢每靠近一次霍尔传感器,传感器便会产生一个低电平。电机每转动一圈,传感器便会将一组有规律的脉冲信号传送至单片机,单片机通过测得电机每转一圈的脉冲个数,便能计算出直流电机的速度。测温相关理论分析温度传感器的种类众多,在应用与高精度、高可靠性的场合时DALLAS(达拉斯)公司生产的DS18B20温度传感器当仁不让。超小的体积,超低的硬件开消,抗干扰能力强,精度高,附加功能强,使得DS18B20更受欢迎。DS18B20的优势是我们学习单片机技术和开发温度相关的小产品的不二选择。了解其工作原理和应用可以拓宽对单片机开发的思路。DS18B20的温度检测与数字数据输出全集成于一个芯片之上,从而抗干扰力更强。其一个工作周期可分为两个部分,即温度检测和数据处理。在使用前先了解18B20的内部存储器资源。DS18B20共有三种形态的存储器资源。ROM只读存储器,用于存放DS18B20ID编码,其前8位是单线系列编码(DS18B20的编码是19H),后面48位是芯片唯一的序列号,最后8位是以上56的位的CRC码(冗余校验)。数据在出产时设置不由用户更改。DS18B20共64位ROM。RAM数据暂存器,用于内部计算和数据存取,数据在掉电后丢失,DS18B20共9个字节RAM,每个字节为8位。第1、2个字节是温度转换后的数据值信息,第3、4个字节是用户EEPROM(常用于温度报警值储存)的镜像。在上电复位时其值将被刷新。第5个字节则是用户第3个EEPROM的镜像。第6、7、8个字节为计数寄存器,是为了让用户得到更高的温度分辨率而设计的,同样也是内部温度转换、计算的暂存单元。第9个字节为前8个字节的CRC码。EEPROM非易失性记忆体,用于存放长期需要保存的数据,上下限温度报警值和校验数据,DS18B20共3位EEPROM,并在RAM都存在镜像,以方便用户操作。3系统设计总体设计要求设计要求该系统以单片机为核心,实现对列车温度速度采集的自动控制。该控制系统包括:①列车温度、速度采集模块;②单片机最小系统模块,涉及用E2PROM存储设置信息;③显示模块,用于实时显示当前的温度和速度;④报警模块,实时监控异常状态等根据设计要求,设计框图如图3—1所示:STC89C52LED显示电路温度传感器STC89C52LED显示电路温度传感器7279键盘输入速度传感器7279键盘输入速度传感器报警电路报警电路E2E2PROM存储电路图3-1原理框图设计思想首先通过温度传感器与速度传感器采集温度与速度数据,把采集到的数据转化为计算机可以接受的数字信号。在接受到采集数据后,单片机开始对数据进行处理并显示。如果有异常(温度值超出要求范围),触发报警电路,提醒有异常状况发生。数据处理后,应外接一个E2PROM存储器用于存储温度及速度报警值,起到断电信息不丢失的作用。该存储器也用于存储设置的温度报警值,而报警值可通过按键设置。整个过程需要用单片机算法去控制与显示设定的温度与速度,从而与实时采样值去比较,大于设定值报警。系统功能模块该系统设计要求主要包括温度采集模块,速度采集模块,报警模块,LED显示模块,掉电保护模块和参数设定模块。系统功能模块框图如图3-2所示:功能模块功能模块掉电保护模块报警模块参数设置模块LED显示模块速度采集模块温度采集模块掉电保护模块报警模块参数设置模块LED显示模块速度采集模块温度采集模块图3-2系统功能模块图模块说明:温度采集模块,通过温度传感器对温度的实时采集,并将采集到的数据送到单片机内。速度采集模块,通过速度传感器对速度的实时采集,并将采集到的数据送到单片机内。LED显示模块,用于实时显示采集到的温度值与速度值。参数设置模块,通过键盘实现对报警温度和速度上限值的设置。报警模块,实时监测异常状况,如果当监测到温度或速度超过报警值,则触发报警电路。掉电保护模块,通过外接E2PROM来实现对温度和速度报警值的存储,保证断电后信息不会丢失。4硬件设计该控制系统的设计过程中包括以下几大硬件电路,即温度信息采集电路、速度信息采集电路、键盘输入和显示电路、系统掉电保护电路、超温报警电路等。在综合考虑了本设计的基本要求及系统各项功能实现的情况下,分析和了解项目的总体要求,辅助外设(如传感器)的种类及要求,使用的环境及工作的电源要求,产品的成本,可靠性要求和可维护性及经济效益等因素,制定出可行的性能指标。在该系统中主要指标如下:测温范围0℃-100℃,测量精度±1℃;测速范围0~50m/s,允许误差±0.单片机的选择目前市场上的单片机数量、品种繁多,各种专用功能的单片机基本上都有,这给用户带来了很多方便,至少可以节约很多外接扩展器件。单片机的选型很重要,选择时需考虑其能否全部满足规定的要求,例如控制速度、精度、控制端口的数量、驱动外设的能力、存储器的大小、单片机的功能与内部资源、开发工具和技术的支持程度、性能价格、资源等等。考虑到以上几点要求,故在这次设计中选择了常见,成本低的STC89C52单片机。其具有8位的CPU,片内含8kBytesFLASHROM,兼容80C52,256*8位的内部RAM,32位I/O数,3个定时/计数器,8个中断源,一个串行口。其单片机引脚图见图4—1所示:图4-1STC89C52单片机引脚图单片机最小系统电路时钟电路时钟电路是为系统产生所需要的时钟信号,是计算机的心脏,控制着计算机的工作节奏。其电路图如下图4-2所示,片内电路与片外器件构成一个时钟发生电路,CPU的所有操作均在时钟脉冲同步下进行,片内振荡器的震荡频率f0非常接近晶振频率,一般多在1.2MHz~12MHz之间选取,这次毕设用的时钟频率是12MHz。MCS-51内部都有一个反相放大器,XTAL1、XTAL2分别是反相放大器输入和输出端,外接定时反馈元件就组成震荡器产生时钟送至单片机内部的各个部件。图4-2中C1、C2是反馈电容,其值在5pF~30pF之间选择,典型值是30Pf。作用有两个:其一是使振荡器起振,其二是对振荡器的频率f起微调(C1、C2大,f变小)。图4-2时钟电路复位电路系统在启动运行时都要复位,使中央处理器和系统中的其他部件都处于一个确定的初始状态,并从这状态开始工作。采用上电复位方式,在RST复位端接一个电阻R1至Vcc和一个电容C3至Vss(地),就能实现上电自动复位。在上电的瞬间,电容通过电阻充电,就在RST端出现一定时间的高电平,只要保持RST引脚为高电平时间足够长,就可使CPU复位。所需高电平时间的长短与Vcc上升时间和振荡器起振时间有关。10MHz时,约1ms,1MHz时,约10ms。若Vcc上升时间小于20ms,那么从上电时间算起,只要保持RST引脚在高电平停留时间不小于20ms即可。图4-3中R1=51KΩ,C3=22µF,若频率为12MHz,可以保证可靠的上电复位。如果频率降低,可以适当加大电容C3。图4-3复位电路温度信号采集电路设计方案介绍本次设计采用数字温度传感器DS18b20芯片实现温度采样及A/D转化。随着现代化信息技术的飞速发展和传统工业改造的逐步实现,能独立工作的温度检测系统已经广泛应用于各种不同领域。传统的温度检测系统大多数采用热敏电阻作为传感器。而这种方法必须经过专门的接口电路转换成数字信号后才能由单片机进行处理,存在可靠性差、成本高和精度低等诸多缺点。本次设计使用的DS18b20数字温度传感器是Dallas公司生产的1-Wire,即单总线器件,它具有微型化、低功耗、高性能、抗干扰能力强、易配处理器等优点,特别适用于构成多点温度测控系统,可直接将温度转化成串行数字信号给单片机处理,且在同一总线上可以挂接多个传感器芯片。它具有3引脚TO-92小体积封装形式,其管脚图如图4-4:图4-4DS18B20的管脚图其引脚功能如表4-1:表4-1DS18B20引脚功能序号名称功能1GND地信号2DQ数据输入/输出引脚,开漏单总线接口引脚3VDD可选择的VDD引脚基于DS18B20高精度数字温度传感器可以完成如下的功能:采用STC89S52单片机和DS18B20温度传感器通信,控制温度的采集过程和进行数据通信;提供DS18B20的使用外围电路、温度显示LED电路以及DS18B20和单片机的通信接口电路;利用发光二极管指示系统的工作状态,DS18B20温度传感器内置温度上下限;编写C51程序,完成单片机对温度数据的采集过程以及与DS18B20数据传输过程的控制。其电路连接线路如图4-5:图4-5DS18b20温度采集电路模块功能说明DS18b20性能介绍适应电压范围更宽,电压范围:3.0~5.5V,在寄生电源方式下可由数据线供电独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯DS18B20支持多点组网功能,多个DS18B20可以并联在唯一的三线上,实现组网多点测温DS18B20在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路内温范围-55℃~+125℃,在-10~+85可编程的分辨率为9~12位,对应的可分辨温度分别为0.5℃、0.25℃、0.125℃在9位分辨率时最多在93.75ms内把温度转换为数字,12位分辨率时最多在750ms内把温度值转换为数字,速度更快测量结果直接输出数字温度信号,以"一线总线"串行传送给CPU,同时可传送CRC校验码,具有极强的抗干扰纠错能力负压特性:电源极性接反时,芯片不会因发热而烧毁,但不能正常工作DS18b20内部结构介绍DS18B20主要包括温度传感器、64位激光ROM单线单口、存放中间数据的高速暂存器、用于存储用户设定的温度上下限值、触发器存储与控制逻辑、8位循环冗余校验码发生器等。光刻ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码。64位光刻ROM的排列是:开始8位(28H)是产品类型标号,接着的48位是该DS18B20自身的序列号,最后8位是前面56位的循环冗余校验码(CRC=X8+X5+X4+1)。光刻ROM的作用是使每一个DS18B20都各不相同,这样就可以实现一根总线上挂接多个DS18B20的目的。DS18B20的存储器包括高速暂存器RAM和可电擦除RAM,可电擦除RAM又包括温度触发器TH和TL,以及一个配置寄存器。存储器能完整的确定一线端口的通讯,数字开始用写寄存器的命令写进寄存器,接着也可以用读寄存器的命令来确认这些数字。当确认以后就可以用复制寄存器的命令来将这些数字转移到可电擦除RAM中。当修改过寄存器中的数时,这个过程能确保数字的完整性。高速暂存器RAM是由8个字节的存储器组成;第一和第二个字节是温度的显示位。第三和第四个字节是复制TH和TL,同时第三和第四个字节的数字可以更新;第五个字节是复制配置寄存器,同时第五个字节的数字可以更新;六、七、八三个字节是计算机自身使用。用读寄存器的命令能读出第九个字节,这个字节是对前面的八个字节进行校验。DS18B20中的温度传感器可完成对温度的测量,以12位转化为例:用16位符号扩展的二进制补码读数形式提供,以0.0625℃DS18b20工作原理DS18b20的读写时序和测温原理与DS1820相同,只是得到的温度值的位数因分辨率不同而不同,且温度转换时的延时时间由2s减为750ms。DS18b20测温原理如图4-6所示。停止停止加1斜率累加器比较预置计数器1低温度系统晶振温度寄存器预置=0高温度系数晶振计数器2=0LSB置位/清除图4-6DS18B20内部结构图图中低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。高温度系数晶振随温度变化其振荡率明显改变,所产生的信号作为计数器2的脉冲输入。计数器1和温度寄存器被预置在-55℃速度信号采集电路设计方案介绍本次设计采用霍尔测速传感器进行对速度信息的采集霍尔传感器是对磁敏感的传感元件,常用于开关信号采集的有UGN3020、UGN3040等,这种传感器是一个3端器件,外形与三极管相似,只要接上电源、地,即可工作,输出通常是集电极开路(OC)门输出,工作电压范围宽,使用非常方便。如图4-7所示是UGN3020的外形图,将有字面对准自己,三根引脚从左向右分别是Vcc、地、输出。图4-7UGN3020的外形图霍尔传感器的机械结构较为简单,只要在电动机转轴的圆周上粘上一粒磁钢,让霍尔开关靠近磁钢,就有脉冲信号输出,转轴旋转时,就会不断地产生脉冲信号输出。如果在圆周上粘上多粒磁钢,可以实现旋转一周,获得多个脉冲输出。在粘磁钢时要注意极性,霍尔传感器对磁场方向敏感,粘前可以先手动接近一下传感器,如果没有信号输出,可以换一个方向再试。这种传感器不怕灰尘、油污,在工业现场应用广泛。霍尔传感器测速部分可以完成如下的功能:采用STC89S52单片机和霍尔传感器通信,控制速度的采集过程和进行数据通信;提供霍尔传感器的使用外围电路、温度显示LED电路以及霍尔传感器和单片机的通信接口电路;利用发光二极管指示系统的工作状态;编写C51程序,完成单片机对速度数据的采集过程以及与霍尔传感器数据传输过程的控制。其电路如图4-8:图4-8霍尔传感器速度采集电路模块功能说明当电机启动时,附着在圆盘上的小磁钢每转一周,与霍尔传感器接触一次,产生低电平。因此,电机每转一周,霍尔传感器会送给单片机一个脉冲波。再通过单片机定时1s内所计算出的霍尔传感器的脉冲个数N,有测量得出的圆盘周长l,即可算出电机1s内经过的路程S=l*N,即速度v=S=l*N(单位:m/s)。报警模块电路设计报警部分由NPN三极管接发光二极管组成,每采集到的温度与报警值进行比较,若等于或高于报警值则送P1.4口高电平,报警灯亮。其电路如图4-9所示:图4-9报警电路显示模块电路设计HD7279是一片具有串行接口的,可同时驱动并连接64键的键盘矩阵的智能显示驱动芯片。HD7279内部含有译码器,可直接接受BCD码或16进制码,并同时具有两种译码方式。HD7279A内部含有译码器,可直接接受BCD码或16进制码,并同时具有2种译码方式。此外,HD7279A还具有多种控制指令,如消隐、闪烁、左移、右移、段寻址等,并且具有片选信号,可方便地实现多于8位的显示或多于64键的键盘接口。图4-10为HD7279的芯片引脚图。图4-10HD7279的芯片引脚图HD7279A只需要4根线(CS、CLK、DATA、KEY)与AT89C51相连,仅仅使用单片机的P1.0-P1.3口,大大节省了CPU的端口资源,即可实现键盘接口功能。由于HD7279A内部含有去抖动电路,软件编程时不需要键盘的消抖动程序,而且HD7279A的控制指令也使得软件编程更简单。其连线图如图4-11:图4-117279显示电路断电存储模块电路设计方案介绍本次设计采用AT24C02来实现对设置信息的存储及断电保护功能。AT24C02是一个2K位串行CMOSE2PROM内部含有256个8位字节,CATALYST公司的先进CMOS技术实质上减少了器件的功耗,AT24C02有一个16字节页写缓冲器,该器件通过I2C总线接口进行操作,有一个专门的写保护功能图4-12AT24C02引脚图引脚说明如表4-2:表4-2AT24C02引脚说明管脚名称功能A0、A1、A2器件地址选择SDA串行数据/地址SCL串行时钟WP写保护VCC+1.8V~6.0V工作电压VSS地AT24C02与单片机进行串行数据传送,用于存储不常改动的数据,如:温度报警值等;在系统断电情况下,保证存储器内数据不丢失。其电路连接线路如图4-13:图4-13AT24C02断电存储电路模块功能说明AT24C02的特性与400KHzI2C总线兼容1.8到6.0伏工作电压范围低功耗CMOS技术写保护功能:当WP为高电平时进入写保护状态页写缓冲器自定时擦写周期1,000,000编程/擦除周期可保存数据100年8脚DIPSOIC或TSSOP封装AT24C02的功能描述AT24C02支持I2C总线数据传送协议,I2C总线协议规定任何将数据传送到总线的器件作为发送器。任何从总线接收数据的器件为接收器。数据传送是由产生串行时钟和所有起始停止信号的主器件控制的。主器件和从器件都可以作为发送器或接收器,但由主器件控制传送数据(发送或接收)的模式,通过器件地址输入端A0、A1和A2可以实现将最多8个24C02器件连接到总线上图4-14AT24C02内部框图5软件设计5.1软件程序设计要求本软件设计包括三个子系统设计分别是:单片机测温程序及报警,单片机测速程序,显示程序,存储程序等。测温程序主要实现通过DS18b20对温度进行实时地采集,精度在小数点后一位。测速陈旭主要实现对直流电机的测速功能,精度在小数点后一位。显示程序则是实现对温度报警值的显示以及对温度和速度的实时显示。报警程序用来实现对超温现象的报警。存储程序主要控制AT24C02对报警数据的存储功能。5.2资源分配90H-97H数码管地址36H-38H存储采样温度值47H-49H存储采样速度值45H存储脉冲计数值41H-43H存储温度报警值P1.0CSP1.1CLKP1.2DATAP1.3KEYP1.4报警灯P1.5SCLP1.6SDAP1.7DQP3.5霍尔传感器5.3各功能模块介绍5.3.1主程序模块主程序主要是完成对各个状态寄存器的初始化,通过对各个子程序(温度采样,报警,温度转换,显示处理等)的调用实现对温度的采样和电动机速度的采样和控制,其流程图如图5—1:NNY开始初始化显示处理,显示键盘扫描有键按下否?调用键处理程序调用获取温度子程序调用温度处理子程序调用显示及报警子程序图5-1主程序流程图5.3.2中断模块该模块主要用于计算霍尔传感器所测到的脉冲个数,以此来计算直流电机的速度。中断开始要保护现场和换区,要完成定时器重赋值中断,主要是完成单片机对电动机转速的计数,其流程图如图5-2:定时器中断入口定时器中断入口保护现场重新置定时初值50ms重新置计数初值将计数值存于45H恢复现场返回中断25H值加125H值等于20否?NY图5-2中断程序流程图通过给定时器T0设置一个1s的定时中断,在1s内由计数器T1进行对霍尔传感器的脉冲计数,并将所计脉冲数存入45H单元。5.3.3存储模块存储模块主要完成对数据的存入与读出的功能,首先是将数据写入AT24C02。需要注意的是AT24C02为I2C二线制传输,所以也是串行通信,编程时将数据存储单元内的数据左移一位,以此存入AT24C02存储器当中,连续执行8次即可完成数据的写入功能。流程图如图5-3所示:开始开始初始化初始化写入一字节数据写入一字节数据返回返回图5-3AT24C02写子程序读24C02子程序如图5-4所示:返回读出一字节数据初始化开始返回读出一字节数据初始化开始图5-4AT24C02读子程序5.3.4显示模块HD7279是一片具串行接口的,可同时驱动8位共阴式数码管的智能驱动芯片该芯片,同时还可以连接多达64键的键盘矩阵。通过单片机控制可完成LED显示,键盘接口的全部功能。因此接受和发送都应该满足串行通信的要求,将数据一位一位移进存储单元,并且要满足时序。通过显示程序的编写,最终在八位数码管的前三位显示温度采样值,在五到七位显示速度采样值。7279的初始化流程图如图5-5所示:开始开始P1.0口清零延时25us复位P1.0口置高返回图5-57279初始化子程序7279发送子程序如图5-6所示:YYN开始设置循环次数将A循环左移将CF送到p1.2口P1.1置高延时10usR7-1=0?返回图5-67279发送子程序5.3测温模块通过汇编程序,主要完成DS18B20的温度采集功能。其采用模块化设计,程序设计包括复位程序、读取温度程序、温度转换程序、数码管显示程序和延时程序,其实现设计要求功能主要有输入控制和数据采集两部分组成。复位操作首先必须对DS18b20芯片进行复位,复位即是由单片机给DS18b20单总线至少480uS的低电平信号。当DS18b20接到此复位信号后则会在15~60uS后回发一个芯片的存在脉冲。在复位电平结束之后,控制器应该将数据单总线拉高,以便于在15至60uS后接收存在脉冲,存在脉冲为一个60至240uS的低电平信号。如果复位低电平的时间不足或是单总线的电路断路都不会接到存在脉冲。其复位流程图如图5-7:DQ置1DQ置1DQ置0DQ置0延时480us延时480usDQ置1DQ置1短延时,等待DS18b20回应短延时,等待DS18b20回应DQ=1?DQ=1?FLAG1置1FLAG1置1FLAG1FLAG1置0短延时短延时DQ置1DQ置1返回返回图5-7DS18b20复位子程序流程图写操作部分控制器发送存储器操作指令:在ROM指令发送给DS18b20之后,紧接着就是发送存储器操作指令了。操作指令同样为8位,共6条,存储器操作指令分别是写RAM数据、读RAM数据、将RAM数据复制到E2PROM、温度转换、将E2PROM中的报警值复制到RAM、工作方式切换。其流程图如图5-8所示:NN数据线置低‘0’延时15us从低位到高位发送字节延时45us数据线拉高‘1’字节发送完否?入口数据线拉高Y返回图5-8DS18b20写操作子程序读操作部分若要读出当前的温度数据则需要执行两个工作周期,第一个周期为复位、跳过ROM指令(之所以要用跳过ROM指令是因为本次设计只采用了一块DS18b20芯片,无需辨别芯片)、执行温度转换存储器操作指令、等待500us温度转换时间。紧接着执行第二个周期为复位、跳过ROM指令、执行读RAM的存储器操作指令、读数据(最多为9个字节,中途可停止,只读简单温度值则读前2个字节即可)。其它的操作流程也大同小异。其流程图如图5-9所示:读数据线的状态得到1个状态位,并进行数据处理读数据线的状态得到1个状态位,并进行数据处理延时2us入口DQ置1DQ置0延时15usDQ置1返回延时30us延时15us图5-9DS18b20读操作子程序DS18b20获取温度DS18b20采样温度的主要流程为先判断有无DS18b20芯片,当有芯片时发送跳转指令并执行温度转化指令,经过延时复位后再执行一次跳转指令,最后获取温度值。其工作总体流程图如图5-10:开始开始读ds18b20的序列号DS18b20复位DS18b20存在否?发送跳过ROM指令温度转换Ds18b20复位发送跳过ROM指令等待读取温度数据N返回图5-10获取温度子程序温度处理在获取温度之后,由于此时温度是由16位2进制数表示的,因此需要进行温度的精度转换以及相应的处理以便显示正确的温度值。C清零C清零符号位清零将转换数据高字节最高位移入CC=1?C清零符号位置1,表示负数将转换数据低字节逐位取反加1转换数据高字节加进位C分离整数与小数,整数存入37H,小数存入38H,39H返回NY图5-11温度处理子程序5.3报警模块是由发光二极管组成,用采集到的温度值与设定好的温度值进行比较,若等于或高于设定的温度值则触发报警,即给发光二极管送一个高电平,否则即返回继续其他操作。其流程图如图5-11所示:开始开始测量值与设定值相减测量值与设定值相减CY=1?NCY=1?YP1.4口置P1.4口置‘1返回返回图5-12报警子程序流程图6系统调试系统调试主要分硬件调试和软件调试两部分。在设计过程中,先完成全部硬件的焊接过程,再将软件分模块分别烧入以此来检验各部分功能的实现情况。这样做便于系统的调试,在预计现象没有出现的时候也能很快排除干扰以及找出错误的原因。硬件调试硬件部分主要分速度采集模块,温度采集模块,显示模块,存储模块及报警模块等部分。由于所用元器件均是集成功能较多的元件,因此,硬件电路相对比较简单。唯一复杂一些的地方是速度采集模块。需要确定小磁钢与霍尔传感器的有效作用面,因此用万用表做测量,将磁钢与霍尔传感器接触。通电情况下,传感器两端电压为5V,当有效作用面接触时,两端电压变为0V。这样既判断出了有效面,而且还鉴定了该霍尔传感器的实用性。软件调试软件变成部分主要分为测速模块,测温模块,存储模块,显示模块及报警模块等。相比于硬件调试,软件调试复杂许多,同时也尤为重要。在软件调试中,鉴于方便修改以及易发现故障等原因,选择了分块调试。既将每部分模块的子程序单独编写并烧入单片机,分块检查各自完成的效果,再将其组合在一起。首先是测速模块,采用的是定时中断,外部计数的方法。但是在一开始烧入程序时,数码管并没有显示出任何结果。在排除了硬件故障之后,得出的结论是软件编写问题。由于定时器开始设置的时间为0.05s,而直流电机的转速偏慢,不足以达到每次定时过程都能测到脉冲的效果。因此,将原本的0.05s定时改为1s定时,这样也方便速度的计算。当再一次烧入程序时,结果便能正常显示。接下来是温度模块,这部分实现较为顺利,需要注意的是小数点后精度的调节,最后设置了显示小数后一位。随着温度测量的完成,继而开始实现按键设置温度报警值。而这部分也出现了许多问题。在最初的程序中,按下第一个按键后,所有显示的数码管都会显示第一个按下的键值。在仔细查询了每条语句之后,发现按下按键的反应时间远远超过了单片机执行汇编语句的时间,因此便会出现一键按下读取多个按键的情况。于是为了解决这个问题便加入了一个判断按键是否弹起的程序,并加入了一定的延时。最终,这个问题得到解决。最后剩下的存储、显示与报警模块完成的都较为顺利。报警部分要注意每次程序执行完成后都要将报警灯清零一次。因为程序每执行一轮,都会将采集到的新的温度值与报警值比较,而一旦报警灯亮起后,如果没有清零的话那将会一直亮着。因此,在设置完报警灯程序后还会出现报警灯在报警时一闪一闪的效果。7心得体会7.1心得体会毕业设计既是大学里的最后一次实际操作机会,是将四年理论学习运用到实践的动手课程,也是踏上社会前的最后一次练兵。因此非常珍惜这次宝贵的机会。这次的设计很好的复习到了大学学习到的专业课程:硬件方面涉及到的传感器的使用,同时也更加熟悉protel99绘图软件的使用。软件方面通过这次的编程,更加深入的了解单片机,加强了实际编程能力,系统的了解了编程中应注意的问题并提高了解决问题的能力。由于系统中大量的运用了串行通信技术,虽然给软件编程带来了一些麻烦,但这也是今后的主流方向。同时增加了软件调试经验,也更加熟悉的掌握keil51编程及调试软件。通过毕业设计不仅系统的复习了大学所学课程,也帮助提高了实际动手操作能力。同时还促使养成同学间的相互配合习惯,提高了团体合作的精神。当然也暴露了平时学习中的不足和基础知识的不扎实以及实际操作中的粗心大意和工作中的不严谨态度。为今后走上工作岗位提供了良好的借鉴与教训。参考文献[1].徐玮,沈建良.单片机快速入门.北京:北京航空航天大学出版社,2008,5[2].张凤珊,祖龙起.电气控制及可编程序控制器.北京:中国轻工业出版社,2003,8[3].公茂法,黄鹤松,杨学蔚.MCS-51/52单片机原理与实践.北京:北京航空航天大学出版社,2009,3[4].陈在平,赵相宾.可编程序控制器技术与应用系统设计.北京:机械工业出版社,2002[5].张友德,赵志英,涂时亮.单片微型机原理、应用与实验(第五版).上海:复旦大学出版社,2006,5[6].王致达,张慧,凌涛,周金和.嵌入式系统基础设计实验与实践教程.北京:清华大学出版社,2008,7[7].李朝青编著.单片机与PC机网络通信技术.北京航空航天大学出版社,2007[8].吕宁.单片机转速测量系统[J].电子技术,2006,9[9].吴天佑.基于温度传感器的PC散热解决方案[J].世界电子元器件,2001,12[10].I.ScottMacKenzie.THE8051MICROCONTROLLER[M].USA:Prentice-Hall.Inc.,1995致谢本次毕业设计的顺利完成得益于许多老师和同学的帮助,在此表示感谢。首先感谢指导老师熊文华给予的这个课题,系统的涵盖到了本专业的所学专业课程,在初步了解课题要求时,熊老师在设计方向上给予了正确的指导。同时在对该课题涉及到的相关专业技术问题上给予了详细解释。帮助了解了泡沫切割机的工作原理和如何设计实现。在本次毕业设计中,本人从指导老师身上学到了很多东西。老师认真负责的工作态度,严谨的治学精神和深厚的理论水平都使受益匪浅。这对于以后的学习和生活,是一份宝贵的经验,在此特别向指导老师致以衷心地感谢。同时也感谢电子学院的各位老师,你们的督促,给了工作的动力,你们的检查指导,对设计中存在的问题给予的建议,促使逐步完善了设计。在具体设计与调试过程中也得到了许多同学的帮助,在此特别感谢胡溢文同学在硬件检测与软件调试方面给予的大力帮助,毕设过程中也得到了同组同学张斌的积极配合。在毕业设计中,笔者也参考了大量的参考书籍,这些书籍对笔者熟悉编程语言,了解编程模式提高编程水平都起到了很大地作用。在此,对这些参考书籍的作者亦同时表示感谢。最后,向在这次毕业设计中给予本人帮助的所有同学和老师表示真诚感谢!附录附录A电路原理图附录BPCB图附录C实物图附录D程序代码TEMPHEQU35HTEMPLEQU34HBIT_COUNTEQU30HTIMEREQU31HTENEQU32HDATA_INEQU20HDATA_OUTEQU21HTIMER1EQU33HDQBITP1.7;18B20KEYBITP1.3DATBITP1.2CLKBITP1.1CSBITP1.0I2C_SDABITP1.6I2C_SCLBITP1.5ORG0000HAJMPMAINORG000BHAJMPINT_T0ORG0030HMAIN:MOVTMOD,#51HMOVTH1,#00H MOVTL1,#00H MOV25H,#00H MOVTL0,#0B0H MOVTH0,#3CH MOVIE,#8AH MOVTCON,#50H MOVP1,#11001101BSTART:LCALLINT_79JUMP_1: JBKEY,START;按键开始输入温度报警值LCALLKEY1 LCALLJIANHAO MOVA,B CLRC SUBBA,#0FH JNZJUMP_1CLEAN: MOV41H,#00H;将输入的报警值清零 MOV42H,#00H MOVDATA_OUT,#81HLCALLSENDMOVDATA_OUT,41HLCALLSENDMOVDATA_OUT,#80HLCALLSENDMOVDATA_OUT,42HLCALLSEND MOVDATA_OUT,#82HLCALLSEND MOVDATA_OUT,#0FH LCALLSEND MOVDATA_OUT,#83HLCALLSEND MOVDATA_OUT,#0FH LCALLSEND MOVDATA_OUT,#84HLCALLSEND MOVDATA_OUT,#0FH LCALLSEND MOVDATA_OUT,#85HLCALLSEND MOVDATA_OUT,#0FH LCALLSEND MOVDATA_OUT,#86HLCALLSEND MOVDATA_OUT,#0FH LCALLSEND MOVDATA_OUT,#87HLCALLSEND MOVDATA_OUT,#0FH LCALLSEND LCALLMAXTEM_1 ;输入报警值的十位 LCALLDELAY LCALLMAXTEM_2 ;输入报警值的个位 LCALLDELAYJUMP_2: JBKEY,JUMP_2LCALLKEY1 LCALLJIANHAO MOVA,B MOVR4,A CLRC SUBBA,#0EH JZCLBJ MOVA,R4 CLRC SUBBA,#0FH JNZJUMP_2 ACALLCLEANCLBJ: MOVA,41H MOVB,#0AH MULAB ADDA,42H MOV43H,A ;LCALLI2C_WRITECOUNT: LCALLSP_BCD LCALLGET_TEMPERLCALLCHULI_1 ;36H-37H-38H存有温度值 LCALLDISPLAY_1LCALLDELAYLCALLDELAY CLRP1.4 AJMPCOUNTSP_BCD: ;速度BCD处理MOVR1,45H MOVA,R1 MOVB,#100 DIVAB MOV47H,A ;存百位到47H MOVA,B MOVB,#10 DIVAB MOV48H,A ;存十位到48H MOV49H,B ;存各位到49H RETINT_79: CLR CS;7279初始化 MOV R6,#0CHX0: DJNZR6,X0 MOV A,#0A4H;#0A4H为7279复位指令 ACALLSEND;7279数据发送子程序 MOV R6,#02HX1: DJNZR6,X1 SETBCS;将片选线拉高,停止传输 RETMAXTEM_1:MOVC,KEY;输入报警值十位子程序JCL12 JB00H,L11 LCALLKEY1 LCALLJIANHAO MOVA,B CLRC SUBBA,#0FH JNZGO1 ACALLCLEANGO1: MOV41H,B SETB00H LCALLM1 RETL12:CLR00HL11:MOVA,#0FFH AJMPMAXTEM_1M1:MOVA,41H ;显示温度报警值十位子程序MOVR3,AMOVDATA_OUT,#81H;在第二位数码管显示LCALLSENDMOVDATA_OUT,R3LCALLSENDRETMAXTEM_2:MOVC,KEY;输入报警值个位子程序JCL22 JB01H,L21 LCALLKEY1 LCALLJIANHAO MOVA,B CLRC SUBBA,#0FH JNZGO2 ACALLCLEANGO2: MOV42H,B SETB01H LCALLM2 RETL22:CLR01HL21:MOVA,#0FFH AJMPMAXTEM_2 M2:MOVA,42H ;显示温度报警值个位子程序MOVR3,AMOVDATA_OUT,#80H;在第一位数码管显示LCALLSENDMOVDATA_OUT,R3LCALLSENDRETDISP_SP: ;速度显示子程序ACALLINT_79MOVA,49HMOVR3,AMOVDATA_OUT,#84H;第五位数码管显示速度值小数第一位LCALLSENDMOVDATA_OUT,R3LCALLSENDMOVA,48HORLA,#80H;加小数点MOVR3,AMOVDATA_OUT,#85H;第六位数码管显示速度值个位LCALLSENDMOVDATA_OUT,R3LCALLSENDMOVA,47HMOVR3,AMOVDATA_OUT,#86H;第七位数码管显示温度值十位LCALLSENDMOVDATA_OUT,R3LCALLSENDRETSEND:MOVBIT_COUNT,#8 ;7279数据发送子程序CLRCSLCALLLONG_DELAYSEND_LOOP:MOVC,DATA_OUT.7MOVDAT,CSETBCLKMOVA,DATA_OUTRLAMOVDATA_OUT,ALCALLSHOUT_DELAYCLRCLKLCALLSHOUT_DELAYDJNZBIT_COUNT,SEND_LOOPCLRDATRETRECEIVE: ;7279数据接收子程序MOVBIT_COUNT,#8SETBDATLCALLLONG_DELAYRECEIVE_LOOP:SETBCLKLCALLSHOUT_DELAYMOVA,DATA_INRLAMOVDATA_IN,AMOVC,DATMOVDATA_IN.0,CCLRCLKLCALLSHOUT_DELAYDJNZBIT_COUNT,RECEIVE_LOOPCLRDATRETLONG_DELAY:MOVTIMER,#25;50USDELAY_LOOP:DJNZTIMER,DELAY_LOOPRETSHOUT_DELAY:MOVTIMER,#4;8USDELAY_LOOP1:DJNZTIMER,DELAY_LOOP1RETINT_T0:MOVTL0,#0B0H;T0定时中断MOVTH0,#3CH ;1s定时 INC25H MOVA,25H CJNEA,#20,LO MOVTCON,#00H MOV45H,TL1;将脉冲数存于45H MOV46H,TH1 MOVTH1,#00H MOVTL1,#00H MOV25H,#00H MOVTCON,#50HLO: RETIGET_TEMPER: ;获取温度子程序SETBDQLCALLINIT_1820;调DS18b20复位MOVA,#0CCH;跳过ROMLCALLWRITE_1820MOVA,#44H ;温度转换LCALLWRITE_1820LCALLDELAYLCALLINIT_1820;复位MOVA,#0CCH;跳过ROMLCALLWRITE_1820MOVA,#0BEH;读取温度值LCALLWRITE_1820LCALLREAD_1820;29H(低),28H(高)RETCHULI_1: ;处理温度子程序MOV36H,#00HMOV37H,#00HMOV38H,#00HMOVC,28H.7JCFUSHUMOVTEMPH,28H;存高位MOVTEMPL,29H;存低位INCTEMPH;修正S1: ;温度算法MOVA,36HADDA,#25HDAAMOV36H,AMOVA,37HADDCA,#06HDAAMOV37H,AMOVA,38HADDCA,#00HDAAMOV38H,ADJNZTEMPL,S1DJNZTEMPH,S1RETFUSHU:;负数处理子程序MOVTEMPH,28HMOVTEMPL,29HXRLTEMPL,#0FFH;变为原码XRLTEMPH,#0FFHMOVA,TEMPLADDA,#01HMOVTEMPL,AMOVA,TEMPHADDCA,#00HMOVTEMPH,AINCTEMPH;修正S2:;算法MOVA,36HADDA,#25HDAAMOV36H,AMOVA,37HADDCA,#06HDAAMOV37H,AMOVA,38HADDCA,#00HDAAMOV38H,ADJNZTEMPL,S2DJNZTEMPH,S2LCALLDISPLAY_2RETINIT_1820: ;DS18B20复位子程序 SETBDQ NOP CLRDQ MOVR1,#3 ;主机发出延时480微秒的复位低脉冲TSR1:MOVR0,#80 DJNZR0,$ DJNZR1,TSR1 SETBDQ ;拉高数据线 NOP NOP NOP MOVR0,#25HTSR2: JNBDQ,TSR3 ;等待DS18B20回应 DJNZR0,TSR2 LJMPTSR4 ;延时TSR3: SETBF0;置标志位,表示DS1820存在 LJMPTSR5TSR4: CLRF0 ;清标志位,表示DS1820不存在 LJMPTSR7TSR5: MOVR0,#117TSR6: DJNZR0,TSR6;时序要求延时一段时间TSR7: SETBDQ RETWRITE_1820: ;写DS18B20的子程序 MOVR2,#8;一共8位数据 CLRCWR1: CLRDQ;置低电平,开始写输出 MOVR3,#6 DJNZR3,$ RRCA MOVDQ,C MOVR3,#23 DJNZR3,$ SETBDQ NOP DJNZR2,WR1 SETBDQ RETREAD_1820: ;读DS18B20的程序,从DS18B20中读出两个字节的温度数据 MOVR4,#2;将温度高位和低位从DS18B20中读出 MOVR1,#29H;低位存入29H,高位存入28HRE00:MOVR2,#8;数据一共有8位RE01:CLRC SETBDQ NOP NOP CLRDQ NOP NOP NOP SETBDQ MOVR3,#9RE10:DJNZR3,RE10 MOVC,DQ MOVR3,#23RE20:DJNZR3,RE20 RRCA DJNZR2,RE01 MOV@R1,A DECR1 DJNZR4,RE00 RETDISPLAY_1: ;显示子程序MOVDATA_OUT,#0A4H;复位7279LCALLSENDSETBCSMOVA,37HSWAPAANLA,#0FHMOVR3,AMOVDATA_OUT,#80H;第一位数码管显示温度值第一位小数LCALLSENDMOVDATA_OUT,R3LCALLSENDMOVA,38HANLA,#0FHORLA,#80H;DP=1;在个位显示处加小数点MOVR3,AMOVDATA_OUT,#81H;第二位数码管显示温度值个位LCALLSENDMOVDATA_OUT,R3LCALLSENDMOVA,38HSWAPAANLA,#0FHMOVR3,AMOVDATA_OUT,#82H;第三位数码管显示温度值十位LCALLSENDMOVDATA_OUT,R3LCALLSEND LCALLDISP_SP;调用速度显示子程序 WDBJ:MOVA,38H ;判断是否报警,将38H中的BCD温度值转换成16进制ANLA,#0F0HSWAPAMOVR4,AMOVA,#00HBCD_H:;BCD转16进制ADDA,#0AHDJNZR4,BCD_HMOV40H,AMOVA,38HANLA,#0FHADDA,40H ;LCALLI2C_READBJ:SUBBA,43HJCJIXU;判断温度SETBP1.4;报警灯亮JIXU:RETDISPLAY_2:;显示负数温度子程序MOVDATA_OUT,#0A4H;复位LCALLSENDSETBCSMOVA,36H;直接取高位SWAPAANLA,#0FHMOVR3,AMOVDATA_OUT,#80HLCALLSENDMOVDATA_OUT,R3LCALLSENDMOVA,37HANLA,#0FHMOVR3,AMOVDATA_OUT,#81HLCALLSENDMOVDATA_OUT,R3LCALLSENDMOVA,37HSWAPAANLA,#0FHMOVR3,AMOVDATA_OUT,#82HLCALLSENDMOVDATA_OUT,R3LCALLSENDMOVA,38HANLA,#0FHORLA,#80H;DP=1MOVR3,AMOVDATA_OUT,#83HLCALLSENDMOVDATA_OUT,R3LCALLSENDMOVA,38HSWAPAANLA,#0FHMOVR3,AMOVDATA_OUT,#84HLCALLSENDMOVDATA_OUT,R3LCALLSENDMOVDATA_OUT,#85HLCALLSENDMOVDATA_OUT,#0AHLCALLSENDRETKEY1:CLRKEY;7279读键子程序MOVR6,#0CHLD1:DJNZR6,LD1MOVDATA_OUT,#15HACALLSENDMOVR6,#06HLD2:DJNZR6,LD2ACALLRECEIVEMOV@R0,DATA_IN;键值保存在@R0里面SETBKEYRETJIANHAO:;求键号MOVB,@R0MOVR2,#00HMOVR7,#0FHLH1:MOVA,R2MOVDPTR,#TAB2_JIANZHIMOVCA,@A+DPTRCJNEA,B,LH2LJMPLH3LH2:INCR2DJNZR7,LH1LH3:MOVB,R2RETTAB2_JIANZHI:DB1CH,1DH,1EH,1FH,14H,15H,16H,17HDB0CH,0DH,0EH,0FH,04H,05H,06H,07H;键值表 DELAY: ;750ms延时MOVR5,#06HDELAY2:MOVR7,#0HDELAY1:MOVR6,#0HDJNZR6,$DJNZR7,DELAY1DJNZR5,DELAY2RETI2C_WRITE:;EEROM写入ACALLI2C_STARTACALLOUTMOVR6,#8WR_LP:MOVA,43HACALLOUTAJMPI2C_STOPI2C_READ:;EEROM读出ACALLI2C_STARTACALLOUTMOVA,#0A1H;读指令ACALLOUTSBRDLP:MOVR7,#8SETBI2C_SDAINLP:CLRI2C_SCLACALLDELAY6SETBI2C_SCLNOPMOVC,I2C_SDARLCADJNZR7,INLPCLRI2C_SCLMOV43H,AI2C_STOP:CLRI2C_SDAACALLDELAY5SETBI2C_SCLACALLDELAY5SETBI2C_SDADELAY6:NOPDELAY5:NOPRETI2C_START: ;启动24C02SWAPARRAMOVR6,AMOVA,#0A0H;写操作指令ACALLOUTSMOVA,R6RETACKLP:CLRI2C_SDASETBI2C_SCLACALLDELAY5CLRI2C_SCLAJMPBRDLPOUTS:SETBI2C_SDASETBI2C_SCLACALLDELAY5CLRI2C_SDAACALLDELAY5CLRI2C_SCLOUT:SETBCMOVR7,#9OTLP:RLCANOPMOVI2C_SDA,CNOPNOPSETBI2C_SCLACALLDELAY5CLRI2C_SCLDJNZR7,OTLPRETEND
学位论文原创性声明学位论文作者(本人签名):年月日学位论文出版授权书论文密级:□公开 □保密(___年__月至__年__月)(作者签名:_______导师签名:______________年_____月_____日_______年_____月_____日
独创声明本人郑重声明:所呈交的毕业设计(论文),是本人在指导老师的指导下,独立进行研究工作所取得的成果,成果不存在知识产权争议。尽我所知,除文中已经注明引用的内容外,本设计(论文)不含任何其他个人或集体已经发表或撰写过的作品成果。对本文的研究做出重要贡献的个人和集体均已在文中以明确方式标明。本声明的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 广西龙胜中学2018-2019高二4月月考试题(英语)
- 2025年护士执业资格考试专业实务试卷:护理伦理与法律案例分析试题
- 甘肃省甘谷一中2012-2013学年高二下期中考试(生物)
- 2025年税务师职业资格考试税法(一)模拟试卷:增值税与消费税税收优惠政策解析
- 2025年小学数学毕业模拟考试统计与概率难点突破专项卷
- 2021年安徽公务员行测考试真题及答案
- 2025年统计中级资格考试概率与数理统计强化训练模拟试卷
- 口咽通气护理操作规范
- 放射疗法护理要点与流程
- 广东省梅州市梅江区2025学年高二下学期期中考试语文试卷(文言文断句与古文阅读技巧)
- 汽车美容合作协议书
- PFMEA(第四版)培训课件
- 夏季预防中暑及中暑急救培训PPT
- 中美贸易战解析
- 重大电力安全隐患判定标准试行
- 《乔灌木整形修剪》
- 长江三峡水利枢纽可行性报告
- 亮化工程报价单
- 高压电缆在线监测
- GB/T 41914.1-2022微细气泡技术微细气泡使用和测量通则第1部分:术语
- 平面设计需求表、流程表
评论
0/150
提交评论