- 1、本文档共117页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
MCS-51单片机的定时器/计数器(一) MCS-51单片机的定时器/计数器(一) 一、MCS-51单片机定时器/计数器组成: 定时器/计数器0(T0):16位的加计数器 定时器/计数器1(T1):16位的加计数器 二、定时器/计数器的功能 信号来源不同 对外部输入信号的计数功能。定时器/计数器0(T0)的外来脉冲输入端为P3.4;定时器/计数器1(T1)的外来脉冲输入端为P3.5。 定时功能。定时器/计数器的定时功能也是通过计数实现的,它的计数脉冲是由单片机的片内振荡器输出经12分频后产生的信号,即为对机器周期计数。 定时器/计数器的控制 定时器/计数器的控制主要是通过以下几个寄存器实现的: TCON---定时器/计数器控制寄存器 TMOD---定时器/计数器工作方式控制寄存器 IE ---中断允许控制寄存器 CPU时序 振荡周期: 为单片机提供定时信号的振荡源的周期(晶振周期或外加振荡源周期)。 状态周期: 2个振荡周期为1个状态周期, 用S表示。 机器周期: 1个机器周期含6个状态周期, 用S1、 S2、 …、 S6表示, 共有12个节拍。 机器周期=12*振荡周期 =6*状态周期 例如: 外接晶振为12 MHz时, MCS—51单片机的4个时间周期的具体值为: 振荡周期=1/12 μs; 状态周期=1/6 μs; 机器周期=1 μs; MCS—51单片机的CPU取指令和执行指令的时序如图所示。 MCS-51单片机的定时器/计数器应用 利用定时器/计数器实现固定时间的定时 利用定时器/计数器实现对外来信号脉冲的计数 利用定时器/计数器实现对外来信号脉冲信号脉宽的测量 题目:利用T0,使用工作方式0,在单片机的P1.0输出一个周期为 2ms,占空比为1:1的方波信号。(振荡频率为12MHZ) 解:周期为2ms,占空比为1:1的方波信号,只需要利用T0产生定时,每隔1ms将P1.0取反即可。 编程步骤: 计算TMOD的值 由于GATE=0;M1M0=00;C/T=0; 所以 (TMOD)=00H 计算初值(单片机振荡频率为12MHZ) 所需要的机器周期数: 机器周期=振荡周期*12=1/12*12=1us 所需要的脉冲数: n=(1ms=1000us/1us)=1000 计数器的初始值: X=8192-1000=7192=(1110000011000)B 所以: (TH0)=0E0H,(TL0)=18H 流程图 3:程序清单 ORG 4000H LJMP MAIN ORG 400BH ;T0中断入口地址 LJMP SER ;中断服务程序 MAIN:MOV SP,#50H ;开辟堆栈 MOV TMOD,#00H ;工作方式设置 MOV TH0,#0E0H ;初始值设置 MOV TL0,#18H SETB EA ;开中断 SETB ET0 ;开T0中断 SETB TR0 ;运行T0 HERE:SJMP $ ;等待中断 SER:CPL P1.0 ;定时到,输出取反 MOV TH0,#0E0H ;重新加载初战值 MOV TL0,#18H RETI ;中断返回 END 题目:用定时器T1,使用工作方式1,在单片机的P1.0输出一个周期为2分钟、占空比为1:1的方波信号。 解:周期为2分钟,占空比为1:1的方波信号,只需要利用T1产生定时,每隔1分将P1.0取反即可。 由于定时器定时时间有限,设定T1的定时为50ms,软件计数1200次,可以实现1分钟定时。 编程步骤: 1、计算TMOD的值
文档评论(0)