还剩45页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
42.
42.
52.
62.
133.
133.
143.
153.
2.4定时/计数器的MODE
163.
2.5定时/计数器的MODE
173.
2.6定时/计数器的MODE
183.
2.7定时/计数器的MODE
1.1智能定时电源开关研究的目的和意义随着社会电子科学技术正在飞速地发展,电子系统的应用领域越来越广泛,电子设备的种类也越来越多,电子设备与人们的工作、生活的关系日益紧密,人们极大地享受着电子设备带来的便利,但是任何电子设备都有一个共同的电路——电源电路,大到超级计算机,小到袖珍计算器,所有的电子设备都必须在电源电路的支持下才能正常工作,因此电源也就理所当然地成了各种电子设备不可或缺的组成部分,其性能优劣直接关系到电子设备的技术指标及能否安全可靠的工作但人们常用的电源并不具备定时开启和关闭的功能,或许就由于这个原因给人们带来了很多没必要的损失和不便,譬如家里空调如果可以自己设置开启和关闭的时间,就可以大大减少用电量;初高中上完晚自习后,空空的教室里还是灯火通明家中的热水器不能自由设置开启关断时间而给人们带来一时不便;学校的起床广播因值班人员睡过头而推迟广播;家中的鱼缸因太久没有供氧造成鱼儿缺氧死亡;许多球迷或新闻爱好者因错过了开机时间而与精彩球赛或新闻擦肩而过;夏天里风扇的定时时间过短(一般为一小时),不便于晚上分段定时使用等等智能电源定时开关就是要实现人为的设置电源接通关断的时间,可以任意的设置24小时之内的任意一段或多段时间作为电源的开启或管段时间,这样就可以实现用电设备的通电开启与关闭的人为控制,节省大量电能,而且可以自动循环定时,只要开始工作,不需要每天设置时间,在节约用电的同时也给人们的生活带来很大的方便所以,研究智能电源定时开关,有着非常现实的意义当今社会,智能电源定时开关可以广泛应用于工业自动化控制、军工设备、科研设备、LED照明、通讯设备、电力设备、仪器仪表等领域它不仅体积小重量轻,并且电源效率非常高,效率甚至能达到90%以上迅速发展的社会,对能源的要求越来越高,智能电源定时开关的高效率不仅节省了大量电能,而且节省了大量材料,高效率的定时开关电源成为各种设备可靠工作的重要保证调查发现,大多数的设备损坏都是电源造成的,因而研究高可靠行的智能电源定时开关,对生产生活是至关重要的
1.2智能定时电源开关目前国内外研究现状随着科学技术的进步,我国的电力电子技术和电子器件都有了很大的发展智能定时电源开关技术的发展,可以从根本上解决由于电器的长时间待机能耗产生大量的用电的问题,也可以给人们的生活带来很大的方便智能定时电源开关在国内的发展还不够成熟,生活中我们还是会面临很多的不便,比如家中的热水器不能自由设置开通关断时间而导致待机能耗的增加以及给人自身带来的不便;饮水机不能设置加热时间而造成长时间的滚水进而饮水不健康;教师的灯在没有人上自习的时候还是亮着而造成电能的浪费等等国外的智能电源定时开关技术也只是在某些特定地点特定场合应用的比较成熟,他们可以帮助人们实现定时智能控制家电功能,轻松实现家庭智能,质量可靠,性能稳定,无需再担心用电过多,以及由于长时间待机可能引起的财产安全,生命安全人们可以放心的工作,安心的生活,开心的游玩智能定式电源开关以服务人们生活为本,影响生活,改变生活,创造新的生活方式只有更加贴近实用、易用和人性化的智能家居理念,才能真正体现智能家居的价值,这也是现代科技价值的核心理念通过智能家居我们能更方便的生活冬天时,在回家之前打开家中的电暖器或者空调、电饭煲,等回到家中,能感到久违的温暖夏天时,回家之前打开空调,回到家中体验凉爽睡觉时,按下睡眠模式,监控设备打开,灯光控制系统关闭光源,窗帘自动拉上,再体验轻松睡眠的同时也保证了家中的安全周末了,在家中也可以体验一把电影院的乐趣,按下影院模式,窗帘拉上,家庭影院打开,投影仪开启,投影幕落下科技改变生活,随着科技的发展,智能家居智能生活已不是个梦想为此,我们应该充分利用现有的技术、人才和资源优势,加强国际合作和技术交流,争取国内外各方面的有利因素,发展智能定时电源开关技术,提高家庭的生活质量,减少不必要的用电浪费,增强人类的节能意识,为我们子孙后代保留一点资源智能定时开关电源就是为了实现节能与给人方便而诞生的技术,所以它的发展一定会给我们的生活带来不可抹灭的作用
1.3本论文研究的主要内容本设计研究的主要内容是智能定时电源开关,本设计首先进行了硬件电路的设计,设计的主要内容是利用STC89C52RC单片机通过锁存器74HC573由数码管显示时间,另一路通过8550三极管驱动继电器吸合电路,定时时间到后,继电器能够吸合动作从而驱动电源开关,切断或通电电源并且可以实现无限制循环倒计时本设计以60秒为倒计时时间,倒计时到十秒时电源接通,零秒时关闭,继续下一轮倒计时然后设计了软件部分,并对程序进行仿真,最后进行了制作和调试,而且作出了实物,效果符合预期效果,这就是本次设计的主要内容第2章系统控制方案及硬件电路设计
2.1采用STC89C52RC为核心的单片机控制方案本设计采用的是STC89C52RC单片机芯片,通过+5V电源送给单片机供电,利用单片机的外围电路进行扩展,单片机芯片的引脚端口一端接锁存器74HC573到数码管上并起到显示时间的作用,单片机的另一个端口接8550三极管与继电器相接,倒计时一定的时间继电器吸合去驱动开关电源,及时通断达到节能的目的,为了可以快速演示本次设计的效果,本设计采用60秒倒计时为准同时通过PROTEUS画出硬件电路图,并进行了电路仿真,最会一步就是根据设计做出相应的实物这就是开关插座基本的控制方案采用STC89C52RCRC为核心的单片机控制方案系统结构图如图
2.1所示STC89C52RC晶振电路数码管显示电路继电器控制电源电路图
2.1系统结构图
2.2智能定时电源开关硬件电路
2.
2.1智能定时电源开关总体硬件电路智能定时电源开关设计的硬件电路图如图
2.2所示具体说明为核心芯片为一个STC89C52RC单片机;数码管为60秒循环倒计时显示;继电器所控制的电路为一含电源的灯泡显示电路;使用PNP型三极管驱动继电器;数码管为两位一体共阴极数码管;数码管由两个一样的锁存器74HC573驱动图
2.2智能定时电源开关硬件电路
2.
2.2数码管显示电路本设计采用两位一体共阴极数码管显示,电路图如图
2.3所示具体说明为两个573锁存器的IO口接P
0.0——P
0.7对应锁存器D0——D7;数码管的段ABCDEFGH对应74HC573-1芯片;数码管的两个位选端对应74HC573-2芯片;P
2.6接74HC573-1控制段选信号;P
2.7接74HC573-2控制位选信号关于用锁存器74HC573来驱动数码管的说明在LED和数码管显示方面,要维持一个数据的显示,往往要持续的快速的刷新尤其是在四段八位数码管等这些要选通的显示设备上在人类能够接受的刷新频率之内,大概每三十毫秒就要刷新一次这就大大占用了处理器的处理时间,消耗了处理器的处理能力,还浪费了处理器的功耗锁存器的使用可以大大的缓解处理器在这方面的压力当处理器把数据传输到锁存器并将其锁存后,锁存器的输出引脚便会一直保持数据状态直到下一次锁存新的数据为止这样在数码管的显示内容不变之前,处理器的处理时间和IO引脚便可以释放可以看出,处理器处理的时间仅限于显示内容发生变化的时候,这在整个显示时间上只是非常少的一个部分而处理器在处理完后可以有更多的时间来执行其他的任务这就是锁存器在LED和数码管显示方面的作用:节省了宝贵的MCU(微控制单元)时间图
2.3数码管显示电路
2.
2.3继电器控制电路本设计采用PNP数码管驱动继电器控制外接含电源电路,这是典型的继电器驱动电路单片机是一个弱电器件,一般情况下它们大多工作在5V甚至更低驱动电流在mA级以下而要把它用于一些大功率场合,比如继电器驱动,显然是不行的所以就要有一个环节来衔接,这个环节就是所谓的“功率驱动”继电器驱动就是一个典型的、简单的功率驱动环节图中三极管8550有两个作用一个是起放大作用,一个是起开关作用(严格来讲开关作用是放大作用的极限情况)基极处连接的是单片机的P
3.2口P
3.2口给出高电平时,三极管处于导通状态,并起放大作用,这样,继电器就能得到足够的驱动电流来正常工作当P
3.2口给出低电平时,三极管不工作,继电器因没电流通过而不工作灯泡用于指示继电器是处于导通状态(灯亮)还是处于断开状态(灯灭)电路图如图
2.4所示图
2.4继电器控制电源电路具体说明继电器通过PNP三极管驱动;三极管的基极接STC89C52RC单片机的P
3.2口来控制;继电器控制的电路须有电源,接一个灯泡来显示控制结果继电器采用松乐SRD-05VDC-SL-A,具体参数如下触点形式1C(SPDT)触点负载3A220VAC/30VDC阻抗≤100mΩ额定电流3A电气寿命≥10万次机械寿命≥1000万次阻值士10%120Ω线圈功耗
0.2W额定电压DC5V吸合电压DC
3.75V释放电压DC
0.5V工作温度-25℃~+70℃绝缘电阻≥100MΩ线圈与触点间耐压4000VAC/1分钟触点与触点间耐压750VAC/1分钟从上面的继电器线圈参数得知,继电器工作吸合电流为
0.2W/5V=40mA或5V/120Ω≈40mA三极管的选择功率PCM大于5V*继电器电流5*40mA=
0.2W的两倍;最大集电极电流(ICM)大于继电器吸合电流的两倍以上;耐压BV(CEO)大于继电器工作电压5V可选10V以上;直流放大倍数取300故本次设计所选8550PNP型三极管,放大倍数约为
350.它是一种低电压、大电流、小信号的PNP型三极管,具体参数如下集电极-基极电压-40V耗散功率
0.625W(贴片
0.3W)集电极电流
0.5A集电极--基极电压40V集电极--发射极击穿电压25V特征频率fT最小150MHZ
2.
2.4晶振电路本设计的晶振电路如图
2.5所示在单片机系统里,晶振作用非常大,它结合单片机内部电路产生单片机所需的时钟频率,单片机晶振提供的时钟频率越高,那么单片机运行速度就越快单片机一切指令的执行都是建立在晶振所提供的晶振频率之上单片机晶振是为系统提供基本的时钟信号,相当于一个系统的心脏,通常一个系统共用一个晶振,便于各部分保持同步
2.5单片机晶振电路
2.3本章小结本章介绍了智能定时电源开关的定时控制的设计过程,主要讲述硬件电路设计首先,介绍了系统总体方案的设计方案图,智能定时电源开关的定时控制系统的设计主要会用到单片机STC89C52RC、数码管显示倒计时模块、继电器控制电源模块和晶振等硬件模块,然后硬件电路设计部分对每一模块的功能和使用进行了详细的介绍,弄清楚各部分的工作方式及联系,设计出系统的总体电路图第3章STC89C52RC单片机的介绍
3.1STC89C52RC单片机的组成原理STC89C52RC单片机是宏晶科技推出的新一代高速/低功耗/超强抗干扰的单片机,指令代码完全兼容传统8051单片机,12时钟/机器周期和6时钟/机器周期可以任意选择
(1)主要特性如下
[2]增强型8051单片机,6时钟/机器周期和12时钟/机器周期可以任意选择,指令代码完全兼容传统
8051.工作电压
5.5V~
3.3V(5V单片机)/
3.8V~
2.0V(3V单片机)工作频率范围0~40MHz,相当于普通8051的0~80MHz,实际工作频率可达48MHz用户应用程序空间为8K字节片上集成512字节RAM通用I/O口(32个),复位后为P1/P2/P3/P4是准双向口/弱上拉,P0口是漏极开路输出,作为总线扩展用时,不用加上拉电阻,作为I/O口用时,需加上拉电阻ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器,无需专用仿真器,可通过串口(RxD/P
3.0TxD/P
3.1)直接下载用户程序,数秒即可完成一片具有EEPROM功能具有看门狗功能共3个16位定时器/计数器即定时器T
0、T
1、T2外部中断4路,下降沿中断或低电平触发电路,PowerDown模式可由外部中断低电平触发中断方式唤醒通用异步串行口(UART),还可用定时器软件实现多个UART工作温度范围-40~+85℃(工业级)/0~75℃(商业级)PDIP封装
(2)STC89C52RC单片机的工作模式
[3]掉电模式典型功耗
0.1μA可由外部中断唤醒,中断返回后,继续执行原程序空闲模式典型功耗2mA正常工作模式典型功耗4Ma~7mA掉电模式可由外部中断唤醒,适用于水表、气表等电池供电系统及便携设备
(3)STC89C52RC的引脚介绍
[4]STC89C5RC2的引脚图如图
3.1所示图
3.1STC89C52RC引脚图lSTC89C52RC引脚功能说明VCC(40引脚)电源电压VSS(20引脚)接地P0端口(P
0.0~P
0.7,39~32引脚)P0口是一个漏极开路的8位双向I/O口作为输出端口,每个引脚能驱动8个TTL负载,对端口P0写入“1”时,可以作为高阻抗输入在访问外部程序和数据存储器时,P0口也可以提供低8位地址和8位数据的复用总线此时,P0口内部上拉电阻有效在FlashROM编程时,P0端口接收指令字节;而在校验程序时,则输出指令字节验证时,要求外接上拉电阻P1端口(P
1.0~P
1.7,1~8引脚)P1口是一个带内部上拉电阻的8位双向I/O口P1的输出缓冲器可驱动(吸收或者输出电流方式)4个TTL输入对端口写入1时,通过内部的上拉电阻把端口拉到高电位,这是可用作输入口P1口作输入口使用时,因为有内部上拉电阻,那些被外部拉低的引脚会输出一个电流()此外,P
1.0和P
1.1还可以作为定时器/计数器2的外部技术输入(P
1.0/T2)和定时器/计数器2的触发输入(P
1.1/T2EX),具体参见表
3.1在对FlashROM编程和程序校验时,P1接收低8位地址表
3.1P
1.0和P
1.1引脚复用功能P2端口(P
2.0~P
2.7,21~28引脚)P2口是一个带内部上拉电阻的8位双向I/O端口P2的输出缓冲器可以驱动(吸收或输出电流方式)4个TTL输入对端口写入1时,通过内部的上拉电阻把端口拉到高电平,这时可用作输入口P2作为输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输出一个电流()在访问外部程序存储器和16位地址的外部数据存储器(如执行“MOVX@DPTR”指令)时,P2送出高8位地址在访问8位地址的外部数据存储器(如执行“MOVX@R1”指令)时,P2口引脚上的内容(就是专用寄存器(SFR)区中的P2寄存器的内容),在整个访问期间不会改变在对FlashROM编程和程序校验期间,P2也接收高位地址和一些控制信号P3端口(P
3.0~P
3.7,10~17引脚)P3是一个带内部上拉电阻的8位双向I/O端口P3的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入对端口写入1时,通过内部的上拉电阻把端口拉到高电位,这时可用作输入口P3做输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输入一个电流()在对FlashROM编程或程序校验时,P3还接收一些控制信号P3口除作为一般I/O口外,还有其他一些复用功能,如表
3.2所示表
3.2P3口引脚复用功能RST(9引脚)复位输入当输入连续两个机器周期以上高电平时为有效,用来完成单片机单片机的复位初始化操作看门狗计时完成后,RST引脚输出96个晶振周期的高电平特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能无效DISRTO默认状态下,复位高电平有效ALE/(30引脚)地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低8位地址的输出脉冲在Flash编程时,此引脚()也用作编程输入脉冲在一般情况下,ALE以晶振六分之一的固定频率输出脉冲,可用来作为外部定时器或时钟使用然而,特别强调,在每次访问外部数据存储器时,ALE脉冲将会跳过如果需要,通过将地址位8EH的SFR的第0位置“1”,ALE操作将无效这一位置“1”,ALE仅在执行MOVX或MOV指令时有效否则,ALE将被微弱拉高这个ALE使能标志位(地址位8EH的SFR的第0位)的设置对微控制器处于外部执行模式下无效(29引脚)外部程序存储器选通信号()是外部程序存储器选通信号当AT89C51RC从外部程序存储器执行外部代码时,在每个机器周期被激活两次,而访问外部数据存储器时,将不被激活/VPP(31引脚)访问外部程序存储器控制信号为使能从0000H到FFFFH的外部程序存储器读取指令,必须接GND注意加密方式1时,将内部锁定位RESET为了执行内部程序指令,应该接VCC在Flash编程期间,也接收12伏VPP电压XTAL1(19引脚)振荡器反相放大器和内部时钟发生电路的输入端XTAL2(18引脚)振荡器反相放大器的输入端
3.2单片机定时/计数器的原理与应用方法
3.
2.1定时/计数器的基本结构定时/计数器的基本结构如图
3.2所示
[5]包括两个定时器/计数器T0和T
1、工作方式寄存器TMOD和控制寄存器TCON其中每个定时/计数器是由两个8位寄存器TH
0、TL0和TH
1、TH1构成,用于存放定时/计数器的计数初值和经过值;工作方式寄存器TMOD用于定时/计数器的工作方式设置;控制寄存器TCON用来对定时/计数器进行启动、停止运行控制管理图
3.2定时/计数器的基本结构
3.
2.2定时/计数器的工作原理定时器T0和T1分别是由TH
0、TL0和TH
1、TL1,这两个8位计数器构成的16位计数器两个16位计数器都可以理解为16位的加1计数器
[7]T0和T1定时/计数器都可由软件设置为定时或计数的工作方式,其中T1还可作为串行口的波特率发生器T0和T1这些功能的实现都由特殊功能寄存器中的TMOD和TCON进行控制当T0或T1用作对外部事件计数的计数器时,通过89C51外部引脚T0(P
3.4)或T1(P
3.5)对外部脉冲信号进行计数当加在T0或T1引脚上的外部脉冲信号出现一个由1到0的负跳变时,计数器加1,如此直至计数器产生溢出当T0或T1用作定时器时,对外接晶振产生的振荡信号进行12分频后,提供给计数器,作为计数的脉冲输入,计数器对输入的脉冲进行计数,直至产生溢出不论T0或T1是工作于定时方式还是计数方式,它们在对内部时钟或外部事件进行计数时,都不占用CPU时间,直到定时/计数器产生溢出如果满足条件,CPU才会停下当前的操作,去处理“时间到”或者“计数满”这样的事件因此,定时/计数器是与CPU‘并行’工作的,除非溢出不会影响CPU的其它工作
3.
2.3定时/计数器的方式寄存器与控制寄存器
[6]
[7]T0和T1由两个8位寄存器TMOD和TCON来控制,分别用来设置各个定时/计数器的工作方式、选择定时或计数功能、控制启动运行以及作为运行状态的标志等当89C52系统复位时,TMOD和TCON所有位都清0
(1)定时器/计数器的方式寄存器TMOD图
3.3定时/计数器的方式寄存器TMOD在特殊功能寄存器中,字节地址为89H由于TMOD只能进行字节寻址,所以对T0或T1工作方式的控制只能整字节8位写入在TMOD中,高4位用于对定时器T1的方式控制,而低4位用于对定时器T0的方式控制图
3.3中给出了各位的定义,各位功能简述如下工作方式选择位M1M0定时器工作方式选择位通过对M1M0的设置,可使定时器工作于4种工作方式之一参考表
3.3表
3.3定时器工作方式C/T定时/计数器选择位—C/T=1,工作于计数方式;—C/T=0,工作于定时方式GATE门控位由GATE、软件控制位TR1/TR0和INT1/INT0共同决定定时/计数器的打开或关闭—GATE=0,只要用指令置TR1/TR0为1即可启动定时/计数器工作,而不管INT的状态如何;—GATE=1,只有INT1/INT0为高电平且用指令置TR1/TR0为1时,才能启动定时/计数器工作
(2)定时/计数器控制寄存器TCONTCON是一个特殊功能寄存器,TCON的字节地址为88H,其各位地址从88位开始分别为88H~8FH高4位为定时/计数器的运行控制和溢出标志位,低4位与外部中断有关其格式如下表列TCON的高4位的功能描述如下
①TF1/TF0溢出标志位当T1或T0产生溢出时,由硬件自动置位中断触发器TF1或TF0,并向CPU申请中断如果用中断方式,则CPU在响应中断进入中断服务程序后,TF1或TF0被硬件自动清0如果是用软件查询方式对TF1或TF0进行查询,则在定时/计数器回0后,应当用指令将TF1或TF0清0
②TR1/TR0运行控制位用指令“SETBTR1”对TR1或TR0进行置位或清零,也可以启动或关闭T1或T0的运行
3.
2.4定时/计数器的MODE0
[8]MODE0为13位定时/计数器工作方式,其内部结构如图
3.4所示由图
3.4可知,MODE0实际上是由TL0(5位)和TH0(8位)构成的13位脉冲计数器,并由TCON和TMOD控制和管理设定MODE0的步骤
(1).设定MODE0的步骤(四选1)MOVTMOD,#00HTIMER0设定计时工作方式内部输入MOVTMOD,#00HTIMER1设定计时工作方式内部输入MOVTMOD,#04HTIMER0设定计数工作方式T0输入MOVTMOD,#40HTIMER1设定计数工作方式T1输入
(2).预置计数初值MOVTLX,#8192–COUNTMOD/32;TLX的值为计数值除以32的余数MOVTHX,#8192–COUNT/32;THX为计数值除以32的商
(3).启动定时器SETBTRX
(4).检查TFX是否溢出JBCTFX;查询方式检查TFX是否溢出,溢出转移,否则等待图
3.4方式0内部结构
3.
2.5定时/计数器的MODE1
[8]方式1和方式0的工作原理基本相同,唯一不同是T0和T1工作在方式1时,计数长度M是2的16次方,内部结构参考图
3.516位的初值直接拆成高低字节,分别送入TH和TL即可,对于实际应用比MODE0更有实际意义设定MODE1的步骤
(1).设定MODE1的步骤(四选1)MOVTMOD,#01HTIMER0设定计时工作方式内部输入MOVTMOD,#10HTIMER1设定计时工作方式内部输入MOVTMOD,#05HTIMER0设定计数工作方式T0输入MOVTMOD,#50HTIMER1设定计数工作方式T1输入
(2).启动定时器SETBTRX
(3).预置计数初值MOVTLX,#65536–COUNTMOD256MOVTHX,#65536–COUNT/256
(4).检查TFX是否溢出JBCTFX图
3.5方式1内部结构
3.
2.6定时/计数器的MODE2
[8]方式1和方式0的工作原理基本相同,计数溢出后计数器清0在循环计数或循环定时应用时就存在反复设置计数初值的问题不仅会给程序设计带来不便,同时影响定时的精度针对以上问题,最好的解决办法就是使用方式2,它具有自动加载功能,即自动加载计数初值在这种方式下,把16位计数器分为两部分,即TL作为计数器,以TH作初值预置寄存器,初始化时将计数初值分别装入TL和TH中计数溢出后由预置寄存器TH以硬件方法自动给TL重新加载,由硬件重新赋值,所以也称为硬件自动重加载工作方式其内部结构参考图
3.6定时器T1工作在方式2时可直接用作串行口波特率发生器的控制图
3.6方式2内部结构设定MODE2的步骤
(1).设定MODE2的步骤(四选1)MOVTMOD,#02HTIMER0设定计时工作方式内部输入MOVTMOD,#20HTIMER1设定计时工作方式内部输入MOVTMOD,#06HTIMER0设定计数工作方式T0输入MOVTMOD,#60HTIMER1设定计数工作方式T1输入
(2).启动定时器SETBTRX
(3).预置计数初值MOVTLX,#256–COUNTMOVTHX,#256–COUNT
(4).检查TFX是否溢出JBCTFX
3.
2.7定时/计数器的MODE3
[8]在工作方式3模式下,定时/计数器T0被拆成两个独立的8位计数器TL0和TH0其结构如图
3.7所示其中TL0既可以作计数器使用,也可以作为定时器使用,定时/计数器T0的各控制位和引脚信号全归它使用其功能和操作与方式0或方式1完全相同TH0就没有那么多“资源”可利用了,只能作为简单的定时器使用,而且由于定时/计数器T0的控制位已被TL0占用,因此只能借用定时/计数器1的控制位TR1和TF1,也就是以计数溢出去置位TF1,TR1则负责控制TH0定时的启动和停止由于TL0既能作定时器也能作计数器使用,而TH0只能作定时器使用而不能作计数器使用,因此在方式3模式下,定时/计数器0可以构成二个定时器或者一个定时器和一个计数器如果定时/计数器0工作于工作方式3,那么定时/计数器1的工作方式就不可避免受到一定的限制,因为自己的一些控制位已被定时/计数器借用,只能工作在方式
0、方式1或方式2下,如果设置T1工作在方式3,则T1停止工作,相当于其他方式时令TR1=0图
3.7方式3内部结构设定MODE3的步骤
(1).设定MODE3的步骤(三选1)MOVTMOD,#03HTL0设定计时工作方式内部输入MOVTMOD,#03HTH0设定计时工作方式内部输入MOVTMOD,#07HTL0设定计数工作方式T0输入
(2).启动定时器SETBTRX
(3).预置计数初值MOVTL0,#256–COUNT或MOVTH0,#256–COUNT
(4).检查TFX是否溢出JBCTFX小结通过定时器/计时器的结构、工作原理和应用的介绍,知道T0和T1的设置步骤几乎是相同的,分别要定义TMOD、TCON、TH
0、TL
0、TH1和TL1等寄存器后,定时计数器方能正确操作在程序刚规划的阶段时,每个定时器的操作和控制模式都必须考虑清楚后才可以开始写程序,具体的操作分解为以下几步设置步骤1确定是定时还是计数操作,定时TMOD中的C/T位为0,计数时C/T=1设置步骤2确定定时/计数时是否受外部的硬件信号控制,若不受外部INT0或INT1引脚控制时,TMOD中的GATE位为0,否则需设成1有关GATE的使用将在中断章节讨论设置步骤3决定计数器的模式,模式0时最大计数值为8192,模式1时最大计数值为65536,两个计数器均没有自动载入的功能;模式2时最大计数值为256,且可自动载入计数值;模式3时有两个计数器,其最大计数值都是256,各种模式的选择应仔细考虑将前3个步骤的结果组合起来,成为一个给TMOD寄存器的设置值设置步骤4:决定计数器TH
0、TL
0、TH1和TL1的预置初值,由于MCS-51的计数器都属于可载入式的加1计数器,所以正确的预置初值应该是该计数器的最大可计数值减去欲计数值,然后将该结果分成两部分后,再送到THX和TLX两个计数器设置步骤5开始启动定时器/计数器,将TCON中的TR1和TR0位设成1设置步骤6查询计数是否溢出,即TFX=1,停止计数,程序转移执行主程序或分支程序若要正常操作所必须设置的寄存器和位,要注意的是TMOD寄存器无法进行位寻址,所以必须两个定时器模式同时设置
3.3单片机中断系统的介绍
[10]
[11]
[12]
[6]
(1)单片机中断级别
(2)中断允许寄存器IEEA---全局中允许位EA=1,打开全局中断控制,在此条件下,由各个中断控制位确定相应中断的打开或关闭EA=0,关闭全部中断-------,无效位ET2---定时器/计数器2中断允许位ET2=1,打开T2中断ET2=0,关闭T2中断ES---串行口中断允许位ES=1,打开串行口中断ES=0,关闭串行口中断ET1---定时器/计数器1中断允许位ET1=1,打开T1中断ET1=0,关闭T1中断EX1---外部中断1中断允许位EX1=1,打开外部中断1中断EX1=0,关闭外部中断1中断ET0---定时器/计数器0中断允许位ET0=1,打开T0中断ET0=0,关闭T0中断EX0---外部中断0中断允许位EX0=1,打开外部中断0中断EX0=0,关闭外部中断0中断
(3)中断优先级寄存器IP-------,无效位PS---串行口中断优先级控制位PS=1,串行口中断定义为高优先级中断PS=0,串行口中断定义为低优先级中断PT1---定时器/计数器1中断优先级控制位PT1=1,定时器/计数器1中断定义为高优先级中断PT1=0,定时器/计数器1中断定义为低优先级中断PX1---外部中断1中断优先级控制位PX1=1,外部中断1中断定义为高优先级中断PX1=0,外部中断1中断定义为低优先级中断PT0---定时器/计数器0中断优先级控制位PT0=1,定时器/计数器0中断定义为高优先级中断PT0=0,定时器/计数器0中断定义为低优先级中断PX0---外部中断0中断优先级控制位PX0=1,外部中断0中断定义为高优先级中断PX0=0,外部中断0中断定义为低优先级中断
(4)定时器/计数器工作模式寄存器TMODGATE---门控制位GATE=0,定时器/计数器启动与停止仅受TCON寄存器中TRXX=01来控制GATE=1,定时器计数器启动与停止由TCON寄存器中TRXX=01和外部中断引脚(INT0或INT1)上的电平状态来共同控制C/T\---定时器和计数器模式选择位C/T\=1,为计数器模式;C/T\=0,为定时器模式M1M0---工作模式选择位
(5)定时器/控制器控制寄存器TCONTF1---定时器1溢出标志位当定时器1记满溢出时,由硬件使TF1置1,并且申请中断进入中断服务程序后,由硬件自动清0需要注意的是,如果使用定时器中断,那么该位完全不用人为去操作,但是如果使用软件查询方式的话,当查询到该位置1后,就需要用软件清0TR1---定时器1运行控制位由软件清0关闭定时器1当GATE=1,且INIT为高电平时,TR1置1启动定时器1;当GATE=0时,TR1置1启动定时器1TF0---定时器0溢出标志,其功能及其操作方法同TF1TR0---定时器0运行控制位,其功能及操作方法同TR1IE1---外部中断1请求标志当IT1=0时,位电平触发方式,每个机器周期的S5P2采样INT1引脚,若NIT1脚为定电平,则置1,否则IE1清0当IT1=1时,INT1为跳变沿触发方式,当第一个及其机器周期采样到INIT1为低电平时,则IE1置1IE1=1,表示外部中断1正向CPU中断申请当CPU响应中断,转向中断服务程序时,该位由硬件清0IT1外部中断1触发方式选择位IT1=0,为电平触发方式,引脚INT1上低电平有效IT1=1,为跳变沿触发方式,引脚INT1上的电平从高到低的负跳变有效IE0---外部中断0请求标志,其功能及操作方法同IE1IT0---外部中断0触发方式选择位,其功能及操作方法同IT1从上面的知识点可知,每个定时器都有4种工作模式,可通过设置TMOD寄存器中的M1M0位来进行工作方式选择方式1的计数位数是16位,对T0来说,由TL0寄存器作为低
8、TH0寄存器作为高8位,组成了16位加1计数器关于如何确定定时器T0的初值问题定时器一但启动,它便在原来的数值上开始加1计数,若在程序开始时,我们没有设置TH0和TL0,它们的默认值都是0,假设时钟频率为12MHz,12个时钟周期为一个机器周期,那么此时机器周期为1us,记满TH0和TL0就需要216-1个数,再来一个脉冲计数器溢出,随即向CPU申请中断因此溢出一次共需65536us约等于
65.6ms,如果我们要定时50ms的话,那么就需要先给TH0和TL0装一个初值,在这个初值的基础上记50000个数后,定时器溢出,此时刚好就是50ms中断一次,当需要定时1s时,写程序时当产生20次50ms的定时器中断后便认为是1s,这样便可精确控制定时时间啦要计50000个数时,TH0和TL0中应该装入的总数是65536-50000=
15536.,把15536对256求模15536/256=60装入TH0中,把15536对256求余15536/256=176装入TL0中以上就是定时器初值的计算法,总结后得出如下结论当用定时器的方式1时,设机器周期为TCY,定时器产生一次中断的时间为t,那么需要计数的个数为N=t/TCY,装入THX和TLX中的数分别为THX=65536-N/256TLX=65536-N%256u中断服务程序的写法void函数名interrupt中断号using工作组{中断服务程序内容}在写单片机的定时器程序时,在程序开始处需要对定时器及中断寄存器做初始化设置,通常定时器初始化过程如下
(1)对TMOD赋值,以确定T0和T1的工作方式
(2)计算初值,并将初值写入TH
0、TL0或TH
1、TL1
(3)中断方式时,则对IE赋值,开放中断
(4)使TR0和TR1置位,启动定时器/计数器定时或计数
3.4本章小结本章主要介绍了本次设计需要用到的单片机的部分原理第一,介绍了单片机芯片STC89C52RC的基本组成原理以及40个引脚功能;第二,介绍了单片机定时/计数器的结构及工作原理和方式;第三,介绍了单片机中断系统的原理以及工作方式在对系统所用核心芯片STC89C52RC单片机基本原理以及定时中断工作方式介绍的基础上,接下来就是系统的软件程序设计部分,以完成本次的设计第4章软件设计
4.1软件开发环境STC89C52RC单片机软件开发平台为Keiluvision4C51,仿真环境为Protues,下载软件为STC_ISPKeilC51是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起运行Keil软件需要WIN
98、NT、WIN
2000、WINXP等操作系统
[16]Protues软件是英国Labcenterelectronics公司出版的EDA工具软件它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件它是目前最好的仿真单片机及外围器件的工具虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐Proteus是世界上著名的EDA工具仿真软件,从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持
8051、HC
11、PIC10/12/16/18/24/30/DsPIC
33、AVR、ARM、8086和MSP430等,2010年即将增加Cortex和DSP系列处理器,并持续增加其他系列处理器模型在编译方面,它也支持IAR、Keil和MPLAB等多种编译
[16]STC-ISP是一款单片机下载编程烧录软件,是针对STC系列单片机而设计的,可下载STC89系列、12C2052系列和12C5410等系列的STC单片机,使用简便,现已被广泛使用
4.2智能定时电源开关主程序图在本次设计中,主程序是在单片机的控制下进行60秒循环倒计时,当时间倒计时到10秒时,继电器有电流通过进而接通被控电源电路,灯泡发光,当倒计时到0秒时,继电器没有电流通过进而断开被控电源电路,灯泡熄灭,与此同时,时间又从60秒开始倒计时,进行如上的动作,如此无限循环往复的进行下去具体流程图如图
4.1所示开始系统初始化60秒倒计时开始倒计时过程N倒计时到10秒?Y继电器通,灯泡亮N倒计时到0秒?Y继电器断,灯泡灭图
4.1系统主程序图
4.3智能定时电源开关实现程序由于学过C语言的编程方法,而且C语言编程既简洁又方便,所以本次设计选择利用C语言编写程序来实现智能定时电源开关的功能,具体程序如下#includereg
51.hsbitdula=P2^6;//位选十位sbitwela=P2^7;//位选个位sbitJDQ=P3^2;unsignedcharjka1a0s=60;unsignedintm;unsignedcharcodetable[]={0x3f0x060x5b0x4f0x660x6d0x7d0x070x7f0x6f0x770x7c0x390x5e0x790x71};voiddelayunsignedchari{forj=i;j0;j--fork=125;k0;k--;}voiddisplayunsignedcharsh_cunsignedcharg_c//个位与十位数字的显示{dula=0;P0=table[sh_c];dula=1;dula=0;wela=0;P0=0xfe;wela=1;wela=0;delay5;P0=table[g_c];dula=1;dula=0;P0=0xfd;wela=1;wela=0;delay5;}voidmain{TMOD=0x01;//选择中断类型为定时器中断TR0=1;//总中断打开TH0=65536-46080/256;//由于晶振为
11.0592故所记次数应为46080,计时器每隔50000微秒发起一次中断TL0=65536-46080%256;//46080的来历,为50000*
11.0592/12ET0=1;//定时器中断0打开EA=1;//使能中断打开while1{ifm==20{m=0;s--;}a0=s%10;a1=s/10;displaya1a0;ifs==10{//TR0=0;//时间到,定时器关闭JDQ=0;//继电器打开,灯泡亮}ifs==0{JDQ=1;//继电器关断,灯泡灭s=60;//break;}}}voidtime0interrupt1{TH0=65536-46080/256;TL0=65536-46080%256;m++;}
4.4本章小结本章主要介绍了智能定时电源开关设计的软件开发环境以及系统主流程图,最后介绍了用C语言编写的实现定时智能定时电源开关控制的程序接下来就是系统的调试与实物的制作,以完成本次设计第5章系统调试与仿真设计
5.1KEIL工程的建立Keil单片机模拟调试软件对MCS51单片机应用系统的软件开发过程采用工程(Project)管理工程保存着程序编辑的信息和程序调试的环境在开始编写程序之前首先应该建立一个工程新建一个工程之前通常还需要建立一个文件夹,后面产生的工程文件和源程序文件等都将存储在这个文件夹之中在如图所示的集成开发环境的口中选择Project→NewProject命令将打开建立新工程的对话框,如图
5.1图
5.1工程的建立在“保存在”下拉列表框中选择新建工程将要存储的文件夹名,在“文件名”文本框中输入工程的名称,注意对于工程不要添加扩展名,单击“保存”按钮即可完成一个工程的创建单击“保存”按钮在完成一个工程创建的同时也打开了单片机芯片型号选择对话框如图
5.2所示的对话框已经完成了芯片型号的选择图
5.2芯片的选择Keil单片机模拟调试软件支持许多公司生产的MCS51单片机兼容产品如前所述,本书应用电路中采用STC公司的STC89C52RC芯片,由于Proteus没有这款芯片,下面以这AT89C52芯片为例介绍如何实现选择在图所示的对话框中的Database列表框中首先选择生产芯片的公司名称Atmel,双击这个公司名称即可打开Atmel公司目前生产的所有芯片型号接着在列出的产品清单中选择将使用的AT89C52芯片,如图5-2所示最后单击“确定”按钮即可完成芯片的选择完成芯片的选择后又回到如图所示的集成开发环境的窗口,但是这时该窗口中的工程管理窗口不再是空白,在它的文件选项卡中出现目录列表Target1和它的子目录SourceGroup1集成开发环境中的菜单Project内还包含OpenProject和CloseProject等选项OpenProject选项用来以后再次进入已经建立的工程,选择Project→OpenProject命令将打开选择工程的对话框在“查找范围”下拉列表框中选择欲打开的工程所在的文件夹,列表框中将出现该文件夹中的所有工程,选择将要打开的工程,单击“打开”按钮即可打开一个工程选择Project→CloseProject命令将关闭当前的工程
5.2源文件的输入Keil单片机模拟调试软件内集成了一个文本编辑器,用该文本编辑器可以编辑源程序如图
5.3所示在图
5.3中已经完成了汇编语言源文件的输入,并且完成了源程序向当前工程的添加图
5.3源文件输入完成汇编语言源文件的输入后,在集成开发环境中选择File→SaveAs命令可以完成文件的第一次存储注意,汇编语言源文件的扩展名应该是ASM,它应该与工程文件存储在同一文件夹内在完成文件的第一次存储后,当对汇编语言源文件又进行了修改,再次存储文件时则应该选择File→Save命令、单击保存工具按钮或者按快捷键Ctrl+S实现文件的保存需要注意的是,当把汇编语言源文件加入工程但还没有关闭加入文件对话框时,有可能被误认为文件没有成功地加入工程而再次进行加入操作,系统将显示所需的文件已经加入的提示在这种情况下,单击提示框中的“确定”按钮,再单击Close按钮可以关闭加入文件对话框
5.3硬件电路的仿真在设置好工程后就可以进行编译、连接选择Project中的Buildtarget,对当前工程进行连接,编译过程中会出现很多语法错误,会有错误报告出现,双击该行,可以定位到出错的位置,对源程序反复新盖之后,最终会得到如图所示的结果,获得了名为Hex的文件,该文件即可被编程器读入写到芯片中,同时还会产生一些其它的相关文件如图
5.4所示图
5.4调试后的结果写到芯片中的程序,可以用Proteus中进行仿真,仿真结果如下图
5.5所示仿真过程中出现很多的错误,仿真部分采用protus7professional软件,此软件功能强大且操作较为简单,可以很容易的实现各种系统的仿真首先打开protus7professional软件,在元件库中找到要选用的所有元件,然后进行原理图的绘制;绘制好后再选择wave6000已经编译好的*.hex文件,选择运行,观察显示结果,根据显示的结果和课题的要求再修改程序,再运行查,直到满足要求图
5.5仿真的结果
5.4本章小结本章主要介绍了在智能定时电源开关软件程序编写结束之后通过KEIL软件进行编译生成HEX文件,然后导入PROTEUS已画好的硬件电路的单片机中进行系统仿真,仿真结果符合预期效果,接下来就是实物的制作了结论经过三个多月的设计时间,本次毕业设计智能定时电源开关设计已经基本完成了通过这次毕业设计,我掌握了一些实践性质的设计的基本步骤首先,明确设计任务,并且要对市场上的电源开关的定时控制要有初步了解,还要知道前人做了哪些工作,本设计方案的可利用程度等等其次,要对整个设计系统做深入的方案论证、计算并且结合现有实际条件,确立自己的设计方案,进而,就是对自己确立的方案进行硬件实现,包括所用原器件选型,以及控制部分整个单片机系统的硬件选型与设计,并用Proteus绘制出整个系统总体电路图接着就进入到软件编程设计了,要画出系统的主流程图,弄清楚各个部分实现的功能,最后对整个系统进行软件编程实现到此为止,这个系统的设计基本上已经完成了,最后就是要经过生产实践的检验,确定我们的设计是否符合实际要求,具有可利用价值本系统采用的STC89C52单片机控制,实现能定时给电器供电或断电的控制,操作使用方便用单片机C语言编程,采用模块化的结构设计,提高了可靠性和可扩展性整个设计过程同时也是一个很好的学习机会,例如以前自己学习过运用Proteus绘图,但不是很通透,经过这次设计后自己在这方面有很大地进步;当然整个设计过程学到的知识和经验远远比运用Proteus、学会查找多方资料多得多,这些对于自己以后的学习和工作将受益匪浅但必须认识到的是,在设计中也存在着不足之处,例如单片机控制系统在可靠性方面相对于可编程控制器(PLC)控制系统略为欠缺,并且自己深入实践不够,所做的系统也不是很完善但是我想通过以后的学习和努力一定会有所提高,能够做出更好的设计所设计系统不仅只适用于对电器开关的控制还要向外部扩展,做到较强的通用性和适应性最后我觉得一个人的成功,无论什么事,都少不了身边的人的支持,这次设计,指导老师和同学都给了我很大帮助,让我学到了很多东西,我会在将来把这些东西,更重要的是这种精神永远记住,进一步取得更大的成就参考文献
[1]张毅坤.单片微型计算机原理及应用[M].西安西安电子科技大学出版社
[2]童一帆.单片机测控技术[M].北京北京航空航天大学出版社
[3]石从刚.MCS-51实训教程[M].北京北京航空航天大学出版社
[4]李华,孙晓民等.MCS-51系列单片机实用接口技术[M].北京:北京航空航天大学出版社,1995:203-215
[5]何立民.单片机应用技术选编[M].北京:北京航空航天大学出版社1999
[6]李全利.单片机原理及接口技术[M].第二版.北京高等教育出版社,2009144-147
[7]江晓安,董秀峰.模拟电子技术[M].第三版.西安西安电子科技大学出版社,200881-86
[8]江晓安等.数字电子技术[M].第三版.西安西安电子科技大学出版社,2008151
[9]谭浩强.C语言程序设计[M].第三版.北京清华大学出版社,2005204-210
[10]戴佳等.51单片机实例精讲[M].第三版.北京电子工业出版社,200854-76
[11]张鑫.单片机原理及应用[M].第二版.北京电子工业出版社,2010:168-173
[12]张迎新.单片机初级教程—单片机基础[M].第二版.北京:北京航空航天大学出版社2006:173-184
[13]张俊谟.单片机中级教程—原理与应用[M].第二版.北京:北京航空航天大学出版社2006:101-103
[14]何立民.单片机高级教程—应用与设计[M].第二版.北京:北京航空航天大学出版社2007:502-536
[15]V.Yu.TeplovA.V.Anisimov.ThermostattingSystemUsing.aSingle-ChipMicrocomputerandThermoelectricModulesBasedonthePeltierEffect[J]2002
[16]AllanR.Hambley.ElectronicsSecondEdition[M].PublishingHouseofElectronicsIndustry,2005214:12-14
[17]BatesMartin.InterfacingPICmicrocontrollers:embeddeddesignbyinteractivesimulation[M].GodinLyttlepress,200951:6-9
[18]Yang.Y.Yi.J.WooY.Y.andKim.B.:‘OptimumdesignforlinearityandefficiencyofmicrowaveDohertyamplifierusinganewloadmatchingtechnique’Microw[J].20014412:20–36
[19]VizimullerP.:‘RFdesignguide-systemscircuitsandequations’ArtechHouseBostonMA1995
[6]R.Dye“VisualObject-OrientatedProgramming”Dr.DobbsMacintoshJournalSept.1st19913216:12-16致谢通过本次设计,让我认识并了解到了基本的设计开发过程,在这过程中,刘老师给了我很多指点和帮助,我身边的同学也给了我很多的启示和帮助,而且我觉的对以前不了解的单片机知识有了一个更高更深的了解,也学会了PROTEUS软件画硬件电路以及仿真的方法,中途遇见很多困难,我都经过努力克服掉了,最终取得成功我相信我所学的东西在以后的工作学习中会起更大的作用在本次设计中得到了指导老师刘志成老师的大力支持,在此表示衷心的感谢!!感谢各位老师多年来的教诲与帮助,也感谢各位同学在学习上的帮助!我会再接再厉,不让大家失望的附录一智能定时电源开关的程序设计#includereg
51.hsbitdula=P2^6;//位选十位sbitwela=P2^7;//位选个位sbitJDQ=P3^2;unsignedcharjka1a0s=60;unsignedintm;unsignedcharcodetable[]={0x3f0x060x5b0x4f0x660x6d0x7d0x070x7f0x6f0x770x7c0x390x5e0x790x71};voiddelayunsignedchari{forj=i;j0;j--fork=125;k0;k--;}voiddisplayunsignedcharsh_cunsignedcharg_c//个位与十位数字的显示{dula=0;P0=table[sh_c];dula=1;dula=0;wela=0;P0=0xfe;wela=1;wela=0;delay5;P0=table[g_c];dula=1;dula=0;P0=0xfd;wela=1;wela=0;delay5;}voidmain{TMOD=0x01;//选择中断类型为定时器中断TR0=1;//总中断打开TH0=65536-46080/256;//由于晶振为
11.0592故所记次数应为46080,计时器每隔50000微秒发起一次中断TL0=65536-46080%256;//46080的来历,为50000*
11.0592/12ET0=1;//定时器中断0打开EA=1;//使能中断打开while1{ifm==20{m=0;s--;}a0=s%10;a1=s/10;displaya1a0;ifs==10{//TR0=0;//时间到,定时器关闭JDQ=0;//继电器闭合,灯泡亮}ifs==0{JDQ=1;//继电器断开,灯泡灭s=60;//break;}}}voidtime0interrupt1{TH0=65536-46080/256;TL0=65536-46080%256;m++;}附录二智能定时电源开关硬件接线图引脚号功能特性P
1.0T2(定时器/计数器2外部计数输入),时钟输出P
1.1T2EX(定时器/计数器2捕获/重装触发和方向控制)引脚号复用功能P
3.0RXD(串行输入口)P
3.1TXD(串行输出口)P
3.2(外部中断0)P
3.3(外部中断1)P
3.4T0(定时器0的外部输入)P
3.5T1(定时器1的外部输入)P
3.6(外部数据存储器写选通)P
3.7(外部数据存储器读选通)M1M0方式说明00013位定时器TH的8位和TL的低5位)01116位定时器/计数器1 02自动重装入初值的8位计数器113T0分成两个独立的8位计数器T1在方式3时停止工作TF1TR1TF0TR0IE1IT1IE0IT0中断源默认中断级别中断序号(C语言用)INIT0---外部中断0最高0T0---定时器/计数器0中断第21INIT1---外部中断1第32T1----定时器/计数器1中断第43TI/RI---串行口中断第54T2---定时器/计数器2中断最低5位序号DB7DB6DB5DB4DB3DB2DB1DB0符号位EA-------ET2ESET1EX1ET0EX0位序号DB7DB6DB5DB4DB3DB2DB1DB0位地址---------PSPT1PX1PT0PX0位序号DB7DB6DB5DB4DB3DB2DB1DB0位符号GATEC/T\M1M0GATEC/T\M1M0M1M0工作模式00方式0,为13位定时器/计数器01方式1,为16位定时器/计数器10方式2,8位初值自动重装的8位定时器/计数器11方式3,仅适用于T0,分成两个8位计数器,T1停止工作位序号DB7DB6DB5DB4DB3DB2DB1DB0符号位TF1TR1TF0TR0IE1IT1IE0IT0。