- 1、本文档共50页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第七章节 定时器计数器
与方式0和方式1不同处: 只使用TL0做8位计数器,最大计数值255; 最大定时时间(晶振12MHz时): 256?s 用于需要重复定时和计数的场合。 方式2用于定时工作方式,定时时间由下式确定: t=N×Tcy=(256- X) ×Tcy 计数初值X: X==256-t/Tcy 4、 方式3 * 方式 3(两个 8 位独立计数器)结构图 只能定时不能计数。 既可以定时也可以计数 方式 3(两个 8 位独立计数器) * (2)TH0占用了T1的控制位TR1、和中断标志位TF1,同时占用了T1的中断资源,此时,TH0固定为一个8位计数器,启动受TR1控制,只能定时不能计数。 说明: (1)T0在方式3时,TL0使用T0的控制位C/T、GATE、TR0、INT0,既可以定时也可以计数。 (3)T0工作在方式3时,T1可以工作在方式0、1、2。 (4)T0工作在方式3时,占用了TR1、TF1; T1只受C/T位控制,计数满时也没有溢出中断请求,只能将输出送到串行口。所以此时T1可以作串行口波特率发生器,如果需要T1停止计数,只需设置T1为方式3即可。 T0工作在方式3时,T1工作在方式2的逻辑图 * 四、应用 * 定时/计数器的应用 (1)选择定时/计数器 —— T0、T1选择其一, (2)定时或外计数选择 —— C//T及GATE, (3)工 作 方式 —— M1、M0 (4)计 数 初 值 —— 加1计数、位数 (5)计 数 初 值 的再装入 1)写TMOD; 2)确定IE、IP; 3)写计数初值; 4)启动计数(TRi) 编制初始化程序: 中断相关寄存器 * 中断允许控制寄存器IE EA - - ES ET1 EX1 ET0 EX0 IE (A8H) AFH AEH ADH ACH ABH AAH A9H A8H 51单片机有两个中断优先级。 高优先级或低优先级中断。 中断优先级寄存器IP PS PT1 PX1 PT0 PX0 IP (B8H) BCH BBH BAH B9H B8H 设计一个能产生t=1ms的周期信号发生器,试编程. * 解:选T0方式0; C//T=0,GATE= 0 ;12MHz时钟,T=1us N = 0.5ms / T=0.5ms /1us=500 初值=213-500=8192-500=7692=1E0CH = 0001 1110 000 0 1100B, 1E0CH 0 1 1 0 0 TL0 1 1 1 1 0 0 0 0 TH0 F0H 0CH * LJMP MAIN ORG 000BH LJMP Tim0 ORG 1000H MAIN: MOV SP,#60H MOV TL0,#0CH MOV TH0,#0F0H MOV TMOD,#00H SETB TR0 SETB ET0 SETB EA SJMP $ ……… ORG 0000H Tim0: MOV TL0,#0CH MOV TH0,#0F0H CPL P1.0 RETI 设计一个能产生t=1ms的周期信号发生器,试编程. 200ms的方波?? * LJMP MAIN ORG 000BH LJMP INSE0 ORG 1000H MAIN: MOV SP,#60H MOV TL0,#0CH MOV TH0,#0F0H MOV TMOD,#00H SETB TR0 SETB ET0 SETB EA
文档评论(0)