单片机定时器的使用.ppt
《单片机定时器的使用.ppt》由会员分享,可在线阅读,更多相关《单片机定时器的使用.ppt(65页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、MCS-51单片机内部定时器单片机内部定时器/计数器计数器 及串行接口及串行接口一、一、定时器定时器/计数器的结构及工作原理计数器的结构及工作原理 二、二、方式和控制寄存器方式和控制寄存器 三、三、工作方式工作方式四、四、定时器定时器/计数器应用举例计数器应用举例 五、五、MCS-51单片机的串行接口单片机的串行接口六、六、串行口的应用串行口的应用 在工业检测、控制中,很多场合都要用到计数或者定时功能。例如对外部脉冲进行计数、产生精确的定时时间、作串行口的波特率发声器等。MCS51单片机内部有两个可编程的定时器/计数器,以满足这方面的需要。它们具有两种工作模数(计数器模式、定时器模式)和四种工
2、作方式(方式0、方式1、方式2、方式3),其控制字均在相应的特殊功能寄存器(SFR)中,通过对它的SFR的编程,可以方便的选择工作模数和工作方式。定时器/计数器:Timer/Counter本质上都是加法计数器,当对固定周期的脉冲信号计数时是定时器,对脉冲长度不确定的信号计数时是计数器。每接收到一个计数脉冲,加法计数器的值就加一,当计满时发生溢出,并从0开始继续计数。加法计数器的计满溢出信号就是定时/计数器的输出,该信号使TCON的某位(TF0或TF1位)置一,作为定时器/计数器的溢出中断标志。6.1 定时器定时器/计数器的结构及工作原理计数器的结构及工作原理 图图 6.1 定时器定时器/计数器
3、结构框图计数器结构框图6.2 方式和控制寄存器方式和控制寄存器 一、一、定时器定时器/计数器的方式寄存器计数器的方式寄存器TMOD 图6.2TMOD各位定义8位分为两组,高四位控制T1,低4位控制T0。对对TMOD的各个位的说明:的各个位的说明:GATE位:门控位。位:门控位。GATE1时,T0、T1是否计数要受到外部引脚输入电平的控制,INT0引脚控制T0,INT1引脚控制T1。可用于测量在INT0和INT1引脚出现的正脉冲的宽度。若GATE0,即不使能门控功能,定时计数器的运行不受外部输入引脚INT0、INT1的控制。C/T位:计数器模式和定时器模式的选择位。位:计数器模式和定时器模式的选
4、择位。C/T0,为定时器模式,内部计数器对晶振脉冲12分频后的脉冲计数,该脉冲周期等于机器周期,所以可以理解为对机器周期进行计数。从计数值可以求得计数的时间,所以称为定时器模式。C/T1,为计数器模式,计数器对外部输入引脚T0(P3.4)或T1(P3.5)的外部脉冲(负跳变)计数,允许的最高计数频率为晶振频率的1/24。M1 M0:四种工作方式的选择位四种工作方式的选择位 表6.1工作方式选择表M1 M0 方式方式说说 明明00013位定时器(TH的8位和TL的低5位)01116位定时器/计数器102自动重装入初值的8位计数器113T0分成两个独立的8位计数器,T1在方式3时停止工作 定时器初
5、值的确定定时器初值的确定:加法计数器是计满溢出时才申请中断,所以在给定时器/计数器赋初值时,不能直接输入所需的计数值,而应输入的是计数器计数的最大值与这一计数值的差值,设最大值为M,计数值为N,初值为X,则X的计算方法如下:计数状态:X=MN定时状态:X=M定时时间/T而T=12晶振频率 二、二、定时器定时器/计数器控制寄存器计数器控制寄存器TCONTF0、TF1分别是定时器/计数器T0、T1的溢出标志位,加法计数器计满溢出时置1,申请中断,在中断响应后自动复0。TF产生的中断申请是否被接受,还需要由中断是否开放来决定。TR1、TR0分别是定时器/计数器T1、T0的运行控制位,通过软件置1后,
6、定时器/计数器才开始工作,在系统复位时被清0。TF1TF1TR1TR1TF0TF0TR0TR0IE1IE1IT1IT1IE0IE0IT0IT06.3 工作方式工作方式 一、一、方式方式 0 图图6.3方式0(13位计数器)在方式0下,T0和T1工作在13位的定时/计数器方式,由TH的高8位和TL的低5位组成。当T0的13位计数器加到全部为1以后,再加1就产生溢出,这时置TCON的TF0为1,同时把计数器全部变0,然后从0开始继续计数。方式0的计数长度M为2的13次方。初值也是13位二进制数,但要注意是高8位赋值给TH0,低5位前面补足3个0凑成8位赋给TL0。例如,如要求计数值为1000,则初
7、值为xM1000819210001C18H1110000011000B则赋初值时,TH00E0H,TL018H。二、二、方式方式1 图6.4方式1(16位计数器)方式1和方式0的工作原理基本相同,唯一不同是T0和T1工作在方式1时是16位位的计数/定时器。方式1时的计数长度计数长度M是2的16次方。16位的初值初值直接拆成高低字节,分别送入TH和TL即可。三、方式三、方式 2图6.5方式2(初始常数自动重装载)工作方式0和工作方式1的最大特点就是计数溢出后,计数器为全0,因而循环定时或循环计数应用时就存在反复设置初值的问题,这给程序设计带来许多不便,同时也会影响计时精度。工作方式2就针对这个问
8、题而设置,它具有自动重装载功能,即自动加载计数初值,所以也称为自动重加载工作方式。在这种工作方式中,16位计数器分为两部分,即以TL0为计数器,以TH0作为预置寄存器,初始化时把计数初值分别加载至TL0和TH0中,当计数溢出时,不再象方式0和方式1那样需要“人工干预”,由软件重新赋值,而是由预置寄存器TH以硬件方法自动给计数器TL0重新加载。四、四、方式方式 3 图6.6方式3(两个8位独立计数器)在工作方式3模式下,定时/计数器0被拆成两个独立的8位计数器TL0和TH0。其中TL0既可以作计数器使用,也可以作为定时器使用,定时/计数器0的各控制位和引脚信号全归它使用。其功能和操作与方式0或方
9、式1完全相同。TH0就没有那么多“资源”可利用了,只能作为简单的定时器使用,而且由于定时/计数器0的控制位已被TL0占用,因此只能借用定时/计数器1的控制位TR1和TF1,也就是以计数溢出去置位TF1,TR1则负责控制TH0定时的启动和停止。由于TL0既能作定时器也能作计数器使用,而TH0只能作定时器使用而不能作计数器使用,因此在方式3模式下,定时/计数器0可以构成二个定时器或者一个定时器和一个计数器。如果定时/计数器0工作于工作方式3,那么定时/计数器1的工作方式就不可避免受到一定的限制,因为自己的一些控制位已被定时/计数器借用,只能工作在方式0、方式1或方式2下,如果设置T1工作在方式3,
10、则T1停止工作,相当于其他方式时令TR10。6.4 定时器定时器/计数器应用举例计数器应用举例 一、一、方式方式 0 的应用的应用 例例 1利用定时器输出周期为2ms的方波,设单片机晶振频率为6MHz。选用定时器/计数器T0作定时器,输出为P1.0引脚,2ms的方波可由间隔1ms的高低电平相间而成,因而只要每隔1ms对P1.0取反一次即可得到这个方波。定时1ms的初值:因为机器周期=126MHz=2s所以1ms内T0需要计数N次:N=1ms2s=500由此可知:使用方式0的13位计数器即可,T0的初值X为X=MN=8192500=7692=1E0CH但是,因为13位计数器中,低8位TL0只使用
11、了5位,其余码均计入高8位TH0的初值,则T0的初值调整为TH0=0F0H,TL0=0CHTMOD初始化:TMOD=00000000B=00H(GATE=0,C/T=0,M1=0,M0=0)TCON初始化:启动TR0=1IE初始化:开放中断EA=1,定时器T0中断允许ET0=1程序清单如下:ORG0000HAJMPSTART;复位入口ORG000BHAJMPTOINT;T0中断入口ORG0030HSTART:MOVSP,60H;初始化程序MOVTH0,0F0H;T0赋初值MOVTL0,0CHMOVTMOD,00HSETBTR0;启动T0SETBET0;开T0中断SETBEA;开总允许中断MAI
12、N:AJMPMAIN;主程序T0INT:CPLP1.0MOVTL0,0CHMOVTH0,0F0HRETI 二、二、方式方式 1应用应用方式1与方式0基本相同,只是方式1改用了16位计数器。要求定时周期较长时,13位计数器不够用,可改用16位计数器。例例 2已知某生产线的传送带上不断地有产品单向传送,产品之间有较大间隔。使用光电开关统计一定时间内的产品个数。假定红灯亮时停止统计,红灯灭时才在上次统计结果的基础上继续统计,试用单片机定时器/计数器T1的方式1完成该项产品的计数任务。图6.7硬件原理图(1)初始化:TMOD=11010000B=0D0H(GATE=1,C/T=1,M0M1=01)TC
13、ON=00H(2)T1在方式1时,溢出产生中断,且计数器回零,故在中断服务程序中,需用R0计数中断次数,以保护累积计数结果。(3)启动T1计数,开T1中断。程序清单如下:ORG0000HAJMPSTART;复位入口ORG001BHAJMPT1INT;T1中断入口ORG0100HSTART:MOVSP,60H;初始化程序MOVTCON,00HMOVTMOD,0D0HMOVTH1,00HMOVTL1,00HMOVR0,00H;清中断次数计数单元MOVP3,28H;设置P3.5第二功能SETBTR1;启动T1SETBET1;开T1中断SETBEA;开总中断MAIN:ACALLDISP;主程序,调显示
14、子程序ORG0A00HT1INT:INCR0;中断服务子程序RETIDISP:;显示子程序RET 三、三、方式方式 2 应用应用方式2是定时器自动重装载的操作方式,在这种方式下,定时器0和1的工作是相同的,它的工作过程与方式0、方式1基本相同,只不过在溢出的同时,将8位二进制初值自动重装载,即在中断服务子程序中,不需要编程送初值,这里不再举例。定时器T1工作在方式2时,可直接用作串行口波特率发生器,四、四、方式方式 3 的应用的应用定时器T0工作在方式3时是2个8位定时器/计数器。且TH0借用了定时器T1的溢出中断标志TF1和运行控制位TR1。例例 3假设有一个用户系统中已使用了两个外部中断源
15、,并置定时器T1于方式2,作串行口波特率发生器用,现要求再增加一个外部中断源,并由P1.0口输出一个5KHz的方波(假设晶振频率为6MHz)。在不增加其它硬件开销时,可把定时器/计数器T0置于工作方式3,利用外部引脚T0端作附加的外部中断输入端,把TL0预置为0FFH,这样在T0端出现由1至0的负跳变时,TL0立即溢出,申请中断,相当于边沿激活的外部中断源。在方式3下,TH0总是作8位定时器用,可以靠它来控制由P1.0输出的5kHz方波。由P1.0输出5kHz的方波,即每隔100s使P1.0的电平发生一次变化。则TH0中的初始值 X=MN=256100/2=206。下面是有关的程序。MOVTL
16、0,0FFHMOVTH0,206MOVTL1,BAUD;BAUD根据波特率要求设置常数MOVTH1,BAUDMOVMOD,27H;置T0工作方式3;TL0工作于计数器方式MOVTCON,55H;启动定时器T0、T1,置外部中断0和1;为边沿激活方式MOVIE,9FH;开放全部中断TL0溢出中断服务程序(由000BH单元转来):TL0INT:MOVTL0,0FFH;外部引脚T0引起中断处理程序RETITH0溢出中断服务程序(由001BH转来):TH0INT:MOVTH0,206CPLP1.0RETI此处串行口中断服务程序、外中断0和外中断1的中断服务程序没有列出。6.5 MCS-51单片机的串行
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 定时器 使用
限制150内