《单片机原理及应用教程》第6章定时计数器课件_第1页
《单片机原理及应用教程》第6章定时计数器课件_第2页
《单片机原理及应用教程》第6章定时计数器课件_第3页
《单片机原理及应用教程》第6章定时计数器课件_第4页
《单片机原理及应用教程》第6章定时计数器课件_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

MCS-51单片机原理及应用教程清华大学出版社刘迎春主编MCS-51单片机原理及应用教程清华大学出版社1第6章定时/计数器定时器的结构定时器的工作方式定时器应用第6章定时/计数器定时器的结构6.1定时器的结构6.1.1定时器/计数器的结构图6.18051单片机的定时器结构6.1定时器的结构6.1.1定时器/计数器的结构图66.1.2定时器的控制1.工作模式寄存器TMOD图6.2TMOD的位定义2.定时器控制寄存器TCON图6.3TCON的位定义6.1.2定时器的控制1.工作模式寄存器TMOD图66.2定时器的工作方式6.2.1模式0及应用模式0是选择定时器(T0或T1)的高8位和低5位组成的一个13位定时器/计数器。图6.4是T0在模式0时的逻辑电路结构。T1的模式0电路结构与T0相同。图6.4定时器T0的模式06.2定时器的工作方式6.2.1模式0及应用模式0是例1

设定时器T0选择工作模式0,求最长定时时间,如果要实现定时时间为1ms,fosc=6MHz。试确定T0的初值。解:当T0处于工作模式0时,加1计数器为13位。T0最大定时时间对应于13位计数器T0的各位全为0,即(TH0)=00H,(TL0)=00H。最长定时时间为:tmax=(213-0)×=213×=16.384ms设定时时间为1ms时的初值为X,则:X===7692转化成二进制为:1111000001100B按照低5位,高8位拆开,T0的低5位TL0=01100B=0CHT0的高8位TH0=11110000B,即F0H例1设定时器T0选择工作模式0,求最长定时时间,如果要例2

接上题,设定时器T0选择工作模式0,要求实现定时时间为1ms,fosc=6MHz。定时时间到后,将P1.0置1。解:首先计算定时器初值X,计算方法和步骤同上。得:(TH0)=0F0H,(TL0)=0CH程序清单如下:ORG 0000HLJMP MAINORG 0030HMAIN:MOV TMOD,#00HMOV TL0,#0CH ;送初值

MOV TH0,#0F0H SETB TR0 ;启动定时器T0LOOP:JNB TF0,$ ;等待定时时间到

CLR TF0 SETB P1.0 ;P1.0置1 SJMP $例2接上题,设定时器T0选择工作模式0,要求实现定时时间为6.2.2模式1及应用图6.5定时器T0的模式1例1

利用定时器T0产生一个频率为50Hz的方波,由P1.1输出。要求采用中断方式。fosc=12MHz。解:方波周期T=1/50Hz=0.02s=20ms,如果要输出方波,则需要将P1.1状态每半个周期翻转一次。故定时时间为10ms,则定时器初值为:X===65536-10000=55536=D8F0H则:TH0=0D8H,TL0=0F0H6.2.2模式1及应用图6.5定时器T0的模式1例1程序如下ORG 0000HLJMP MAINORG 000BHT0INT:LJMP T0SEV ORG 0030HMAIN:MOV SP,#60H ;设置堆栈指针

MOV TMOD,#01H ;设定T0为模式1,定时方式

MOV TH0,#0D8H ;设定初值

MOV TL0,#0F0H SETB TR0 ;启动定时

SETB ET0 ;开中断

SET EA SJMP $ ;等待中断T0SEV:MOV TH0,#0D8H ;重新装入初值

MOV TL0,#0F0H CPL P1.1 ;P1.0状态取反,输出方波

RETI程序如下ORG 0000H6.2.3模式2及应用模式2把T0(或Tl)配置成一个可以自动重装载的8位定时器/计数器,如图6.6所示。例1

利用定时器T1的模式2对外部信号计数。要求每计满150次,将P1.0端取反。解:(1)选择模式:外部信号由T1(P3.5)引脚输入,每发生一次负跳变计数器加1,每输入150个脉冲,计数器发生溢出中断,中断服务程序将P1.0取反一次。T1计数工作方式模式2的模式字为TMOD=60H。T0不用时,TMOD的低4位可任取,但不能使T0进入模式3,一般取0。(2)计算T1的计数初值:X=28-150=256-150=106=6AH因此,TL1的初值为6AH,重装初值寄存器TH1初值为6AH。6.2.3模式2及应用模式2把T0(或Tl)配置成一个可(3)程序清单:MAIN:MOV TMOD,#60H ;置T1为模式2计数工作方式

MOV TL1,#6AH ;赋初值

MOV TH1,#6AH MOV IE,#88H ;定时器T1开中断

SETB TR1 ;启动计数器HERE: SJMP HERE ;等待中断

ORG 001BH ;中断服务程序入口

CPL P1.0 RETI(3)程序清单:MAIN:MOV6.2.4模式3及应用

图6.7定时器T0的模式3(a)T0模式3时的T1模式0(b)T0模式3时的T1模式06.2.4模式3及应用图6.7定时器T0的模式3(6.3定时器应用6.3.1定时器对输入信号的要求图6.9对输入脉冲宽度的要求6.3.2定时器的编程步骤1.确定相关参数(1)确定选用的定时器/计数器。(2)确定工作方式(3)确定工作模式(4)计算计数初值确定数据传送方式2.初始化程序编写

6.3定时器应用6.3.1定时器对输入信号的要求图66.3.3应用举例1.波形发生器例1

从P1.0输出1000个周期为2ms的方波脉冲(设fosc=6MHz)。解:定时器选择工作模式确定计算初值硬件连接及传送方式选择2.脉冲宽度测量GATE控制位的功能例1

测量某一方波信号的高电平和低电平的宽度,将结果保存在20H、21H及22H、23H单元中。

6.3.3应用举例1.波形发生器3.长时间定时程序例1

试编写利用T0产生1s定时的程序。(设fosc=6MHz)。解:定时器及模式确定计算初值程序清单3.长时间定时程序例1试编写利用T0产生1s定时的程序6.4思考练习题

(1)8051定时器有哪几种工作模式?有何区别?(2)8051单片机内部设有几个定时器/计数器?是由哪些特殊功能寄存器组成的?(3)定时器模式2有什么特点?适用于什么应用场合?(4)8051单片机内部各定时器/计数器的定时、计数速率各是多少?试述定时器/计数器工作于定时器方式和计数器方式的异同。(5)当定时器T0用作模式3时,由于TR1位已被T0占用,如何控制定时器T1的开启和关闭?(6)单片机用内部定时方法产生频率为100KHz等宽矩形波,假定单片机的晶振频率为12MHz,请编程实现。(7)8051定时器作定时和计数时,其计数脉冲分别从何处提供?(8)8051定时器的门控制信号GATE设置为1时,定时器如何启动?6.4思考练习题(1)8051定时器有哪几种工作模式?MCS-51单片机原理及应用教程清华大学出版社刘迎春主编MCS-51单片机原理及应用教程清华大学出版社17第6章定时/计数器定时器的结构定时器的工作方式定时器应用第6章定时/计数器定时器的结构6.1定时器的结构6.1.1定时器/计数器的结构图6.18051单片机的定时器结构6.1定时器的结构6.1.1定时器/计数器的结构图66.1.2定时器的控制1.工作模式寄存器TMOD图6.2TMOD的位定义2.定时器控制寄存器TCON图6.3TCON的位定义6.1.2定时器的控制1.工作模式寄存器TMOD图66.2定时器的工作方式6.2.1模式0及应用模式0是选择定时器(T0或T1)的高8位和低5位组成的一个13位定时器/计数器。图6.4是T0在模式0时的逻辑电路结构。T1的模式0电路结构与T0相同。图6.4定时器T0的模式06.2定时器的工作方式6.2.1模式0及应用模式0是例1

设定时器T0选择工作模式0,求最长定时时间,如果要实现定时时间为1ms,fosc=6MHz。试确定T0的初值。解:当T0处于工作模式0时,加1计数器为13位。T0最大定时时间对应于13位计数器T0的各位全为0,即(TH0)=00H,(TL0)=00H。最长定时时间为:tmax=(213-0)×=213×=16.384ms设定时时间为1ms时的初值为X,则:X===7692转化成二进制为:1111000001100B按照低5位,高8位拆开,T0的低5位TL0=01100B=0CHT0的高8位TH0=11110000B,即F0H例1设定时器T0选择工作模式0,求最长定时时间,如果要例2

接上题,设定时器T0选择工作模式0,要求实现定时时间为1ms,fosc=6MHz。定时时间到后,将P1.0置1。解:首先计算定时器初值X,计算方法和步骤同上。得:(TH0)=0F0H,(TL0)=0CH程序清单如下:ORG 0000HLJMP MAINORG 0030HMAIN:MOV TMOD,#00HMOV TL0,#0CH ;送初值

MOV TH0,#0F0H SETB TR0 ;启动定时器T0LOOP:JNB TF0,$ ;等待定时时间到

CLR TF0 SETB P1.0 ;P1.0置1 SJMP $例2接上题,设定时器T0选择工作模式0,要求实现定时时间为6.2.2模式1及应用图6.5定时器T0的模式1例1

利用定时器T0产生一个频率为50Hz的方波,由P1.1输出。要求采用中断方式。fosc=12MHz。解:方波周期T=1/50Hz=0.02s=20ms,如果要输出方波,则需要将P1.1状态每半个周期翻转一次。故定时时间为10ms,则定时器初值为:X===65536-10000=55536=D8F0H则:TH0=0D8H,TL0=0F0H6.2.2模式1及应用图6.5定时器T0的模式1例1程序如下ORG 0000HLJMP MAINORG 000BHT0INT:LJMP T0SEV ORG 0030HMAIN:MOV SP,#60H ;设置堆栈指针

MOV TMOD,#01H ;设定T0为模式1,定时方式

MOV TH0,#0D8H ;设定初值

MOV TL0,#0F0H SETB TR0 ;启动定时

SETB ET0 ;开中断

SET EA SJMP $ ;等待中断T0SEV:MOV TH0,#0D8H ;重新装入初值

MOV TL0,#0F0H CPL P1.1 ;P1.0状态取反,输出方波

RETI程序如下ORG 0000H6.2.3模式2及应用模式2把T0(或Tl)配置成一个可以自动重装载的8位定时器/计数器,如图6.6所示。例1

利用定时器T1的模式2对外部信号计数。要求每计满150次,将P1.0端取反。解:(1)选择模式:外部信号由T1(P3.5)引脚输入,每发生一次负跳变计数器加1,每输入150个脉冲,计数器发生溢出中断,中断服务程序将P1.0取反一次。T1计数工作方式模式2的模式字为TMOD=60H。T0不用时,TMOD的低4位可任取,但不能使T0进入模式3,一般取0。(2)计算T1的计数初值:X=28-150=256-150=106=6AH因此,TL1的初值为6AH,重装初值寄存器TH1初值为6AH。6.2.3模式2及应用模式2把T0(或Tl)配置成一个可(3)程序清单:MAIN:MOV TMOD,#60H ;置T1为模式2计数工作方式

MOV TL1,#6AH ;赋初值

MOV TH1,#6AH MOV IE,#88H ;定时器T1开中断

SETB TR1 ;启动计数器HERE: SJMP HERE ;等待中断

ORG 001BH ;中断服务程序入口

CPL P1.0 RETI(3)程序清单:MAIN:MOV6.2.4模式3及应用

图6.7定时器T0的模式3(a)T0模式3时的T1模式0(b)T0模式3时的T1模式06.2.4模式3及应用图6.7定时器T0的模式3(6.3定时器应用6.3.1定时器对输入信号的要求图6.9对输入脉冲宽度的要求6.3.2定时器的编程步骤1.确定相关参数(1)确定选用的定时器/计数器。(2)确定工作方式(3)确定工作模式(4)计算计数初值确定数据传送方式2.初始化程序编写

6.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论