版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、18051定时器结构第1页/共44页第一页,编辑于星期六:七点 二十一分。2对外界发生的事件计数,当达到程序规定的计数值时,对外界发生的事件计数,当达到程序规定的计数值时,输出一脉冲信号,申请中断。输出一脉冲信号,申请中断。例如一啤酒生产线,如下图例如一啤酒生产线,如下图所示所示。计数24瓶光电信号24瓶装完申请中断转入中断服务程序装箱输送带定时器的计数功能定时器的计数功能第2页/共44页第二页,编辑于星期六:七点 二十一分。31.定时工作方式按8051片内振荡器12分频的脉冲加一,直至溢出。若8051采用12MHz晶振,则机器周期为1us,计数频率为1MHz。 2.计数工作方式通过T0(P3
2、.4)和T1(P3.5)对外部脉冲信号计数;在下降沿处加一;输入脉冲宽度大于2个机器周期。3.T0/T1在对内部时钟或对外部事件计数时,不占用CPU时间。第3页/共44页第三页,编辑于星期六:七点 二十一分。42.2 2.2 定时器的控制定时器的控制2.2.1 2.2.1 工作模式寄存器工作模式寄存器 TMOD TMOD用于控制用于控制T0T0、T1T1的工作模式。的工作模式。 其低其低4 4位用于控制位用于控制T0T0,高,高4 4位用于控制位用于控制T1T1。 TMOD TMOD不能位寻址,只能以字节设定定时器的不能位寻址,只能以字节设定定时器的 工作模式。工作模式。第4页/共44页第四页
3、,编辑于星期六:七点 二十一分。5(1 1) M1M1、M0M0工作方式选择位工作方式选择位 M1 M0 M1 M0 工工 作作 方方 式式 0 0 0 0 方式方式0 0,1313位定时器位定时器/ /计数器。计数器。 0 1 0 1方式方式1 1,1616位定时器位定时器/ /计数器。计数器。 1 0 1 0 方式方式2 2,8 8位常数自动重新装载位常数自动重新装载 1 1 1 1 方式方式3 3,仅适用于,仅适用于T0T0,T0T0分成两个分成两个8 8 位计数器,位计数器,T1T1停止计数。停止计数。 ( (2) C/T2) C/T* *计数器模式和定时器模式选择位计数器模式和定时器
4、模式选择位 0 0:定时器模式。:定时器模式。 1 1:计数器模式。计数器模式。第5页/共44页第五页,编辑于星期六:七点 二十一分。6(3 3) GATEGATE门控位门控位 0 0:以运行控制位以运行控制位TRXTRX(X=0,1X=0,1)来启动定时器来启动定时器/ /计数器运行。计数器运行。1 1:用外中断引脚用外中断引脚( (INT0INT0* *或或INT1INT1* *) )上的高电平来启动定时器上的高电平来启动定时器/ /计数器运行。计数器运行。第6页/共44页第六页,编辑于星期六:七点 二十一分。72.2.2 2.2.2 定时器定时器/ /计数器控制寄存器计数器控制寄存器TC
5、ONTCON 可位寻址,低可位寻址,低4 4位与外部中断有关,高位与外部中断有关,高4 4位的功能如下:位的功能如下: (1) TF1(1) TF1、TF0TF0计数溢出标志位计数溢出标志位 (2) TR1 (2) TR1、TR0TR0计数运行控制位计数运行控制位 1 1:启动定时器:启动定时器/ /计数器工作计数器工作 0 0:停止定时器:停止定时器/ /计数器工作计数器工作 第7页/共44页第七页,编辑于星期六:七点 二十一分。82.3 2.3 定时器定时器/ /计数器的计数器的4 4种工作方式种工作方式 通过设置通过设置TMODTMOD中的中的C/TC/T位选择定时或计数功能;位选择定时
6、或计数功能; 对对M1M1和和M0M0的设置对应于的设置对应于4 4种模式;种模式; 模式模式0 0、1 1、2 2时,时,T0T0与与T1T1的工作模式相同;的工作模式相同; 模式模式3 3时,两个定时器的工作模式不同。时,两个定时器的工作模式不同。 第8页/共44页第八页,编辑于星期六:七点 二十一分。92.3.1 2.3.1 方式方式0 0 M1M1、M0M0为为00 00 ,定时器,定时器/ /计数器的框图:计数器的框图: 图6.7 定时器模式013位计数器第9页/共44页第九页,编辑于星期六:七点 二十一分。102.3.2 2.3.2 方式方式1 1 M1M1、M0M0为为0101,
7、1616位的计数器。位的计数器。 2.32.3.3 .3 方式方式2 2 计数满后自动装入计数初值。计数满后自动装入计数初值。 M1M1、M0=M0=10 10 ,等效框图如下:,等效框图如下: 第10页/共44页第十页,编辑于星期六:七点 二十一分。11 方式方式2 2为自动恢复初值的(初值自动装入)为自动恢复初值的(初值自动装入)8 8位定位定 时器时器/ /计数器,计数器,TLXTLX作为常数缓冲器,当作为常数缓冲器,当TLXTLX计数溢出计数溢出时,在置时,在置“1 1”溢出标志溢出标志TFXTFX的同时,还自动的将的同时,还自动的将THXTHX中的初值送至中的初值送至TLXTLX,使
8、使TLXTLX从初值开始重新计数。定时从初值开始重新计数。定时器器/ /计数器的方式计数器的方式2 2工作过程如图所示工作过程如图所示( (X=0,1)X=0,1)。第11页/共44页第十一页,编辑于星期六:七点 二十一分。12 省去用户软件中重装初值的程序。精确的确定省去用户软件中重装初值的程序。精确的确定定时时间。定时时间。2.3.4 2.3.4 方式方式3 3 增加一个附加的增加一个附加的8 8位定时器位定时器/ /计数器,从而使计数器,从而使MCS-MCS-5151具有具有3 3个定时器个定时器/ /计数器。计数器。第12页/共44页第十二页,编辑于星期六:七点 二十一分。13 只适用
9、于定时器只适用于定时器/ /计数器计数器T0 T0 ,T1T1不能工作在不能工作在方方式式3 3。T1T1方式方式3 3时相当于时相当于TR1=0TR1=0,停止计数(此时停止计数(此时T1T1可可用来作串行口波特率产生器)。用来作串行口波特率产生器)。1 1工作方式工作方式3 3下的下的T0T0 T0 T0分为两个独立的分为两个独立的8 8位计数器位计数器: :TL0TL0和和TH0 TH0 。TL0TL0使用使用T0T0的状态控制位的状态控制位C/TC/T* *、GATEGATE、TR0TR0,而而TH0TH0被被固定为一个固定为一个8 8位定时器(不能作外部计数模式),并位定时器(不能作
10、外部计数模式),并使用定时器使用定时器T1T1的状态控制位的状态控制位TR1TR1和和TF1TF1,同时占用定同时占用定时器时器T1T1的中断请求源的中断请求源TF1TF1。 各引脚与各引脚与T0T0的逻辑关系如图所示。的逻辑关系如图所示。 第13页/共44页第十三页,编辑于星期六:七点 二十一分。14第14页/共44页第十四页,编辑于星期六:七点 二十一分。152 2T0T0工作在方式工作在方式3 3下下T1T1的各种工作方式的各种工作方式 当当T1T1用作串行口的波特率发生器时,用作串行口的波特率发生器时, T0T0才工作才工作在方式在方式3 3。T0T0处于方式处于方式3 3时,时, T
11、1T1可定为方式可定为方式0 0、方式、方式1 1和方式和方式2 2,用来作为串行口的波特率发生器,或不需,用来作为串行口的波特率发生器,或不需要中断的场合。要中断的场合。(1 1)T1T1工作在方式工作在方式0 0 第15页/共44页第十五页,编辑于星期六:七点 二十一分。16(2 2) T1T1工作在方式工作在方式1 1 (3 3) T1T1工作在方式工作在方式2 2 第16页/共44页第十六页,编辑于星期六:七点 二十一分。17定时器定时器/ /计数器对输入信号的要求计数器对输入信号的要求 外部输入的计数脉冲的最高频率为系统振荡器频率的外部输入的计数脉冲的最高频率为系统振荡器频率的1/2
12、41/24,例如选用,例如选用1212MHzMHz频率的晶体,则可输入频率的晶体,则可输入500500KHzKHz的外部脉冲。的外部脉冲。对于外部输入信号的占空比并没有什么限制,但为了对于外部输入信号的占空比并没有什么限制,但为了确保某一给定的电平在变化之前能被采样一次,则确保某一给定的电平在变化之前能被采样一次,则这一电平至少要保持一个机器周期。故对外部输入这一电平至少要保持一个机器周期。故对外部输入信号的基本要求如图所示,图中信号的基本要求如图所示,图中TcyTcy为机器周期。为机器周期。第17页/共44页第十七页,编辑于星期六:七点 二十一分。18定时器定时器/ /计数器的编程和应用计数
13、器的编程和应用 4 4种工作方式中,方式种工作方式中,方式0 0与方式与方式1 1基本相同,由于方基本相同,由于方式式0 0是为兼容是为兼容MCS-48MCS-48而设,其计数初值计算复杂,而设,其计数初值计算复杂,在实际应用中,一般不用方式在实际应用中,一般不用方式0 0,而采用方式,而采用方式1 1。方式方式1 1应用应用 例例1 1 假设系统时钟频率采用假设系统时钟频率采用6 6MHzMHz,要在要在P1.0P1.0上输出一上输出一个周期为个周期为2 2msms的方波,如图所示。的方波,如图所示。 第18页/共44页第十八页,编辑于星期六:七点 二十一分。19方波的周期用方波的周期用T0
14、T0来确定,让来确定,让T0T0每隔每隔1 1msms计数溢出计数溢出1 1次,次,既既T0T0每隔每隔1 1msms产生一次中断,产生一次中断,CPUCPU相应中断后,在中相应中断后,在中断服务程序中对断服务程序中对P1.0P1.0取反。取反。 (1) (1)计算初值计算初值 设:需要装入设:需要装入T0T0的初值为的初值为X X,则有则有: :(2(21616- -X)X)2 21010-6-6=1=11010-3-3 2 21616-X=500 X=65036-X=500 X=65036 X X化为化为1616进制,即进制,即X=FE0CH=1111111000001100BX=FE0C
15、H=1111111000001100B。 所以,所以,T0T0的初值为:的初值为: TH0=0FEH TL0=0CHTH0=0FEH TL0=0CH(2)(2)初始化程序设计初始化程序设计 第19页/共44页第十九页,编辑于星期六:七点 二十一分。20包括定时器初始化和中断系统初始化,主要是对寄存包括定时器初始化和中断系统初始化,主要是对寄存器器IPIP、IEIE、TCONTCON、TMODTMOD的相应位进行正确的设置,的相应位进行正确的设置,将计数初值送入定时器中。将计数初值送入定时器中。 (3)(3)程序设计程序设计 中断服务程序除了完成要求的产生方波这一工作之中断服务程序除了完成要求的
16、产生方波这一工作之外,还要注意将计数初值重新装入定时器中,为外,还要注意将计数初值重新装入定时器中,为下一次产生中断作准备。下一次产生中断作准备。 参考程序:参考程序: ORG 0000HORG 0000HRESET: AJMP MAIN RESET: AJMP MAIN ;转主程序转主程序 ORG 000BHORG 000BH ;T0T0的中断入口的中断入口 AJMP IT0P AJMP IT0P ;转转T0T0中断处理程序中断处理程序IT0PIT0P ORG 0100HORG 0100HMAIN: MOV SP,#60H MAIN: MOV SP,#60H ;设堆栈指针设堆栈指针 MOV
17、TMOD,#01HMOV TMOD,#01H ;设置设置T0T0为方式为方式1 1 第20页/共44页第二十页,编辑于星期六:七点 二十一分。21 ACALL PT0M0ACALL PT0M0;调用子程序调用子程序PT0M0PT0M0HERE: AJMP HEREHERE: AJMP HERE;自身跳转自身跳转PT0M0: MOV TL0,#0CHPT0M0: MOV TL0,#0CH ;T0T0中断服务程序,中断服务程序,T0T0重新置初值重新置初值 MOV TH0,#0FEH MOV TH0,#0FEH SETB TR0 SETB TR0;启动启动T0T0 SETB ET0 SETB ET
18、0;允许允许T0T0中断中断 SETB EA SETB EA ;CPUCPU开中断开中断 RETRETITOP: MOV TL0,#0CH ITOP: MOV TL0,#0CH ;T0T0中断服务子程序,中断服务子程序,T0T0置初值置初值 MOV TH0,#0FEHMOV TH0,#0FEH CPL P1.0 CPL P1.0 ;P1.0P1.0的状态取反的状态取反 RETIRETI查询方式的参考程序查询方式的参考程序: : MOV TMOD,#01HMOV TMOD,#01H ;设置设置T0T0为方式为方式1 1 第21页/共44页第二十一页,编辑于星期六:七点 二十一分。22 SETB
19、TR0 SETB TR0 ;接通接通T0T0LOOP: MOV TH0,#0FEH LOOP: MOV TH0,#0FEH ;T0T0置初值置初值 MOV TL0,# 0CH MOV TL0,# 0CHLOOP1LOOP1:JNB TF0,LOOP1 JNB TF0,LOOP1 ;查询查询TF0TF0标志标志 CLR TR0 CLR TR0 ;T0T0溢出,关闭溢出,关闭T0T0 CPL P1.0 CPL P1.0 ;P1.0P1.0的状态求反的状态求反 SJMP LOOP SJMP LOOP例例2 2 假设系统时钟为假设系统时钟为6 6MHzMHz,编写定时器编写定时器T0T0产生产生1 1
20、秒秒定时的程序。定时的程序。(1 1)定时器)定时器T0T0工作方式的确定工作方式的确定因定时时间较长,采用哪一种工作方式?由定时器因定时时间较长,采用哪一种工作方式?由定时器各种工作方式的特性,可计算出:各种工作方式的特性,可计算出: 方式方式0 0最长可定时最长可定时16.38416.384ms;ms; 第22页/共44页第二十二页,编辑于星期六:七点 二十一分。23 方式方式1 1最长可定时最长可定时131.072131.072ms;ms; 方式方式2 2最长可定时最长可定时512512 s s。选方式选方式1 1,每隔,每隔100100msms中断一次,中断中断一次,中断1010次为次
21、为1 1s s。 (2 2)计算计数初值)计算计数初值因为:因为:(2(21616- -X)X)2 21010-6 -6 = 10= 10-1-1所以:所以:X=15536=3CB0HX=15536=3CB0H因此:因此:TH0=3CHTH0=3CH,TL0=B0H TL0=B0H (3 3)1010次计数的实现次计数的实现对于中断对于中断1010次计数,可使次计数,可使T0T0工作在计数方式,也可用工作在计数方式,也可用循环程序的方法实现。本例采用循环程序法。循环程序的方法实现。本例采用循环程序法。(4 4)程序设计)程序设计 参考程序参考程序 : : 第23页/共44页第二十三页,编辑于星
22、期六:七点 二十一分。24 ORG 0000HORG 0000HRESETRESET: LJMP MAIN LJMP MAIN ;上电,转主程序入口上电,转主程序入口MAINMAIN ORG 000BHORG 000BH ;T0T0的中断入口的中断入口 LJMP IT0PLJMP IT0P;转转T0T0中断处理程序中断处理程序IT0PIT0P ORG 1000HORG 1000H MAIN MAIN: MOV SP,#60H MOV SP,#60H ;设堆栈指针设堆栈指针 MOV B,#0AHMOV B,#0AH;设循环次数设循环次数1010次次 MOV TMOD,#01HMOV TMOD,#
23、01H;设设T0T0工作在方式工作在方式1 1 MOV TL0,#0B0H MOV TL0,#0B0H ;给给T0T0设初值设初值 MOV TH0,#3CHMOV TH0,#3CH SETB TR0 SETB TR0 ;启动启动T0T0 SETB ET0 SETB ET0 ;允许允许T0T0中断中断 第24页/共44页第二十四页,编辑于星期六:七点 二十一分。25 SETB EA SETB EA ;CPUCPU开放中断开放中断 HERE HERE: SJMP HERE SJMP HERE ;等待中断等待中断 ITOPITOP: MOV TL0,#0B0H MOV TL0,#0B0H ;T0T0
24、中断子程序,重装中断子程序,重装初值初值 MOV TH0,#3CH MOV TH0,#3CH ; DJNZ B DJNZ B,LOOPLOOP CLR TR0 CLR TR0 ;1s1s定时时间到,停止定时时间到,停止T0T0工作工作 LOOP LOOP: RETI RETI 方式方式2 2的应用的应用省去程序中重装初值的指令,并可产生相当精确的定省去程序中重装初值的指令,并可产生相当精确的定时时间。时时间。 例例3 3 当当T0T0(P3.4P3.4)引脚上发生负跳变时,从引脚上发生负跳变时,从P1.0P1.0引脚引脚上输出一个周期为上输出一个周期为1 1msms的方波的方波, ,如图所示。
25、(系统时钟如图所示。(系统时钟为为6 6MHzMHz)第25页/共44页第二十五页,编辑于星期六:七点 二十一分。26(1 1)工作方式选择)工作方式选择T0T0为方式为方式1 1计数,初值计数,初值 0 0FFFFHFFFFH,即外部计数输入端即外部计数输入端T0T0(P3.4P3.4)发生一次负跳变时,发生一次负跳变时,T0T0加加1 1且溢出,溢且溢出,溢出标志出标志TF0TF0置置“1 1”,发中断请求。在进入,发中断请求。在进入T0T0中断程中断程序后,把序后,把F0F0标志置标志置“1 1”,说明,说明T0T0引脚上已接收了负引脚上已接收了负跳变信号。跳变信号。T1T1定义为方式定
26、义为方式2 2定时。在定时。在T0T0引脚产生一次引脚产生一次负跳变后,负跳变后,第26页/共44页第二十六页,编辑于星期六:七点 二十一分。27启动启动T1T1每每500500 s s产生一次中断,在中断服务程序中对产生一次中断,在中断服务程序中对P1.0P1.0求反,使求反,使P1.0P1.0产生周期产生周期1 1msms的方波。的方波。(2 2)计算)计算T1T1初值初值设设T1T1的初值为的初值为X X:则则 (2 (28 8- -X)X)2 21010-6-6=5=51010-4-4 X=2 X=28 8-250=6=06H-250=6=06H(3 3)程序设计程序设计 ORG 00
27、00HORG 0000H RESET: LJMP MAIN RESET: LJMP MAIN ;复位入口转主程序复位入口转主程序 ORG 000BHORG 000BH JMP IT0P JMP IT0P ;转转T0T0中断服务程序中断服务程序 第27页/共44页第二十七页,编辑于星期六:七点 二十一分。28 ORG 001BHORG 001BH LJMP IT1P LJMP IT1P ;转转T1T1中断服务程序中断服务程序 ORG 0100HORG 0100HMAIN: MOV SP,#60HMAIN: MOV SP,#60H ACALL PT0M2 ACALL PT0M2 ;调用对调用对T0
28、T0,T1T1初始化子初始化子程序程序LOOP: MOV C,F0 LOOP: MOV C,F0 ;T0T0产生过中断了吗,产生产生过中断了吗,产生过过 中断,则中断,则F0=1F0=1 JNC LOOP JNC LOOP;T0T0没有产生过中断,则跳到没有产生过中断,则跳到 LOOPLOOP,等待等待T0T0中断中断 SETB TR1 SETB TR1 ;启动启动T1T1 SETB ET1 SETB ET1 ;允许允许T1T1中断中断HERE: AJMP HEREHERE: AJMP HERE第28页/共44页第二十八页,编辑于星期六:七点 二十一分。29 PT0M2: MOV TMOD,#
29、26H PT0M2: MOV TMOD,#26H ;初始化,初始化,T1T1为方式为方式2 2定定 时,时,T0T0为方式为方式1 1计数计数 MOV TL0,#0FFH MOV TL0,#0FFH ;T0T0置初值置初值 MOV TH0,#0FFHMOV TH0,#0FFH SETB TR0 SETB TR0 ;启动启动T0T0 SETB ET0 SETB ET0 ;允许允许T0T0中断中断 MOV TL1,#06H MOV TL1,#06H ;T1T1置初值置初值 MOV TH1,#06HMOV TH1,#06H CLR F0 CLR F0;把把T0T0已发生中断标志已发生中断标志F0F0
30、清清0 0 SETB EASETB EA RETRET IT0P: CLR TR0 IT0P: CLR TR0 ;T0T0中断服务程序,停止中断服务程序,停止T0T0计计数数 第29页/共44页第二十九页,编辑于星期六:七点 二十一分。30 SETB F0 SETB F0 ;建立产生中断标志建立产生中断标志 RETIRETIIT1P: CPL P1.0IT1P: CPL P1.0;T1T1中断服务,中断服务,P1.0P1.0位取反位取反 RETI RETI在在T1T1定时中断服务程序定时中断服务程序IT1PIT1P中,由于方式中,由于方式2 2是初值可以是初值可以自动重新装载的,省去了自动重新
31、装载的,省去了T1T1中断服务程序中重新装中断服务程序中重新装入初值入初值0606H H的指令。的指令。 例例4 4 利用定时器利用定时器T1T1的方式的方式2 2对外部信号计数,要求每计对外部信号计数,要求每计满满100100个数,将个数,将P1.0P1.0取反。取反。 本例是方式本例是方式2 2计数模式的应用。计数模式的应用。(1 1)选择工作方式)选择工作方式 第30页/共44页第三十页,编辑于星期六:七点 二十一分。31外部信号由外部信号由T1(P3.5)T1(P3.5) 脚输入脚输入, ,每发生一次负跳变计每发生一次负跳变计数器加数器加1 1,每输入,每输入100100个脉冲,计数器
32、产生溢出中个脉冲,计数器产生溢出中断,在中断服务程序中将断,在中断服务程序中将P1.0P1.0取反一次。取反一次。T1T1工作在方式工作在方式2 2的控制字为的控制字为TMOD=60HTMOD=60H。不使用不使用T0T0时,时,TMODTMOD的低的低4 4位可任取,但不能使位可任取,但不能使T0T0进入方式进入方式3 3,这,这里取全里取全0 0。(2 2)计算)计算T1T1的初值的初值X=2X=28 8-100=156=9CH-100=156=9CH 因此,因此,TL1TL1的初值为的初值为9 9CHCH,重装初值寄存器重装初值寄存器TH1=9CHTH1=9CH(3 3)程序设计程序设计
33、 ORG 0000HORG 0000HLJMP MAINLJMP MAINORG 001BHORG 001BH;T1T1中断服务程序入口中断服务程序入口 第31页/共44页第三十一页,编辑于星期六:七点 二十一分。32 CPL P1.0CPL P1.0;P1.0P1.0位取反位取反 RETIRETI ORG 0100HORG 0100H MAIN: MAIN: MOV TMOD,#60H MOV TMOD,#60H ;设设T1T1为方式为方式2 2计数计数 MOV TL0,#9CH MOV TL0,#9CH ;T0T0置初值置初值 MOV TH0,#9CH MOV TH0,#9CH SETB
34、TR1SETB TR1 ;启动启动T1T1 HERE: HERE: AJMP HEREAJMP HERE方式方式3 3的应用的应用T0T0工作在方式工作在方式3 3时,时,TL0TL0和和TH0TH0被分成两个独立的被分成两个独立的8 8位定位定时器时器/ /计数器。其中,计数器。其中,TL0TL0可作为可作为8 8位的定时器位的定时器/ /计数计数器;而器;而TH0TH0只能作为只能作为8 8位的定时器。位的定时器。 第32页/共44页第三十二页,编辑于星期六:七点 二十一分。33当当T1T1用作串行口波特率发生器时,用作串行口波特率发生器时,T0T0才设置为方式才设置为方式3 3。此时,常
35、把此时,常把T1T1设置为方式设置为方式2 2,用作波特率发生器。,用作波特率发生器。 例例5 5 假设某假设某MCS-51MCS-51应用系统的两个外中断源已被占应用系统的两个外中断源已被占用,设置用,设置T1T1工作在方式工作在方式2 2,作波特率发生器用。现要,作波特率发生器用。现要求增加一个外部中断源,并控制求增加一个外部中断源,并控制P1.0P1.0引脚输出一个引脚输出一个5 5kHzkHz的方波。设系统时钟为的方波。设系统时钟为6 6MHzMHz。(1 1)选择工作方式)选择工作方式设置设置TL0TL0工作在方式工作在方式3 3计数,把计数,把T0T0引脚(引脚(P3.4P3.4)
36、作附加作附加的外中断输入端,的外中断输入端,TL0TL0初值设为初值设为0 0FFHFFH,当检测到当检测到T0T0引引脚电平出现负跳变时,脚电平出现负跳变时,TL0TL0溢出,申请中断,这相当溢出,申请中断,这相当于跳沿触发的外部中断源。于跳沿触发的外部中断源。TH0TH0为为8 8位方式位方式3 3定时模式,定时模式,定时控制定时控制P1.0P1.0输出输出5 5kHzkHz的方波信号。如图所示。的方波信号。如图所示。第33页/共44页第三十三页,编辑于星期六:七点 二十一分。34(2 2)初值计算)初值计算TL0TL0的初值设为的初值设为0 0FFHFFH。5kHz5kHz的方波的周期为
37、的方波的周期为200200 s s,因此因此TH0TH0的定时时间为的定时时间为100100 s s。TH0TH0初值初值X X计算如下:计算如下: (2(28 8- -X)X)2 21010-6-6=1=11010-4-4 X=2 X=28 8-100=156=9CH-100=156=9CH第34页/共44页第三十四页,编辑于星期六:七点 二十一分。35(3 3)程序设计)程序设计 ORG 0000HORG 0000H LJMP MAIN LJMP MAIN ORG 000BHORG 000BH ;T0T0中断入口中断入口 LJMP TL0INTLJMP TL0INT;跳跳T0T0中断服务程
38、序中断服务程序 ORG 001BHORG 001BH ;在在T1T1方式方式3 3时,时,TH0TH0占用占用T1T1的中的中断断 LJMP TH0INT LJMP TH0INT;跳跳TH0TH0中断服务程序中断服务程序 ORG 0100HORG 0100HMAINMAIN:MOV TMOD,#27H MOV TMOD,#27H ;T0T0方式方式3 3计数,计数,T1T1方式方式2 2定定 时时 MOV TL0,#0FFH MOV TL0,#0FFH ;置置TL0TL0初值初值 MOV TH0,#9CH MOV TH0,#9CH ;置;置TH0TH0初值初值 MOV TL1,#dataL M
39、OV TL1,#dataL ;datadata为波特率常数为波特率常数 第35页/共44页第三十五页,编辑于星期六:七点 二十一分。36 MOV TH1,#dataH MOV TH1,#dataH MOV TCON,#55H MOV TCON,#55H;允许T0T0中断 MOV IE,#9FHMOV IE,#9FH;启动T1T1 TL0INTTL0INT:MOV TL0,#0FFHMOV TL0,#0FFH;TL0TL0中断服务程序,TL0TL0重新装入初值 中断处理 TH0INTTH0INT:MOV TH0,#9CHMOV TH0,#9CH;TH0TH0中断服务程序,中断服务程序,TH0TH
40、0重重新装入初值新装入初值 CPL P1.0CPL P1.0;P1.0P1.0位取反输出位取反输出 RETI RETI 第36页/共44页第三十六页,编辑于星期六:七点 二十一分。37门控制位门控制位GATEGATE的应用的应用测量脉冲宽度测量脉冲宽度 GATE1 GATE1可使定时器可使定时器/ /计数器计数器T1T1的启动计数受的启动计数受INT1INT1* *的控制,可测量引脚的控制,可测量引脚INT1INT1* *(P3.3P3.3)上正脉冲上正脉冲的宽度(机器周期数)。的宽度(机器周期数)。第37页/共44页第三十七页,编辑于星期六:七点 二十一分。38程序: ORG 0000HOR
41、G 0000HRESET: AJMP MAIN RESET: AJMP MAIN ;复位入口转主程序 ORG 0100HORG 0100H MAIN: MOV SP,#60H MAIN: MOV SP,#60H MOV TMOD,#90H MOV TMOD,#90H;T1T1为方式1 1定时控制字 MOV TL1,#00HMOV TL1,#00H MOV TH1,#00H MOV TH1,#00H LOOP: JB P3.3,LOOP0 LOOP: JB P3.3,LOOP0;等待INT1INT1* *低 SETB TR1SETB TR1;如果INT1INT1* *为低,启动T1T1 LOOP
42、1:JNB P3.3,LOOP1 LOOP1:JNB P3.3,LOOP1;等待INT1INT1* *升高 LOOP2:JB P3.3,LOOP2 LOOP2:JB P3.3,LOOP2 ;等待INT1INT1* *降低 第38页/共44页第三十八页,编辑于星期六:七点 二十一分。39 CLR TR1CLR TR1;停止停止T1T1计数计数 MOV A,TL1MOV A,TL1;T1T1计数值送计数值送A A将将A A中的中的T1T1计数计数值送显示缓冲区值送显示缓冲区 转换成显示的代码转换成显示的代码 LOOP3: LCALL DIR LOOP3: LCALL DIR ;调用显示子程序调用显示子程序DIRDIR(略)显示略)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 四年级数学下册第五单元第一课时《字母表示数》教学设计
- 护理人员的职业道德修养
- 2025年人口经济研究报告
- 2026年高校辅导员工作试题及答案
- 外科护理新进展与新技术
- 2026年毒物分析实验室管理试题及答案
- 2026年城乡规划服务中心招聘笔试真题及答案解析
- 2026及未来5年中国众创空间行业市场全景调研及发展前景研判报告
- 2026年唐山科技职业技术学院单招职业倾向性考试题库附答案详解(满分必刷)
- 2026年四川文化传媒职业学院单招职业倾向性测试题库及答案详解1套
- 储能项目工程监理合同协议
- 2025年腾讯娱乐白皮书
- 2026年辽宁省交通高等专科学校高职单招职业适应性测试备考题库及答案详解
- YY/T 0573.2-2025一次性使用无菌注射器第2部分:动力驱动注射泵用注射器
- DB31∕T 405-2021 集中空调通风系统卫生管理规范
- 2025年锂电池回收政策支持力度行业报告
- 沥青拌合站培训课件
- 第四版(2025)国际压力性损伤溃疡预防和治疗临床指南解读
- 2026年江苏航空职业技术学院单招职业倾向性考试必刷测试卷必考题
- 半导体专利申请策略-洞察及研究
- 辽宁中考数学三年(2023-2025)真题分类汇编:专题06 几何与二次函数压轴题 原卷版
评论
0/150
提交评论