《单片机原理及系统设计实用教程》课件第5章 计数器.ppt

上传人:eieieie 文档编号:21713374 上传时间:2023-11-03 格式:PPT 页数:15 大小:837KB
返回 下载 相关 举报
《单片机原理及系统设计实用教程》课件第5章 计数器.ppt_第1页
第1页 / 共15页
《单片机原理及系统设计实用教程》课件第5章 计数器.ppt_第2页
第2页 / 共15页
《单片机原理及系统设计实用教程》课件第5章 计数器.ppt_第3页
第3页 / 共15页
《单片机原理及系统设计实用教程》课件第5章 计数器.ppt_第4页
第4页 / 共15页
《单片机原理及系统设计实用教程》课件第5章 计数器.ppt_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《《单片机原理及系统设计实用教程》课件第5章 计数器.ppt》由会员分享,可在线阅读,更多相关《《单片机原理及系统设计实用教程》课件第5章 计数器.ppt(15页珍藏版)》请在三一文库上搜索。

1、定时器定时器/计数器计数器5.1 定时器定时器/计数器的内部结构和功能计数器的内部结构和功能Ml-51Ml-51单片机的定时器/计数器的内部结构主要部件是两个16位计数器:TH0、TL0和TH1、TL1,还有方式控制寄存器(TMOD)和定时器/计数器的控制寄存器(TCON)。TH0、TL0用来存放T0的计数初值。TH0存高8位,字节地址为8CH,8AH。TH1、TL1用来存放T1的计数初值,TH1存高8位。字节地址为8DH,8BH。TMOD定时器/计数器的方式控制寄存器,字节地址为89H。TCON定时器/计数器控制寄存器,字节地址为88H。1定时器定时器T0和T1在作定时器使用时,输入的时钟脉

2、冲是由晶体振荡器的输出经12分频后得到的,故其频率为晶振频率的1/12。如果晶振频率为12Mb,则定时器每接收一个输入脉冲的时间为1 us。2计数器计数器当它用作对外部事件计数时,接相应的外部输入引脚T0或T1在这种情况下,当检测到输入引脚上的电平由高跳变到低时,计数器就加1(由于需要两个机器周期来识别一个从“1”到“0”的跳变,故最高计数频率为晶振频率的1/24)。这就要求输入信号的电平要在跳变后至少应在一个机器周期内保持不变,以保证在给定的电乎再次变化而至少被采样一次。5.2 定时器的方式控制寄存器定时器的方式控制寄存器TMOD。TMOD为定时器的方式控制寄存器,高四位用于T1,低四位用于

3、T0。其格式如下:GATE C/T M1 M0 GATE C/T M1 M0 D7 D6 D5 D4 D3 D2 D1 D0 字节地址 89H TMOD T1方式控制 T0方式控制 定时器/计数器T0和T1,有四种工作方式,由TMOD中的M1,M0来确定,如表11-1所示。表11-1 M1M2方式说明0 0013位定时器/计数器0 1116位定时器/计数器1 02自动装入时间常数的8位定时器/计数器1 1 3对T0分为两个8位计数器;对T1无此方式 C/TC/T为定时器为定时器/计数器方式选择位。计数器方式选择位。C/T=1C/T=1时,为计数器方式;时,为计数器方式;C/T=0C/T=0时,

4、为定时器时,为定时器方式。方式。GATEGATE为运行控制位。当为运行控制位。当GATE=1GATE=1时,计数时,计数器的计数受外部引脚输入电乎的控制,器的计数受外部引脚输入电乎的控制,/INT0/INT0控制控制T0T0运行,运行,INT1INT1控制控制T1T1运行。当运行。当GATE=0GATE=0时,计数器的运行不受外界控制。时,计数器的运行不受外界控制。5.3 定时器控制寄存器定时器控制寄存器TCONTCONTCON寄存器用于控制定时器的操作及对定时器中断的控制。其格式如下:其中,D0D2用于外部中断。l TR0:定时器T0的运行控制位。TR0由指令置位和复位,以启动或停止定时器/

5、计数器。l TF1:定时器T0的溢出中断标志位。当T0计数溢出时由硬件自动置1,向CPU请求中断,当CPU响应时,由硬件清零。l TR1:T1的运行控制位,功能同TR0。TF1:T1的溢出中断标志位,功能同TF0。5.4 工作方式工作方式MG51MG51定时器/计数器具有四种工作方式。T0有方式0、1、2、3四种方式;Tl具有方式0、1、2三种工作方式。u 方式0当M1M0为00时,定时器选为方式0。方式0为13位的定时/计数器,由TLx低5位和THx的高8位构成(x0、1)。u 方式1当M1M0为01时,定时器选为方式1。方式l与方式0完全类似,所不同的在于定时器/计数器为16位,由THx作

6、为高8位和TLh作为低8位构成。u 方式2当MIM0为10时,选定方式2,方式2为TLx自动恢复初值(初始时间常数自动重新装入)的8位定时器/计数器方式。把TLx作为8位计数器,THx作为常数缓冲器,当TLx计数满溢出时,使溢出标志TFx置1,同时将THx中的8位数据常数重新装入TLx中使TLx从初值开始重新计数。方式2常用于定时控制。例如希望每隔500uS产生一个定时控制脉冲,若采用6M的振荡器,使TL106H,TH106H,c/f0就能实现,方式2还用作串行口波特率发生器。u 方式3方式3只适用于T0,当T0工作在方式3时,TL0和TH0成为两个独立的8位计数器。使MCS51具有三个定时器

7、/计数器(增加了一个附加的8位定时器/计数器)。TL0的操作与方式0和方式1类似。而TH0只能作8恢定时器用(不能用作计数器方式),并占用了T1的中断资源TR1和TH1。在这种情况下,T1可以设置为方式0一2,用于任何不需要中断控制的场合,或用作串行口的波特率发生器。通常当T1用作串行口波特率发生器时,T0才定义为方式3,以增加一个8位计数器。5.5 定时器定时器/计数器的应用实例计数器的应用实例使用定时器使用定时器/计数器时,应首先对它进行初始化编程,主要对TMOD和TCON进行编程,并计算和装载T/C的初值。通常分以下几个步骤:1.初始化程序设计,主要是确定T/C的工作方式,即编程TMOD

8、和TCON;2.计算T/C中的计数初值,并装载到THx和TLx;3.编写中断服务程序。定时器的应用主要是计算定时所需的初始时间常数的数值,即定时器初值。定时器初值用以分别装载TL0和TH0或者TL1和TH1。无论定时器在哪一种工作方式下工作,初始时间常数值的计算方法都差不多。定时器的计数初值的确定的具体方法如下:在定时方式下,定时器是对机器周期脉冲计数的,若时钟频率采用6MHz,则一个机器周期位,机器周期=12/晶振频率=12/(6106)=2s,在各个工作方式下:方式0:13位定时器的最大时间间隔=2132s=16.384ms方式1:16位定时器的最大时间间隔=2162s=131.072ms

9、方式2:8位定时器的最大时间间隔=282s=512s假设定时器工作在方式1,要求定时1 ms,求计数初值。设计数初始值位x,则:(216-x)210-6=110-3x=216 500=65036因此THx=0 xFEH,TLx=0 x0CH.在计数方式下,T/C是对外部输入脉冲计数的,在各个工作方式下:方式0:13位计数器的最大计数值=213=8192方式1:16位计数器的最大计数值=216=65536方式2:8位定计数器的最大计数值=28=256假设计数器工作在计数器方式2,要求计数100个脉冲的计数初值的计算如下。设计数初始值位x,则:28-x=100 x=156因此THx=TLx=0 x

10、9CH。以下就定时器的工作方式0举例说明定时器的应用方法 例1 假设时钟频率采用6MHz,要在P1.0上输出一个周期为2ms的方波,方波的周期用定时器T0中设置一个时间常数,使其每隔1ms产生一次中断,CPU响应中断后,在中断服务程序中对P1.0取非。T0中断入口地址为000BH。为此要做如下几步工作:1.设计初始化程序初始化程序包括:定时器初始化和中断系统初始化,主要是对IP(中断优先级寄存器)、IE(中断允许寄存器)、TCON(控制寄存器)、TMOD(工作方式寄存器)的相应位进行正确的设置,并将时间常数送入定时器中。在本例中,假设程序是从系统复位开始运行的,TMOD、TCON均为00H,因

11、此不必对TMOD操作。2.确定定时器初值 机器周期=12/晶振频率=12/(6106)=2s设:需要初值为X,则(213-X)210-6=110-3 (213-X)=500,得:X=7692 化为16进制X=1E0CH。根据13位定时器特性,初值应为:TH0=0F0H,TL0=0CH。1EH 0CH D7 D6 D5 D4 D3 D2 D1 D0 D7 D6 D5 D4 D3 D2 D1 D0 0 0 0 1 1 1 1 0 0 0 0 0 1 1 0 0 TH0(0F0H)TL0(0CH)3.设计中断服务程序和主程序 中断服务程序除了完成要求的产生方波这一工作之外,还要注意将时间常数重新送入

12、定时器中,为下一次产生中断做准备。主程序可以完成任何其他工作,一般情况下常常是键盘程序和显示程序。在本例中,由于没有这方面的要求,用一条转至自身的短跳转指令来代替主程序。按上面设计的程序清单如下:ORG 0000HRESET:AJMP MAIN ;转移到主程序入口地址ORG 000BH ;中断处理程序 AJMP IT0P ORG 0100H;主程序MAIN:MOV SP,#60H ACALL PT0M0HERE:AJMP HEREPT0M0:MOV TL0,#0CH ;T0置初值低位 MOV TH0,#0F0H ;T0初值高位 SETB TR0 ;启动T0 SETB ET0 ;允许T0中断 S

13、ETB EA ;CPU 开放中断 RET;中断服务程序IT0P:MOV TL0,#0CH ;T0置初值低位 MOV TH0,#0F0H;T0初值高位 CPL P1.0 ;P1.0取反 RETI习习 题题1.1.在一个MCS-51系统中,晶振为12MHz,一个外部中断请求信号是一个宽度为500ns的负脉冲,则应用哪种触发方式?如何实现?2.若外部中断请求信号是一个低电平有效的信号,是否一定要选择电平触发方式?为什么?3.MCS-51单片机的中断系统是如何进行具体管理的?请举例说明管理的具体内容。4.MCS-51与外部设备交换数据的控制方式有哪几种?各有何优缺点?5.什么叫中断?为什么采用中断?6.简述中断的响应过程。7.MCS-51提供哪几种中断?在中断管理上有什么特点?什么是同级内的优先权管理?8.外部中断有哪两种触发方式?对触发脉冲或电平有什么要求?如何选择和设定?9.MCS-51单片机内部设存几个定时器/计数器?每个定时/计数器有几种工作方式?其特点是什么?10.8031单片机的晶振为12M,分别用定时器T0的方式0,12编程,使P1.1脚上输出周期800MS的方波。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育


经营许可证编号:宁ICP备18001539号-1