《无线温度传感器的设计.doc》由会员分享,可在线阅读,更多相关《无线温度传感器的设计.doc(37页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、无线温度传感器的设计摘 要:随着时代的进步和发展,单片机技术已经普及到我们生活,工作,科研,各个领域,一种数字式温度计以数字温度传感器作感温元件,它以单总线的连接方式,使电路大大的简化;传统的温度检测大多以热敏电阻为传感器,这类传感器可靠性差,测量温度准确率低且电路复杂。因此,本温度计摆脱了传统的温度测量方法,利用单片机对传感器进行控制。这样易于智能化控制。无线温度测量与有线温度测量相比具有可靠性高安装容易可以重复使用和系统维护方便等优点关键词:单片机 温度传感器 无线通信 引言温度监测是目前成熟的技术,工业中广泛应用的温度监测系统大多数还是采用有线方式传输信号的,然而对于工作环境恶劣、供电布
2、线复杂且今后维护困难的场合,有线方式则带有相当的局限性。采用无线方式传输数据,可以有效避免这些问题。 由于采集端靠近被测对象,布线和维护困难,因此在系统设计上要解决供电和信号传输有效性的问题。布线上的局限使得采集端只能采用电池供电模式,而在线监测又需要24小时不间断工作,因此采集端的功耗必须非常低,在器件的选择上必须满足低电压支持和低功耗要求。工业现场环境复杂,干扰大,则必须对原始信号进行编码和译码,以保证信!基于单片机A T 8 9 C5 1、数字温度传感器DS18B20、无线收发芯片nRF403的数字化无线温度传感器,测温范围-55+125,分辨率为0.0625 ,工作频率2 400 2
3、524 MHz,接收灵敏度- 90 dBm,最大发射功率0dBm,电池供电。1.1 系统结构图如下:图1 系统结构图第一章 温度采集1.2 温度传感器概述1.1.1 温度传感器的分类根据温度传感器的使用方式,通常分为接触法与非接触法两类。(A) 接触法由热平衡原理可知,两个物体接触后,经过足够长的时间达到热平衡,则它们的温度必然相等。如果其中之一为温度计,就可以用它对另一个物体实现温度测量,这种测温方式称为接触法。其特点是,温度计要与被测物体有良好的热接触,使两者达到热平衡。因此,测温准确度较高。用接触法测温时,感温元件要与被测物体接触,往往要破坏被测物体的热平衡状态,并受被测介质的腐蚀作用。
4、因此,对感温元件的结构、性能要求苛刻。(B) 非接触法利用物体的热辐射能随温度变化的原理测定物体温度。这种测温方式称为非接触法。它的特点是:不与被测物体接触,也不改变被测物体的温度分布,热惯性小。从原理上看,用这种方法测温无上限。通常用来测定1000以上的移动、旋转或反应迅速的高温物体的温度或表面温度。与压 力一样,温度也是过程控制中最重要的测量变量之一。例如在冷却回路中,温度监测不仅用来确保产品质量,还用来保证系统安全。过程工业往往利用热能进行控制,所以,根据应用需要选择理想的温度传感器,可实现既定测量目的并确保最佳测量效果。当然,对过程工艺的熟悉和预见可能出现的不确定扰动也是很重要的。冷、
5、热是如何定义的?我们可以通过身体的感知器官感觉并分辨温度差。然而,我们往往只能定义物体是冷是热,却不能将这种感觉量化。温度的涵义到底是什么呢?温度,即表示某物质每个粒子的平均动能。要通过这种能量来量化温度首先要定义温标,需要确定与某种材料温度相关的某个定点。最常见的定点是绝对零度即0K,以及水三相点(固态、液态、气态并存的点)273.16K。定点值的确定使绘制温度的直线图成为可能。其它定点值离上述点很远,例如氖的三相点是24.5561K,银的凝固点是1234.93K。这些定点值在国际温标(1990年版)(ITS-90)中确定。 1.1.2 测量温度的方法测量温度的方法有多种,从简单的二极管到高
6、精度的热噪声温度计。温度计可以分为两类:第一类温度计和第二类温度计。第一类为不需要用其他温度测量设备做预先校准的温度计。他们都是通过测量物理量,计算物理量和温度间的关系来确定温度的。例如气体温度计、热噪声温度计和应用测量黑体辐射的温度测量设备。这些温度传感器常常用于专门的实验室,使用起来相当复杂并且往往价格昂贵。第二类温度计则需要校准。工业上主要使用的是第二类温度计。特别是热电阻或热电偶温度传感器使用最为广泛。当安装温度传感器时,需要了解一些简单的基础原理:温度传感器主要测量的是它自身的温度。所以传感器必须尽可能靠近测量物安装并尽可能地避免环境影响,因为测量地点的干扰可能会使温度测量结果出现一
7、些偏差。环境温度和介质温度较大的差异也可能会导致错误的测量值。如果传感器安装在保护套管中,也就意味着它远离了真实的测量点,温度传感器灵敏度会降低,测量值可能与真实值出现背离。 1.1.3测量温度的主要原理 基于精确性和易于进一步处理测量信号的要求,下列测量原理十分适用于工业环境温度监测 1.1.3.1 热电阻温度计 导体的电阻值随温度变化而改变,通过测量其阻值推算出被测物体的温度,利用此原理构成的传感器就是电阻温度传感器,这种传感器主要用于-200500温度范围内的温度测量。 纯金属是热电阻的主要制造材料,热电阻的材料应具有以下特性: 电阻温度系数要大而且稳定,电阻值与温度之间应具有良好的线性
8、关系。 电阻率高,热容量小,反应速度快。 材料的复现性和工艺性好,价格低。 在测温范围内化学物理特性稳定。目前,在工业中应用最广的铂和铜,并已制作成标准测温热电阻。 1.1.3.2铂电阻 铂电阻与温度之间的关系接近于线性,在0630.74范围内可用下式表示RtR0(1+At+Bt2) (2-1)在-1900范围内为RtR0(1+At+Bt2十Ct3) (2-2)式中,RO、Rt为温度0及t时铂电阻的电阻值,t为任意温度,A、B、C为温度系数,由实验确定,A3.968410-3/,B-5.84710-72,C-4.2210-l2/3。由式(2-1)和式(2-2)看出,当R0值不同时,在同样温度下
9、,其Rt值也不同。 1.1.3.3 铜电阻 在测温精度要求不高,且测温范围比较小的情况下,可采用铜电阻做成热电阻材料代替铂电阻。在-50150的温度范围内,铜电阻与温度成线性关系,其电阻与温度关系的表达式为RtR0(1+At) (2-3)式中,A4.2510-34.2810-3为铜电阻的温度系数。 1.1.3.4 热电偶温度计当有两种不同的导体和半导体A和B组成一个回路,其两端相互连接时,只要两结点处的温度不同,一端温度为T,称为工作端或热端,另一端温度为TO,称为自由端(也称参考端)或冷端,则回路中就有电流产生,如图2-1(a)所示,即回路中存在的电动势称为热电动势。这种由于温度不同而产生电
10、动势的现象称为塞贝克效应。与塞贝克有关的效应有两个:其一,当有电流流过两个不同导体的连接处时,此处便吸收或放出热量(取决于电流的方向),称为珀尔帖效应;其二,当有电流流过存在温度梯度的导体时,导体吸收或放出热量(取决于电流相对于温度梯度的方向),称为汤姆逊效应。两种不同导体或半导体的组合称为热电偶。热电偶的热电势EAB(T,T0)是由接触电势和温差电势合成的。接触电势是指两种不同的导体或半导体在接触处产生的电势,此电势与两种导体或半导体的性质及在接触点的温度有关。温差电势是指同一导体或半导体在温度不同的两端产生的电势,此电势只与导体或半导体的性质和两端的温度有关,而与导体的长度、截面大小、沿其
11、长度方向的温度分布无关。无论接触电势或温差电势都是由于集中于接触处端点的电子数不同而产生的电势,热电偶测量的热电势是二者的合成。当回路断开时,在断开处a,b之间便有一电动势差V,其极性和大小与回路中的热电势一致,如图2-1(b)所示。并规定在冷端,当电流由A流向B时,称A为正极,B为负极。实验表明,当V很小时,V与T成正比关系。定义V对T的微分热电势为热电势率,又称塞贝克系数。塞贝克系数的符号和大小取决于组成热电偶的两种导体的热电特性和结点的温度差。 1.1.4 线制 两线制在热电阻感温元件的两端各连一根导线的引线形式为两线制。这种两线制热电阻配线简单,安装费用低,但要带进引线电阻的附加误差。
12、因此,不适用于A级。并且在使用时引线及导线都不宜过长。采用两线制的测温电桥如下图所示, a) 接线示意图,b)为等效原理图。从图中可以看出热电阻两引线电阻Rw一起构成电桥测量臂,这样当引线电阻随沿线环境温度改变引起的阻值变化量2Rw 和热电阻随被测温度变化的增量值Rt一起成为有效信号转换成测量信号电压,从而影响温度测量精度。 两线制热电阻测量电桥a)示意图 b)等效原理图3线制可以消除引线电阻的影响,测量精度高于2线制。作为过程检测元件,其应用最广。4线制不仅可以消除引线电阻的影响,而且在连接导线阻值相同时,还可以消除该电阻的影响。高精度测量应采用4线制。自身发热影响为了能够测量热电阻传感器的
13、输出信号,一定有电流通过传感器。这个测量电流消耗能量并产生热量,使温度升高。大多数情况下,制造商提供一个1mA的测量电流,这样传感器不会产生额外的热量,可提供一个最真实的测量值。1.2 温度检测单元 TC77是MICROCHIP公司生产的一款13位串行接口输出的集成数字温度传感器,其温度数据由热传感单元转换得来。TC77内部含有一个13位ADC,温度分辨率为0.062 5LSB。在正常工作条件下,静态电流为250A(典型值)。其他设备与TC77的通信由SPI串行总线或Microwire兼容接口实现,该总线可用于连接多个TC77,实现多区域温度监控,配置寄存器CONFIG中的SHDN位激活低功耗
14、关断模式,此时电流消耗仅为0.1A(典型值)。TC77具有体积小巧、低装配成本和易于操作的特点,是系统热管理的理想选择。图1所示为TC77的内部结构原理图。TC77由CMOS结型温度传感器、带符号位的13位-AD转换器、温度寄存器、配置寄存器、制造商ID寄存器及三线制串行接口等部分组成。其引脚定义如下: SIO:串行数据引脚 SCK:串行时钟 Vss:地 CE:片选端(低电平有效) VDD:电源电压(6.0 V) 1.2.1 TC77的工作原理 数字温度传感器TC77从固态(PN结)传感器获得温度并将其转换成数字数据。再将转换后的温度数字数据存储在其内部寄存器中,并能在任何时候通过SPI串行总
15、线接口或Microwire兼容接口读取。TC77有两种工作模式,即连续温度转换模式和关断模式。连续温度转换模式用于温度的连续测量和转换,关断模式用于降低电源电流的功耗敏感型应用。1.2.2 TC77的上电与复位 上电或电压复位时,TC77即处于连续温度转换模式,上电或电压复位时的第一次有效温度转换会持续大约300 ms,在第一次温度转换结束后,温度寄存器的第2位被置为逻辑“1”,而在第一次温度转换期间,温度寄存器的第2位是被置为逻辑“0”的,因此,可以通过监测温度寄存器第2位的状态判断第一次温度转换是否结束。 1.2.3 TC77的低功耗关断模式 在得到TC77允许后,主机可将其置为低功耗关断
16、模式,此时,AD转换器被中止,温度数据寄存器被冻结,但SPI串行总线端口仍然正常运行。通过设置配置寄存器CONFIG中的SHDN位,可将TC77置于低功耗关断模式:即设置SHDN=0时为正常模式;SHDN=1时为低功耗关断模式。1.2.4 TC77的温度数据格式 TC77采用13位二进制补码表示温度,表1所列是TC77的温度、二进制码补码及十六进制码之间的关系。表中最低有效位(LSB)为0.062 5 ,最后两个LSB位(即位1和位0)为三态,表中为“1”。在上电或电压复位事件后发生第一次温度转换结束时,位2被置为逻辑“1”。1.2.5 TC77的串行总线 TC77的串行总线包括片选信号线CE
17、、串行时钟信号线SCK及串行数据信号线SIO,遵循SPI或Mi-crowire接口标准协议。在有多个TC77连接到串行时钟和串行数据信号线时,CE用于选择其中的某一个TC77器件,CS为逻辑“0”时,用于写入器件或从器件中读出数据的同步;CS为逻辑“1”时,SCK被禁止。CS的下降沿启动器件间的相互通信,CS的上升沿则停止器件间的相互通信。图2是对温度寄存器进行读操作的时序。 图3是TC77的多字节通信操作时序,包括对温度寄存器的读操作和对配置寄存器的写操作。第一组的16个SCK脉冲用于将TC77的温度数据传送到微处理器,第二组的16个SCK脉冲用于接收微处理器的指令,以便使TC77进入关断模
18、式或连续转换模式。写入TC77配置寄存器的数据应为全0或全1,分别与连续转换模式或关断模式相对应,当配置寄存器的C0C7全为1时为关断模式,当C0C7中有一个0被写入时即变为连续转换模式。1.2.6. TC77与AVR单片机的硬件接口 图4是TC77与AVR单片机的接口硬件连接原理图。图中使用的是同步串行三线SPI接口,可以方便地连接采用SPI通信协议的外设或另一片AVR单片机,实现短距离的高速同步通信。ATMEGA128的SPI采用硬件方式实现面向字节的全双工3线同步通信,支持主机、从机和两种不同极性的SPI时序。ATMEGA128单片机内部的SPI接口也可用于程序存储器和数据E2PROM的
19、编程下载和上传。但需要特别注意的是,此时SPI的MOSI和MISO接口不再对应PB2和PB3引脚,而是转换到PE0和PE1引脚(PDI、PDO)。1.2.6.1 TC77与AVR单片机的软件接口 TC77与AVR单片机的接口软件包括主程序和中断服务程序。在主程序中首先要对ATMEGA128的硬件SPI进行初始化。在初始化时,应将PORTB的MOSI、SCLK和SS引脚作为输出,同时将MISO引脚作为输入,并开启上拉电阻。接着对SPI的寄存器进行初始化设置,并空读一次SPSR(SPX Status Reg-ister,SPI状态寄存器)、SPDR(SPI Data Register SPI,数据
20、寄存器),使ISP空闲等待发送数据。AVR的SPI由一个16位的循环移位寄存器构成,当数据从主机方移出时,从机的数据同时也被移入,因此SPI的发送和接收可在同一中断服务程序中完成。在SPI中断服务程序中,先从SPDR中读一个接收的字节存人接收数据缓冲器中,再从发送数据缓冲器取出一个字节写入SPDR中,由ISP发送到从机。数据一旦写入SPDR,ISP硬件开始发送数据。下一次ISP中断时表示发送完成,并同时收到一个数据。程序中putSPIchar()和getSPIchar()为应用程序的底层接口函数,同时也使用了两个数据缓冲器,分别构成循环队列。下面这段代码是通过SPI主机方式连续批量输出、输人数
21、据的接口程序:晶振:12MTEMPER_L EQU 36HTEMPER_H EQU 35HTEMPER_NUM EQU 60HFLAG1 BIT 00HDQ BIT P3.3AAAMOV SP,#70HLCALL GET_TEMPERLCALL TEMPER_COVLJMP AAANOP;-读出转换后的温度值GET_TEMPERSETB DQ ; 定时入口BCDLCALL INIT_ TC77JB FLAG1,S22LJMP BCD ; 若TC77不存在则返回S22LCALL DELAY1MOV A,#0CCH ; 跳过ROM匹配-0CCLCALL WRITE TC77MOV A,#44H ;
22、 发出温度转换命令LCALL WRITE_ TC77NOPLCALL DELAYLCALL DELAYCBALCALL INIT_ TC77JB FLAG1,ABCLJMP CBAABCLCALL DELAY1MOV A,#0CCH ; 跳过ROM匹配LCALL WRITE_ TC77MOV A,#0BEH ; 发出读温度命令LCALL WRITE_ TC77LCALL READ_ TC77;READ_ TC77RET;-读TC77的程序,从TC77中读出一个字节的数据READ_ TC77MOV R2,#8RE1CLR CSETB DQNOPNOPCLR DQNOPNOPNOPSETB DQM
23、OV R3,#7DJNZ R3,$MOV C,DQMOV R3,#23DJNZ R3,$RRC ADJNZ R2,RE1RET;-写TC77的程序WRITE_ TC77MOV R2,#8CLR CWR1CLR DQMOV R3,#6DJNZ R3,$RRC AMOV DQ,CMOV R3,#23DJNZ R3,$SETB DQNOPDJNZ R2,WR1SETB DQRET;-读TC77的程序,从TC77中读出两个字节的温度数据READ_ TC77MOV R4,#2 ; 将温度高位和低位从TC77中读出MOV R1,#36H ; 低位存入36H(TEMPER_L),高位存入35H(TEMPER
24、_H)RE00MOV R2,#8RE01CLR CSETB DQNOPNOPCLR DQNOPNOPNOPSETB DQMOV R3,#7DJNZ R3,$MOV C,DQMOV R3,#23DJNZ R3,$RRC ADJNZ R2,RE01MOV R1,ADEC R1DJNZ R4,RE00RET;-将从TC77中读出的温度数据进行转换TEMPER_COVMOV A,#0F0HANL A,TEMPER_L ; 舍去温度低位中小数点后的四位温度数值SWAP AMOV TEMPER_NUM,AMOV A,TEMPER_LJNB ACC.3,TEMPER_COV1 ; 四舍五入去温度值INC T
25、EMPER_NUMTEMPER_COV1MOV A,TEMPER_HANL A,#07HSWAP AORL A,TEMPER_NUMMOV TEMPER_NUM,A ; 保存变换后的温度数据LCALL BIN_BCDRET;-将16进制的温度数据转换成压缩BCD码BIN_BCDMOV DPTR,#TEMP_TABMOV A,TEMPER_NUMMOVC A,A+DPTRMOV TEMPER_NUM,ARETTEMP_TABDB 00H,01H,02H,03H,04H,05H,06H,07HDB 08H,09H,10H,11H,12H,13H,14H,15HDB 16H,17H,18H,19H,
26、20H,21H,22H,23HDB 24H,25H,26H,27H,28H,29H,30H,31HDB 32H,33H,34H,35H,36H,37H,38H,39HDB 40H,41H,42H,43H,44H,45H,46H,47HDB 48H,49H,50H,51H,52H,53H,54H,55HDB 56H,57H,58H,59H,60H,61H,62H,63HDB 64H,65H,66H,67H,68H,69H,70H,71HDB 72H,73H,74H,75H,76H,77H,78H,79HDB 80H,81H,82H,83H,84H,85H,86H,87HDB 88H,89H,90
27、H,91H,92H,93H,94H,95HDB 96H,97H,98H,99H;- TC77初始化程序INIT_ TC77SETB DQNOPCLR DQMOV R0,#80HTSR1DJNZ R0,TSR1 ; 延时SETB DQMOV R0,#25H ;96US-25HTSR2DJNZ R0,TSR2JNB DQ,TSR3LJMP TSR4 ; 延时TSR3SETB FLAG1 ; 置标志位,表示TC77存在LJMP TSR5TSR4CLR FLAG1 ; 清标志位,表示TC77不存在LJMP TSR7TSR5MOV R0,#06BH ;200USTSR6DJNZ R0,TSR6 ; 延时
28、TSR7SETB DQRET;-重新写TC77暂存存储器设定值RE_CONFIGJB FLAG1,RE_CONFIG1 ; 若TC77存在,转RE_CONFIG1RETRE_CONFIG1MOV A,#0CCH ; 发SKIP ROM命令LCALL WRITE_ TC77MOV A,#4EH ; 发写暂存存储器命令LCALL WRITE_ TC77MOV A,#00H ; TH(报警上限)中写入00HLCALL WRITE_ TC77MOV A,#00H ; TL(报警下限)中写入00HLCALL WRITE_ TC77MOV A,#7FH ; 选择12位温度分辨率LCALL WRITE_ T
29、C77RET;-延时子程序DELAYMOV R7,#00HMINDJNZ R7,YS500RETYS500LCALL YS500USLJMP MINYS500USMOV R6,#00HDJNZ R6,$RETDELAY1MOV R7,#20HDJNZ R7,$RET1.3系统软件算法分析系统程序主要包括主程序,读出温度子程序,温度转换命令子程序,计算温度子程序,显示数据刷新子程序等。 1.3.1主程序 主程序的主要功能是负责温度的实时显示、读出并处理TC77的测量的当前温度值,温度测量每1s进行一次。这样可以在一秒之内测量一次被测温度,其程序流程见图1所示。图11.3.2读出温度子程序读出温度
30、子程序的主要功能是读出RAM中的9字节,在读出时需进行CRC校验,校验有错时不进温度数据的改写。其程序流程图如图2示 图21.3.3温度转换命令子程序温度转换命令子程序主要是发温度转换开始命令,当采用12位分辨率时转换时间约为750ms,在本程序设计中采用1s显示程序延时法等待转换的完成。1.3.4 计算温度子程序计算温度子程序将RAM中读取值进行BCD码的转换运算,并进行温度值正负的判定,其程序流程图如图3所示。图3 图41.3.5 显示数据刷新子程序显示数据刷新子程序主要是对显示缓冲器中的显示数据进行刷新操作,当最高显示位为0时将符号显示位移入下一位。程序流程图如图4。第二章 信息处理本设
31、计采用AT89C51单片机做为信息处理单元其主要内容如下:2.1 AT89C51单片机简介AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51 ? 指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。 2.1.1AT89C51主要特性:
32、与MCS-51 兼容4K字节可编程闪烁存储器寿命:1000写/擦循环数据保留时间:10年全静态工作:0Hz-24Hz三级程序存储器锁定128*8位内部RAM32可编程I/O线两个16位定时器/计数器5个中断源可编程串行通道低功耗的闲置和掉电模式片内振荡器和时钟电路2.1.2管脚说明:VCC:供电电压。GND:接地。 P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须
33、被拉高。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“
34、1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,如下表所示:口管脚 备选功能P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 /INT0(外部中断0)P3.3 /INT1(外部中断1)P3.4 T0(记时
35、器0外部输入)P3.5 T1(记时器1外部输入)P3.6 /WR(外部数据存储器写选通)P3.7 /RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8
36、EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL1:反向
37、振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。 2.1.3振荡器特性:XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。 2.1.4芯片擦除:整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms 来完成。在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。此外
38、,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU停止工作。但RAM,定时器,计数器,串口和中断系统仍在工作。在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。2.2 AT89C51复位电路的可靠性设计复位电路的基本功能是系统上电时提供复位信号直至系统电源稳定后撤销复位信号为可靠起见电源稳定后还要经一定的延时才撤销复位信号以防电源开关或电源插头分-合过程中引起的抖动而影响复位。本设计采用PHILIPS 公司SA56600-42 被设计用在电源电压降低或断电时作保护微电脑系统中SRAM 的数据
39、。当电源电压下降到通常值 4.2V 时,输出 CS 变为逻辑低电平,把 CE 也拉低,从而禁止对 SRAM 的操作。同时,产生一个低电平有效的复位信号,供系统使用,如果电源电压继续下降,到达通常值 3.3V或更低时,SA56600-42切换系统操作,从主电源供电切换到后备锂电池供电,当主电源恢复正常(电压上升至3.3V或更高时)将SRAM的供电电源将由后备锂电池切换回主电源,当主电源上升至大于典型值4.2V 时 输出 CS 变为逻辑高电平,使 CE 变为高电平,使能 SRAM 的操作,复位信号一直持续到系统恢复正常操作为止。在系统电源电压不足或突然断电的时候,这个器件能可靠地保护系统在SRAM
40、内的数据。 图2.2 内置SRAM数据保护电路的监控器件SA56600-42的典型应用2.3 AT89C51与无线通信 2.3.1 AT89C51与数字电台的串行通信AT89C51单片机有一个可编程的全双工串行通信接口,能同时进行串行发送和接收。通过RXD引脚(串行数据接收端)和TXD引脚(串行数据发送端)与外界进行通信。 2.3.2 AT89C51串行口工作方式 AT89C51串行口可设置四种工作方式,可有8位、10位和11位帧格式。本系统中,AT89C51串行口工作于方式3,即鳘帧11位的异步通信格式:1位起始位,8位数据位(低位在前),1位可编程数据位,1位停止位。发送前,由软件设置第9
41、位数据(TB8)作奇偶校验位,将要发送的数据写入SBUF,启动发送过程。串行口能自动把TB8取出,装入到第9位数据的位置,再逐一发送出去。发送完毕,使TI=1。接收时,置SCON中的REN为1,允许接收。当检测到RXD(P3.0端有1到 0的跳变(起始位)时,开始接收9位数据,送入移位寄存器(9位)。当满足RI=0且SM2=0或接收到的9位数据为1时,前8位数据送入SBUF,第9位数据送入SCON中的RB8,置RI为1;否则,这次接收无效,不置位RI。串口方式3的波特率由定时器T1的溢出率与SMOD值同时决定。方式3波特率=T1溢出率/n当SMOD=0时,n=32;SMOD=1时,n=16。T
42、1溢出率取决于T1的计数速率(计数速率=fosc/12)和TI预置的初值。定时器T1用作波特率发生器,工作于模式2(自动重装初值)。设TH1和TL1定时计数初值为X,则每过2 8-X个机器周期,T1就会发生一次溢出。初值X确定如下:X=256-fosc(SMOD+1)/384BTL本系统中,SMOD=0,波行率BTL=1200,晶振fosc=6MHz,所以初值X=F3H。系统采用异步串行通信方式传输测量数据。利用单片机串口与数字电台RS232数据口相连。电台常态为收状态(PPT=0,收状态;PPT=1,发状态),单片机P3.5脚输出高电平。单片机使用TTL电平,电台使用RS232电平,由 MA
43、X232完成TTL电平与RS232电平之间的转换。3片光电耦合器6N137实现单片机与电台之间的电源隔离,增强系统抗干扰性能。单片机通过带控制端的三态缓冲门74HC125、非门74HC14控制电台的收发转换,以及指令的接收和数据发送。接收时,P3.5=1,c2=1,74HC125B截止;P3.5经74HC14反相、光电隔离,使电台PPT脚为低电平,将其置为接收状态;同时c1=0,74HC125A导通,接收的指令由电台的RXD端输入,经MAX232电平变换、光电隔离、74HC125A缓冲门,送入单片机RXD脚。发射时,P3.5=0,经74HC14反相、光电隔离,使电台PPT脚为高电平,将其置为发
44、射状态;同时c1=1,74HC125A截止,c2=0,74HC125B导通,数据由单片机TXD脚输出,经74HC125B缓冲门、光电隔离、MAX232电平变换,通过电台TXD端口将数据发送出去。 2.3.3 通信软件设计 通信软件至关重要,一旦出现问题,整个系统就会瘫痪。采取差错控制与容错技术是非常重要的。 下面给出单片机串行口与电台的基本通信程序。初始化程序:BTL EQU 2FH ;波特率放在内部RAM的2FH单元MOV TMOD,#21H;T0方式1,16位计数器,T1方式2,串口用SETB TR0 ;启动T0MOV BTL,#0F3H ;波特率设定为1200MOV SCON,#0C0H
45、;串口方式3,9位数据,禁止接收接收程序:NUM EQU 2BH ;同步符个数值存放在内部RAM的2BH单元TEMP EQU 2CHROM-CH:DB 55H,55H,55H,55H,55H,55H,55H,55H,55H,55HDB 55H,55H,55H,55H,55H,55H,55H,55H,55H,55H ;20字节同步符MIM DB iWSC i:3字节密码WSCSETB P3.5 ;置电台收状态SETB REN ;允许串口接收A1:MOV NUM,#0 ;记录连续到同步符55H的个数A2:JB RI,A2 ;串口有数据转A3A3:CLR RI ;清接收中断标志 MOV A,SBUF ;读串口数据CJNE A,#55H,A1;不是同步符转A1INC NUM ;收到的同步符个数加1MOV A,NUM ;取收到的同步符个数CJNE A,#5,A2 ;未收够连续5个55H转A2 JB RI,A6 ;串口收完一个字节转A6A6:CLR RI ;清接收中断标志MOV A,SBUF ;读串口数据CJNE A,TEMP,A4;与密码不符转A4INC NUM ;收到的密码个数加1MOV A,NUM ;取已收到