第6章-MCS51定时器和计数器

上传人:s9****2 文档编号:592284935 上传时间:2024-09-20 格式:PPT 页数:52 大小:989.50KB
返回 下载 相关 举报
第6章-MCS51定时器和计数器_第1页
第1页 / 共52页
第6章-MCS51定时器和计数器_第2页
第2页 / 共52页
第6章-MCS51定时器和计数器_第3页
第3页 / 共52页
第6章-MCS51定时器和计数器_第4页
第4页 / 共52页
第6章-MCS51定时器和计数器_第5页
第5页 / 共52页
点击查看更多>>
资源描述

《第6章-MCS51定时器和计数器》由会员分享,可在线阅读,更多相关《第6章-MCS51定时器和计数器(52页珍藏版)》请在金锄头文库上搜索。

1、2 2个个1616位位定时器定时器/ /计数器计数器 ( (5252系列有系列有3 3个个1616位位Timer)Timer)定时器定时器: :对片内机器时钟对片内机器时钟( (周期方波周期方波) )进行计数进行计数计数器计数器: :对对TxTx引脚引脚输入的负脉冲进行计数输入的负脉冲进行计数与与TimerTimer工作有关的工作有关的特殊功能寄存器:特殊功能寄存器: TMON TMON 和和 TCON TCON第6章 MCS-51的定时器/计数器 P.118一一. .定时器定时器方式方式寄存器寄存器TMOD TMOD (89H) P.119(89H) P.119GATE C / T M1 M

2、0 GATE C / T M1 M0T1T1T0T01.M1,M01.M1,M0:工作方式定义位工作方式定义位 ( ( 定义定义4 4 种方式种方式 ): ):2.2.C/T C/T :计数器计数器/ /定时器选择位定时器选择位 = 1 = 1 外部事件外部事件计数器计数器。对。对TxTx引脚的引脚的负脉冲负脉冲计数;计数; = 0 = 0 片内时钟片内时钟定时器定时器。对。对机器周期脉冲机器周期脉冲计数定时计数定时0 00 0:1313位位 Timer Timer用处不大用处不大0 10 1:1616位位 Timer Timer经常用到经常用到1 01 0:可自动重装的:可自动重装的 8 8

3、位位 Timer Timer经常用到经常用到1 11 1:T0 T0 分为分为2 2个个8 8位位 Timer Timer;T1 T1 此时不工作此时不工作 因为没有带来甚麽好处,因为没有带来甚麽好处,几乎几乎无无用用GATE C / T M1 M0 GATE C / T M1 M0T1T03.GATE3.GATE门控位门控位: : TimerTimer可由软件与硬件两者控制可由软件与硬件两者控制 (1)(1) GATE = 0 GATE = 0 普通用法普通用法 Timer Timer的的启启/ /停停由由软件软件对对TRxTRx位写位写“1”/“0”“1”/“0”控制控制一一. .定时器定

4、时器方式方式寄存器寄存器TMODTMOD(续)(续)(89H)(89H) (2)(2) GATE = 1 GATE = 1 门控用法门控用法 Timer Timer的的启启/ /停停由由软件软件对对TRxTRx位写位写“1”/“0”“1”/“0” 和和在在INTxINTx引脚引脚上出现的信号的上出现的信号的高高/ /低低共同控制共同控制TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0(3) (3) TFxTFx: Timer0/1: Timer0/1计数溢出标志位。计数溢出标志位。 =1 =1 计数溢出计数溢出; =0 =0 计数未满计数未满 TFxTFx标志位标志位可用于可用于

5、申请中断申请中断或或供供CPUCPU查询查询。 在进入中断服务程序时会在进入中断服务程序时会自动清零自动清零; ;但在但在 查询方式时必须查询方式时必须软件清零软件清零。(4) (4) TRxTRx: Timer0/1: Timer0/1运行控制位。运行控制位。 =1 =1 启动计数;启动计数; =0 =0 停止计数停止计数二二. .定时器定时器控制控制寄存器寄存器TCON TCON (88H) P.120(88H) P.1203.TR0/TR13.TR0/TR1:Timer0/1Timer0/1运行控制位运行控制位: TR0/TR1 =0 TR0/TR1 =0 时,时,Timer0/1Tim

6、er0/1停止计数停止计数 TR0/TR1 =1 TR0/TR1 =1 时,时,Timer0/1Timer0/1启动计数启动计数三.定时器T0/T1 中断申请过程 2.2.在已经开放在已经开放T0/T1T0/T1中断允许且已被启动的前提下:中断允许且已被启动的前提下: (1) (1)T0/T1T0/T1加满溢出加满溢出时时 TF0/TF1TF0/TF1标志位自动置标志位自动置“1”“1” (2) (2)检测到检测到TCONTCON中中TF0/TF1TF0/TF1变变“1”“1”后后, ,将产生指令:将产生指令: LCALL 000BHLCALL 000BH/ /LCALL 001BHLCALL

7、 001BH 执行中断服务程序执行中断服务程序, , (3) (3)TF0/TF1TF0/TF1标志位会自动清标志位会自动清“0”,“0”,以备下次中断申以备下次中断申请。请。 1.1.定时定时/ /计数器可按片内计数器可按片内机器周期机器周期定时,也可对定时,也可对由由T0/T1T0/T1引脚输入一个引脚输入一个负脉冲负脉冲进行加法计数进行加法计数阅读书上定时器应用程序举例:P.125P.125例例6-16-1: : 晶振晶振=6MHz,P1.0=6MHz,P1.0输出周期为输出周期为2ms2ms方波。方波。P.127P.127例例6-26-2: : 要求要求T0T0产生产生1s1s定时定时

8、 ( (晶振晶振=6MHz=6MHz) )P.128P.128例例6-36-3: : T0(P3.4) T0(P3.4)发生负跳变发生负跳变, ,从从P1.0P1.0输出周输出周 期为期为1ms1ms的方波。的方波。( (方式方式2)2)P.130P.130例例6-46-4: : 将例将例6-16-1改为方式改为方式2,2,计数计数100100P.133P.133例例: : 实时时钟设计实时时钟设计P.135P.135例例: : 运行中读定时器运行中读定时器/ /计数器计数器四.定时器结构与工作方式 P.1201.1.工作方式工作方式1 1:1616位的定时位的定时/ /计数器计数器振荡器振荡

9、器 12TLx THx (8位位) (8位位)TFx申申请请中中断断TxTx端端TRxTRx位位GATEGATE位位INTxINTx端端11& &C/T=0C/T=1控制控制 =1开关接开关接通通或门或门与门与门T0T1T2T3T4T5T6T7T8T9T10T11T12T13T14T15TH0/TH1TL0/TL1GATEGATE的状态决定了定时的状态决定了定时器器/ /计数器的计数器的启动启动是取决是取决于于TRxTRx一个条件一个条件还是还是TRxTRx与与INTxINTx两个条件两个条件。THx/TLxTHx/TLx赋初值赋初值:THxTHx赋高赋高8 8位,位,TLxTLx赋低赋低8

10、8位位(1)(1)工作方式工作方式1 1 的编程要点的编程要点:TMODTMOD选方式选方式: 写写“M1,M0”=01 “M1,M0”=01 B B 选方式选方式1 1若不用门控位若不用门控位, ,直接用软件写直接用软件写TRxTRx控制启控制启/ /停停若使用门控位,先置位若使用门控位,先置位TRxTRx,然后由,然后由INTxINTx端端的的高高/ /低电平低电平来控制其启来控制其启/ /停停若要允许若要允许中断中断,还须先置位,还须先置位ETxETx、EAEA等中断等中断 允许控制位,并编写允许控制位,并编写中断服务中断服务程序程序若不用中断,可若不用中断,可查询查询“计数溢出标志计数

11、溢出标志TFxTFx” 的方式工作,但溢出标志的方式工作,但溢出标志TFxTFx须软件清须软件清0 0中中断断法法查查询询法法(2)定时器(方式1)应用程序举例:分析分析: 定时器定时时间的计算公式为定时器定时时间的计算公式为: :T=(M-N)T=(M-N)T Tm m ;51;51单片机的单片机的C/TC/T属于属于加加1 1计数。计数。M M模值模值,与定时器与定时器/计数器计数器工作方式工作方式有关有关 N N计数初值计数初值 T Tm m机器周期机器周期 T T定时时间定时时间P125P125例例6-16-1:若晶振频率为:若晶振频率为6MHz6MHz,要在,要在P1.0P1.0输输

12、出周期为出周期为2ms2ms的方波。的方波。即即:N:NM MT/TT/Tm m(2)定时器(方式1)应用程序举例:分析分析: 已知已知foscfosc = 6MHz = 6MHz 则:则: (振荡周期)(振荡周期)1Tc=1/6MHz1Tc=1/6MHz (机器周期)(机器周期)1Tm=12Tc=12/6MHz=1Tm=12Tc=12/6MHz=2 2 s s 方波周期方波周期T=2ms,T=2ms,则定时时间为则定时时间为1ms1ms。 计数脉冲值计数脉冲值= =1ms1ms/ /2us2us=500=500 所以计数初值所以计数初值X=2X=21616-500-500=65036 =65

13、036 即即X=FE0CH, TH0=FEH,TL0=0CHX=FE0CH, TH0=FEH,TL0=0CHP125P125例例6-16-1:若晶振频率为:若晶振频率为6MHz6MHz,要在,要在P1.0P1.0输输出周期为出周期为2ms2ms的方波。的方波。GATE C / T M1 M0 GATE C / T M1 M0定时器方式定时器方式寄存器寄存器TMODT0T0选择方式选择方式1 1,初值,初值=FE0CH=FE0CH X X X X 0 0 X X X X 0 0 0 10 1初始化:初始化:MOV TMODMOV TMOD,# #01H01H ; ;选选 T0 T0 方式方式 1

14、 1 MOV TH0MOV TH0, # #0FEH ;0FEH ;赋初值高赋初值高8 8位位 MOV TL0MOV TL0, # #0C0CH ;H ;赋初值低赋初值低8 8位位 SETB TR0SETB TR0 ; ;启动启动 T0 T0定时定时若需要定时器若需要定时器0 0产生中断产生中断还应当写如下语句:还应当写如下语句: SETB ET0SETB ET0 ; ;开开T0T0中断允许中断允许 SETB EASETB EA ; ;开总中断允许开总中断允许以及相应的以及相应的中断服务程序中断服务程序。(2)定时器(方式1)应用程序举例:IT0P: IT0P: MOV TH0,#0FEH M

15、OV TH0,#0FEH ; ;再赋定时初值再赋定时初值FE0CHFE0CH MOV TL0,#0CH MOV TL0,#0CH CPL P1.0CPL P1.0 ;P1.0P1.0状态取反状态取反 RETI RETI ; ;中断返回中断返回 程序设计程序设计:中断服务程序中完成中断服务程序中完成初值的重载初值的重载和和方方波波的产生。的产生。(2)定时器(方式1)应用程序举例: ORG 0000HORG 0000H AJMP MAIN AJMP MAIN ORG 000BH ORG 000BH AJMP IT0P AJMP IT0PMAIN: MAIN: MOV SP,#60H ;MOV S

16、P,#60H ;设置堆栈栈顶指针设置堆栈栈顶指针 HERE: AJMP HERE ;HERE: AJMP HERE ;原地等待定时中断的产生原地等待定时中断的产生IT0P: MOV TH0,#0FEH IT0P: MOV TH0,#0FEH ; ;再赋定时初值再赋定时初值 MOV TL0,#0CH MOV TL0,#0CH CPL P1.0 CPL P1.0 ;P1.0P1.0状态取反状态取反 RETI RETI ; ;中断返回中断返回 END END(2)定时器(方式1)应用程序举例: MOVMOV TMOD, #01HTMOD, #01H CLR TF0 ;CLR TF0 ;初始时定时溢出

17、标志为初始时定时溢出标志为0 0 SETB TR0 ; SETB TR0 ;启动定时器启动定时器T0T0LOOP: MOV TH0,#0FEH ;T0LOOP: MOV TH0,#0FEH ;T0初值初值 MOV TL0,#0CH MOV TL0,#0CH LOOP1:LOOP1:JNBJNB TF0,LOOP1TF0,LOOP1 ; ;查询查询TF0,TF0,若若TF0=1,TF0=1,说明定时说明定时 CLR TF0CLR TF0 ; ;到到,P1.0,P1.0状态求反状态求反 CPL P1.0 CPL P1.0 SJMP LOOP SJMP LOOP(2)定时器(方式1)应用程序举例:将

18、上面的中断改为查询方式将上面的中断改为查询方式, ,如下如下: :(2)定时器(方式1)应用程序举例:分析分析: 已知已知foscfosc = 6MHz = 6MHz 则:则: (振荡周期)(振荡周期)1Tc=1/6MHz1Tc=1/6MHz (机器周期)(机器周期)1Tm=12Tc=12/6MHz=1Tm=12Tc=12/6MHz=2 2 s s 定时时间定时时间T=1sT=1s 计数脉冲值计数脉冲值= =1s1s/ /2us2us=500000=500000221616=65536=65536 方式方式0: Tmax=20: Tmax=213132us=16.384 ms2us=16.38

19、4 ms 方式方式1: Tmax=21: Tmax=216162us=131.072 ms2us=131.072 ms 方式方式2: Tmax=22: Tmax=28 8 2us=512 us2us=512 us考虑使用考虑使用方式方式1 1, ,每隔每隔100ms100ms中断中断1 1次次, ,中断中断1010次次即即1s1s。P127P127例例6-26-2:若晶振频率为:若晶振频率为6MHz6MHz,T0T0定时定时1s1s。T0T0定时定时100ms100ms:已知已知foscfosc = 6MHz = 6MHz 则:则: (机器周期)(机器周期)1Tm=12Tc=12/6MHz=2

20、1Tm=12Tc=12/6MHz=2 S S 100mS2 100mS2 S = S = 5000050000计算计算初值初值:655366553650000=15536=50000=15536=3CB03CB0H HP127P127例例6-26-2:若晶振频率为:若晶振频率为6MHz6MHz,T0T0定时定时1s1s。(2)定时器(方式1)应用程序举例:1010次计数的实现次计数的实现:循环程序实现循环程序实现 DJNZ B,LOOPDJNZ B,LOOP ( (或或 DJNZ Rn,LOOPDJNZ Rn,LOOP) ) B B的初值为的初值为10,10,减减1 1不为不为0 0表明定时时

21、间未到表明定时时间未到, ,中断中断返回返回, ,否则停止计数否则停止计数, ,即即 CLR TR0CLR TR0GATE C / T M1 M0 GATE C / T M1 M0定时器方式定时器方式寄存器寄存器TMOD由分析得知:由分析得知:T0T0选择方式选择方式1 1,初值,初值=3CB0H=3CB0H X X X X 0 0 X X X X 0 0 0 10 1初始化:初始化:MOV TMODMOV TMOD,# #01H01H ; ;选选 T0 T0 方式方式 1 1 MOV TH0MOV TH0, # #3CH ;3CH ;赋初值高赋初值高8 8位位 MOV TL0MOV TL0,

22、 #0 #0B0H ;B0H ;赋初值低赋初值低8 8位位 SETB TR0SETB TR0 ; ;启动启动 T0 T0定时定时 SETB ET0SETB ET0 ; ;开开T0T0中断允许中断允许 SETB EASETB EA ; ;开总中断允许开总中断允许长定时举例长定时举例( (续续):): ORG 0000H ORG 0000H AJMP MAIN AJMP MAIN ORG 000BH ORG 000BH AJMP IT0P AJMP IT0PMAIN: MOV SP,#60HMAIN: MOV SP,#60HMOV B, #10MOV B, #10 ; ;设置中断次数设置中断次数

23、HERE: SJMP HERE ;HERE: SJMP HERE ;原地等待中断的产生原地等待中断的产生IT0PIT0P:MOV TH1,#3CH ;MOV TH1,#3CH ;再赋初值再赋初值MOV TL1,#0B0HMOV TL1,#0B0HDJNZ B,LOOP ;DJNZ B,LOOP ;若中断不到若中断不到1010次就返回次就返回 CLR TR0CLR TR0 ;1s;1s时间到时间到, ,停止停止T0T0工作工作LOOP: RETI ;LOOP: RETI ;中断返回中断返回 END END中中断断服服务务2.2.工作方式工作方式2 2:8 8 位自动重装的定时位自动重装的定时/

24、/计数器计数器 分为分为8 8位位寄存器寄存器THTH和和8 8位位计数器计数器TLTLT0T1T2T3T4T5T6T7TH0/TH1T0T1T2T3T4T5T6T7TL0/TL1计数计数2.2.工作方式工作方式2 2:8 8 位自动重装的定时位自动重装的定时/ /计数器计数器 分为分为8 8位位寄存器寄存器THTH和和8 8位位计数器计数器TLTL溢溢出出位位振荡器振荡器 12TLx (8位位)TFx申请申请中断中断TxTx端端TRxTRx位位GATEGATE位位INTxINTx端端11& &C/T=0C/T=1控制控制 =1开关接通开关接通或门或门与门与门THx (8位位)门开门开1 12

25、.2.工作方式工作方式2 2:8 8 位自动重装的定时位自动重装的定时/ /计数器计数器TLX+1TLX=0?1TFX2THX TLXNY THx/TLx THx/TLx赋相同初值赋相同初值 在在TLxTLx计数达到计数达到0FF0FFH H 再加再加“1”“1”时,时,TL0TL0将溢出将溢出, , 进位位进位位直接进入直接进入“TFxTFx”去申请中断去申请中断, ,同时同时打开打开 三态门三态门,使,使THxTHx中的值自动中的值自动重装重装(Copy)(Copy)进进TLxTLx(1)(1)工作方式工作方式 2 2 的编程:的编程:TMODTMOD寄存器选方式:寄存器选方式: 写写“M

26、1“M1,M0” = M0” = 1010 B B 选中方式选中方式2 2其他用法与各种方式其他用法与各种方式1 1完全相同完全相同分析:分析:foscfosc = 6MHz = 6MHz 1 1机器周期机器周期 = 2 = 2 S S 1KHz1KHz方波周期方波周期 = 1 = 1 mS mS 半半个方个方波波周期周期 =500=500 S S 500uS2 uS = 250 500uS2 uS = 250 若选择方式若选择方式2 2 工作工作, ,计算计算初值初值:2 28 8250=250=6 6P125P125例例6-1(6-1(改改):):从从P1.0 P1.0 脚输出频率脚输出频

27、率=1KHz=1KHz方波。方波。设:晶振设:晶振=6MHz=6MHz。利用。利用T1T1定时中断。定时中断。Th:半周期:半周期T:周期:周期(2)定时器(方式2)应用程序举例: ORG 0000HORG 0000H AJMP AJMP MAINMAIN ORG 001BH ORG 001BH ;T1T1的中断矢量的中断矢量 CPL P1.0 CPL P1.0 ;中断服务:中断服务:P1.0P1.0取反取反 RETI RETI ;中断返回中断返回MAIN:MAIN: MOV TMOD MOV TMOD,#20H#20H MOV TH1 MOV TH1, #6 #6 MOV TL1 MOV T

28、L1, #6 #6 SETB ET1 SETB ET1 SETB EA SETB EA SETB TR1 SETB TR1 HERE: HERE: AJMP AJMP HERE HERE ;原地等待中断;原地等待中断 ENDEND初初始始化化;选;选T1T1方式方式2 2;赋;赋重装值重装值;赋;赋初值初值;开;开T1T1中断中断;开总中断;开总中断;启动;启动T1T13.3.工作方式工作方式0 0:13 13 位定时位定时/ /计数器计数器 T0T1T2T3T4T5T6T7T8T9T10T11T12TH0/TH1TL0/TL1振荡器振荡器 12TLx THx (5位位) (8位位)TFx申申

29、请请中中断断TxTx端端TRxTRx位位GATEGATE位位INTxINTx端端11& &C/T=0C/T=1控制控制 =1开关接开关接通通或门或门与门与门T0T0: 组织成组织成TL0TL0和和TH0TH0两个两个8 8位定时位定时/ /计数器计数器4.Timer4.Timer工作方式工作方式 3 3 几乎无用,几乎无用,仅适用于仅适用于T0T0T1T1: 不再是不再是定时定时/ /计数器了计数器了 T1T1 的的TR1TR1和和TF1TF1出借给出借给TH0TH0当控制位使用当控制位使用, , 剩下的剩下的TH1/TL1TH1/TL1寄存器只能当作普通寄存寄存器只能当作普通寄存 器用。器用

30、。振荡器振荡器 12TL0 (8位位)TF0申请申请中断中断T0T0端端TR0TR0位位GATEGATE位位INT0INT0端端11& &C/T=0C/T=1控制控制 =1开关接通开关接通或门或门与门与门TH0 (8位位)TF1申请申请中断中断TR1TR1位位控制控制 =1TimerTimer工作方式工作方式 3 3 结构:结构:T0T0成为双成为双8 8位独立位独立Timer Timer T1T1只可定时只可定时TF1,TR1TF1,TR1出借给出借给TH0TH0五五. .实时时钟的设计实时时钟的设计 P.133 P.1331.1.实时时钟实现思想实时时钟实现思想最小单位是秒最小单位是秒,

31、,定时定时1s1s程序已经介绍程序已经介绍且能够连续定时且能够连续定时, ,方式方式2 2最大定时时间太短最大定时时间太短(512us),(512us),考虑使用方式考虑使用方式1,1,在中断子程序中重载初值。在中断子程序中重载初值。2.2.RAMRAM单元分配单元分配: : 42H: 42H:“秒秒”单元单元, ,41H: 41H: “分分”单元单元, ,40H:40H:“时时”单单元元五五. .实时时钟的设计实时时钟的设计 P.133 P.1333.3.主程序主程序完成定时器完成定时器T0T0初始化初始化, ,启动启动T0,T0,等待等待100ms100ms的定时中断。的定时中断。设置设置

32、T0T0为方式为方式1 1设中断次数设中断次数1010次次清计时单元清计时单元开中断开中断赋初值并启动赋初值并启动T0T0等待等待MAIN: MAIN: MOV TMOD, #01HMOV TMOD, #01H MOV 20H, #10MOV 20H, #10 CLR ACLR A MOV 40H, AMOV 40H, A MOV 41H, A MOV 41H, A MOV 42H, A MOV 42H, A SETB EASETB EA SETB ET0 SETB ET0 MOV TH0, #3CHMOV TH0, #3CH MOV TL0, #0B0H MOV TL0, #0B0H SET

33、B TR0 SETB TR0HERE: SJMP HEREHERE: SJMP HERE 清清 时时、分分、秒秒单元单元五五. .实时时钟的设计实时时钟的设计 P.133 P.1333.3.中断服务程序中断服务程序实现秒、分、时的计时处理。实现秒、分、时的计时处理。保护现场保护现场重设初值重设初值秒单元秒单元+1+1秒单元清秒单元清0 0恢复现场恢复现场1s1s时间到时间到? ?分单元分单元+1+1分单元清分单元清0 0时单元时单元+1+1时单元清时单元清0 0NNNYNYYYRETT入口入口重载重载1010次次秒单元秒单元=60H?=60H?分单元分单元=60H?=60H?时单元时单元=24

34、H?=24H?返回返回AA五五. .实时时钟的设计实时时钟的设计 P.133 P.1333.3.中断服务程序中断服务程序实现秒、分、时的计时处理。实现秒、分、时的计时处理。IT0P: PUSH PSWIT0P: PUSH PSW PUSH A PUSH A MOV TH0,#3CH MOV TH0,#3CH MOV TL0,#0B0H MOV TL0,#0B0H DJNZ 20H, DJNZ 20H, RETTRETT MOV 20H, #10 MOV 20H, #10 MOV A,#01HMOV A,#01H ADD A, 42H ADD A, 42H DA ADA A MOV 42H, A

35、 MOV 42H, A CJNE A, CJNE A, #60H#60H, ,RETRETT T MOV 42H, #00H MOV 42H, #00H秒秒单单元元42H42H:“:“秒秒”单单元元, ,41H41H:“:“分分”单单元元, ,40H40H:“:“时时”单单元元五五. .实时时钟的设计实时时钟的设计 P.133 P.1333.3.中断服务程序中断服务程序实现秒、分、时的计时处理。实现秒、分、时的计时处理。 MOV A,#01HMOV A,#01H ADD A, 41H ADD A, 41H DA A DA A MOV 41H, A MOV 41H, A CJNE A, CJNE

36、 A, #60H#60H, ,RETTRETT MOV 41H,#00HMOV 41H,#00H分分单单元元时时单单元元 MOV A,#01HMOV A,#01H ADD A, 40H ADD A, 40H DA A DA A MOV 40H, A MOV 40H, A CJNE A, CJNE A, #24H#24H, ,RETTRETT MOV 40H,#00H MOV 40H,#00H五五. .实时时钟的设计实时时钟的设计 P.133 P.1333.3.中断服务程序中断服务程序实现秒、分、时的计时处理。实现秒、分、时的计时处理。RETT: POP ARETT: POP A POP PSW

37、 POP PSW RETIRETI END END 五五. .实时时钟的设计实时时钟的设计 P.133 P.1333.3.中断服务程序中断服务程序实现秒、分、时的计时处理。实现秒、分、时的计时处理。RETT: POP ARETT: POP A POP PSW POP PSW RETIRETI END END 五五. .实时时钟的设计实时时钟的设计 P.133 P.1333.3.中断服务程序中断服务程序实现秒、分、时的计时处理。实现秒、分、时的计时处理。RETT: POP ARETT: POP A POP PSW POP PSW RETIRETI END END 五五. .实时时钟的设计实时时钟

38、的设计 P.133 P.1333.3.中断服务程序中断服务程序实现秒、分、时的计时处理。实现秒、分、时的计时处理。RETT: POP ARETT: POP A POP PSW POP PSW RETIRETI END END 六六. .运行中读定时器运行中读定时器/ /计数器计数器 P.135 P.1351.1.由于由于CPUCPU每次每次只能读取一个字节数据只能读取一个字节数据, ,即不可能即不可能同时读取同时读取THXTHX和和TLX,TLX,因此无论先读取哪个字节都因此无论先读取哪个字节都可能出错。可能出错。2.2.解决方法解决方法: :先先读读THX,THX,后后读读TLX,TLX,再

39、再读取读取THX,THX,若若2 2次次THXTHX值相同值相同, ,则确定读取正确。则确定读取正确。六六. .运行中读定时器运行中读定时器/ /计数器计数器 P135 P135例例: :将读得的将读得的(TH0)(TH0)和和(TL0)(TL0)分别放置在分别放置在R1R1和和R0R0内。内。P.135P.135RDTIME: A, RDTIME: A, TH0TH0 MOV R0, TL0 MOV R0, TL0 CJNE A, CJNE A, TH0TH0,RDTIME,RDTIME MOV R1, A MOV R1, A RET RET; ;比较比较2 2次读得次读得; ;的的(TH0

40、),(TH0),不相不相; ;等则重新读取。等则重新读取。MCS-51MCS-51定时器小结:定时器小结:2.2.运行运行/ /停止停止由由TRxTRx位控制,位控制,( (当当GATE=1GATE=1时:时: 由由TRxTRx位和位和TxTx引脚上的信号共同控制引脚上的信号共同控制) )1.1.工作方式工作方式由由TMODTMOD决定决定; ; 计数计数/ /定时定时由由C/TC/T位决定位决定 工作方式工作方式0 0(1313位)位) 很少用到很少用到 工作方式工作方式3 3(T0T0拆为双拆为双8 8位)位) 几乎几乎无无用用 工作方式工作方式1 1(1616位)位) 经常用到经常用到

41、工作方式工作方式2 2(8 8位自动重装)位自动重装) 经常用到经常用到3.3.从初值按机器周期或外部脉冲递加,溢出位从初值按机器周期或外部脉冲递加,溢出位 TFxTFx申请中断申请中断;中断允许中断允许由由ETxETx位和位和EAEA位控制,位控制,思考与习题思考与习题12.12.判断下列说法是否正确判断下列说法是否正确(1)SCON(1)SCON与定时器与定时器/ /计数器的控制无关计数器的控制无关(2)TCON(2)TCON与定时器与定时器/ /计数器的控制无关计数器的控制无关(3)IE(3)IE定时器定时器/ /计数器的控制无关计数器的控制无关(4)TMOD(4)TMOD与定时器与定时

42、器/ /计数器的控制无关计数器的控制无关TF1 TR1 TF0 TR0 TF1 TR1 TF0 TR0 IE1IE1 IT1 IT1 IE0IE0 IT0 IT0TCONTCONSCONSCON SM0 SM1 SM2 REN TB8 RB8 TI RI EA ET2 ES ET1 EX1 ET0 EX0EA ET2 ES ET1 EX1 ET0 EX0IEIEGATE C / T M1 M0 GATE C / T M1 M0TMODTMOD(1)思考与习题思考与习题作业作业:P.136-1:P.136-1、6,6,选作选作1010题。题。1.1.晶振频率晶振频率3MHz,3MHz,定时器定时

43、器/ /计数器工作在方式计数器工作在方式0 0、1 1、2 2下,其最大定时时间多长?下,其最大定时时间多长?6.6.编写程序,要求使用编写程序,要求使用T0T0采用方式采用方式2 2定时,在定时,在P1.0P1.0输输出周期为出周期为400us400us,占空比为,占空比为1:101:10的矩形连续脉冲。的矩形连续脉冲。10.10.编写程序,要求功能为:当编写程序,要求功能为:当P1.0P1.0引脚电平为正跳引脚电平为正跳变时,对变时,对P1.1P1.1的输入脉冲进行计数;当的输入脉冲进行计数;当P1.2P1.2的引脚的引脚电平负跳变时,停止计数,并将计数值写入电平负跳变时,停止计数,并将计

44、数值写入(R1R0R1R0)画出流程图画出流程图。占空比占空比(Duty Ratio)(Duty Ratio)在一串理想的脉冲周期序列中在一串理想的脉冲周期序列中(如方波)(如方波), ,正脉冲正脉冲的持续时间与的持续时间与脉冲总周期脉冲总周期的比值。的比值。 tT占空比占空比 = t / T思考与习题思考与习题思考与习题思考与习题思考思考: :1.1.启动定时启动定时/ /计数与计数与GATEGATE有何关系?有何关系?2.2.为什么一般情况下为什么一般情况下, ,在中断入口地址区间要设在中断入口地址区间要设置一条跳转指令置一条跳转指令, ,转移到中断服务程序和实际入转移到中断服务程序和实际

45、入口处?口处? 作业解答作业解答作业作业1:1:已知已知fosc=3MHz,fosc=3MHz,定时器在方式定时器在方式0 0、1 1、2 2的最大的最大 定时时间?定时时间?解解:Tm=12/fosc=4us,:Tm=12/fosc=4us,则各方式下的最大定时时间为则各方式下的最大定时时间为方式方式0: 20: 21313Tm = 32768us =32.768msTm = 32768us =32.768ms方式方式1: 21: 21616Tm = 262.144msTm = 262.144ms方式方式2: 22: 28 8 Tm = 1.024msTm = 1.024ms作业解答作业解答

46、作业作业6:6:采用采用T0,T0,选择方式选择方式2 2定时定时400us,400us,占空比为占空比为1:101:10的的 矩形波?矩形波?(fosc=6MHz)(fosc=6MHz)错误一错误一: :立即数的表示立即数的表示 #4AH #4AH错误二错误二: :方式方式2 2的初始化的初始化 MOV TL0, #*H MOV TL0, #*H MOV TH0, #*H MOV TH0, #*H错误三错误三: :采用软硬件结合的方法实现定时采用软硬件结合的方法实现定时SETB TR0SETB TR0SETB ET0SETB ET0SETB EASETB EASETB P1.0SETB P1

47、.0SJMP $SJMP $IT0P:CLR EAIT0P:CLR EA CLR P1.0 CLR P1.0 MOV R1,#9 MOV R1,#9DLY: DJNZ R1,DLYDLY: DJNZ R1,DLY SETB P1.0 SETB P1.0 SETB EA SETB EA RETI RETI均占用时间均占用时间由于在执行由于在执行DLY时时T0T0继续运继续运行行, ,当当T0发生一次定时溢出时发生一次定时溢出时与上次的溢出时刻不是严格与上次的溢出时刻不是严格的定时时间。的定时时间。作业解答作业解答作业作业6:6:采用采用T0,T0,选择方式选择方式2 2定时定时400us,400

48、us,占空比为占空比为1:101:10的的 矩形波?矩形波?(fosc=6MHz)(fosc=6MHz)错误一错误一: :立即数的表示立即数的表示 #4AH #4AH错误二错误二: :方式方式2 2的初始化的初始化 MOV TL0, #*H MOV TL0, #*H MOV TH0, #*H MOV TH0, #*H错误三错误三: :采用软硬件结合的方法实现定时采用软硬件结合的方法实现定时SETB TR0SETB TR0SETB ET0SETB ET0SETB EASETB EASETB P1.0SETB P1.0SJMP $SJMP $IT0P:CLR EAIT0P:CLR EA CLR P

49、1.0 CLR P1.0 MOV R1,#9 MOV R1,#9DLY: DJNZ R1,DLYDLY: DJNZ R1,DLY SETB P1.0 SETB P1.0 SETB EA SETB EA RETI RETI均占用时间均占用时间由于在执行由于在执行DLY时时T0T0继续运继续运行行, ,当当T0发生一次定时溢出时发生一次定时溢出时与上次的溢出时刻不是严格与上次的溢出时刻不是严格的定时时间。的定时时间。作业解答作业解答作业作业6:6:采用采用T0,T0,选择方式选择方式2 2定时定时400us,400us,占空比为占空比为10:110:1的的 矩形波?矩形波?(fosc=6MHz)(

50、fosc=6MHz)分析分析: :假设占空比的含义为假设占空比的含义为T TH H/T/TL L, ,当当fosc=6MHzfosc=6MHz时时, ,方式方式2 2中断一次的最大定时时间为中断一次的最大定时时间为 2 28 8 Tm = 512usTm = 512us矩形波的一个周期时间矩形波的一个周期时间 解决关键是确定多长时间中断一次?解决关键是确定多长时间中断一次?由于由于T TH H= 400us= 400us10101111T TL L= 400us= 400us1 11111所以所以 采用以采用以T TL L为为定时时间定时时间, ,1010次这样的定时为次这样的定时为T TH

51、H作业解答作业解答作业作业6:6:当定时时间为当定时时间为400us400us10/1110/11时时, ,方式方式2 2下的下的计数初值为计数初值为 X=2 X=28 8-400us-400us10/11/2us10/11/2us238 = 238 = 0EEH0EEHMOV TMOD,#02HMOV TMOD,#02HMOV TH0, #0EEHMOV TH0, #0EEHMOV TL0, #0EEHMOV TL0, #0EEHCLR F0CLR F0 ; ;作为高作为高/ /低波形的选择低波形的选择,F0=0 ,F0=0 低低;F0=1 ;F0=1 高高CLR P1.0CLR P1.0

52、; ;先生成先生成低低电平波形电平波形MOV 30H, #10MOV 30H, #10SETB EASETB EASETB ET0SETB ET0SETB TR0SETB TR0作业解答作业解答F0=1?F0=1?1010次中断到否?次中断到否?P1.0=0,F0=0,(30H)=10P1.0=0,F0=0,(30H)=10中断返回中断返回P1.0=1,P1.0=1,F0=1F0=1是是是是否否否否IT0: IT0: JNB F0, DDPJNB F0, DDP DJNZ 30H,RETURNDJNZ 30H,RETURN MOV 30H,#10MOV 30H,#10 CLR P1.0 CLR P1.0 CLR F0 CLR F0RETURN: RETURN: RETIRETIDDP: DDP: SETB P1.0SETB P1.0 SETB F0 SETB F0 SJMP RETURN SJMP RETURN中断服务子程序中断服务子程序: :精品课件精品课件!精品课件精品课件!OVER !

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号