《基于单片机的电阻炉温度控制系统设计-毕业论文.doc》由会员分享,可在线阅读,更多相关《基于单片机的电阻炉温度控制系统设计-毕业论文.doc(62页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、SelectionParagraphFormatLineSpacingLinesToPointsSelectionParagraphFormatLineSpacingLinesToPointselectionParagraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaphFormatLineSpacingLinesToPointsSelectionParagraphFormatLineSpacingLinesTSelectionParbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
2、agraphFoLineSpacingLinesToPointsSelectionParagraphFormatLineSpacingLinesToPointse11111111111111111111111111111111lectionParagraphFormatLineSpacingLinesToPointsSelectionParagraphFormatLineSpacingLinesToPoctionParagraphFormatLineSpaci2222222222222222222222ngLinesToPoints2SelectionParagraphFormatLineSp
3、acingLinesToPointsSelectionParagraphFormatLineSpacingLinesToPointselectionParagraphFccccccccccccccccccccccccccccccccccccccccccccccccccccccccormatLineSpacingLinesToPointsSelectionParagraphFormatLineSpacingLinesToPoctionParagraSelec基于单片机的电阻炉温度控制系统设计学 院自动化学院专 业自动化班 级XXXXXXX学 号XXXXXXXXXXXX姓 名XXXX指导教师XXX
4、X负责教师沈阳航空航天大学2010年6月SelectionParagraphFormatLineSpacingLinesToPointsSelectionParagraphFormatLineSpacingLinesToPointselectionParagraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaphFormatLineSpacingLinesToPointsSelectionParagraphFormatLineSpacingLinesTSelectionParbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
5、bbbbbbbbbbbbbbbbbbbbagraphFoLineSpacingLinesToPointsSelectionParagraphFormatLineSpacingLinesToPointse11111111111111111111111111111111lectionParagraphFormatLineSpacingLinesToPointsSelectionParagraphFormatLineSpacingLinesToPoctionParagraphFormatLineSpaci2222222222222222222222ngLinesToPoints2SelectionP
6、aragraphFormatLineSpacingLinesToPointsSelectionParagraphFormatLineSpacingLinesToPointselectionParagraphFccccccccccccccccccccccccccccccccccccccccccccccccccccccccormatLineSpacingLinesToPointsSelectionParagraphFormatLineSpacingLinesToPoctionParagraSelec沈阳航空航天大学毕业设计(论文)摘 要在工业生产过程中,往往需要对各类加热炉、热处理炉、反应炉的温度
7、进行检测和调节,因此需要一种合适的系统对其温度进行精确控制。由于单片机具有低功耗、高性能、可靠性好、易于产品化等特点,因此采用单片机对温度进行控制不仅节约成本,控制方法灵活多样,并且可以达到较高的控制精度,从而能够大大提高产品的质量,因此单片机被广泛应用在中小型控制系统中。本论文以电阻炉为研究对象,开发了基于单片机的温度控制系统。本温度控制系统按功能分主要包括温度传感器模块、数据处理模块、温度显示/设定模块和温度控制模块。温度传感器采用了数字式温度传感器DS18B20,对温度进行实时采样并将模拟信号转换成数字信号返回给单片机。系统可通过键盘对电阻炉水温进行预设,单片机根据当前炉内温度和预设温度
8、进行运算,控制输出宽度可调的PWM方波,并由此控制双向可控硅的导通和关断来调节电热丝的加热功率,从而使水温迅速达到预设值并保持恒定不变。设计过程中,首先进行软件设计和开发,使系统功能模块化并分别通过Proteus软件进行仿真,实现功能后对硬件进行了综合设计,并且反复论证、测试各器件参数以使其稳定运行,最终使得此系统实现了温度的恒温控制。关键词:单片机;温度传感器;可控硅;温度控制Design and Implementation of a Temperature Control System Based on the Single Chip MicrocontrollerAbstractVar
9、ious types of furnace, heat treatment furnace, reactor temperature are detected and regulated in the industrial production processes, so they need a proper system of precise control for their temperature. The single chip microcontroller (SCM) have many advantages, such as low power consumption , hig
10、h performance, reliability, easy-to-market commodity and so on. So the temperature controlled by SCM has low cost, flexible and diverse control method and higher precision, which can greatly enhance the quality of the product. A Temperature Control System is developed based on SCM for a resistance f
11、urnace system. This system includes four functional modules that are temperature sensor module, data processing module, temperature display/setting module and temperature-controlling module. Digital temperature sensor DS18B20 is selected to real-time sample of the temperature and to convert analog s
12、ignals into digital signals that are back to the SCM system. The setting value temperature of this system can be preset through the keyboard. SCM is used to computer PWM control laws based on the current temperature and the preset temperature of the furnace operation. The controlling output is used
13、to control the silicon control in order to regulate the heating power of the heating cord, so the water temperature can quickly reach and maintain setting value. In designing process, first of all, the software is designed, developed and then simulate based on Proteus software , test the device para
14、meters to make it stable operate. At last, this system has been realized the constant temperature controlling. Keywords: Single Chip Microcontroller; Temperature sensor; Silicon-controlled rectifier ; Temperature control目 录1 绪论11.1 课题背景11.2 课题研究的概述21.2.1 课题研究的内容21.2.2 本系统实现的功能32 电阻炉温度控制系统工作原理43 电阻炉温
15、度控制系统硬件设计53.1 系统硬件设计方案53.2 温度传感器模块53.2.1 DS18B20基本知识63.2.2 DS18B20产品的特点63.2.3 DS18B20的引脚介绍63.2.4 DS18B20的4个主要部件83.2.5 温度采集模块电路图103.3 数据处理模块113.3.1 STC89C52系列主要性能参数113.3.2 STC89C52存储器配置153.4 温度显示模块/键盘模块193.4.1 温度显示部分203.4.2 温度设定部分243.4.3 温度显示/键盘模块电路图243.5 温度控制模块263.5.1 可控硅BTA16263.5.2 光电偶合器MOC3021283
16、.5.3 温度控制模块电路图294 电阻炉温度控制系统软件设计314.1 系统主程序314.2 温度采集子程序324.3 控制算法325 温度控制系统Proteus仿真345.1 仿真说明345.2 仿真结果345.3 结论366 系统硬件调试37结论38社会经济效益分析39参考文献40致 谢41附录 程序清单42附录 硬件原理图55附录III 元器件清单56III1 绪论1.1 课题背景及时准确地得到温度信息并对其进行适时的控制,在许多工业场合中都是重要的环节,水温的变化影响各种系统的自动运行,例如冶金、机械、食品、化工各类工业中,广泛使用的各种加热炉、热处理炉、反应炉等,对工件的水处理温度
17、要求严格控制。对于不同控制系统,其适宜的水质温度总是在一个范围。超过这个范围,系统或许会停止运行或遭受破坏,所以我们必须能实时获取水温变化。对于超过适宜范围的温度能够报警。单片机对温度的控制是工业生产中经常使用的控制方法。从1976年Intel公司推出第一批单片机以来,80年代单片机技术进入快速发展时期,近年来,随着大规模集成电路的发展,单片机继续朝快速、高性能方向发展。单片机主要用于控制,它的应用领域遍及各行各业,大到航天飞机,小至日常生活中的冰箱、彩电,单片机都可以大显其能。单片机将微处理器、存储器、定时/计数器、I/O接口电路等集成在一个芯片上的大规模集成电路,本身即是一个小型化的微机系
18、统。单片机技术与传感与测量技术、信号与系统分析技术、电路设计技术、可编程逻辑应用技术、微机接口技术、数据库技术以及数据结构、计算机操作系统、汇编语言程序设计、高级语言程序设计、软件工程、数据网络通信、数字信号处理、自动控制、误差分析、仪器仪表结构设计和制造工艺等的结合,使得单片机的应用非常广泛。同时,单片机具有较强的管理功能。采用单片机对整个测量电路进行管理和控制,使得整个系统智能化、功耗低、使用电子元件较少、内部配线少、成本低,制造、安装、调试及维修方便。本毕业设计选择研究水温控制系统,采用单片机进行控制的水温自动控制电路,使系统能简单的实现温度的控制及显示,STC89C52单片机优秀的实时
19、控制功能、灵活的编程能力有机的结合起来,并且通过软件编程能实现各种控制算法,使系统具有控制精度高的特点,对实现对水温的自动控制,具有重大的现实意义。不但能用于学校的实验教学及其它一些研究课题的开发,同样能用于工厂多点温度的控制,提高工业企业自动化水平。1.2 课题研究的概述本次的毕业设计是多种技术知识的结合,不仅涉及到软件的设计,而且还将应用电子技术与单片机的应用技术有机结合,使其具有精度高、测量误差小、稳定性好等特点。1.2.1 课题研究的内容本文所要研究的课题是基于单片机控制的水温控制系统的设计,主要是介绍了对水箱温度的显示,实现了温度的实时显示及控制。水箱水温控制部分,提出了用DS18B
20、20、STC89C52单片机及LCD的硬件电路完成对水温的实时检测及显示,而炉内温度控制部分,由DS18B20检测炉内温度,用中值滤波的方法取一个值存入程序存取器内部一个单元作为最后检测信号,并在LCD中显示。控制器是用STC89C52单片机,用设定的算法对检测信号和设定值的差值进行调节后输出PWM控制信号给执行机构,去调节电阻炉的加热功率,从而控制炉内温度。它具有微型化、低功耗、高性能、抗干扰能力强、易配微处理器等优点,特别适合于构成多点的温度测控系统,可直接将温度转化成串行数字信号供微机处理,而且每片DS18B20都有唯一的产品号,可以一并存入其ROM中,以便在构成大型温度测控系统时在单线
21、上挂接任意多个DS18S20芯片。从DS18S20读出或写入DS18S20信息仅需要一根口线,其读写及其温度变换功率来源于数据总线,该总线本身也可以向所挂接的DS18B20供电,而且不需要额外电源。同时DS18B20能提供九位温度读数,它无需任何外围硬件即可方便地构成温度检测系统。而且利用本次的设计主要实现温度测试,温度显示,温度门限设定,超过设定的门限值时自动启动加热装置等功能。而且还要以单片机为主机,使温度传感器通过一根口线与单片机相连接,再加上温度控制部分和人机对话部分来共同实现温度的监测与控制。本文具体研究了如下几方面:(1)水温控制系统硬件的设计主要包括STC89C52单片机、温度传
22、感器模块、温度控制模块、显示模块、按键模块的硬件选择及论证。(2)水温控制系统软件的设计借助Keil C51开发工具,以C语言为开发语言,开发了单片机系统的温度检测与控制程序模块、对温度传感器模块、显示模块、温度控制模块进行控制,键盘导入设定的温度,使其与实际温度进行运算并输出。(3)水温控制系统的仿真以Proteus为基础,画出电路图加载各模块,加载程序并模拟实际电路的运行状态并进行仿真。1.2.2 本系统实现的功能本系统实现其具体控制功能如下:(1)能够连续测量水的温度值,可用1602LCD液晶来显示水的实际温度。(2)能够设定水的温度值,设定范围是3090。(3)用单片机STC89C52
23、控制,通过按键来控制水温的设定值,并保持恒定不变。(4)误差1。2 电阻炉温度控制系统工作原理本温度控制系统按功能分主要包括四个模块:温度传感器模块、数据处理模块、温度显示/按键模块和温度控制模块。首先由温度传感器DS18B20,对炉内温度进行实时采样并将数字信号返回给单片机。系统可通过键盘对电阻炉水温进行设置,单片机根据当前炉内温度和预设温度进行对比运算,根据控制算法,控制输出宽度可调的PWM方波,并由此控制双向可控硅的导通和关断来调节电热丝的加热功率,从而使水温迅速达到预设值并保持恒定不变。本系统以STC89C52为核心,以KEIL为系统程序开发平台,以C语言进行程序设计,以PROTEUS
24、作为仿真软件设计而成的。 系统原理图如图2.1所示,从图中可以直观地看出四个主要模块的工作过程,系统通过键盘将数据传送给单片机,并由LCD显示器显示当前水温和设定水温值,温度控制模块和温度采集模块共同形成闭环控制。温度传感器DS18B20STC89C52LCD显示键盘双向可控硅电阻炉加热器采集图2.1 系统原理图3 电阻炉温度控制系统硬件设计3.1 系统硬件设计方案系统硬件原理图如图3.1所示,系统集成了数据处理模块、温度显示/键盘模块、温度传感器模块、温度控制模块。图3.1 硬件原理图3.2 温度传感器模块温度传感器模块采用DS18B20,主要功能是实时将水温温度数据返回单片机,将模拟信号转
25、换为数字信号,便于数据处理与决策,由于此模块直接决定整个系统能否正常运行,所以是系统的核心模块。3.2.1 DS18B20基本知识DS18B20数字温度计是DALLAS公司生产的1Wire,即单总线器件,具有线路简单,体积小的特点。因此用它来组成一个测温系统,具有线路简单,在一根通信线,可以挂很多这样的数字温度计,十分方便。3.2.2 DS18B20产品的特点(1)只要求一个端口即可实现通信。(2)在DS18B20中的每个器件上都有独一无二的序列号。(3)实际应用中不需要外部任何元器件即可实现测温。(4)测量温度范围在55到125之间。(5)数字温度计的分辨率用户可以从9位到12位选择。(6)
26、内部有温度上、下限告警设置。3.2.3 DS18B20的引脚介绍DS18B20的引脚排列见图3.2,其引脚功能描述见表3.1。图3.2 底视图表3.3 DS18B20详细引脚功能描述序号名称引脚功能描述1GND地信号2DQ数据输入/输出引脚。3VDD可选择的VDD引脚。DS18B20的使用方法由于DS18B20采用的是1Wire总线协议方式,即在一根数据线实现数据的双向传输,而对STC89C52单片机来说,硬件上并不支持单总线协议,因此,我们必须采用软件的方法来模拟单总线的协议时序来完成对DS18B20芯片的访问。由于DS18B20是在一根I/O线上读写数据,因此,对读写的数据位有着严格的时序
27、要求。DS18B20有严格的通信协议来保证各位数据传输的正确性和完整性。该协议定义了几种信号的时序:初始化时序、读时序、写时序。所有时序都是将主机作为主设备,单总线器件作为从设备。而每一次命令和数据的传输都是从主机主动启动写时序开始,如果要求单总线器件回送数据,在进行写命令后,主机需启动读时序完成数据接收。数据和命令的传输都是低位在先。DS18B20的复位时序如图3.3所示:图3.3 DS18B20的复位时序DS18B20的读时序分为读0时序和读1时序两个过程,如图3.4所示。对于DS18B20的读时序是从主机把单总线拉低之后,在15微秒之内就得释放单总线,以让DS18B20把数据传输到单总线
28、上。DS18B20在完成一个读时序过程,至少需要60us才能完成。图3.4 DS18B20的读时序DS18B20的写时序分为写0时序和写1时序两个过程,如图3.5所示。对于DS18B20写0时序和写1时序的要求不同,当要写0时序时,单总线要被拉低至少60us,保证DS18B20能够在15us到45us之间能够正确地采样I/O总线上的“0”电平,当要写1时序时,单总线被拉低之后,在15us之内就得释放单总线。图3.5 DS18B20的写时序3.2.4 DS18B20的4个主要部件(1)光刻ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20 的地址序列码。64位光刻ROM的排列
29、是:开始8位(28H)是产品类型标号,接着的48 位是该DS18B20 自身的序列号,最后8 位是前面56位的循环冗余校验码(CRC=X8+X5+X4+1)。光刻ROM的作用是使每一个DS18B20 都各不相同,这样就可以实现一根总线上挂接多个DS18B20的目的。(2)DS18B20 中的温度传感器可完成对温度的测量,以12位转化为例:用16 位符号扩展的二进制补码读数形式提供,以0.0625/LSB 形式表达,其中S为符号位,温度格式如图3.6所示: Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 LS Byte Bit15 Bit14 Bi
30、t13 Bit12 Bit11 Bit10 Bit 9 Bit 8MS Byte 2223 21 202-1 2-22-3 2-4 SS S S S 262524图3.6 DS18B20温度值格式这是12位转化后得到的12 位数据,存储在DS18B20 的两个8 比特的RAM 中,二进制中的前面5 位是符号位,如果测得的温度大于0,这5 位为0,只要将测到的数值乘于0.0625 即可得到实际温度;如果温度小于0,这5 位为1,测到的数值需要取反加1 再乘于0.0625 即可得到实际温度。例如+125的数字输出为07D0H,+25.0625的数字输出为0191H,-25.0625的数字输出为FF
31、6FH,-55的数字输出为FC90H。DS18B20温度数据如表3.2所示:表3.5 DS18B20温度数据表TEMPERATUREDIGITAL OUTPUT(B)DIGITAL OUTPUT(T)+1250000 0111 1101 000007D0h+850000 0101 0101 00000550h+25.06250000 0001 1001 00010191h+10.1250000 0000 1010 001000A2h+0.50000 0000 0000 100000008h00000 0000 0000 000000000h-0.51111 1111 1111 1000FFF8
32、h-10.1251111 1111 0101 1110FF5Eh-25.06251111 1110 0110 1111FE6Eh-551111 1100 1001 0000FC90h(3)DS18B20 温度传感器的存储器DS18B20 温度传感器的内部存储器包括一个高速暂存RAM和一个非易失性的可电擦除的EEPRAM,后者存放高温度和低温度触发器TH、TL 和结构寄存器。(4)配置寄存器该字节各位的意义如表3.3所示:表3.6 配置寄存器结构11R0R1TM111低五位一直都是1 ,TM 是测试模式位,用于设置DS18B20 在工作模式还是在测试模式。在DS18B20出厂时该位被设置为0,用
33、户不要去改动。R1 和R0 用来设置分辨率,如表3.4所示:表3.7 温度值分辨率设置表R1R0分辨率温度最大转换时间009位93.75ms0110位187.5ms1011位375ms1112位750ms由表3.4可见,设定的分辨率越高,所需要的温度转换时间就越长。因此,在实际应用中要将分辨率和转换时间权衡考虑,视设备的实际需要来选择分辨率。3.2.5 温度采集模块电路图本设计采用数字传感器DS18B20,DS18B20是一种可组网的单线数字温度传感器,它采用单线总线结构,集温度测量和A/D转换于一体,直接输出数字量,用一根I/O线就可以传送数据与命令,其温度测量范围为-55+125,精度为0
34、.5,使用中无需外部器件,可利用数据线或外部电源提供电能,供电电压范围为3.35.5V,通过编程实现912位分辨率读出温度数据。使用时,将DS18B20的数据DQ与单片机的一位具有三态功能的双向口连接就可以实现数据传输,为保证在有效的时钟周期内提供足够电流,采用外部电源单独供电,在数据线上加一个6.8K的上拉电阻。具体接线如图3.7所示:图3.7 温度采集模块电路图3.3 数据处理模块单片机是温度控制系统的核心部件,负责数据处理,分别控制显示模块、温度控制模块和温度采集模块,由于数据大于5K,所以选用内存量为8K的STC89C52单片机。3.3.1 STC89C52系列主要性能参数STC89C
35、52是一种低功耗,高性能CMOS微控制器,具有8K在系统可编程Flash存储器。使用Armel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得STC89C52众多嵌入式控制应用系统提供高灵活、超有效的解决方案。STC89C52可提供以下标准功能:8K字节闪存器,256字节内部RAM,32个I/O口线,看门狗定时器,2个数据指针,3个16位定时/计数器,一个6向量2级中断结构,全双工串行通信口,片内振荡器及时钟电路。STC89C51可降至0HZ的静态
36、逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串性通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个中断或硬件复位为止。STC89C52引脚图如图3.8所示: 图3.8 STC89C52引脚图图3.9 STC89C52内部结构图P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FLASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此
37、时P0外部必须被拉高。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口输出地址的高八位。
38、在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为一些特殊功能口,如表3.5所示:表3.10 P3口功能表引脚第2功能P3.0RXD(串行口输入端)P3.1TXD(串行口输出端)P3.2INT0(外部中断0请求输入端,低电平有效)P3.3INT1
39、(外部中断1请求输入端,低电平有效)P3.4T0(定时器/记时器0计数脉冲输入端)P3.5T1(定时器/记时器1计数脉冲输入端)P3.6WR(外部数据存储器写选通信号输出端,低电平有效)P3.7RD(外部数据存储器读选通信号输出端,低电平有效)RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低8位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外
40、部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。PSEN:外部程序存储器的选通信号。在由外部程序存储器取值期间,每个机器周期两次PSEN有效。但在访问外部数据存储器时,这两次PSEN信号将不出现。/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此
41、引脚也用于施加12V编程电源(VPP)。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。3.3.2 STC89C52存储器配置1存储器结构程序存储器:如果EA引脚接地,程序读取只从外部存储器开始。对于89S52,如果EA 接VCC,程序读写先从内部存储器(地址为0000H1FFFH)开始,接着从外部寻址,寻址地址为:2000HFFFFH。数据存储器:STC89C52 有256 字节片内数据存储器。高128 字节与特殊功能寄存器重叠。也就是说高128字节与特殊功能寄存器有相同的地址,而物理上是分开的。当一条指令访问高于7FH 的地址时,寻址方式决定CP
42、U 访问高128 字RAM 还是特殊功能寄存器空间。直接寻址方式访问特殊功能寄存器(SFR)。2看门狗定时器WDT是一种需要软件控制的复位方式。WDT 由13位计数器和特殊功能寄存器中的看门狗定时器复位存储器(WDTRST)构成。WDT 在默认情况下无法工作;为了激活WDT,用户必须往WDTRST 寄存器(地址:0A6H)中依次写入01EH 和0E1H。当WDT激活后,晶振工作,WDT在每个机器周期都会增加。WDT计时周期依赖于外部时钟频率。除了复位(硬件复位或WDT溢出复位),没有办法停止WDT工作。当WDT溢出,它将驱动RSR引脚一个高个电平输出。WDT的使用:为了激活WDT,用户必须向W
43、DTRST寄存器(地址为0A6H的SFR)依次写入0E1H和0E1H。当WDT激活后,用户必须向WDTRST写入01EH和0E1H喂狗来避免WDT溢出。当计数达到8191(1FFFH)时,13 位计数器将会溢出,这将会复位器件。晶振正常工作、WDT激活后,每一个机器周期WDT 都会增加。为了复位WDT,用户必须向WDTRST 写入01EH 和0E1H(WDTRST 是只读寄存器)。WDT 计数器不能读或写。当WDT 计数器溢出时,将给RST 引脚产生一个复位脉冲输出,这个复位脉冲持续96个晶振周期(TOSC),其中TOSC=1/FOSC。为了很好地使用WDT,应该在一定时间内周期性写入那部分代
44、码,以避免WDT复位。掉电和空闲方式下的WDT:在掉电模式下,晶振停止工作,这意味这WDT也停止了工作。在这种方式下,用户不必喂狗。有两种方式可以离开掉电模式:硬件复位或通过一个激活的外部中断。通过硬件复位退出掉电模式后,用户就应该给WDT 喂狗,就如同通常STC89C52 复位一样。通过中断退出掉电模式的情形有很大的不同。中断应持续拉低很长一段时间,使得晶振稳定。当中断拉高后,执行中断服务程序。为了防止WDT在中断保持低电平的时候复位器件,WDT 直到中断拉低后才开始工作。这就意味着WDT 应该在中断服务程序中复位。为了确保在离开掉电模式最初的几个状态WDT不被溢出,最好在进入掉电模式前就复
45、位WDT。在进入待机模式前,特殊寄存器AUXR的WDIDLE位用来决定WDT是否继续计数。默认状态下,在待机模式下,WDIDLE0,WDT继续计数。为了式下复位STC89C52,用户应该建立一个定时器,定时离开待机模式,喂狗,再重新进入待机模式。3定时器定时器0和定时器1:定时器0和定时器1与STC89C51一样。定时器2:定时器2是一个16位定时/计数器,它既可以做定时器,又可以做事件计数器。其工作方式由特殊寄存器T2CON中的C/T2位选择。定时器2有三种工作模式:捕捉方式、自动重载(向下或向上计数)和波特率发生器。如表3.6 所示,工作模式由T2CON中的相关位选择。定时器2 有2 个8
46、位寄存器:TH2和TL2。在定时工作方式中,每个机器周期,TL2 寄存器都会加1。由于一个机器周期由12 个晶振周期构成,因此,计数频率就是晶振频率的1/12。表3.11 定时器/计数器2标志位TF2EXF2RCLKTCLKEXEN2TR2C/T2CP/RL276543210表3.12 定时器2功能表符号功能TF2定时器2溢出标志位,必须软件清0,RCLK=1或TCLK=1,TF2不用置位EXF2定时器2外部标志位,EXEN2=1时,T2EX上的负跳变出现或者重载时,EXEF2会被硬件置位。定时器2打开。EXF2=1,将引导CPU执行定时器2中断程序。RCLK串行口接收数据时钟标志位,若RCLK=1,串行口将使用定时器2溢出脉冲作为串行口工作方式1和工作方式3 的串口接收时钟。TCLK=0将使用定时器1计数溢出作为串口接收时钟TCLK串行口发送数据时钟标志位。当EXEN2=1时,如果定时器2没有作为串行时钟,T2EX的负跳变引起定时器2捕捉和重载,若EXEN2=0,定时器2将视T2EX为无效。EXEN2定时器2外部允许标志位,当EXEN2=1时,如果定时器2没有用作T2EX的负跳变引起定时器2捕捉和重载,若EXEN2=0,定时器2将视T2EX为无效。TR2开始/停止控制定时器2,若TR2=1,定时器2开始工作C/