定时通电开关的设计与实现本科毕业论文(设计_第1页
定时通电开关的设计与实现本科毕业论文(设计_第2页
定时通电开关的设计与实现本科毕业论文(设计_第3页
定时通电开关的设计与实现本科毕业论文(设计_第4页
定时通电开关的设计与实现本科毕业论文(设计_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

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

文档简介

1、 定时通电开关的设计与实现 摘要:在科学技术日益发展的今天,自动控制技术在人类活动的各个领域也越来越广泛,它的水平已成为衡量一个国家生产和科学技术先进与否的一项重要标志,自动控制技术作为自动化的强有力手段,越来越多地与计算机技术,电子技术,信息技术结合起来,对促进我国现代化建设起到越来越重要的作用,也为人们的生活提供了许多便利。 随着家用电器的越来越普及和人们生活节奏的加快,人们对电器的依赖性进一步提高,对电器的定时需求也进一步加大。智能定时通电开关可以实现人为地设置电源的开通关断时间,这样就可以实现用电设备的通电开启与关闭的人为控制,在方便人们的同时又节省了大量电能。 本文介绍了一种基于ST

2、C89C52RC单片机的智能定时通电开关设计方案,该系统是通过STC89C52RC的定时器与中断设计一段时间的倒计时,当待机时到了预设的时间继电器就会接通,相应的电器就会开始工作,时间结束继电器关闭,电器也停止工作。本设计通过程序的循环设计可以实现倒计时的无限重复,即第一次倒计时结束后会自动复位,继续下一轮的倒计时,所以一旦开始工作,真正实现智能、定时。关键词:STC89C52RC,定时器,继电器Design and implementation of power-switch timerAbstract:In todays growing science and technology, au

3、tomatic control technology in various fields of human activity has become increasingly widespread, it has become a measure of the level of production and science and technology of advanced countries or not is an important symbol, automatic control technology as automation a powerful tool, more and m

4、ore combined with computer technology, electronic technology, information technology together, to promote Chinas modernization has played an increasingly important role, but also for peoples lives a lot to offer.With the increasing popularity of home appliances and the accelerated pace of life, peop

5、le are dependent on electrical appliances to further improve timing requirements for appliances also further increased. Intelligent power-switch timer can be set artificially turn the power off time, so that you can achieve energized electrical equipment turned off and artificially controlled, at th

6、e same time easy for people to save a lot of power.This paper describes the design of intelligent timer switch is powered STC89C52RC based on single-chip microcomputer, the system is designed to interrupt the countdown period by STC89C52RC timer standby when the preset time when the relay is switche

7、d on, the corresponding electrical appliances on will start working, close the relay off, electrical stopped working. This design can be achieved through the countdown infinitely repeated cycle design program that will automatically reset after the first end of the countdown, the countdown continues

8、 to the next round, so once you start working, truly intelligent, timing.Key words:STC89C52RC,Timer,Relay 1绪论1.1智能定时通电开关研究的目的和意义 随着社会电子科学技术正在飞速发展,电子系统的应用领域越来越广泛,电子设备的种类也越来越多,电子设备与人们的生活、工作的关系日益密切,人们极大地享受着电子设备带来的便利,但是任何电子设备都有一个共同的电路-电源电路,大到超级计算机,小到袖珍计算器,所有的电子设备都必须在电源电路的支持下才能正常工作,因此电源也就理所当然地成为了各种电子设备不可

9、或缺的组成部分,其性能的优劣直接关系到电子设备的技术指标及能否安全可靠地工作。但人们常用的电源并不具备定时开启和关闭的功能,或许就由于这个原因给人们带来了很多么必要的损失和不便,譬如:家里空调如果可以自己设置开启和关闭的时间,就可以大大减少用电量;初高中上完自习后,空空的教室里还是灯火通明。家中的热水器不能自由设置开启和关断时间而给人们带来一时不便;学校的起床广播因值班人员睡过头而推迟;家中的鱼缸因太久没有供氧造成鱼儿缺氧死亡;许多球迷或新闻爱好者因错过了开机时间而与精彩球赛或新闻擦肩而过;夏天里风扇的定时时间过短(一般为一小时),不便于晚上分段定时使用;家里的空调不能实现定时控制而不能让我们

10、体验那种下班回家就有舒服的感觉等等。 智能定时通电开关就是要实现人为的设置电源接通开关的时间,可以任意的设置24小时之内的任意一段或多段时间作为电源的开启或关断时间,这样就可以实现用电设备的通电开启与关闭的人为控制,节省大量电能,而且可以自动循环定时,只要开始工作,不需要每天设置时间,在节约用电的同时也给人们的生活带来很大方便,所以,研究智能定时通电开关,有着非常现实的意义。当今社会,智能通电开关可以广泛应用于工业自动化控制、军工设备、科研设备、LED照明、通讯设备、电力设备、仪器仪表等领域。 1.2 智能定时通电开关目前国内外研究现状随着科学技术的进步,我国的电力电子技术和电子器件都有了很大

11、发展。智能定时通电开关技术的发展,可以从根本上解决由于电器的长时间待机能耗产生大量的用电问题,也可以给人们的生活带来很大的方便。智能定时通电开关在国内的发展还不够成熟,生活中我们还是会面临很多的不便。国外的智能定时用电开关技术也只在某些特定地点特定场合应用的比较成熟,他们可以帮助人们实现定时智能控制家电功能,质量可靠,性能稳定,无需再担心用电过多,以及由于长时间的待机可能引起的财产安全,生命安全。人们可以放心地工作,安心地生活,开心地游玩。智能定时通电开关以服务人们生活为本,影响生活,改变生活,创造新的生活方式。只有更加贴近实用、易用和人性化的智能家居理念,才能真正体现智能家居的价值,这也是现

12、代科技价值的核心理念。通过智能家居我们能更方便的生活。冬天时,在回家之前打开家中的暖气或空调、电饭煲,等回到家中,能感到久违的温暖。夏天时,回家之前打开空调,回到家中体验凉爽。睡觉时,按下睡眠模式,监控设备打开,灯光控制系统关闭光源,窗帘自动拉上,在体验轻松睡眠的同时也保证了家中的安全。周末了,在家中也可以体验一把电影院的乐趣,按下影院模式,窗帘拉开,家庭影院打开,投影仪开启,投影幕落下。科技改变生活,随着科技的发展,智能家居智能生活已不是梦想。为此,我们应该充分利用现有的技术、人才和自愿优势,加强国际合作和技术交流,争取国内外各方面有利因素,发展智能定时通电开关技术,提高家庭的生活质量,减少

13、不必要的用电浪费,增强人类的节能意识,为我们子孙后代保留一点资源。智能定时通电开关就是为了实现节能与给人方便而诞生的技术,所以它的发展一定会给我们的生活带来不可磨灭的作用。1.3 本论文研究的主要内容 本设计研究的主要内容是智能定时通电开关,本设计首先进行了硬件电路的设计,设计的主要内容是利用STC89C52RC单片机通过锁存器74HC573由数码管显示时间,另一路通过8550三极管驱动继电器吸合电路,定时时间到后,继电器能够吸合从而驱动电源开关,切断或通电电源。并且可以实现无限制循环倒计时。本设计以60秒为倒计时时间,倒计时到10秒电源接通,零秒时关闭,继续下一轮倒计时。然后设计了软件部分,

14、并对程序进行仿真,最后进行了制作和调试。2系统控制方案及硬件电路设计2.1采用STC89C52RC为核心的单片机控制方案 本设计采用的是STC89C52RC单片机芯片,通过+5v电源送给单片机供电,利用单片机的外围电路进行扩展,单片机芯片的引脚端口一端接锁存器74HC573到数码管上并起到显示时间的作用,单片机的另一个端口接8550三极管与继电器相接,倒计时一定的时间继电器吸合去驱动开关电源,及时通断达到节能的目的,为了可以快速演示本次设计的效果,本设计采用60秒倒计时为准。同时通过PROTEUS画出硬件电路图,进行了电路仿真。 采用STC89C52RC为核心的单片机控制方案系统结构如图2.1

15、所示: 图2.1 系统结构图2.2 智能定时通电开关硬件电路 2.2.1 智能定时通电开关设计的硬件电路智能定时通电开关设计的硬件电路图如图2.2所示。具体说明为:该电路原理图核心芯片为STC公司生产的STC89C52RC单片机芯片;继电器所控制的电路为一含电源的电路,其中用灯泡的亮与灭作为指示电源电路接通还是关断;由PNP型三极管8550放大电流后来驱动继电器;电路中的数码管为两位一体共阴极数码管;数码管由两个一样的锁存器74HC573驱动,数码管为60秒循环倒计时显示;晶振电路就是包含一个晶振两个电容的电路,是整个电路的心脏。 图2.2 智能定时通电开关硬件电路 2.2.2数码管显示电路本

16、设计采用两位一体共阴极数码管显示,电路图如图2.3所示。具体说明为:两个573锁存器的IO接口P0.0-P0.7对应锁存器D0-D7;数码管的段ABCDEFGH对应74HC573-1芯片;数码管的两个位选端对应74HC573-2芯片;P2.6接74HC573-1控制段选信号;P2.7接74HC573-2控制位选信号。关于用锁存器74HC573来驱动数码管的说明:在LED和数码管显示方面,要维持一个数据的显示,往往要持续地快速刷新。尤其是在四段八位数码管等这些要选通的显示设备上。在人类能够接受的刷新频率之内,大概每30毫秒就要刷新一次。这就大大占用了处理器的处理时间,消耗了处理器的处理能力还浪费

17、了处理器的功耗。锁存器的使用尅大大缓解处理器在这方面的压力。当处理器把数据传输到锁存器并将其锁存后,锁存器的输出引脚变回保持数据状态直到下一次锁存新的数据为止。这样在数码管的显示内容不便之前,处理器的处理时间和IO引脚便可以释放。可以看出,处理器处理的时间仅限于显示内容发生变化时候,这在整个显示时间上只是非常少的一个部分。而处理器在处理完后可以有更多的时间来执行其他任务。这就是锁存器在L数码管显示方面的作用:节省了宝贵的MCU(微控制单元)时间。 图2.3 数码管显示电路2.2.3 继电器控制电路 本设计采用P数码管驱动继电器控制外接含电源电路,这是典型的继电器驱动电路。单片机是一个弱点器件,

18、一般情况下它们大多工作在5V甚至更低。驱动电流在mA级以下。而要把它用于一些大功率场合,比如说继电器驱动,显然是不行的,所以就要有一个环节来衔接,这个环节就是所谓的“功率驱动”。继电器驱动就是一个典型的、简单的功率驱动环节。图中三极管8550有两个作用:一个是起放大作用,一个是起开关作用(严格来说开关作用是放大作用的极限情况)。基极处连接的是单片机的P3.2口。P3.2口给出高电平时,三极管处于导通状态,并起放大作用,这样,继电器就能得到足够的驱动电流来正常工作。当P3.2口给出低电平时,三极管不工作,继电器因没电流通过而不工作。灯泡用于指示继电器是处于导通状态(灯亮)还是处于断开状态(灯灭)

19、。电路图如图2.4所示: 图2.4 继电器控制电源电路2.2.4 晶振电路本设计的晶振电路如图2.5所示。晶振的基本作用是提供一个时序控制的标准时刻,根据电路设计,在某个特定的时候完成特定的任务,如果没有个时序的标准时刻,整个电路就成为一个“聋子”,不知道什么时候该做什么事情了。在单片机系统里,它结合单片机内部电路产生单片机所需的时钟频率,单片机晶振提供的时钟频率越高,那么单片机运行速度就越快。单片机一切指令的执行都是建立在晶振所提供的晶振频率智商。单片机晶振是为系统提供的晶振频率之上。单片机晶振是为系统提供基本的时钟信号,相当于一个系统的心脏,通常一个系统共用一个晶振,便于各部分保持同步,囚

20、不同子系统需要不同频率的时钟信号,可以用与同一个晶振相连的不同锁相环提供。 2.5 单片机晶振电路2.3 本章小结 本章介绍了智能定时通电开关的定时控制的设计过程,主要讲述硬件电路设计。首先,介绍了系统总体方案的设计方案图,智能定时通电开关的定时控制系统的设计主要会用到单片机STC89C52RC、数码管显示倒计时模块、继电器控制电源模块和晶振等硬件模块,然后硬件电路设计部分对每一模块的功能和使用进行了详细的介绍,弄清楚各部分的工作方式及联系,设计出系统的总体电路图。3 STC89C52RC单片机的介绍3.1 STC89C52RC单片机的组成原理 STC89C52RC单片机是红晶科技推出的新一代

21、高速/低功耗/超强靠干扰的单片机,指令代码完全兼容传统8051单片机,12时钟/机器周期和6时钟/机器周期可以任意选择。 (1)主要性能如下:增强型8051单片机,6时钟/机器周期和12时钟/机器周期可以任意选择,指令代码完全兼容传统8051。工作电压:5.5V3.3V(5V单片机)/3.8V2.0V(3V单片机)工作频率范围:040MHz,相当于普通8051的080MHz,实际工作频率可达48MHz用户应用程序空间为8K字节片上集成512通用I/O口(32个),复位后为:P1/P2/P3/P4是准双向口/弱上拉,P0口是漏极开路输出,作为总线扩展时用,不用加上拉电阻,作为I/O接口用时,需要

22、加上拉电阻。ISP(在系统可编程)/IPA(在应用可编程),无需专用编程器,无需专用仿真器可通过串口(RxD/P3.0,TxD/P3.1)直接下载用户程序,数秒即可完成一片具有EEPROM功能具有看门狗功能共3个16位定时器/计数器。即定时器T0、T1、T2外部中断4路,下降沿中断或低电平触发电路,Power Down模式可由外部中断低电平触发中断方式唤醒通用异步串行口(UART),还可用定时器软件实现多个UART工作温度范围:-40+85C(工业级)/075C(商业级)PDID封装(2) STC89C52RC单片机的工作模式 掉电模式:典型功耗0.1A,可由外部中断唤醒,中断返回后,继续执行

23、原程序。 空闲模式:典型功耗4mA7mA 掉电模式可由外部中断唤醒,适用于水表、气表等电池供电系统及便携设备、(3)STC89C52RC的引脚介绍STC89C52RC的引脚图如图3.1所示: 图3.1 STC89C52RC引脚图STC89C52RC引脚图功能说明如下:VCC(40引脚):电源电压VSS (20引脚):接地P0端口(P0.0P0.7,3932引脚):P0口是一个漏极开路的8位双向I/O端口。作为输出端口,每个引脚能驱动8个TTL负载,对端口P0写入“1”时,可以作为高阻抗输入。在访问外部程序和数据存储器时,P0口也可以提供低8位地址和8位数据的复用总线。此时,P0口内部上拉电阻有

24、效。在Flash ROM编程时,P0端口接收指令字节;而在校验程序中,则输出指令字节。验证时,要求外接上拉电阻。P1端口(P1.0P1.7,18引脚):P1口是一个带内部上拉电阻的8位双向I/O端口。P1的输出缓冲器可驱动(吸收或者输出电流方式)4个TTL输入。对端口写入1时,通过内部的上拉电阻把端口拉到高电位,这时可用作输入口。P1口作输入口使用时,因为有内部上拉电阻,那些被外部拉低的引脚会输出电流。此外,P1.0和P1.1还可以作为定时器/计数器2的外部技术输入(P1.0/T2)和定时器/计数器2的触发输入(P1.1/T2EX),具体参数见表3.1: 表3.1 P1.0和P1.1引脚复用功

25、能 引脚号 功能特性 P1.0 P1.1 T2(定时器/计数器2外部计数输入),时钟输出 T2EX(定时器/计数器2捕获/重装触发和方向控制) P2端口(P2.0P2.7,2128引脚):P2口是一个带内部上拉电阻的8位双向I/O端口。P2的输出缓冲器可以驱动(吸收或者输出电流方式)4个TTL输入。对端口写入1时,通过内部的上拉电阻把端口拉到高电位,这时可用作输入口。P2口作输入口使用时,因为有内部上拉电阻,那些被外部拉低的引脚会输出电流。在访问外部程序存储器和16位地址的外部数据存储器(如执行“MOVX DPTR”指令)时,P2送出高8位地址。在访问8位地址的外部数据存储器(如执行“MOVX

26、 R1”指令)时,P2口引脚上的内容(就是专用寄存器(SFR)区中的P2寄存器的内容),在整个访问期间不会改变。在对Flash ROM编程和程序校验期间,P2也接收高位地址和一些控制信号。P3端口(P3.0P3.7,1017引脚):P3口是一个带内部上拉电阻的8位双向I/O端口。P3的输出缓冲器可以驱动(吸收或者输出电流方式)4个TTL输入。对端口写入1时,通过内部的上拉电阻把端口拉到高电位,这时可用作输入口。P3口作输入口使用时,因为有内部上拉电阻,那些被外部拉低的引脚会输出电流。在对Flash ROM编程和程序校验期间,P3也接收高位地址和一些控制信号。P3端口作为一般的I/O接口外,还有

27、其他一些复用功能,如表3.2所示: 表3.2 P3口引脚复用功能 引脚号 复用功能P3.0P3.1P3.2P3.3P3.4P3.5P3.6P3.7 RXD(串行输入口) TXD(串行输出口) (外部中断0) (外部中断1) T0(定时器0的外部输入) T1(定时器1的外部输入) (外部数据存储器写选通) (外部数据存储器读选通) RST(9引脚):复位输入。当输入连续两个机器周期以上高电平时为有效,用来完成单片机的复位初始化操作。看门狗计时完成后,RST引脚输出96个晶振周期的高电平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能无效。DISRTO默认状态下,复位高电平有效。A

28、LE/(30引脚):地质所存控制信号(ALE)是访问外部程序存储器时,锁存地8位地址的输出脉冲。在Flash编程时,此引脚也用作编程输入脉冲。在一般情况下,ALE以晶振六分之一的固体频率输出脉冲,可用来作为外部定时器或时钟使用。然而,特别强调,在每次访问外部数据存储器时,ALE脉冲将会跳过。如果需要,通过地址位8EH的第0位置“1”,ALE将被微弱拉高。这个ALE使能标志位(地址位8EH的SFR的第0位)的设置对微控制器处于外部执行模式下无效。PSEN(29引脚):外部程序存储器选通信号。当AT89C51RC从外部程序存储器执行外部代码时,在每个机器周期被激活两次,而访问外部数据存储器时,将不

29、被激活。/VPP(31引脚):访问外部程序存储器控制信号。为使能从0000HFFFFH的外部程序存储器读取指令,必须接GND。注意加密方式1时,将内部锁定为RESET。为了执行内部程序指令,应该接VCC。在Flash编程期间,也接收12伏VPP电压。XTAL1(19引脚):振荡器反相放大器和内部时钟发生电路的输入端。XTAL2(18引脚):振荡器反相放大器的输入端。3.2 单片机定时/计数器的原理与应用方法3.2.1 定时/计数器的基本结构 定时/计数器的基本结构如图3.2所示。包括两个定时器/计数器T0和T1、工作方式寄存器TMOD和控制寄存器TCON。其中每个定时/计数器是由两个8位寄存器

30、TH0、TL0和TH1、TL1构成,用于存放定时/计数器初值和经过值;工作方式寄存器TMOD用于定时/计数器的工作方式设置;控制寄存器TCON用来对定时/计数器进行启动、停止运行控制管理。图3.2 定时/计数器的基本结构3.2.2 定时/计数器的工作原理定时器T0和T1分别是由TH0、TL0和TH1、TL1这两个8位计数器构成的16位计数器。两个16位计数器都可以理解为16位的加1计数器。T0和T1定时/计数器都可以有软件设定为定时或计数的工作方式,其中T1还可作为串行口的波特率发生器。T0和T1这些功能的实现都由特殊功能寄存器中的TMOD和TCON进行控制。当T0或T1用作对外部事件计数的计

31、数器时,通过89C51外部引脚T0(P3.4)或T1(P3.5)对外部脉冲信号进行计数。当加在T0或T1引脚上的外部脉冲信号出现一个由1到0的负跳变时,计数器加1,如此直至计数器产生溢出。当T0或T1用作定时器时,对外接晶振产生的振荡信号进行12分频后,提供给计数器,作为计数器的脉冲输入,计数器对输入的脉冲进行计数,直至产生溢出。不论T0或T1是工作于定时方式还是计数方式,它们在对内部的 时钟或外部事件进行计数时,都不占用CPU时间,直到定时/计数器产生溢出。如果满足条件,CPU才会停下当前的操作,去处理“时间到”或“计数满”这样的事件。因此,定时/计数器是与CPU并行工作的 ,除非溢出不会影

32、响CPU的其他工作。3.2.3 定时/计数器的方式寄存器与控制寄存器 T0和T1由两个8位寄存器TMOD和TCON来控制,分别用来设置各个定时/计数器的工作方式、选择定时或计数功能、控制启动运行以及作为运行状态的标志等。当89C52系统复位时,TMOD和TCON所有位都清0。 (1)定时器/计数器的方式寄存器TMOD (MSB) (LSB)GATE C/T M1 M0GATE C/T M1 M0 T1方式控制 T0方式控制TMOD在特殊功能寄存器中,字节地址为89H。由于TMOD只能进行字节寻址,所以对T0或T1工作方式的控制只能整字节(8位)写入。在TMOD中,高4位用于对定时器T1的方式控

33、制,而低4位用于对定时器T0的方式控制。图3.3中给出了各位的定义,各位的功能简述如下: 工作方式选择位 M1M0:定时器工作方式选择位。通过对M1M0的设置,可使定时器工作于4种工作方式之一。参考表3.3 表3.3 定时器工作方式M1 M0 方式 说明 0 0 0 11 01 1 0 1 2 313位定时器(TH的8位和TL的低5位) 16位定时器/计数器 自动重装入初值的8位计数器T0分成两个独立的8位计数器,T1在方式3停止工作C/T定时/计数器选择位 -C/T=1,工作于计数方式; -C/T=0,工作于定时方式。 GATE门控位 由GATE、软件控制位TR1/TR0和INT1/INT0

34、共同决定定时器/计数器的打开或关闭。 -GATE=0,只要用指令置TR1/TR0为1即可启动定时/计数器工作,而不管INT的状态如何; -GATE=1,只有INT1/INT0为高电平且用指令置TR1/TR0为1时,才能启动定时/计数器工作。(2) 定时/计数器控制寄存器(TCON) TCON是一个特殊功能寄存器,TCON的字节地址为88H,其各位地址从88H开始分别为88H8FH。高4位为定时/计数器的运行控制和溢出标志位,低4位与外部中断有关。其格式如下列: TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 TCON的高4位的功能描述如下: TF1/TF0 溢出标志位当T1或T

35、0产生溢出时,由硬件自动置位中断触发器TF1或TF0,并向CPU申请中断。如果用中断方式,则CPU在响应中断进入中断服务程序后,TF1或TF0被硬件自动清0。如果是用软件查询方式对TF1或TF0进行查询,则在定时/计数器回0后,应当用指令将TF1或TF0清0。 TR1/TR0 运行控制位用指令(“SETB TR1”)对TR1或TR0进行置位或清0,也可以启动或关闭T1或T0的运行。3.2.4 定时/计数器的MODE0 MODE0为13位定时/计数器工作方式,其内部结构如图3,4所示。由图可知,MODE0实际上是由TL1(5位)和TL0(8位)构成的13位脉冲计数器,并由TCON和TMOD控制和

36、管理。 设定MODEO的步骤:(1)设定MODEO的步骤(四选1) MOV TMOD,#00H TIMER0 设定计时工作方式(内部输入) MOV TMOD,#00H TIMER1设定计时工作方式(内部输入) MOV TMOD,#04H TIMER0设定计数工作方式(T0输入) MOV TMOD,#40H TIMER1设定计数工作方式(T1输入)(2) 预制计数初值 MOV TLX,#(8192-COUNT)MOD/32;TLX的技术值除以32的余数 MOV THX,#(8192-COUNT)/32;THX为计数值除以32 的商(3) 启动定时器 SETB TRX(4) 检查TFX是否溢出 J

37、BC TFX ;查询方式检查TFX是否溢出,溢出转移,否则等待 图3.4 方式0内部结构3.2.5 定时/计数器的MODE1 方式1和方式0的工作原理基本相同,唯一不同的是T0和T1在工作方式1时,计数长度M是2的16次方,内部结构参考图3.5。16位的初值直接拆成高低字节,分别送入TH和TL即可,对于实际应用比MODE0更有实际意义。设定MODE1的步骤:(1)设定MODE1的步骤(四选1) MOV TMOD,#01H TIMER0 设定计时工作方式(内部输入) MOV TMOD,#10H TIMER1设定计时工作方式(内部输入) MOV TMOD,#05H TIMER0设定计数工作方式(T

38、0输入) MOV TMOD,#50H TIMER1设定计数工作方式(T1输入) (2)预制计数初值 MOV TLX,#(65536-COUNT)MOD/256;TLX的技术值除以256的余数 MOV THX,#(65532-COUNT)/256;THX为计数值除以256 的商 (3)启动定时器 SETB TRX (4)检查TFX是否溢出 JBC TFX ;查询方式检查TFX是否溢出,溢出转移,否则等待 图3.5 方式1内部结构3.2.6 定时/计数器的MODE2方式0和方式1的工作原理基本相同,计数溢出后计数器清0。在循环计数或循环定时应用时就存在反复设置计数初值的问题。不仅会给程序带来不便,

39、同时影响定时的精度。针对以上问题,最好的解决办法就是使用方式2,它具有自动加载功能,即自动加载计数初值。在这种方式下,把16位计数器分为两部分,即TL作为计数器,以TH作初值预置寄存器,初始化时将计数初值分别装入TL和TH中。计数溢出后由预置寄存器TH以硬件方法自动给TL重新加载,由硬件重新赋值,所以也称作硬件自动重加载工作方式。其内部结构参考图3.6。 图3.6 方式2内部结构设定MODE2的步骤:(1)设定MODE2的步骤(四选1) MOV TMOD,#02H TIMER0 设定计时工作方式(内部输入) MOV TMOD,#20H TIMER1设定计时工作方式(内部输入) MOV TMOD

40、,#06H TIMER0设定计数工作方式(T0输入) MOV TMOD,#60H TIMER1设定计数工作方式(T1输入) (2)预制计数初值 MOV TLX,#(256-COUNT) MOV THX,#(256-COUNT) (3)启动定时器 SETB TRX (4)检查TFX是否溢出 JBC TFX ;查询方式检查TFX是否溢出,溢出转移,否则等待3.2.7 定时/计数器的MODE3 在工作方式3模式下,定时/计数器T0被拆成两个独立的8位计数器TL0和TH0。其结构如图3.7所示。其中TL0既可以作计数器使用,也可以作定时器使用,定时/计数器T0的各控制位和引脚信号全归它使用。其功能和操

41、作与方式0或方式1完全相同。TH0就没有那么多的“资源”可用了,智能作为简单的定时器使用,而且由于定时/计数器T0的控制位已被TL0占用,因此只能借用定时/计数器1的控制位TR1和TF1,也就是以计数溢出去置位TF1,TR1则负责控制TH0定时的启动和停止。 由于TL0既能作定时器也能作计数器使用,而只能作定时器使用而不能作计数器使用,因此在方式3下,定时/计数器0可以构成两个定时器或者一个定时器一个计数器。如果定时/计数器0工作于工作方式3,那么定时/计数器1的工作方式就不可避免受到一定的限制,因为自己的一些控制位已被定时/计数器借用,只能工作在方式0、方式1或方式2下,如果设置T1工作在方

42、式3,则T1停止工作,相当于其他方式时令TR1=0.设定MODE3的步骤:(1)设定MODE2的步骤(三选1) MOV TMOD,#03H TL0 设定计时工作方式(内部输入) MOV TMOD,#03H TH0设定计时工作方式(内部输入) MOV TMOD,#07H TL0设定计数工作方式(T0输入) (2)预制计数初值 MOV TL0,#(256-COUNT) 或 MOV TH0,#(256-COUNT) (3)启动定时器 SETB TRX (4)检查TFX是否溢出 JBC TFX ;查询方式检查TFX是否溢出,溢出转移,否则等待 图3.7 方式3内部结构 小结:通过定时/计数器的结构、工

43、作原理和应用介绍,知道T0和T1的设置步骤几乎是相同的,分别要定义TMOD、TCON、TH0、TL0、TH1和TL1等寄存器后,定时计数器方能正确操作。在程序刚规划的阶段时,每个定时器的操作和控制模式都必须考虑清楚后才可以开始写入程序,具体操作分为以下几步: 设置步骤1:确定是定时还是计数操作,定时TMOD中的C/T位为0,计数时C/T=1。设置步骤2:确定定时/计数时是否受外部的硬件信号控制,若不受外部INT0或INTT1引脚控制时,TMOD中的GATE位为0,否则需设成1.有关GATE的使用将在中断章节讨论。设置步骤3:决定计数器的模式,模式0时最大计数值为8192,模式1时最大计数值为6

44、5536,两个计数器均没有自动载入功能;模式2 时最大计数值为256,且可自动载入计数值;模式3时有两个计数器,其最大计数初值都是256,各种模式的选择应仔细考虑。将前3个步骤的结果组合起来,成为一个给TMOD寄存器的设置值。设置步骤4:决定计数器(TH0、TL0、TH1和TL1)的预置初值,由于MCS-5的计数器都属于可载入式的加1计数器,所以在正确的预置初值该计数器的最大可计数值减去欲计数值,然后将该结果分成两部分后,再送到THX和TLX两个计数器。设置步骤5:开始启动定时/计数器,将TCON中的TR0位设成1.设置步骤6:查询计数是否溢出,即TFX=1,停止计数,程序转移执行主程序或分支

45、程序。若要正常操作必须设置寄存器和位,要注意的是TMOD寄存器无法进行位寻址,所以必须两个定时器模式同时设置。3.3 单片机中断系统介绍(1) 单片机中断级别 单片机对于中断的响应级别是不同的,具体参见表3.4所示: 表3.4 单片机响应中断级别 中断源 默认中断级别中断序号(C语言用) INIT0-外部中断0T0-定时/计数器0中断 INIT1-外部中断1T1-定时器/计数器1中断 TI/RI-串行口中断T2-定时器/计数器2中断 最高 第2 第3 第4 第5 最低012345(2)中断允许寄存器IE单片机中断允许寄存器IE各位如下表3.5所示: 表3.5 中断允许寄存器IE位序号DB7DB

46、6DB5DB4DB3DB2DB1DB0符号位EA-EA2ESET1EX1ET0EX0对各位具体说明如下: EA-全局中断允许位。 EA=1,打开全局中断控制,再辞条件下,由各个中断控制位确定相应中断的打开或关闭。 EA=0,关闭全部中断。 -,无效位。 ET2-定时器/计数器2中断允许位 ET2=1,打开T2中断。 ET2=0,关闭T2中断。 ES-串行口中断允许位。 ES=1,打开串行口中断。 ES=0,关闭串行口中断。 ET1-定时器/计数器1中断允许位。 ET1=1,打开T1中断。 ET=0,关闭T1中断。 EX1-外部中断1中断允许位。 EX1=1,打开外部中断。 EX1=0,关闭外部

47、中断。 ET0-定时/计数器0中断允许位。 ET0=1,打开T0中断。 ET0=0,关闭T0中断。 EX0-外部中断0中断允许位。 EX0=1,打开外部中断0中断。 EX0=0,关闭外部中断0中断。(3) 中断优先级寄存器IP 中断优先级寄存器IP各位如下表3.6所示,具体各位说明如下: -,无效位。 PS-串行口中断优先级控制位。 PS=1,串行口中断定义为高优先级中断。 PS=0,串行口中断定义为低优先级中断。 PT1-定时/计数器1中断优先级控制位。 PT1=1,定时/计数器1中断定义为高优先级。 PT1=0,定时/计数器1中断定义为低优先级。 PX1-外部中断1中断优先级控制位。 PX

48、1=1,外部中断1定义为高优先级中断。 PX1=0,外部中断1定义为低优先级中断。 表3.6 中断优先级寄存器位序号DB7DB6DB5DB4DB3DB2DB1DB0位地址-PSPT1PX1PT0PX0 PT0-定时/计数器0中断优先级控制位。 PT0=1,定时/计数器0中断定义为高优先级中断。 PT0=0,定时/计数器0中断定义为低优先级中断。 PX0-外部中断0中断优先级控制位。 PX0=1,-外部中断0中断定义为高优先级中断。 PX0=0,-外部中断0中断定义为低优先级中断。 (4) 定时/计数器工作模式寄存器TMOD各位如下表3.7所示: 表3.7 定时/计数器工作模式寄存器TMOD位序

49、号DB7DB6DB5DB4DB3DB2DB1DB0位符号GATEC/TM1M0GATEC/TM1M0 对各位的说明如下: GATE-门控制位。 GATE=0,定时/计数器启动与停止仅受TCON寄存器中TRX(X=0,1)来控制。 GATE=1, 定时/计数器启动与停止由TCON寄存器中TRX(X=0,1)和外部中断引脚(INT0或INT1)上的电平状态来共同控制。 C/T-定时器和计数器模式选择位。 C/T=1,为计数器模式; C/T=0,为定时器模式。 M1M0-工作模式选择位。 根据M1、M0值的不同,单片机有四种工作模式,具体如下表3.8所示: 表3.8 单片机四种不同工作模式M1M0工

50、作模式00110101方式0,为13位定时/计数器方式1,为16位定时/计数器方式2,8位初值自动重装的8位定时/计数器方式3,仅适用于T0,分成两个8位计数器,T1停止工作(5)定时/控制器控制寄存器TCON 定时/控制器控制寄存器TCON各位如表3.9所示: 表3.9 定时器/控制器控制寄存器TCON位序号DB7DB6DB5DB4DB3DB2DB1DB0符号位TF1TR1TF0TR0IE1IT1IE0IT0 对各位的具体说明如下: TF1-定时器1溢出标志位。 当定时器1记满溢出时,由硬件使TF1置1,并且申请中断。进入中断服务程序后,由硬件自动清0。需要注意的是,如果使用定时器中断,那么

51、该位完全不用人为去操作,但是如果使用软件查询的方式的话,当查询到该位置1后,就需要用软件清0。 TR1-定时器1运行控制位。 由软件清0关闭定时器1。当GATE=1,且INIT为高电平时,TR1置1启动定时器1;当GATE=0时,TR1置1启动定时器1。 TF0-定时器0溢出标志,其功能及操作方法同TF1。 TR0-定时器0运行控制位,其功能及操作方法同TR1。 IE1-外部中断1请求标志。 当IT1=0时,为电平触发方式,每个机器周期的S5P2采样INT1引脚,若NIT1脚为定电平,则置1,否则IE1清0。 当IT1=1时,INT1为跳变沿触发方式,当第一个机器周期采样到INIT1为低电平时

52、,则IE1置1。IE1=1,表示外部中断1正想CPU中断申请。当CPU响应中断,转向中断服务程序时,该位由硬件清0。 IT1外部中断1触发方式选择位。 IT1=0,为电平触发方式,引脚INT1上低电平有效。 IT1=1,为跳变沿触发方式,引脚INT1上的电平从高到低的负跳变有效。 IE0-外部中断0请求标志,其功能及操作方法同IE1。 IT0-外部中断0触发方式选择位,其功能及操作方法同IT1。 从上面的知识点可知,每个定时器都有4种工作模式,可通过设置TMOD寄存器中的M1M0位来进行工作方法选择。 方式1的计数位数是16位,对T0来说,由TL0寄存器作为低8、TH0寄存器作为高8位,组成了

53、16位加1计数器。 关于如何确定定时器T0的初值问题。定时器一旦启动,它便在原来的数值上开始加1计数,若在程序开始时,我们没有设定TH0和TL0,它们的默认值都是0,假设时钟频率为12MHz,12个时钟周期为一个机器周期,那么此时机器周期为1us,记满TH0和TL0就需要2-1个数,再来一个脉冲计数器溢出,随即向CPU申请中断。因此溢出一次供需65536us,约等于65.6ms,如果我们要定时50ms的话,那么就需要先给TH0和TL0装一个初值,在这个初值的基础上记5000个数后,定时器溢出,此时刚好就是50ms中断一次,当需要定时1s时,写程序时当产生20次50ms的定时器中断后便认为是1s,这样便可精确控制定时器的时间啦。要记5000个数时,TH0和TL0中应该

温馨提示

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

评论

0/150

提交评论