MCS-51的定时器-计数器.ppt
《MCS-51的定时器-计数器.ppt》由会员分享,可在线阅读,更多相关《MCS-51的定时器-计数器.ppt(48页珍藏版)》请在三一办公上搜索。
1、第 12 章 MCS-51的定时器/计数器,内容安排,一.内部结构及工作原理二.定时器/计数器的控制三.工作方式四.初始化五.应用举例,12.1 内部结构及工作原理,MCS-51内部提供2个16位可编程的定时器/计数器,可编程修改定时或计数的参数/方式,特点:,T/C0和T/C1的内部结构基本相同,它们即可独立工作,也可相互组合工作T/C0是一个16位加1计数器,也可以拆成两个8位的专用寄存器(TH0和TL0)独立使用,它们各自占一个端口地址TH08CH,TL0 8AH,TH18DH,TL1 8BH16位加1计数器复位后初始值为0000H,用来存放定时或计数的初值每来一个计数脉冲,计数器加1,
2、加满后(FFFFH 0000H),将产生一个溢出脉冲,使标志位TF0置“1”,该标志位可产生一个中断请求,也可供CPU查询启动计数后与CPU并行工作T/C0可工作于定时模式或计数模式,工作方式有四种:方式03,由寄存器TMOD、TCON设定,定时脉冲周期=机器周期,1.定时方式 计数固定周期的脉冲,2.计数方式 外部输入信号是加到T0(P 3.4)或T1(P3.5)端。外部输入脉冲信号产生由1至0的下降沿时,定时器加1外部输入信号最高的计数速率是晶振频率的1/24,12.2 定时器/计数器的控制,定时器/计数器的工作模式及方式由SFR(TMOD、TCON)控制,方法:由软件将控制字写入TMOD
3、、TCON,目的设定T/C0和T/C1的工作方式和控制功能,定时器/计数器的初始化,1.工作方式寄存器TMOD(89H),功能:控制T/C0和T/C1的工作方式,其中高四位为T/C1的方式控制字段,低四位为T/C0的方式控制字,(1)M1、M0:工作方式选择位,注意:TMOD不能位寻址,只能通过字节传送方式设定,(2)C/T:计数/定时工作方式选择位,(3)GATE:门控设置位,GATE0:禁止门控工作方式,只要TR0(TR1)=1,不管INT0(INT1)是高电平还是低电平,启动T/C0(T/C0),GATE1:允许门控工作方式,计数器工作于定时方式,2.控制寄存器TCON(88H),功能:
4、控制定时器的启动、停止以及定时器的溢出和中断情况,注意:通过软件置位/复位TR0/TR1,12.3 工作方式,1.工作方式0,方式0是选择T/C0(T/C1)高8位和低5位的13位计数器方式,TH0进位,TH0溢出(回零)TF0标志进位(TF0=1)CPU申请中断通过查询TF0=1?判断TH0是否回零溢出,注意:,初值一次性有效,否则从0开始再次计数,需通过软件重新装入初值最大定时/计数值为213,2.工作方式1,是一个16位定时器/计数器 方式1的结构几乎与方式0一样,唯一的差别:方式1中的TH1(TH0)和TL1(TL0)均是8位的,构成16位计数器 最大定时/计数值为216,3.工作方式
5、2,T/C0(T/C1)是一个16位计数器,被拆成一个8位的计数器TH0(TH1)和一个8位计数器TL0(TL1),且两者构成可以自动重装载的8位T/C,编程时,须给TH0(TH1)和TL0(TL1)置入相同值,工作过程:,注意:初值多次有效,硬件自动完成初值赋值通过软件修改初值最大定时/计数值为28,4.工作方式3,TH0只用于简单的内部定时功能,占用T/C1的TR1和TF1位,T/C1不工作于方式3,且只能按非中断的方式工作,常常利用它的定时功能作串行口波特率发生器,T/C1设置为方式3,则T/C1立即停止计数,并保持原有的计数值,T/C1可设置为方式02 TR1及TF1已被T/C0(TH
6、0)占用,计数开关已被接通,此时仅用T/C1的C/T来切换定时或计数工作方式,就可使T/C1工作 计数器(8、13、16位)回零溢出,只能将输出送入串行口或不需要中断的场合,12.4 初始化,1.初始化步骤,T/C的初始化:通过程序设定和控制T/C的工作方式和模式,初始化的步骤:确定工作方式,即根据题目要求先给TMOD送一个方式控制字计算计数/定时初值,并写入TH0、TL0或TH1、TL1中根据需要,置位EA使CPU开放中断,同时置位ET0/ET1允许T/C中断(IE),IP设定中断优先级给TCON送命令控制字,即置位TR0/TR1,启动T/C计数,2.计数器初值的计算,计数/定时器工作于计数
7、模式时,首先给计数器送初值到TH0/TL0、TH1/TL1中计数器/定时器是加1计数,全“1”到全“0”溢出,置位TF0/TF1中断标志,向CPU提出中断请求设需要计数器计数的个数为X,计数初值为C,则计算计数初值表达式:C=M-X,3.定时器初值的计算,定时模式下,计数器对单片机振荡频率fosc经12分频后的机器周期进行加1计数设X表示计数个数,M表示模,C表示定时初值,Tcy表示机器周期(Tcy=12/fosc),则定时时间T的计算公式:T=X Tcy=(M-C)Tcy,定时器的溢出率:1/T=fosc/(12X)=fosc/(12(M-C),fosc=12MHz,例12-1:设单片机主时
8、钟fosc=12MHz,定时时间2ms,请编出初始化程序,解:设置工作方式控制字(TMOD)(89H)=0 0 0 0 0 0 0 0=00H(方式0)=0 0 0 0 0 0 0 1=01H(方式1),初始化程序 MOV TMOD,#00H(#01H);送控制字MOV TH0,#0C1H(#0F8H);送初值高8位MOV TL0,#10H(#30H);送初值低8位SETB EA;开中断SETB ET0 SETB TR0;启动定时器,计算计数器初值:方式0:Tc2132ms/1 s=6192=1830H方式1:Tc2162ms/1 s=63536=F830H,12.5 应用举例,1.方式0的应
9、用,例12-2:利用T/C0方式0产生1ms定时,在P1.0输出周期为2ms的方波。设8031单片机晶振频率fosc=12MHz,解:(1)确定T/C0的工作方式要使P1.0输出周期为2ms的方波,只要使P1.0每隔1ms取反一次即可,(2)送T/C0的方式控制字定时:(TMOD)=0000 0000B=00H,即T/C0方式0,只由TR0启动,T/C1不用,高4位取0,(3)计算定时初值 Tcy=12/fosc=12/(12106)s=1 s 计数个数:X=1 ms/1s=1000 定时初值:C=(213X)=8192 1000=7192 D=1C18H=11100000 11000B TH
10、0初值为E0H,TL0初值为18H,(4)编程方法:中断或查询两种方式 中断方法ORG0000HLJMPMAIN;转到主程序MAINORG 000BHLJMP TC0S;转到T/C0的中断服务程序TC0S,主程序:ORG 1000HMAIN:MOV SP,#6FHMOV TMOD,#00H;置T/C0的方式0,定时MOV TH0,#0E0H;送定时初值MOV TL0,#18H SETB EA;CPU开中断SETB ET0;T/C0允许中断SETB TR0;启动T/C0定时HERE:SJMP HERE;等待中断,中断服务程序:ORG1200HTC0S:MOV TH0,#0E0H;重新装入计数初值
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MCS 51 定时器 计数器
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-6512370.html