MCS-51单片机内部定时器计数器_第1页
MCS-51单片机内部定时器计数器_第2页
MCS-51单片机内部定时器计数器_第3页
MCS-51单片机内部定时器计数器_第4页
MCS-51单片机内部定时器计数器_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

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

文档简介

1、MCS-51单片机内部定时器计数器单片机内部定时器计数器 7.6 MCS - 51单片机内部定时器单片机内部定时器/ MCS-51单片机内部定时器计数器单片机内部定时器计数器 定时器/计数器: Timer/Counter 本质上都是加法计数器,当对固定周期的脉冲信号 计数时是定时器,对脉冲长度不确定的信号计数时是计 数器。 每接收到一个计数脉冲,加法计数器的值就加一, 当计满时发生溢出,并从0开始继续计数。 加法计数器的计满溢出信号就是定时/计数器的输出, 该信号使TCON的某位(TF0或TF1位)置一,作为定时 器/计数器的溢出中断标志。 1 定时器定时器/计数器的结构及工作原理计数器的结构

2、及工作原理 MCS-51单片机内部定时器计数器单片机内部定时器计数器 定时器定时器/计数器结构框图计数器结构框图 MCS-51单片机内部定时器计数器单片机内部定时器计数器 2. 定时方式和控制寄存器定时方式和控制寄存器 定时器定时器/计数器的方式寄存器计数器的方式寄存器TMOD TMOD各位定义 8位分为两组,高四位控制T1,低4位控制T0。 MCS-51单片机内部定时器计数器单片机内部定时器计数器 对对TMOD的各个位的说明:的各个位的说明: GATE位:门控位。位:门控位。GATE1时,T0、T1是否计数要受 到外部引脚输入电平的控制,INT0引脚控制T0,INT1引 脚控制T1。可用于测

3、量在INT0和INT1引脚出现的正脉冲 的宽度。若GATE0,即不使能门控功能,定时计数器 的运行不受外部输入引脚INT0、INT1的控制。 MCS-51单片机内部定时器计数器单片机内部定时器计数器 C/T位:计数器模式和定时器模式的选择位。位:计数器模式和定时器模式的选择位。 C/T0,为定时器模式,内部计数器对晶振脉冲12分频 后的脉冲计数,该脉冲周期等于机器周期,所以可以理 解为对机器周期进行计数。从计数值可以求得计数的时 间,所以称为定时器模式。 C/T1,为计数器模式,计数器对外部输入引脚T0 (P3.4)或T1(P3.5)的外部脉冲(负跳变)计数,允许 的最高计数频率为晶振频率的1

4、/24。 MCS-51单片机内部定时器计数器单片机内部定时器计数器 M1 M0:四种工作方式的选择位:四种工作方式的选择位 工作方式选择表 M1 M0 方式方式说说 明明 0 0013 位定时器(TH的 8 位和TL的低 5 位) 0 1116 位定时器/计数器 1 02自动重装入初值的 8 位计数器 1 13 T0 分成两个独立的 8 位计数器, T1 在方式 3 时停止工作 MCS-51单片机内部定时器计数器单片机内部定时器计数器 定时器初值的确定定时器初值的确定: 加法计数器是计满溢出时才申请中断, 所以在给定时器/ 计数器赋初值时, 不能直接输入所需的计数值, 而应输入的 是计数器计数

5、的最大值与这一计数值的差值, 设最大值为 M, 计数值为 N, 初值为 X, 则 X的计算方法如下: 计数状态: X=MN 定时状态: X=M定时时间/T 而 T=12晶振频率 MCS-51单片机内部定时器计数器单片机内部定时器计数器 二、二、 定时器定时器/计数器控制寄存器计数器控制寄存器TCON TF0、TF1分别是定时器/计数器T0、 T1 的溢出标志位, 加法计数器计满溢出时置 1, 申请中断, 在中断响应后自动复 0。TF产生的中断申请是否被接受, 还需要由中断是否开放来 决定。 TR1、TR0 分别是定时器 /计数器T1、 T0 的运行控制位, 通过软件置 1 后, 定时器 /计数

6、器才开始工作, 在系统复位时 被清 0。 TF1TF1TR1TR1TF0TF0TR0TR0IE1IE1IT1IT1IE0IE0IT0IT0 MCS-51单片机内部定时器计数器单片机内部定时器计数器 定时器的工作方式定时器的工作方式 一、一、 方式方式 0 方式 0(13位计数器) MCS-51单片机内部定时器计数器单片机内部定时器计数器 在方式0下,T0和T1工作在13位的定时/计数 器方式,由TH的高 8 位和TL的低 5 位组成。 当T0的13位计数器加到全部为 1 以后,再加 1就产生溢出,这时置TCON的TF0为 1 ,同时把 计数器全部变 0 ,然后从 0 开始继续计数。 MCS-5

7、1单片机内部定时器计数器单片机内部定时器计数器 方式0的计数长度M为2的13次方。 初值也是13位二进制数,但要注意是高8位赋值 给TH0,低5位前面补足 3 个 0 凑成 8 位赋给TL0。 例如,如要求计数值为1000,则初值为 xM100081921000 1C18H1 1100 000 1 1000B 则赋初值时,TH00E0H,TL018H。 MCS-51单片机内部定时器计数器单片机内部定时器计数器 二、二、 方式方式1 方式 1(16位计数器) MCS-51单片机内部定时器计数器单片机内部定时器计数器 方式1和方式0的工作原理基本相同,唯一 不同是T0和T1工作在方式1时是16位位

8、的计数/定 时器。 方式1时的计数长度计数长度M是2的16次方。16位 的初值初值直接拆成高低字节,分别送入TH和TL 即可。 MCS-51单片机内部定时器计数器单片机内部定时器计数器 三、方式三、方式 2 方式 2(初始常数自动重装载) MCS-51单片机内部定时器计数器单片机内部定时器计数器 工作方式0和工作方式1的最大特点就是计数溢出后, 计数器为全0,因而循环定时或循环计数应用时就存在 反复设置初值的问题,这给程序设计带来许多不便,同 时也会影响计时精度。 工作方式2就针对这个问题而设置,它具有自动重 装载功能,即自动加载计数初值,所以也称为自动重加 载工作方式。 MCS-51单片机内

9、部定时器计数器单片机内部定时器计数器 在这种工作方式中,16位计数器分为两部分, 即以TL0为计数器,以TH0作为预置寄存器,初始化 时把计数初值分别加载至TL0和TH0中,当计数溢出 时,不再象方式0和方式1那样需要“人工干预”,由 软件重新赋值,而是由预置寄存器TH以硬件方法自 动给计数器TL0重新加载。 MCS-51单片机内部定时器计数器单片机内部定时器计数器 四、四、 方式方式 3 方式 3(两个 8 位独立计数器) MCS-51单片机内部定时器计数器单片机内部定时器计数器 在工作方式3模式下,定时/计数器0被拆成两个独立 的8位计数器TL0和TH0。其中TL0既可以作计数器使用, 也

10、可以作为定时器使用,定时/计数器0的各控制位和引脚 信号全归它使用。其功能和操作与方式0或方式1完全相同。 TH0就没有那么多“资源”可利用了,只能作为简单的定 时器使用,而且由于定时/计数器0的控制位已被TL0占用, 因此只能借用定时/计数器1的控制位TR1和TF1,也就是 以计数溢出去置位TF1,TR1则负责控制TH0定时的启动 和停止。 MCS-51单片机内部定时器计数器单片机内部定时器计数器 由于TL0既能作定时器也能作计数器使用,而 TH0只能作定时器使用而不能作计数器使用,因此在 方式3模式下,定时/计数器0可以构成二个定时器或 者一个定时器和一个计数器。 如果定时/计数器0工作于

11、工作方式3,那么定时/ 计数器1的工作方式就不可避免受到一定的限制,因 为自己的一些控制位已被定时/计数器借用,只能工 作在方式0、方式1或方式2下,如果设置T1工作在方 式3,则T1停止工作,相当于其他方式时令TR10。 MCS-51单片机内部定时器计数器单片机内部定时器计数器 定时器定时器/计数器应用举例计数器应用举例 一、一、 方式方式 0 的应用的应用 例例 1 利用定时器输出周期为 2 ms的方波, 设单片机晶振 频率为 6 MHz。 选用定时器 /计数器T0 作定时器, 输出为P1.0 引脚, 2 ms 的方波可由间隔 1 ms的高低电平相间而成, 因而只要每隔 1 ms对 P1.

12、0 取反一次即可得到这个方波。 定时 1 ms的初值: 因为 机器周期=126 MHz= 2 s 所以 1 ms内T0 需要计数N次: N= 1 ms2 s = 500 MCS-51单片机内部定时器计数器单片机内部定时器计数器 由此可知: 使用方式 0 的 13 位计数器即可, T0 的初值X为 X=MN=8 192500=7 692=1E0CH 但是, 因为 13 位计数器中, 低 8 位 TL0 只使用了 5 位, 其 余码均计入高 8 位TH0 的初值, 则 T0 的初值调整为 TH0=0F0H, TL0=0CH TMOD初始化: TMOD=00000000B=00H (GATE=0,

13、C/T=0, M1=0, M0=0) TCON初始化: 启动TR0=1 IE初始化: 开放中断EA=1, 定时器T0 中断允许ET0=1 MCS-51单片机内部定时器计数器单片机内部定时器计数器 程序清单如下: ORG 0000H AJMP START; 复位入口 ORG 000BH AJMP TOINT ; T0中断入口 ORG 0030H START: MOV SP, 60H; 初始化程序 MOV TH0, 0F0H ; T0赋初值 MOV TL0, 0CH MOV TMOD, 00H SETB TR0 ; 启动T0 MCS-51单片机内部定时器计数器单片机内部定时器计数器 SETB ET

14、0 ; 开T0中断 SETB EA ; 开总允许中断 MAIN: AJMP MAIN ; 主程序 T0INT: CPL P1.0 MOV TL0, 0CH MOV TH0, 0F0H RETI MCS-51单片机内部定时器计数器单片机内部定时器计数器 二、二、 方式方式 1应用应用 方式 1 与方式 0 基本相同, 只是方式 1 改用了 16 位计数 器。 要求定时周期较长时, 13 位计数器不够用, 可改用 16 位 计数器。 例例 2 已知某生产线的传送带上不断地有产品单向传送, 产品之间有较大间隔。使用光电开关统计一定时间内的产品 个数。 假定红灯亮时停止统计, 红灯灭时才在上次统计结果

15、 的基础上继续统计, 试用单片机定时器 /计数器T1的方式 1完 成该项产品的计数任务。 MCS-51单片机内部定时器计数器单片机内部定时器计数器 图 8.7 硬件原理图 MCS-51单片机内部定时器计数器单片机内部定时器计数器 (1) 初始化: TMOD=11010000B=0D0H (GATE=1, C/T=1, M0M1=01) TCON=00H (2) T1在方式1时, 溢出产生中断, 且计数器回零, 故在中 断服务程序中, 需用R0计数中断次数, 以保护累积计数结果。 MCS-51单片机内部定时器计数器单片机内部定时器计数器 (3) 启动T1计数, 开T1中断。 程序清单如下: OR

16、G 0000H AJMP START ; 复位入口 ORG 001BH AJMP T1INT ; T1中断入口 ORG 0100H START: MOV SP, 60H ; 初始化程序 MOV TCON, 00H MOV TMOD, 0D0H MOV TH1, 00H MCS-51单片机内部定时器计数器单片机内部定时器计数器 MOV TL1, 00H MOV R0, 00H ; 清中断次数计数单元 MOV P3, 28H; 设置P3.5第二功能 SETB TR1 ; 启动T1 SETB ET1; 开T1中断 SETB EA ; 开总中断 MAIN: ACALL DISP ; 主程序, 调显示子程序 ORG 0A00H T1INT:

温馨提示

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

评论

0/150

提交评论