第7章__定时计数器与可编程计数器阵列.ppt





《第7章__定时计数器与可编程计数器阵列.ppt》由会员分享,可在线阅读,更多相关《第7章__定时计数器与可编程计数器阵列.ppt(50页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1/50增强型8051单片机实用开发技术第第7 7章章 定时定时/计数器计数器 7.1 STC12C5A60S27.1 STC12C5A60S27.1 STC12C5A60S27.1 STC12C5A60S2单片机的定时单片机的定时单片机的定时单片机的定时/计数器计数器计数器计数器 7.3 7.3 7.3 7.3 STC12C5ASTC12C5ASTC12C5ASTC12C5A60S260S260S260S2单片机单片机单片机单片机的的的的PCAPCAPCAPCA模块模块模块模块 7.2 STC12C5A60S27.2 STC12C5A60S27.2 STC12C5A60S27.2 STC12
2、C5A60S2单片机的单片机的单片机的单片机的可编程时钟输出可编程时钟输出可编程时钟输出可编程时钟输出2/50增强型8051单片机实用开发技术在计算机控制中可供选择的定时方法在计算机控制中可供选择的定时方法 (1 1)软件定时)软件定时 执行一个循环程序来实现。执行一个循环程序来实现。(2 2)硬件定时)硬件定时 定时全部由硬件电路完成,不占用定时全部由硬件电路完成,不占用CPUCPU时间,但需要通过改变电路时间,但需要通过改变电路的元件参数来调节定时时间,在使用控制上不够方便,同时增加了开的元件参数来调节定时时间,在使用控制上不够方便,同时增加了开发成本。发成本。(3 3)可编程定时器定时)
3、可编程定时器定时 由单片机内部的定时模块单元完成。由单片机内部的定时模块单元完成。STC12C5A60S2单片机内部有单片机内部有:1)两个)两个16位的定时位的定时/计数器,不仅可以方便地用于定时控制,而计数器,不仅可以方便地用于定时控制,而且还可以用作分频器和用于事件记录;且还可以用作分频器和用于事件记录;2)可编程时钟输出功能,可用于给外部器件提供时钟;)可编程时钟输出功能,可用于给外部器件提供时钟;3)两路可编程计数器阵列()两路可编程计数器阵列(Programmable Counter Array,PCA)。可用于软件定时器、外部脉冲的捕捉、高速输出以及脉宽调制)。可用于软件定时器、
4、外部脉冲的捕捉、高速输出以及脉宽调制(Pulse Width Modulation,PWM)输出。)输出。3/50增强型8051单片机实用开发技术7.1 STC12C5A60S27.1 STC12C5A60S2单片机的定时单片机的定时/计数器计数器 7.1.1 7.1.1 定时定时/计数器的结构及工作原理计数器的结构及工作原理 定时定时/计数器的核心是一个加计数器的核心是一个加1计数器,加计数器,加1计数器的脉冲有两计数器的脉冲有两个来源,一个是外部脉冲源,另一个是系统的时钟振荡器。计数个来源,一个是外部脉冲源,另一个是系统的时钟振荡器。计数器对两个脉冲源之一进行输入计数,每输入一个脉冲,计数
5、值加器对两个脉冲源之一进行输入计数,每输入一个脉冲,计数值加1。当计数到计数器为全。当计数到计数器为全1时,再输入一个脉冲就使计数值回零,同时,再输入一个脉冲就使计数值回零,同时从最高位溢出一个脉冲使特殊功能寄存器时从最高位溢出一个脉冲使特殊功能寄存器TCON(定时器控制寄(定时器控制寄存器)的某一位存器)的某一位TF0或或TF1置置1,作为计数器的溢出中断标志。,作为计数器的溢出中断标志。4/50增强型8051单片机实用开发技术 单片机中的微处理器、寄存器单片机中的微处理器、寄存器TCONTCON和和TMODTMOD与定时与定时/计数器计数器T0T0、T1T1之间的关系之间的关系 5/50增
6、强型8051单片机实用开发技术7.1.2 7.1.2 定时定时/计数器计数器的相关的相关寄存器寄存器1 1、定时器工作方式控制寄存器、定时器工作方式控制寄存器TMODTMOD(地址为(地址为89H,复位值为,复位值为00H)M0M1C/TGATEM0M1C/TGATE定时器定时器0定时器定时器1定时器定时器D0D1D2D3D4D5D6D7位号位号M1 M0工作方式工作方式功能功能说说明明0 0013位位计计数器数器0 1116位位计计数器数器1 02可自可自动动装入的装入的8位位计计数器数器1 13定定时时器器0:分成两个:分成两个8位位计计数器数器定定时时器器1:停止:停止计计数数1)M1和
7、和M0:方式选择控制位。:方式选择控制位。2)C/:功能:功能选择选择位。位。用于用于“计数器计数器”或或“定时器定时器”功能的选择。功能的选择。3)GATE:门控位。:门控位。GATE用于选通控制。用于选通控制。位名称位名称6/50增强型8051单片机实用开发技术2、定时器控制寄存器、定时器控制寄存器 TCON(地址为(地址为88H,复位值为,复位值为00H)1)TF1:定时器:定时器/计数器计数器1溢出标志位。溢出标志位。2)TR1:定时器:定时器T1的运行控制位。的运行控制位。3)TF0:定时器:定时器/计数器计数器0溢出标志位。溢出标志位。4)TR0:定时器:定时器T0的的运行运行控制
8、位。控制位。TCON的的03位与外部中断有关。位与外部中断有关。IT0IE0IT1IE1TR0TF0TR1TF1位名称位名称D0D1D2D3D4D5D6D7位号位号7/50增强型8051单片机实用开发技术3、AUXR:辅助寄存器(地址为:辅助寄存器(地址为8EH,复位值为,复位值为00H)-ELVDIESPIEADCIUART_M0 x6UART_M0 x6T1x12T1x12T0 x12位名称位名称D0D1D2D3D4D5D6D7位号位号 与定时器速度相关的控制位有与定时器速度相关的控制位有:1)T0 x12:定时器:定时器0速度控制位。速度控制位。0:定时器:定时器0的速度是传统的速度是传
9、统8051单片机定时器的速度,即单片机定时器的速度,即12分频。分频。1:定时器:定时器0的速度是传统的速度是传统8051单片机定时器速度的单片机定时器速度的12倍,即不分频。倍,即不分频。2)T1x12:定时器:定时器1速度控制位。速度控制位。0:定时器:定时器1的速度是传统的速度是传统8051单片机定时器的速度,即单片机定时器的速度,即12分频。分频。1:定时器:定时器1的速度是传统的速度是传统8051单片机定时器速度的单片机定时器速度的12倍,即不分频。倍,即不分频。如果如果UART串口用串口用T1作为波特率发生器,作为波特率发生器,T1x12位决定位决定UART串口是串口是12T 还是
10、还是1T。UART_M0 x6、BRTR、S2SMOD、BRTx12和和S1BRS用于控制用于控制UART串口的速串口的速度。度。EXTRAM用于设置是否允许使用内部用于设置是否允许使用内部1024字节的扩展字节的扩展RAM。8/50增强型8051单片机实用开发技术7.1.3 7.1.3 定时定时/计数器的工作方式计数器的工作方式 方式方式0 和方式和方式19/50增强型8051单片机实用开发技术方式方式2 10/50增强型8051单片机实用开发技术方式方式311/50增强型8051单片机实用开发技术当工作于定当工作于定时时状状态时态时,定,定时时/计计数器是数器是对时钟对时钟周期周期进进行行
11、计计数,若数,若对时钟对时钟进进行行12分分频频,则对则对每每12个个时钟时钟周期周期计计数。当晶振数。当晶振频频率率为为6MHz,采用,采用12分分频时频时,计计数的数的单单位位时间间时间间隔隔为为单单位位时间间时间间隔隔Tu=定时时间为:定时时间为:TC=XTu。其中,。其中,Tu为单位时间间隔,为单位时间间隔,TC为定时时间。为定时时间。7.1.4 定时定时/计数器量程的扩展计数器量程的扩展 STC12C5A60S2 STC12C5A60S2单片机中提供的定时单片机中提供的定时/计数器可以使用户很方便地实现定计数器可以使用户很方便地实现定时和对外部事件计数。但是在实际应用中,需要的定时时
12、间或计数值可能超时和对外部事件计数。但是在实际应用中,需要的定时时间或计数值可能超过定时过定时/计数器的定时或计数能力,特别是当单片机的系统时钟频率较高时,计数器的定时或计数能力,特别是当单片机的系统时钟频率较高时,定时能力就更为有限。为了满足需要,有时需要对单片机的定时计数能力进定时能力就更为有限。为了满足需要,有时需要对单片机的定时计数能力进行扩展。定时能力和计数能力扩展的方法相同,在此主要对定时能力的扩展行扩展。定时能力和计数能力扩展的方法相同,在此主要对定时能力的扩展进行讨论,计数能力的扩展可参考定时能力扩展的方法进行。进行讨论,计数能力的扩展可参考定时能力扩展的方法进行。s=2s S
13、TC12C5A60S2单片机的定时器单片机的定时器/计数器计数器0或或1是对脉冲进行不断加是对脉冲进行不断加1进行计数的,因此,不能直接将实际的计数值作为计数初值送入计数寄进行计数的,因此,不能直接将实际的计数值作为计数初值送入计数寄存器存器THX、TLX中,而必须将实际计数值以中,而必须将实际计数值以28、213、216为模求补,以补为模求补,以补码作为计数初值设置码作为计数初值设置THX和和TLX。即应装入计数。即应装入计数/定时器的初值为:定时器的初值为:n=8,13或16=12/50增强型8051单片机实用开发技术系统时钟频率为系统时钟频率为6MHz,6MHz,进行进行12分频分频时时
14、,定时器的最大定时能力定时器的最大定时能力 T(216 0)2s131072s131.072ms16T(213 0)2s16384s16.384ms13T(28 0)2s512s8最大定时能力最大定时能力位数位数扩展方法:扩展方法:(1 1)软件扩展方法)软件扩展方法 扩展方法是在定时器中断服务程序中对定时器中断请求进行扩展方法是在定时器中断服务程序中对定时器中断请求进行计数,当中断请求的次数达到要求的值时才进行相应的处理。计数,当中断请求的次数达到要求的值时才进行相应的处理。例例如,某事件的处理周期为如,某事件的处理周期为1s,但由于受到最大定时时间的限制,但由于受到最大定时时间的限制,无法
15、一次完成定时,此时可以将定时器的定时时间设为以无法一次完成定时,此时可以将定时器的定时时间设为以10ms为一个单位,启动定时器后的每一次定时器溢出中断产生为一个单位,启动定时器后的每一次定时器溢出中断产生10ms的定时,进入中断服务程序后,对定时器的中断次数进行统计,的定时,进入中断服务程序后,对定时器的中断次数进行统计,每每100次定时器溢出中断进行一次事件的处理,然后再以同样的次定时器溢出中断进行一次事件的处理,然后再以同样的方式进入下一个周期的事件处理。方式进入下一个周期的事件处理。13/50增强型8051单片机实用开发技术(2 2)硬件扩展方法)硬件扩展方法 硬件扩展方法可以使用外接通
16、用定时器芯片对单片机的定时硬件扩展方法可以使用外接通用定时器芯片对单片机的定时能力进行扩展,如使用定时能力进行扩展,如使用定时/计数器芯片计数器芯片82538253,也可以利用单片机,也可以利用单片机自身的资源对定时能力进行扩展。自身的资源对定时能力进行扩展。由于单片机的定时器没有对外输出引脚,所以两个由于单片机的定时器没有对外输出引脚,所以两个16位的定位的定时时/计数器不能直接连在一起,可以通过单片机的端口计数器不能直接连在一起,可以通过单片机的端口P0P3实实现连接。下图给出了一种具体的连接方法。现连接。下图给出了一种具体的连接方法。1)T0设置为设置为16位定时器方式,当位定时器方式,
17、当T0溢出时,执行溢出时,执行T0的中断服务的中断服务程序。在程序。在T0的中断服务程序中将的中断服务程序中将P1.0取反。这样在取反。这样在P1.0将输出一个方波,将输出一个方波,其周期为其周期为T0定时时间的定时时间的2倍。设倍。设T0的定时时间为的定时时间为TIME,则由,则由P1.0输出输出的方波的周期为的方波的周期为2TIME。2)T1设置为设置为16位计数器方式,将位计数器方式,将P1.0输出的方波接到输出的方波接到T1的定时器的定时器外部输入端外部输入端T1(P3.5),作为定时),作为定时/计数器计数器1的外部计数脉冲,其每个周的外部计数脉冲,其每个周期的下降沿使期的下降沿使T
18、1加加1。设计数器。设计数器T1的计数脉冲数为的计数脉冲数为COUNT,则当,则当T1溢溢出时,总定时时间出时,总定时时间T为:为:T=2TIMECOUNT。14/50增强型8051单片机实用开发技术7.1.5 定时定时/计数器编程举例计数器编程举例 定时定时/计数器的应用编程主要有两点:一是能正确初始化,包括计数器的应用编程主要有两点:一是能正确初始化,包括写入控制字,进行时间常数的计算并装入;二是中断服务程序的编写入控制字,进行时间常数的计算并装入;二是中断服务程序的编写,即在中断服务程序中编写实现定时完成的任务代码。一般情况写,即在中断服务程序中编写实现定时完成的任务代码。一般情况下,定
19、时下,定时/计数器初始化部分的步骤大致如下:计数器初始化部分的步骤大致如下:(1)设置工作方式,将控制字写入)设置工作方式,将控制字写入TMOD寄存器。寄存器。(2)设置分频方式,将控制字写入)设置分频方式,将控制字写入AUXR寄存器。默认的情寄存器。默认的情况是况是12分频(兼容传统分频(兼容传统8051单片机),因此,如果使用传统单片机),因此,如果使用传统8051单片机模式,可以不进行设置。单片机模式,可以不进行设置。(3)把定时)把定时/计数初值装入计数初值装入TLX、THX寄存器。寄存器。(4)置位)置位ETX允许定时允许定时/计数器中断(如果需要)。计数器中断(如果需要)。(5)置
20、位)置位EA使使CPU开放中断。开放中断。(6)置位)置位TRX以启动定时以启动定时/计数。计数。15/50增强型8051单片机实用开发技术 【例例7-17-1】设系统时钟频率为设系统时钟频率为6MHz6MHz,利用定时器,利用定时器T0T0定时,每隔定时,每隔1s1s将将P2.0P2.0的状态取反。的状态取反。思路:思路:将定时器的定时时间设为将定时器的定时时间设为50ms50ms,在中断服务程序中对定时器,在中断服务程序中对定时器溢溢出中断请求进行计数,当计够出中断请求进行计数,当计够2020次时,将次时,将P2.0P2.0的状态取反,否则直接的状态取反,否则直接返回主程序。返回主程序。选
21、择定时器选择定时器T0T0的工作方式:软件启动、定时方式、的工作方式:软件启动、定时方式、1616位定时器,位定时器,方式字为方式字为01H01H。由于系统时钟频率为。由于系统时钟频率为6MHz6MHz,1212分频时,计数单位为分频时,计数单位为2s2s。定时器定时器T0T0的装入初值为的装入初值为16/50增强型8051单片机实用开发技术汇编语言程序代码如下:汇编语言程序代码如下:$INCLUDE (STC12C5A.INC);包含包含STC12C5A60S2寄存器定义文件寄存器定义文件ORG0000HLJMP MAIN ;转主程序转主程序ORG000BH;T0中断服务程序入口地址中断服务
22、程序入口地址LJMPT0_ISRORG 0100HMAIN:MOV SP,#60H ;设置堆栈指针设置堆栈指针 MOV TMOD,#01H ;T0初始化初始化MOV TL0,#58HMOV TH0,#9EHMOV A,#20 ;累加器累加器A置置20SETB ET0 ;允外允外T0中断中断SETB EA;CPU开中断开中断SETB TR0 ;启动启动T0计数计数SJMP$;等待等待T0_ISR:MOV TL0,#58H MOV TH0,#9EH;重新装入时间常数重新装入时间常数DEC A ;累加器累加器A内容减内容减1JNZEXITCPL P2.0MOV A,#20 ;累加器累加器A重载重载2
23、0EXIT:RETIEND17/50增强型8051单片机实用开发技术对应的对应的C C语言程序如下:语言程序如下:#include“stc12c5a.h”/包含包含STC12C5A60S2的寄存器定义文件的寄存器定义文件sbit P20=P20;/声明声明P2.0的引脚位变量的引脚位变量unsigned char i;/声明计数变量。在声明计数变量。在C语言程序中,尽量不要使用语言程序中,尽量不要使用ACCvoid main(void)/SP=0 x60;/使用使用C语言设计程序时,可以不设置堆栈指针语言设计程序时,可以不设置堆栈指针 TMOD=0 x01;TL0=0 x58;TH0=0 x9
24、E;i=20;/计数变量赋初值计数变量赋初值ET0=1;/允许允许T0中断中断 EA=1;/开放总的中断开放总的中断TR0=1;/启动启动T0计数计数 while(1);/等待中断等待中断void T0_ISR(void)interrupt 1 /定时器定时器T0中断函数中断函数TL0=0 x58;/重新装入时间常数重新装入时间常数 TH0=0 x9E;i-;/计数变量减计数变量减1if(i=0)/若减到若减到0,则将,则将P2.0取反取反 P20=!P20;/将将P2.0取反取反 i=20;/重新给计数变量赋值重新给计数变量赋值18/50增强型8051单片机实用开发技术 解:以解:以T0T0
25、为例,下面列出实现这一方法的关键代码,完整的程序,请读者为例,下面列出实现这一方法的关键代码,完整的程序,请读者自行编写。自行编写。MOV TMOD,#09H ;T0MOV TMOD,#09H ;T0初始化,初始化,T0T0工作于方式工作于方式1 1、定时、定时、GATEGATE置置1 1 MOV TL0,#00H MOV TL0,#00H MOV TH0,#00H MOV TH0,#00H JNB P3.2,$;JNB P3.2,$;等待升高等待升高 SETB TR0 SETB TR0 JB P3.2,$;JB P3.2,$;等待下降等待下降 CLR TR0 ;CLR TR0 ;关关T0T0
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- _ 定时 计数器 可编程 阵列

限制150内