机车轴承温度监测毕业论文_第1页
机车轴承温度监测毕业论文_第2页
机车轴承温度监测毕业论文_第3页
机车轴承温度监测毕业论文_第4页
机车轴承温度监测毕业论文_第5页
已阅读5页,还剩67页未读 继续免费阅读

下载本文档

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

文档简介

机车轴承温度监测毕业论文绪论课题意义机车车辆在运行过程中车轴与轴承之间相互摩擦,容易使轴温升高,温度达到一定程度就会引起燃轴,轻则轴体变形、热轴、固死,造成机破,影响机车的正常运转,重则造成热切轴,车毁人亡,严重影响铁路运输安全,对国家造成巨大的经济损失。对于机车轴承的温度控制不但可以防止火灾,而且对于延长仪器的工作寿命都有着极其重要的作用。为此铁道部于2000年颁发了关于机车轴承温度监测报警装置技术条件(暂行)的通知,对机车轴承温度监测报警装置的研制生产提出了明确的规定和严格的技术要求,以便能及时、可靠、准确的对机车轴温进行监测报警,确保机车车辆的安全运行。以前铁路工人采用手摸的方式对车轴进行温度检查。在每趟列车进站停稳后,几十名列检工人钻入车下用手触摸轴箱判断温度,工人要在5—10分钟检查完毕,劳动强度,安全保障率低。后来使用红外线探测轴温装置,当列车通过安装在咽喉道岔处的探测装置时,红外线探头就会将车轴温度情况显示出来,值班列检人员根据显示,就能准确判断这趟列车是否有热轴发生。红外线探测只须一个人坐在室,仅用一分钟就能把整趟列车的情况探测清楚。减轻了列检人员的劳动强度,提高了检查的准确性、可靠性和工作效率,更提高了经济效益。车轴温度随火车运输速度不断变化,长途列车的轴温又是怎样控制呢?所以又有了轴温报警装置。当轴温超限时,显示器的报警装置便发出声响或红色信号,有关人员即可根据此采取防护措施。不管列车跑多远,轴温报警装置都能随时发出信号,有效防止热轴、裂轴等重大事故发生,极大地保证了行车安全。解决方案那么如何设计一台机车轴承温度监测报警装置呢?DS18B20芯片可以把温度信号直接转换为数字量而无须A/D转换器与数据调理电路,而且它采用单总线原理,易于电路扩展,只需在相应单总线上继续挂接器件即可。我们可以利用DS18B20的这些优点,把4个DS18B20连接到轴承的上下左右组成一个数据采集电路,对轴承的温度进行监测。系统选用AT89C51作为微处理器。为了能够根据不同的情况设置不同的超温报警值,系统需要有一个键盘和一个显示以及一个参数保存电路。系统还需要一个报警电路,当温度超过温度报警值时产生声、光报警。本文主要工作(1) 键盘显示电路设计。(2) 键盘显示软件设计与编程。(3) 看门狗电路及报警电路设计。(4) 看门狗及报警软件设计与编程。总体设计2.1系统特点本系统实时地对温度信号进行采集,并送单片机处理,处理结果送LED显示。该系统还可以将采集到的值与报警值比较,若超出报警值,则发出声光报警。本系统有如下特点:1.采用数字式温度传感器,与单片机接口简单,采集到的数据准确可靠。2.实现4路温度检测,由于采用单总线温度传感器,扩展容易,只要将器件挂接在单总线上即可。3.有看门狗电路,系统可靠性高。4-EEPROM保存键盘输入参数,系统掉电后保存的参数不会丢失。2.2系统总体设计该系统由数据采集电路,键盘显示电路,报警电路,看门狗电路及E2PROM组成。主控机采用AT89C51单片机,完成对4个测温点温度信号的采集、显示、报警。系统结构框图如图2-1所示。2.2.1数据采集系统本系统采用数字式温度传感器DS18B20完成对4个测温点温度的数据采集。DS18B20可以把温度信号直接转换为数字量,而无须A/D转换器与数据调理电路,既简化电路,又提高电路的可靠性。采用单总线原理,易于电路扩展,只需在相应单总线上继续挂接器件即可,是现代集成式温度传感器的首选器件。键盘显示系统本系统采用HD7279完成数据输入与数据显示。HD7279是一片具有串行接口的,可同时驱动8位共阴式数码管的智能显示驱动芯片,该芯片同时能对多达8x8的键盘矩阵的按键情况进行监视,具有自动消除键抖动并识别按键代码的功能,从而可以提高CPU工作的效率。HD7279和微处理器之间采用串行接口,其接口电路和外围电路简单,占用口线少,具有较高的性能价格比。报警电路本电路完成系统报警功能,即在温度超出报警值时,发光二极管灯亮,蜂鸣器响,显示报警状态。看门狗电路及E2ROM看门狗电路及E2ROM本电路采用Xicor公司的X25045芯片。X25045是可编程看门狗监控E2ROM,它把看门狗电路、电压监控和E2ROM组合在一起,降低了系统成本并减少了对电路板空间的要求。此芯片实时检测单片机,使其正常工作。一旦单片机因干扰而程序走失,可通过复位电路使单片机复位,保证系统可靠运行。该芯片还含有部512字节的E2ROM,可存储键盘输入的温度报警值以及数字式温度传感器DS18B20的序列号,保证掉电时不丢失信息,因而不必每次开机时重新写入这些数据。X25045还具有允许简单的三线总线工作的串行外设接口和软件协议。WORD版本.硬件电路设计在硬件设计的过程中,为使硬件电路简单、可靠、合理,设计的基本思路如下:为简化电路,我们尽可能采用功能强的芯片。例如本系统中采用的AT89C51,DS18B20,X25045,HD7279A等芯片。因为功能强的芯片可以代替若干块普通芯片,便于电路设计,使其集成度更高,同时可增强整个电路的抗干扰性。另外,随着生产工艺的提高,新型芯片的价格不断下降,并不比若干块普通芯片价格的总和高。在单片机的硬件设计中,很多场合下要考虑以软代硬。因为硬件多了不但增加成本,而且使系统出故障的机会也增加。单片机和数字电路本质的区别,就是它具有软件系统。很多硬件能完成的工作,软件也可以完成。用软件来代替硬件,其实质是以时间代替空间,因为软件执行过程需要消耗时间,所以,这种代替带来的不足就是实时性下降。因此,当系统对某些事物的反应有严格的时间限制时,往往增加硬件电路是唯一选择;但对一些实时性要求不是很高的场合,以软件代替硬件是很合算的。监测电路的设计。在系统运行过程中有可能出现故障,如何及时采取措施,防止事态扩大,及时向操作者提出报警,这就要求系统具有自诊断功能。为此,必须为系统设计有关的监测电路。如本监测仪电路中设计的“看门狗”电路。一件产品的形成必须考虑其工艺设计,它主要包括面板、配线、插接件等,必须考虑到安装、调试、维修的方便。另外,硬件抗干扰措施也必须在硬件设计时一并考虑进去。下面我将对所使用的3种芯片作一详细的介绍。3.1单片机本系统的单片机采用AT89C51,它是一种低功耗、高性能的8位单片机,它含4K字节的FLASH程序存储器,可在现场进行在线编程,指令与MCS-51完全兼容。它含有4K字节的FLASHROM,128字节的RAM,32条I/O口线,两个16位的定时/计数器,5个中断源,两个优先级,一个全双工串行口,工作频率0-24MHz°3.1.1AT89C51单片机的特点AT89C51单片机对于一般用户来说存在下列很明显的优点:部含有Flash存储器3.1.1AT89C51单片机的特点AT89C51单片机对于一般用户来说存在下列很明显的优点:部含有Flash存储器由于部含有F1ash存储器,因此在系统的开发过程中可以十分容易地进行程序的修改。这就大大缩短了系统的开发周期。同时,在系统工作过程中,能有效地保存一些数据信息,即使外界电源损坏也不影响信息的保存。和AT80C51插座兼容_7a・JJdLArcft—D-y40Jfa43333333J33WJ2322J3畑iria(ADC)FtP*JAE>SrbtCAD7]'!»□PiJA]jj3PSIPsJAlg}H凡(<A!2)3P>.^A||)AT89C51单片机的引脚和80C51是一 图g-1AT89C51管脚图样的,所以,当用AT89C51单片机取代80C51时,可以直接进行代换。这时,不管采用0引脚还是44引脚的产品,只要用相同引脚的AT89C51单片机取代80C51的单片机即可。静态时钟方式AT89C5单片机采用静态时钟方式,所以可以节省电能。这对于降低便携式产品的功耗十分有用。错误编程亦无废品产生一般的0TP产品,一旦错误编程就成了废品。而AT89C51单片机部采用了Flash存储器,所以,错误编程之后仍可以重新编程,直到正确为止,故不存在废品。可反复进行系统试验用AT89C51单片机设计的系统,可以反复进行系统试验。每次试验可以编入不同的程序,这样可以保证用户的系统设计达到最优。而且随用户的需要和发展,还可以进行修改,使系统能不断追随用户的最新要求。性价比相对较高现在市场上较为流行的几中品牌的单片机芯片中ATMEL公司的AT89C51单片机芯片的功能能够满足一般用户的要求,而价格较同类产品相比较低。AT89C51单片机结构简介AT89C51单片机的部结构和80C51相近,主要含有如下一些部件:803lCPU振荡电路总线控制部件中断控制部件片Flash存储器片RAM并行I/O接口定时器串行I/O接口由于AT89C51片带有EPROM,只要将单片机接上时钟电路和复位电路即构成单片机最小系统。由于集成度的限制,该最小应用系统具有如下特点:有可供用户使用的大量1/0口线。因没有外部存储器扩展,这时/EA接高电平,P0、P1、P2、P3都可作用户I/O口使用。部存储器容量有限。应用系统开发具有特殊性,应用系统程序量不大,外电路简单,便于采用模拟开发手段。AT89C51片有EPROM,具有64K数据存储单元,其部资源丰富,芯片功耗较低,其成本低、体积小,可达性好、扩展容易的优点是我们选择它的主要原因。键盘显示电路3.2.1概述键盘实质上是一组按键开关的集合。通常按键所用开关为机械弹性开关,均利用了机械触点的断合作用。键的闭合与否,反映在电压上就是呈高电平或低点平。如果高电平表示断开的话,那么低电平则表示闭合。所以通过电平的高低状态的检测,便可确定健的闭合与否。按键按连接方式可分为独立式按键和矩阵式按键。独立式按键就是各按键相互独立,每个按键各接一根输入线,一根输入线上的按键的工作状态不会影响另一根。因此,通过检测输入线上的电平状态就可以很容易判断哪个健按下。独立式按键电路配置灵活,软件结构简单。但每个键都需要一根输入线相连,故这种按键一般用在按键较少而速度较高的场合。矩阵式键盘运用于按键较多的场合,它由行线和列线组成,按键位于行线和列线的交叉点上。很明显,在按键较多的场合,矩阵式键盘与独立式键盘相比,要节省好多的I/O口。LED显示器是由发光二极管显示字段组成的显示器,有共阴极和共阳极之分。共阴极LED各发光二极管阴极连在一起,当某个发光二极管的阳极为高电平时,发光二极管点亮,相应的段被显示。LED显示器包含两种显示方式:静态显示方式和动态显示方式。静态显示器的亮度较高,而动态显示方显示亮度相对较低,且软件实现要比静态显示复杂。我们采用显示与键盘操作控制芯片HD7279A与89C51单片机进行串行通讯并通过相应的程控实现了这部分的功能。其相对于常用的Intel8279可编程键盘、显示接口芯片来讲,具有以下特点:•数据传输采用串行方式,可以少占用CPU的I/O口线•可以直接驱动LED,减少硬件的开销•具有段寻址指令,可方便独立控制LED•自身带有定时电路,外加定时元件可完成对键盘和现实的扫描3.2.2HD7279A的结构及特点HD7279A是一片具有串行接口的,可同时驱动8位共阴式数码管(或64只独立LED)的智能显示驱动芯片,该芯片同时还可连接多达64键的键盘矩阵,单片即可完成LED显示、键盘接口的全部功能。其部含有译码器,可直接接受BCD码或16进制码,并同时具有2种译码方式,此外,还具有多种控制指令,如消隐、闪烁、左移、右移、段寻址等。HD7279A还具有片选信号,可方便地实现多于8位的显示或多于64键的键盘接口。HD7279A可以应用于仪器仪表,

工业控制,条形显示器,控制面板。1.典型应用仪器仪表,工业控制器,条形显示器,控制面板等2.特点•串行接口,无需外围组件可直接驱动LED•各位独立控制译码/不译码及消隐和闪烁属性•(循环)左移/(循环)右移指令•具有段寻址指令,方便控制独立的LED•键盘控制器,含去抖动电路VDDVDDNCVSSNCCECLKVDDVDDNCVSSNCCECLKDATAKEYSGsrEESDSC】HD7279ARESETRCCLKODIG7DIG6□IG5DIG4DIG3DIG2DIG1DIGC□PSASB图3-2MD7279AW脚图4.引脚说明如表3-1所示。5-HD7279A的实物如图3—3所示。

图3—3HD7279A实物图6.工作原理HD7279A采用串行方式与微处理器进行通讯,串行数据从DATA引脚送入芯片,并由CLK同步。当片选信号变为低电平后,DATA引脚上的数据在CLK引脚的上升沿被写入HD7279A的缓冲寄存器。表3—1引脚说明引脚名称说明1,2VDD正电源3,5NC无连接,必须悬空4VSS接地6CS片选输入端,此引脚为低电平时,可向芯片发送指令及读取键盘数据7CLK同步时钟输入端,向芯片发送数据及读取键盘数据时,此引脚电平上升沿表示数据有效

8DATA串行数据输入/输出端,当芯片接收指令时,此引脚为输入端;当读取键盘数据时,此引脚在’读’指令最后一个时钟的下降沿变为输出端9KEY按键输出有效端,平时为高电平,当检测到有效按键时,此引脚变为低电平10-16SG-SA段g〜段a驱动输出17DP小数点驱动输出18-25DIG0-DIG7数字0〜数字7驱动输出26CLKO振荡输出端27RCRC振荡器连接端28RESET复位端HD7279A对数码管的显示及键盘操作的控制是通过由单片机向该芯片发送或接收来自该芯片的串行数据来实现的。其中LED的显示采用循环扫描方式。7.控制指令HD7279A指令系统由6条纯指令、7条带数据指令和1条读键盘指令组成。(1)6条纯指令如表3-2所示。表3-2纯指令表纯指令指令代码功 能

复位指令A4H清除所有显示,包括字符消隐属性和闪烁属性测试指令BFH将所有的LED点亮并闪烁,主要用于测试左移指令A1H将所有的显示左移1位,移位后,最右位空(无显示),不改变消隐和闪烁属性右移指令A0H与左移指令相似,但所做移动为自左向右,移动后,最左边一位为空循环左移指令A3H将所有的显示循环左移1位。移位元后,最左位容移至最右位,不改变消隐和闪烁属性循环右移指令A2H与循环左移指令相似,只是方向相反2)7条带数据指令为:体分配如下:a2a1a0显示位00000011010201131004

101511061117d--d为数据,收到此指令时,HD7279A按以下规则译码(方式0),如表033-3所示。表3-3方式0译码规则d--d30d3d21d07断显示00H0000001H0001102H0010203H0011304H0100405H0101506H0110607H0111708H1000809H100190AH1010—0BH1011E

0CH1100H0DH1101L0EH1110P0FH1111空(无显示)X表示无影响,其中DP为小数点控制位元,DP=1,小数点显示;DP=0,小数点熄灭。②按方式1译码下载指令D7D6D5D4D3D2D1D011001a2a0D7D6D5D4D3D2D1D0DPXXXd3d24d0此指令与上一条指令基本相同,所不同的只是译码方式,如表3-4所示。③不译码下载指令d--dn30d3d2d1d07断显示00H0000001H00011

02H0010203H0011304H0100405H0101506H0110607H0111708H1000809H100190AH1010A0BH1011B0CH1100C0DH1101D0EH1110E0FH1111F其中a2,al,a0仍为位地址,第2字节仍为显示容,分别代表小数点和LED显示器的7段,相应位为1时,该段点亮;为0时,该段熄灭。④闪烁控制指令D7D6D5D4D3D2D1D010001000D6D5D4D3D2D0d8丄d6d5d4d3d2d1该指令规定了每个数码管的闪烁属性。d8--dl分别对应第1到第8个数码81管,该位为1不闪烁;该位为0闪烁。缺省状态为所有数码管均不闪烁。消隐控制指令D7D6D5D4D3D2D1D010011000D7D6D5D4D3D2D1D0d5丄丄丄该指令规定了每个数码管的消隐属性。d1~d8分别对应第1到第8个数码18管,该位为1显示;该位为0消隐。当某一位被赋予了消隐属性后,HD7279A在扫描时将跳过该位,因此在这种情况下,无论对该位写入何值,均不会被显示,但写入的值将被保留,在将该位重新设为显示状态的时候,将不用的位设为消隐属性,可以提高显示的亮度。应该注意的是至少要有1位保持显示状态,如果全部消隐则该命令无效。段点亮指令D7D6D5D4D3D2D1D011100000D7D6D5D4D3D2D1D0XXd5d4d3d2d1d0该指令的作用是点亮某个LED数码管中的某一段或64个LED发光管中的某一个,d~d的围是00H〜3FH。具体分配为:05第一个数码管的G段地址位00H,F段为01H,……A段为06H,小数点DP为07H,第2个数码管的G段为08H,F段为09H,……,依此类推直至第8个数码管的小数点DP地址为3FH°段关闭指令

D7D6D5D4D3D2DiD011000000D7D6D5D4D3D2D1D0XXd5丄丄丄d0该指令的作用是关闭某个数码管中的某一段,其对应关系同段点亮指令。2)读取键盘指令D7D6D5D4D3D2D1D000010101D7D6D5D4D3D2D1D0d7d6d5d4d3d24d0该指令的作用是读取当前的键盘代码。与其它带数据的指令不同,它的前1个字节为微控制器传送到HD7279A的指令它的第2个字节不是写入HD7279A的数据,而是从HD7279A读回的按键代码,其围是00H〜3FH。8•时序HD7279A的指令结构由三种类型:不带数据的纯指令,带有数据的指令,读取键盘数据指令。(1)纯指令时序微处理器发出8个CLK脉冲,向HD7279A传送8位元指令。DATA引脚为高阻状态,如图3-4所示。(2)带数据指令时序微处理器发出16个CLK脉冲,前8个向HD7279A传送8位元指令;后8个向HD7279A传送8位资料。DATA引脚为高阻状态,如图3—5所示。(3)读键盘指令时序微处理器发出16个CLK脉冲,前8个向HD7279A传送8位元指令,DATA引脚为高阻状态;后8个由HD7279A向微处理器返回8位按键代码,DATA引脚为输出状态。在最后1个CLK脉冲的下降沿DATA引脚恢复高阻状态,如图3—6所示。a_K_njuuul.一.._ru-O“ocpo—•o-——血立指令 * 8位数据一ZXJUWK飞图3—6读键盘指令时序图9.键盘键盘部分所要实现的功能是:键入相应的参数,并将键入的参数显示于LED显示器,然后将此资料存储于单片机相应的存储单元,如图3—7所示对应于图3—7,各键功能介绍如表3—5所示。图3-7键盘设置外形图表3-5键盘功能表键盘功能S0(设定)当数码管1处在闪烁状态,等待键入设定值S1(运行)使当前所输入的数值得到单片机的确认S2(加1)使当前显示位显示的数值加1S3(减1)使当前显示位显示的数值减1S4(左移)使当前显示位左移一位S5(右移)使当前显示位右移一位3.3可靠性设计3.3.1概述微机测控系统的抗干扰和数据长期可靠保存是设计人员在设计中面临的两个重要问题。根据专家统计,目前在微机测控系统中,电源的接通和关断、瞬时的电源电压不稳是造成系统死机、数据丢失和误动作的主要原因,占90%以上。虽然很多设计人员采取了不少措施,但是问题还是没有根本解决。单片机系统以集成度高,功能强大,具备完善的自检测、自诊断等性能,从而在仪表产品中占有日益增加的比重。本部分针对广泛采用的MCS-51系列单片机,运用Xicor公司的X25045芯片,构成功能较完善的控制单元。在单片机系统中通常需要外围看门狗电路以防止程序走飞,大多数单片机系统在上电和掉电过程中、正常运行以及在切换工作模式过程中,都需要进行监控,诸如上电和掉电复位、后备电池管理、存储器写保护、低电压早期告警以及看门狗等,同时,单片机系统通常需要监测电源电压情况,以便在系统掉电时能及时复位,避免因电源干扰波动时影响系统的正常工作。其中,上电和掉电复位是CPU最基本也是必不可少的硬件功能在单片机应用中需要预先设置一些参数,比如时钟初值、控制算法参数等需要用户设置,一旦设置完成后这些参数往往需要掉电保存。看门狗(即WATCHDOG)是针对机器语言程序设置的抗干扰措施。这两项基本功能体现在单片机系统的设计中,可以提高智能仪表整机的可靠性能。传统的阻容复位电路存在问题,而基于供电电源监视技术研制的复位电路在欠压状态下,可提供稳定的复位脉冲输出,对智能仪表的可靠性设计提供了强大的技术支持。采用专用的看门狗监控电路和非易失存储器EEPROM电路来达到上述要求,但往往有成本较高、电路板空间较大、接口复杂等不利因素。Xicor公司最新研制生产的X25045芯片可以较好地和较简单地解决这个难题,该芯片将微机测控系统中常用的功能:看门狗定时器、电源电压监控、上电复位、串行E2PROM集成在一块8只引脚的集成芯片。这种组合大大减少了对电路板的空间要求,简化了硬件设计,提高了系统的可靠性,降低了成本和功耗。X25045与单片机的数据传输采用串行同步方式,占用单片机软件资源少,不需再外加电路即可与单片机协调工作。因此我们在设计中采用此芯片。看门狗定时器对微控制器提供了独立的保护系统。当系统故障时,在可选的超时周朗(timeoutinterval)之后,X25045看门狗将以RESET信号作出响应。用户可从三个预置的值中选择此周期。一旦选定,即使在电源周期变化之后,此周期也不改变。利用X25045低Vcc检测电路,可以保护系统使之免受低电压状况的影响。当Vcc降到最小Vcc转换点以下时,系统复位。复位一直确保到Vcc返回且稳定为止。X25045的存贮器部分是CMOS的4096位串行E2PROM,它在部按512x8来组织。X25045的特点是具有允许简单的三线总线工作的串行外设接口(SerialPerpheralInterface,SPI)和软件协议。X25045利用了Xicor公司专有的DiectWriteTM晶片,提供最小为100.000周朋/字节的使用期限(endurance)和最小为100年的数据保存期。3.3.2X25045的结构及特点(1)特点•可编程的看门狗定时器•低Vcc检测•直至Vcc=lV复位信号有效lMHz时钟速率512x8位串行E2PROM—4字节页方式•低功耗CMOS—10“A备用电流—3mA工作电流•2.7V至5.5V电源电压•块锁定(B1ockLockTM)一保护1/4,1/2或所有E2PROM阵列•建偶然性的(Inadvertent)写保护—上电/掉电保护电路—写锁存—写保护引脚•高可靠性—使用期限:100,000周期/字节—数据保存期:100年—ESD保护:所有引脚2000v•8引脚小型DIP封装,8引脚SOIC封装图3—8X25045管脚图(3)引脚说明见表3-6。串行输出(SO):SO是推挽串行数据输出引脚。在读周期,数据在此引脚上移出,数据由串行时钟的下降沿同步输出。串行输入(SI):SI是串行数据输入引脚。所有操作码,字节地址以及写入存贮器的数据在此引脚上输入。数据由串行时钟的上升沿锁存。串行时钟(SCK):串行时钟控制用于数据输入和输出的串行总线定时。操作码,地址或出现在SI引脚上的数据在时钟输入的上升沿锁存,而SO引脚上的数据在时钟输入的下降沿之后发生改变。表3—6引脚说明符 号说 明CS芯片选择输入SO串行输出SI串行输入SCK串行时钟输入WP写保护输入VSS地VCC电源电压RESET/RESET复位输出芯片选择(CS):当CS为高电平时,X25045不被选择,S0输出引脚处于高阻状态,除非部写操作正在进行,否则X25045将处于备用电源方式(standbypowermode)。CS为低电平使X25045能工作,把它置于工作电源方式(activepowermode)。应当注意,在上电之后,在任何操作开始之前需要CS从高电平至低电平的跳变。写保护(WP):当WP为低电平时响X25045的非易失性写操作被禁止,但是器件的其它功能仍正常。当WP保持高电平时。所有的功能,包括非易失性写操作都正常。在CS仍为低电平时,WP变为低电平将中断对X25045的写操作。如果部写周期已经开始,WP变为低电平将不影响写操作。复位(RESET):X25045的RESET是低电平有效,漏极开路的输出端,只要VCC下降至低于最小VCC检测电平,RESET便变为低电平。它将保持低电平直至Vcc上升到最小Vcc检测电平200ms为止。如果允许看门狗定时器工作且CS保恃高电平或低电平的时间长于看门狗超时周期。那么RESET也变为低电平。CS的下降沿将复位看门狗定时器。X25045的RESET是高电平有效,其工作情况类似。(4)工作原理X25045是设计成直接与许多常用微控制器系列的同步串行外设接口〔SPI)相接的5l2x8E2PR0M。X25045包括一个8位指令寄存器。它可通过Sl输入来访问。数据在SCK的上升沿由时钟同步输入。在整个工作期,CS必须是低电平且WP输入必须是高电平。X25045监视总线,如果在预置的时间周期没有总线的活动,那么它将捉供RESET输出。表3—7包括指令及其操作码的列表。所有的指令,地址与数据都以MSB(最高有效位)在前的方式传送。读和写指令的位3包含了高地址位。表3—7指令及操作码列表指令名指令格式操作WREN00000110设置写使能锁存器(允许写操作)WRDI00000100复位写使能锁存器(禁止写操作)RDSR00000101读状态寄存器WRSR00000001写状态寄存器(块锁定位)READ0000A011从开始于所选地址的寄存器阵列中读出数据WRITE0000A0108把数据写入开始于所选地址的存储器阵列(1至4字节)*最左的位置表示指令的最高有效位(MSB)。以最高有效位在先的方式传送指令。输入的数据在CS变为低电平之后的SCK第一个上升沿被采样。SCK是静态的,允许用户停止时钟并在其后恢复燥作。写使能锁存器X25045包含一个“写使能”锁存器,在部完成写操作之前必须先设置此锁存器(SET)°WREN指令设置该锁存器,WRDI指令复位该锁存器。上电情况下,在字节,页,或状态寄存器写周期完成后,该锁存器自动复位。WP变为低电平,该锁存器也被复位。状态寄存器在任何时间都可以访问状态寄存器,即使在写周期亦如此。读指令为RDSR,写指令为WRSR。状态寄存器的格式如下:76543210XXWD1WD0BL1BL0WELWIP当发出WREN,WRDI和RDSR命令时,不必发送字节地址或数据。“正在写”(Write」n_Process,WIP)位表示X25045是否忙于写操作。“1”表示写操作正在进行,“0”表示没有写操作。在写期间,所有其它位全置为“1”。WIP位是只读的。“写使能锁存器”(WriteEnableLatch,WEL)位表示“写使能”锁存器的状态。“1”表示锁存器置位,“0”表示锁存器复位。WEL位是只读的,它由WREN指令置位,由WRDI指令或成功地完成了写周期后复位。块保护(BlockProtect,BL0或BL1)位表示所使用的保护围。这些非易失性的位由发出WRSR指令来设置,允许用户选择四种保护级别之一和对看门狗定时器编程。X25045分为四个1024位的段。可以锁定一个,两个或全部四个段。即,在选定的段用户可以读这些段但是不能改变(写)数据。用BL0和BL1位状态可以控制围的划分,且说明如下:表3-8被保护的阵列地址状态寄存器位被保护的阵列地址BL1BL000无01$180-$1FF10$100-$1FF11$000-$1FF看门狗定时器(WatchdogTime,WD0和WD1)位允许如表3—9所示那样设置看门狗的超时功能。这些非易失性的位由发出WRSR指令来设置。时钟和数据定时在SI线上输入的数据在SCK的上升沿被锁存,数据在SCK的下降沿输出到SO线上。读时序当从E2PR0M存储器阵列读数据时,首先把CS拉至低电平以选择芯片,发送8位READ指令,紧接是8位字节地址。读指令的位3包含地址A8。此位用于选择器件的上半部或下半部。在发送了读操作码和字节地址之后,在表3—9看门狗超时周期状态寄存器位看门狗超时周期(典型值)WD1WD0001.4秒01600毫秒10200毫秒11禁止所选定地址的存储器中储存的数据被移出到0线上。继续提供SCK使它读出下一地址储存的数据。在每一个数据字节移出之后,字节地址自动增量至下一个较高的地址。当字节地址到达最高地址FF)时,地址计数器自动翻至为了读状态寄存器首先把CS置低电平,发送8位RDSR指令,在发出读状态寄存器操作码之后状态寄存器的容被移出到SO线上。写时序首先发出WREN指令使“写使能”锁存器置位如图3-10oCS首先被拉至低电平,然后WREN指令由时钟同步送入X25045,在指令的所有8位被发送之后,必须接着使CS变为高电平。如果用户在发出指令WREN之后不把CS变为高电平而继续写操作,那么写操作将会被忽略。为了把数据写入E2PR0M存储器阵列,CPU首先发WRITE指令,后继以地址,接着是要写的数据。写指令的位3包含地址A8。此位用于选择器件的上半部或下半部。只是最少为24个时钟的操作。在此操作期,CS必须变为低电平且保持在低电平。主机可以继续写多达4个字节的数据至X25045。唯一的图3-10写使能锁存的时序限制是4个字节必须驻留在同一个页上。页地址从地址XXXXXXX00开始,至XXXXXXX11结束。如果字节地址计数器达到XXXXXXX11而时钟仍继续,那么计数器将翻转至页的首址并重写可能写入的任何数据。为了结束写操作(写字节或页),只能在第24、32、40和48个时钟之后将CS变高电平,在其他时间变高都不能结束写操作。字节和页的写操作时序见图3-11、图3-12所示。复位(RESET)操作无论何时,只要VCC降至低于最小转换电压或看门狗定时器已计到可编程的超时极限值(Time-outlimit),RESET输出(X25045)便变为高电平。运用注释•X25045上电时进入以下状态:•器件处于低功耗的备用状态•为了进入工作状态并接收指令,需要在CS上有一个高电平至低电平的跳变•“写使能”锁存器被复位⑧数据保护为了防止偶然的写操作,器件中包含了以下电路:•上电时“写使能”锁存器被复位•为了使“写使能”锁存器置位,必须发出WREN指令•为了启动写周期,必须在时钟计数达到适当数值时使CS变为高电平当WP变为低电平时,“写使能”锁存器复位X25045应用到MCS-51单片机系列中,可大大提高单片机系统的工作可靠性和稳定性,且体积小、成本较低、功能强等特点可广泛用于MCS-51系列单片机组成的系统之中。同时,它的E2PROM阵列也是许多单片机应用场合所需的非易失RAM。X25045代表了新一代串行E2PROM的发展趋势,是可编程看门狗定时器、微处理器监控电路和非易失性串行E2PROM的完美组合,它的运用极大地节省了系统的空间和资源,同时简化了电路设计,缩短产品开发周期,在便携式仪器仪表和低功耗器件中有很广泛的应用前景。软件设计及编程系统的软件设计包括两部分:一部分是主程序的设计,它是由系统初始化程序及调用各个功能模块程序的语句组成;另一部分是子程序的设计,包括温度传感器的读写子程序、超温报警子程序、各种设置子程序、键值以及显示子程序等等。4.1主程序的设计软件主程序主要功能是对各种变量的定义,调用各个子程序并把各个子程序组合起来,完成整个程序要实现的功能。其流程图如图4-1。4.2子程序设计子程序包括由键盘输入与显示EPROM存储子程序及超限报警子程序等子程序组成。4.2.1显示子程序

此子程序所实现的功能是将键盘键入的温度报警值顺序显示在相应的LED中。显示使用的4个LED中,第4个显示温度传感器的编号,第3个和第2个分别显示温度的十位和个位,第1个显示小数位。4.2.2键盘输入子程序此子程序主要是进行键盘功能和温度报警值的设定并将其存入指定的存储单元。键盘实现的功能包括:设定、运行、左移、右移、加1、减1,此子程序可改变温度报警值,并且可以控制程序的运行过程。程序框图如图4-3所示。

4.2.3E2PR0M、看门狗子程序单片机初始化后,先从X25045中把设定的温度报警值取出,存于CPU的部数据存储单元,然后调用键盘输入子程序。如果重新输入极限值,输入完后,把新的报警值存入X25045的E2PROM中。

程序框图如图4-4所示。图4—4EEPROM读写数据子程序4.2.4超温报警子程序当采集到的温度值超过设定的报警值时,发光二极管亮,蜂鸣器蜂鸣报警。

程序流程图如图4-5所示。程序如下:xpxpxpxpxpxpxpxpxpxpxpxpxpxpxpxpxpxpxpxpxpxpxpxpxpxpxpxpxpxpxpxpxpxpxpxpxpxpxpxpxpxpxpxpxpxpxpxpxpxpxpxpxpxpxp;*******************************************************;I/O定义xpxpxpxpxpxpxpxpxpxpxpxpxpxpxpxpxpxpxpxpxpxpxpxpxpxpxpxpxpxpxpxpxpxpxpxpxpxpxpxpxpxpxpxpxpxpxpxpxpxpxpxpxpxpxp;*******************************************************H7279_DATBITP0.6;HD7279的DATA连接于P0.4H7279_KEYBITP0.7;HD7279的KEY连接于P0.5H7279_CSBITP0.4;HD7279的CS连接于P0.6H7279_CLKBITP0.5;HD7279的CLK连接于P0.7

X25045_CSBITP1.7X25045_SIBITP1.5X25045_SCKBITP1.6X25045_SOBITP1.4DQBITP1.0DSBITP2.4;X25045_CSBITP1.7X25045_SIBITP1.5X25045_SCKBITP1.6X25045_SOBITP1.4DQBITP1.0DSBITP2.4;X25045的SI连接于Pl.5;X25045的SCK连接于Pl.6;X25045的SO连接于Pl.4;DS18B20的DQ连接于P1.0;报警电路的DS代表温度spspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspsp*******************************************************;RAM定义spspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspsp*******************************************************BIT_COUNTEQU07FHTIMEREQU07EHTIMERlEQU07DHDATA_INEQU020HDATA_OUTEQU02lHFLASH_CTREQU073HKEY_NUMBEREQU074HRUNEQU022H;RUN=1表示按下运行键WRENEQU00000ll0B;设置写使能锁存器WRDIEQU00000l00B;复位写使能锁存器

RDSREQU00000101B;读状态寄存器WRSREQU00000001B;写状态寄存器READEQU00000011B;读0〜FFH中的容WRITEEQU00000010;写到000H〜0FFH中去ORG0000HAJMPSTARTORG0080HSTART:MOVSP,#2FH;定义堆栈MOV60H,#00HMOV61H,#00HMOV62H,#00HMOV63H,#00HMOVP0,#10011111B;I/O口初始化MOVTIMER,#50;延时约25msSTART_DELAY:MOVTIMER1,#START_DELAY1:DJNZ TIMER1,START_DELAY1DJNZ TIMER,START_DELAYMOV DATA_OUT,#10111111B;发测试指令LCALL SENDLCALL LONG_DELAYLCALL KEY_PARTLCALL GET_TEMLCALL DISPLAY1LCALL X25045_MAINLCALLALARM•spspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspsp;*******************************************************;显示部分:将60H〜63H单元的容显示于LED•spspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspsp*******************************************************DISPLAY1:MOVDATA_OUT,#11001000B;显示个位LCALLSENDMOVDATA_OUT,60HLCALLSENDMOVDATA_OUT,#11001001B;显示十位LCALLSENDMOVDATA_OUT,61H

LCALLSENDMOVDATA_OUT,#11001010B;显示百位LCALLSENDMOVDATA_OUT,62HLCALLSENDMOVDATA_OUT,#11001011B;显示千位LCALLSENDMOVDATA_OUT,63HLCALLSENDSETBCS;停止发送AJMPDESPLAYspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspsp;*******************************************************;键盘部分:spspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspsp;*******************************************************KEY_PART:MOV KEY_NUMBER,#00HMOV DATA_OUT,#10100100BLCALL SENDSETB CSMOV A,DATA_IN

CJNEA,#0,KEY_ON;处理设定键LCALLKEY_S0;调设定键子程序SETBCSLCALLKEY_ON5spspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspsp;*******************************************************;设定键子程序:spspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspsp;*******************************************************KEY_S0:MOVFLASH_CTR,#11111110B;个位闪烁MOVDATA_OUT,#10001000B;发送闪烁指令LCALLSENDMOVDATA_OUT,FLASH_CTRLCALLSENDMOVDATA_OUT,#11001000B;显示个位LCALLSENDMOVDATA_OUT,#00HLCALLSENDRET•spspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspsp*******************************************************;键处理子程序:

•spspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspsp*******************************************************KEY_ON5:JBKEY,KEY_ON5MOVDATA_OUT,#00010101BLCALLSENDLCALLRECEIVESETBCSCJNEA,#0,N0;不是设定键,转到N0LJMPKEY_ON5N0:MOVA,DATA_INLCALLKEY_S1;处理其他5个键NOPNOPLCALLKEY_APEAR;显示WAIT:JNBKEY,WAITJBRUN.0,EXITLJMPKEY_ON5EXIT:MOVDATA_OUT,#10001000BLCALLSENDMOVDATA_OUT,#11111111BLCALLSENDRETspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspsp*******************************************************;键51处理子程序:spspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspsp*******************************************************KEY_S1:CJNEA,#1,S2;不是运行键,转到S2SETBRUN.0LJMPOUT;是运行键,跳出spspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspsp*******************************************************;键S2处理:使闪烁位数值加一spspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspsp*******************************************************KEY_S2:CJNEA,#2,S3LCALLJUDGMOVR7,KEY_NUMBERCJNER7,#09H,N1MOVKEY_NUMBER,#00HLJMPOUTN1:INCKEY_NUMBERLJMPOUTspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspsp*******************************************************;键S3处理:使闪烁位数值减一spspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspsp*******************************************************KEY_S3:CJNEA,#3,S4LCALLJUDGMOVR7,KEY_NUMBERCJNER7,#00H,N2MOVKEY_NUMBER,#09HLJMPOUTN2:DECKEY_NUMBERLJMPOUTspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspsp;*******************************************************;键S4处理:使闪烁位(待输出位)左移spspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspsp;*******************************************************KEY_S4: CJNEA,#4,S5

MOVA,#11110111BSUBBA,FLASH_CTRJZOUTMOVA,FLASH_CTRSETBCRLCAMOVFLASH_CTR,ALCALLJUDGLJMPOUTspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspsp*******************************************************;键55处理:使闪烁位(待输出位)右移spspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspsp*******************************************************KEY_S5:CJNEA,#5,OUTMOVA,#11111110BSUBBA,FLASH_CTRJZOUTMOVA,FLASH_CTRSETBCRRCA

MOV FLASH_CTR,ALCALLJUDGOUT:RETspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspsp*******************************************************;判断哪位闪烁,并把其原来的数值附给KEY-NUMBERspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspsp*******************************************************JUDG:MOVA,#11111110BCLR CSUBBA,FLASH_CTRJZ EST1MOV A,#11111101BCLR CSUBBA,FLASH_CTRJZ EST2MOV A,#11111011BCLR CSUBB AJZ EST3

MOVA,#11110111BCLRCSUBBA,FLASH_CTRJZEST4JMPOUT2EST1:MOVKEY_VALUE,60HJMPOUT2EST2:MOVKEY_VALUE,61HJMPOUT2EST3:MOVKEY_VALUE,62HJMPOUT2EST4:MOVKEY_VALUE,63HOUT2:RETspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspsp*******************************************************;将数值KEY_NUMBER送入闪烁的位显示spspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspsp*******************************************************KEY_APEAR:SETBCSMOVDATA_OUT,#10001000BLCALLSENDMOVDATA_OUT,FLASH_CTRLCALLSENDMOVA,FLASH_CTRCLRCSUBBA,#11111110BJZAPPEAR1MOVA,FLASH_CTRCLRCSUBBA,#11111101BJZAPPEAR2MOVA,FLASH_CTRCLRCSUBBA,#11111011BJZAPPEAR3MOVA,FLASH_CTRCLRCSUBBA,#11110111BJZAPPEAR4LJMPOUT1;将数值KEY_VALUE显示于第一位,并将其存于60H单元;下载数据按方式一译码•spspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspsp*******************************************************APPEAR1:MOVDATA_OUT,#11001000BLCALLSENDMOVDATA_OUT,KEY_VALUELCALLSENDMOV 60H,KEY_VALUELJMPOUT1spspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspsp**********************************************;将数值KEY_VALUE显示于第二位,并将其存于61H单元spspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspsp***********************************************APPEAR2:MOVDATA_OUT,#11001001BLCALLSENDMOVDATA_OUT,KEY_VALUELCALLSENDMOV 61H,KEY_VALUELJMPOUT1

;将数值KEY_VALUE显示于第三位,并将其存于62H单元•spspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspsp*******************************************************APPEAR3:MOVDATA_OUT,#11001010BLCALLSENDMOVDATA_OUT,KEY_VALUELCALLSENDMOV62H,KEY_VALUELJMPOUT1spspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspsp*******************************************************;将数值KEY_VALUE显示于第四位,并将其存于63H单元spspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspsp*******************************************************APPEAR4:MOVDATA_OUT,#11001011BLCALLSENDMOVDATA_OUT,KEY_VALUELCALLSENDMOV63H,KEY_VALUEOUT1:RET•spspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspsp******************************************************;发送一个字节到HD7279A,高位在前•spspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspsp*******************************************************SEND:MOVBIT_COUNT,#8;设定位计数器=8CLRH7279_CS;设CS为低电平LCALLLONG_DELAY;长延时SEND_LOOP:MOVC,DATA_OUT.7;输出1位MOVH7279_DAT,CSETBH7279_CLK;设CLK为高电平MOVA,DATA_OUT ;待发送数据左移RLAMOVDATA_OUT,ALCALLSHORT_DELAY;短延时CLRH7279_CLK;设CLK为低电平LCALLSHORT_DELAY;短延时DJNZBIT_COUNT,SEND_LOOP;发送8位CLRH7279_DAT;发送完毕RET•spspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspsp*****************************************************•,从HD7279A接收一个字节,高位在前RECIEVE:MOVBIT_COUNT,#8SETBH7279_DATLCALLRECIEVE_LOOP:SETBLCALLMOVRLMOVMOVMOVCLRCALLLONG_DELAYH7279_CLKSHORT_DELAYA,DATA_INADATA_IN,AC,H7279_DATDATA_IN.0,CH7279_CLKSHORT_DELAY;设定位计数器=8;设DATA为高电平;(输入状态);长延时;置CLK为高电平;短延时;数据左移读取一位数据;置CLK为低电平DJNZ BIT_COUNT,RECIEVE_LOOP ;接收8位数据CLR H7279_DAT ;设DAT为低电平RET•spspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspsp*******************************************************延时子程序•spspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspsp*******************************************************LONG_DELAY:MOVTIMER,#25;延时约50微秒DELAY_LOOP:DJNZTIMER,DELAY_LOOPRETSHORT_DELAY:MOVTIMER,#4;延时约8微秒SHORT_LOOP:DJNZTIMER,SHORT_LOOPRET•spspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspsp*******************************************************;将60H,61H里设置的温度放到59H里spspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspspsp

温馨提示

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

评论

0/150

提交评论