增强型8051单片机的定时计数器.ppt

上传人:wuy****n92 文档编号:66025392 上传时间:2022-12-11 格式:PPT 页数:40 大小:1.81MB
返回 下载 相关 举报
增强型8051单片机的定时计数器.ppt_第1页
第1页 / 共40页
增强型8051单片机的定时计数器.ppt_第2页
第2页 / 共40页
点击查看更多>>
资源描述

《增强型8051单片机的定时计数器.ppt》由会员分享,可在线阅读,更多相关《增强型8051单片机的定时计数器.ppt(40页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、增强型8051单片机原理与应用增强型8051单片机的定时/计数器增强型8051单片机原理与应用目 录1STC11F08XE单片机定时单片机定时/计数器的结构和工计数器的结构和工作原理作原理 2STC11F08XE单片机定时单片机定时/计数器的控制计数器的控制 3STC11F08XE单片机定时单片机定时/计数器的工作方式计数器的工作方式 4STC11F08XE单片机定时单片机定时/计数器的应用举例计数器的应用举例 5 STC11F08XE单片机的可编程时钟输出功能单片机的可编程时钟输出功能 增强型8051单片机原理与应用1STC11F08XE单片机定时/计数器的结构和工作原理 1.STC11F0

2、8XE单片机定时单片机定时/计数器的结构计数器的结构STC11F08XE单片机内部有两个单片机内部有两个16位的定时计数器,即位的定时计数器,即T0和和T1,与传统的,与传统的8051单片机的定时计数器完全兼容单片机的定时计数器完全兼容。增强型8051单片机原理与应用1STC11F08XE单片机定时/计数器的结构和工作原理 2.STC11F08XE单片机定时单片机定时/计数器的核心电路计数器的核心电路STC11F08XE单片机定时单片机定时/计数器的核心电路如图计数器的核心电路如图7.2所示,所示,它是一个加它是一个加1计数器。计数器。增强型8051单片机原理与应用1STC11F08XE单片机

3、定时/计数器的结构和工作原理 3.STC11F08XE单片机定时单片机定时/计数器的工作原理计数器的工作原理定时功能:当脉冲源为系统时钟(等间隔脉冲序列)时,定时功能:当脉冲源为系统时钟(等间隔脉冲序列)时,由于计数脉冲为一时间基准,脉冲数乘以计数脉冲周期由于计数脉冲为一时间基准,脉冲数乘以计数脉冲周期(时钟周期或(时钟周期或12倍时钟周期)就是定时时间。倍时钟周期)就是定时时间。计数功能:当脉冲源为间隔不等的外部输入脉冲(由计数功能:当脉冲源为间隔不等的外部输入脉冲(由T0或或T1引脚输入)时,就是外部事件的计数器。寄存器在其对引脚输入)时,就是外部事件的计数器。寄存器在其对应的外输入端应的

4、外输入端T0或或T1有一个负跳变时计数器加有一个负跳变时计数器加1。外部输。外部输入信号的速率是不受限制的,但必须保证给出的电平在变入信号的速率是不受限制的,但必须保证给出的电平在变化前至少被采样一次。化前至少被采样一次。增强型8051单片机原理与应用2STC11F08XE单片机定时/计数器的控制 1.工作方式寄存器工作方式寄存器TMOD TMOD为为T0、T1的工作方式寄的工作方式寄存器存器。地址B7B6B5B4B3B2B1B0复位值TMOD89HGATEM1M0GATEM1M00000 0000 定时器定时器1 定时器定时器0增强型8051单片机原理与应用2STC11F08XE单片机定时/

5、计数器的控制 2.定时定时/计数器控制寄存器计数器控制寄存器TCON TCON的作用是控制定时的作用是控制定时/计数器的启动与停止,记录定时计数器的启动与停止,记录定时/计数器的溢出标志以及外部中断的控制。计数器的溢出标志以及外部中断的控制。地址B7B6B5B4B3B2B1B0复位值TCON88HTF1TR1TF0TR0IE1IT1IE0IT00000 0000增强型8051单片机原理与应用2STC11F08XE单片机定时/计数器的控制 3.辅助寄存器辅助寄存器AUXR辅助寄存器辅助寄存器AUXR的的T0 x12、T1x12用于设定用于设定T0、T1定时定时计数脉冲的分频系数。计数脉冲的分频系

6、数。地址B7B6B5B4B3B2B1B0复位值AUXR 8EHT0 x12T1x12UART_M0 x6BRTRBRTx12XRAMS1BRS0000 x000增强型8051单片机原理与应用3STC11F08XE单片机定时/计数器的工作方式 1.方式方式0方式方式0是一个是一个13位的定时计数器,由位的定时计数器,由TH0的所有的所有8位和位和TL0的低的低5位组成,位组成,其电路框图如图其电路框图如图7.3所示。当所示。当TL0的低的低5位计数器溢出时,向位计数器溢出时,向TH0进位,而进位,而TH0溢出时,向中断标志溢出时,向中断标志TF0进位,同时申请中断。当中断响应后,由内部进位,同时

7、申请中断。当中断响应后,由内部硬件自动清除硬件自动清除TF0标志。当标志。当13位定时计数器计满溢出时,位定时计数器计满溢出时,TH0的所有的所有8位位和和TL0的低的低5位都变为位都变为0,要重新定时时,要对,要重新定时时,要对13位定时计数器重新赋初值。位定时计数器重新赋初值。增强型8051单片机原理与应用3STC11F08XE单片机定时/计数器的工作方式 2方式方式1定时计数器定时计数器0在方式在方式1下的电路框图如图下的电路框图如图7.4所示。方式所示。方式l和方式和方式0的的差别仅仅在于计数器的位数不同。方式差别仅仅在于计数器的位数不同。方式l为为16位的计数器,由位的计数器,由TH

8、0作作为高为高8位,位,TL0作为低作为低8位。位。增强型8051单片机原理与应用3STC11F08XE单片机定时/计数器的工作方式 3方式方式2方式方式2的电路框图如图的电路框图如图7.5所示。方式所示。方式2是能自动重装初始值的是能自动重装初始值的8位定时计数位定时计数器。方式器。方式0、方式、方式1,若用于循环定时时,每次计满溢出,寄存器状态全部,若用于循环定时时,每次计满溢出,寄存器状态全部清零,第二次计数需要重新装入计数初值。这样不仅编程麻烦,而且影响定清零,第二次计数需要重新装入计数初值。这样不仅编程麻烦,而且影响定时时间的精度。而方式时时间的精度。而方式2具有自动恢复初值功能,即

9、初值的自动重装功能,具有自动恢复初值功能,即初值的自动重装功能,避免了上述的缺陷,适合用作较精确的定时。避免了上述的缺陷,适合用作较精确的定时。增强型8051单片机原理与应用3STC11F08XE单片机定时/计数器的工作方式4.方式方式3方式方式3的电路框图如图的电路框图如图7.6所示,定时器所示,定时器T0被分解成两个独立的被分解成两个独立的8位定位定时时/计数器计数器TL0和和TH0。方式。方式3时,定时时,定时/计数器计数器1仍可设置为方式仍可设置为方式0、方式方式1或方式或方式2。增强型8051单片机原理与应用4STC11F08XE单片机定时/计数器的应用举例 4.1 STC11F08

10、XE单片机定时单片机定时/计数器的定计数器的定时应用时应用 4.2 STC11F08XE单片机定时单片机定时/计数器的计计数器的计数应用数应用增强型8051单片机原理与应用4.1 STC11F08XE单片机定时/计数器的定时应用 例例7.3 使信号灯循环点亮,首先按从左至右轮流点亮,再按从右至使信号灯循环点亮,首先按从左至右轮流点亮,再按从右至左轮流点亮,每个信号灯点亮的时间间隔为左轮流点亮,每个信号灯点亮的时间间隔为1秒。要求用单片机定时秒。要求用单片机定时/计数器定时实现。计数器定时实现。增强型8051单片机原理与应用4.1 STC11F08XE单片机定时/计数器的定时应用 汇编语言参考程

11、序如下:汇编语言参考程序如下:1)查询方式实现)查询方式实现ORG0000HLOOP:MOVR2,#07H ;设置左移的次数;设置左移的次数MOVA,#0FEH ;设置信号灯的显示(左移)的起始状态值;设置信号灯的显示(左移)的起始状态值Left_Shift:MOVP1,A ;送显示控制信号;送显示控制信号ACALLDELAY ;利用软件与定时器,实现;利用软件与定时器,实现1s定时定时 RLA ;改变信号灯显示状态,左移改变信号灯显示状态,左移DJNZR2,Left_Shift ;判断左移流程是否结束,若结束,转入右移控制;判断左移流程是否结束,若结束,转入右移控制MOVA,#7FH ;设置

12、信号灯的显示(右移)的起始状态值,可省略;设置信号灯的显示(右移)的起始状态值,可省略 MOV R2,#07H ;设置左移的次数;设置左移的次数Right_Shift:MOVP1,A ;送显示控制信号;送显示控制信号RRA ;改变信号灯显示状态,右移改变信号灯显示状态,右移ACALLDELAY ;利用软件与定时器,实现;利用软件与定时器,实现1s定时定时DJNZR2,Right_Shift;判断左移流程是否结束,若结束,又重新开始;判断左移流程是否结束,若结束,又重新开始SJMPLOOP增强型8051单片机原理与应用4.1 STC11F08XE单片机定时/计数器的定时应用 DELAY:MOV

13、R3,#20 ;置;置50ms计数循环初值计数循环初值MOVTMOD,#10H;设定时器;设定时器1为方式为方式1 MOVTH1,#3CH;置定时器初值;置定时器初值MOVTL1,#0B0HSETBTR1;启动;启动T1Check_TF1:JBCTF1,Timer1_Overflow ;查询计数溢出;查询计数溢出SJMPCheck_TF1;未到;未到50ms继续计数继续计数Timer1_Overflow:MOVTH1,#3CH ;重新置定时器初值;重新置定时器初值MOVTL1,#0B0HDJNZR3,Check_TF1 ;未到;未到1s继续循环继续循环CLR TR1 ;关闭;关闭T1 RET

14、;返回主程序;返回主程序END增强型8051单片机原理与应用4.1 STC11F08XE单片机定时/计数器的定时应用 汇编语言参考程序如下:汇编语言参考程序如下:2)中断方式实现)中断方式实现ORG 0000H AJMP MAINORG 001BH AJMP Timer1_ISRMAIN:MOV R3,#20 ;置;置50ms计数循环初值计数循环初值 MOV TMOD,#10H;设定时器;设定时器1为方式为方式1 MOVTH1,#3CH;置;置50ms定时器初值定时器初值 MOVTL1,#0B0H MOVR2,#07H ;设置左移的次数;设置左移的次数 MOVP1,#0FEH ;设置信号灯的显

15、示(左移)的起始状态值;设置信号灯的显示(左移)的起始状态值 MOVA,#0FEH ;设置信号灯的显示(左移)的起始状态值;设置信号灯的显示(左移)的起始状态值 CLR 00H ;设置左、右移标志位,为;设置左、右移标志位,为0左移,为左移,为1右移右移 SETP TR1 ;启动;启动T1定时器定时器 SJMP$增强型8051单片机原理与应用4.1 STC11F08XE单片机定时/计数器的定时应用 Timer1_ISR:MOVTH1,#3CH;置;置50ms定时器初值定时器初值 MOVTL1,#0B0H DJNZR3,Exit_Timer1_ISR ;定时时间到,执行移位,否则中断结束;定时时

16、间到,执行移位,否则中断结束 MOV R3,#20 JB 00H,Right_Shift ;判断左、右移控制;判断左、右移控制 RL A ;左移控制;左移控制 MOV P1,A DJNZR2,Exit_Timer1_ISR ;判断左移流程是否结束,若结束,转入右移控制判断左移流程是否结束,若结束,转入右移控制 SETB 00H ;置位左、右移控制标志;置位左、右移控制标志 MOV R2,#07H ;重新设置移位次数;重新设置移位次数 SJMP Exit_Timer1_ISR增强型8051单片机原理与应用4.1 STC11F08XE单片机定时/计数器的定时应用 Right_Shift:RR A

17、;右移控制;右移控制 MOV P1,A DJNZR2,Exit_Timer1_ISR ;判断左移流程是否结束,若结束,转入右移控制判断左移流程是否结束,若结束,转入右移控制 CLR 00H ;清;清0左、右移控制标志左、右移控制标志 MOV R2,#07H ;重新设置移位次数;重新设置移位次数Exit_Timer1_ISR:RETI END增强型8051单片机原理与应用4.1 STC11F08XE单片机定时/计数器的定时应用 C51参考程序如下:参考程序如下:1)查询方式实现)查询方式实现#include /包含包含52标准文件头标准文件头#include /包含循环左移、右移子函数包含循环左

18、移、右移子函数#define uchar unsigned char#define uint unsigned intuchar LED=0 xfe;增强型8051单片机原理与应用4.1 STC11F08XE单片机定时/计数器的定时应用/*-利用利用T1实现定时的子函数实现定时的子函数-*/void DELAY(void)/延时函数延时函数 1S uint i=0;TMOD=0 x10;/T1工作模式工作模式1 TH1=0 x3c;TL1=0 xb0;TR1=1;while(i20)if(TF1=1)/查询查询T1溢出标志溢出标志 TF1=0;TH1=0 x3c;TL1=0 xb0;i+;增强

19、型8051单片机原理与应用4.1 STC11F08XE单片机定时/计数器的定时应用/*-循环左移子函数循环左移子函数-*/void Left_Shift(void)P1=LED;DELAY();/延时一秒延时一秒 LED=_crol_(LED,1);/循环左移一位循环左移一位/*-循环右移子函数循环右移子函数-*/void Right_Shift(void)LED=_cror_(LED,1);/循环右移一位循环右移一位 P1=LED;DELAY();/延时一秒延时一秒 增强型8051单片机原理与应用4.1 STC11F08XE单片机定时/计数器的定时应用/*-主函数主函数-*/void mai

20、n(void)uchar j;while(1)for(j=0;j7;i+)Next();for(j=0;j7;i+)Next1();增强型8051单片机原理与应用4.1 STC11F08XE单片机定时/计数器的定时应用 C51参考程序如下:参考程序如下:2)中断方式实现)中断方式实现#include /包含包含52标准文件头标准文件头#include /包含循环左移、右移子函数包含循环左移、右移子函数#define uchar unsigned char#define uint unsigned char/*-定义全局变量定义全局变量-*/uchar LED=0 xfe;uchar i=0;u

21、char t=0;增强型8051单片机原理与应用4.1 STC11F08XE单片机定时/计数器的定时应用 /*-T1初始化子函数初始化子函数-*/void Timer1_init(void)TMOD=0 x10;/T1工作模式工作模式1 TH1=0 x3c;TL1=0 xb0;ET1=1;EA=1;TR1=1;增强型8051单片机原理与应用4.1 STC11F08XE单片机定时/计数器的定时应用 /*-LED循环显示子函数循环显示子函数-*/void Shift(void)P1=LED;t+;if(t=7)LED=_crol_(LED,1);/循环左移一位循环左移一位 else if(t15)

22、LED=_cror_(LED,1);/循环右移一位循环右移一位 else t=0;增强型8051单片机原理与应用4.1 STC11F08XE单片机定时/计数器的定时应用 /*-T1中断服务子函数中断服务子函数-*/void Timer1_int(void)interrupt 3 using 1 /定时定时T1中断服务程序中断服务程序 TH1=0 x3c;TL1=0 xb0;i+;if(i=20)i=0;Next();增强型8051单片机原理与应用4.1 STC11F08XE单片机定时/计数器的定时应用 /*-主函数主函数-*/void main(void)/主函数主函数 Timer1_init

23、();/T1初始化初始化 while(1);增强型8051单片机原理与应用4.2 STC11F08XE单片机定时/计数器的计数应用 例例7.4 连续输入连续输入5个单次脉冲使单片机控制的个单次脉冲使单片机控制的LED灯状态翻转一次。灯状态翻转一次。要求用单片机定时要求用单片机定时/计数器计数功能实现实现。计数器计数功能实现实现。增强型8051单片机原理与应用4.2 STC11F08XE单片机定时/计数器的计数应用 汇编语言参考程序如下汇编语言参考程序如下:1)查询方式实现)查询方式实现ORG 0000H MOV TMOD,#60H ;设定定时器;设定定时器1模式模式2,计数功能,计数功能 MO

24、V TH1,#0FBH MOV TL1,#0FBH ;设置计数器初值(;设置计数器初值(2565)SETB TR1 ;启动计数;启动计数Check_TF1:JBC TF1,Timer1_Overflow ;查询是否计数溢出;查询是否计数溢出 AJMP Check_TF1 Timer1_Overflow:CPL P1.0 ;当统计;当统计5个脉冲,个脉冲,LED灯状态翻转灯状态翻转 AJMP Check_TF1 END 增强型8051单片机原理与应用4.2 STC11F08XE单片机定时/计数器的计数应用 汇编语言参考程序如下汇编语言参考程序如下:2)中断方式实现)中断方式实现 ORG0000H

25、 AJMP MAIN ORG001BH AJMP Timer1_ISRMAIN:MOV TMOD,#60H ;设定定时器;设定定时器1模式模式2,计数功能,计数功能 MOV TH1,#0FBH MOV TL1,#0FBH ;设置计数器初值(;设置计数器初值(2565)SETB TR1 ;启动计数;启动计数 SJMP$Timer1_ISR:CPL P1.0 ;当统计;当统计5个脉冲,个脉冲,LED灯状态翻转灯状态翻转 RETI END增强型8051单片机原理与应用4.2 STC11F08XE单片机定时/计数器的计数应用 C51参考程序如下:参考程序如下:1)查询方式实现)查询方式实现#inclu

26、de sbit led=P10;void timer_initial(void)TMOD=0 x60;/设定定时器设定定时器1模式模式2,计数功能计数功能TH1=0 xfb;/5个脉冲以后溢出个脉冲以后溢出TL1=0 xfb;TR1=1;/开始计数器开始计数器 增强型8051单片机原理与应用4.2 STC11F08XE单片机定时/计数器的计数应用 void main(void)timer_initial();while(1)while(TF1=0);TF1=0;Led=led;/不断查询是否溢出不断查询是否溢出,没有溢出,就等没有溢出,就等待溢出了;溢出了,待溢出了;溢出了,/清空溢出标志,清

27、空溢出标志,led取反取反 增强型8051单片机原理与应用4.2 STC11F08XE单片机定时/计数器的计数应用 C51参考程序如下:参考程序如下:2)中断方式实现)中断方式实现#include#define uchar unsigned char#define uint unsigned charsbit LED=P10;/*-T1初始化子函数初始化子函数-*/void Timer1_init(void)TMOD=0 x60;/1设定定时器设定定时器1模式模式2,计数功能计数功能 TH1=0 xfb;/设置计数器初值(计满溢出值设置计数器初值(计满溢出值5)TL1=0 xfb;ET1=1;

28、EA=1;TR1=1;/启动计数启动计数 增强型8051单片机原理与应用4.2 STC11F08XE单片机定时/计数器的计数应用 /*-T1中断服务子函数中断服务子函数-*/void Timer1_int(void)interrupt 3 using 1 /定时计数定时计数T1中断服中断服务程序务程序 LED=LED;/*-主函数主函数-*/void main(void)/主函数主函数 Timer1_init();/定时定时T1初始化初始化 while(1);增强型8051单片机原理与应用5 STC11F08XE单片机的可编程时钟输出功能5.1 STC11F08XE单片机的可编程时钟:单片机的

29、可编程时钟:CLKOUT0、CLKOUT1、CLKOUT2 三个可编程时钟输出由三个可编程时钟输出由WAKE_CLKO、AUXR和和BRT三个特殊功能三个特殊功能寄存器进行管理与控制寄存器进行管理与控制 地址B7B6B5B4B3B2B1B0复位值 WAKE_CLKO8FHRXD_PIN_IET0_PIN_IET0_PIN_IEBRTCLKOT1CLKOT0CLKOx000 x000B AUXR8EHT0 x12T1x12UART_M0 x6BRTRBRTx12XRAMS1BRS0000 x000B BRT9CH00000000B增强型8051单片机原理与应用5 STC11F08XE单片机的可编

30、程时钟输出功能5.2 STC11F08XE单片机可编程时钟的应用举例单片机可编程时钟的应用举例 例例7.6 编程在编程在P1.0、P3.4、P3.5引脚上分别输出引脚上分别输出115.2KHZ、51.2KHZ、38.4KHZ的时钟信号。的时钟信号。(1)汇编语言参考程序)汇编语言参考程序BRT EQU 9CHAUXR EQU 8EH WAKE_CLKO EQU 8FH 增强型8051单片机原理与应用5 STC11F08XE单片机的可编程时钟输出功能 ORG 0000H MOV TMOD,#22H ;T0、T1工作方式工作方式2定时状态定时状态 ORL AUXR,80H ;T0工作在无分频模式工

31、作在无分频模式 ORL AUXR,40H ;T1工作在无分频模式工作在无分频模式 ORL AUXR,04H ;BRT工作在无分频模式工作在无分频模式 MOV BRT,#176 ;设置;设置BRT定时器的初始值定时器的初始值 MOV TH0,#76 ;设置;设置T0定时器的初始值定时器的初始值 MOV TL0,#76 MOV TH1,#16 ;设置;设置T1定时器的初始值定时器的初始值 MOV TL1,#16 ORL WAKE_CLKO,07H ;允许允许CLKOUT0、CLKOUT1、CLKOUT2时钟输出时钟输出 SETB TR0 ;启动;启动T0 SETB TR1 ;启动;启动T1 ORL

32、 AUXR,#10H ;启动;启动BRT SJMP$增强型8051单片机原理与应用5 STC11F08XE单片机的可编程时钟输出功能5.2 STC11F08XE单片机可编程时钟的应用举例单片机可编程时钟的应用举例 例例7.6 编程在编程在P1.0、P3.4、P3.5引脚上分别输出引脚上分别输出115.2KHZ、51.2KHZ、38.4KHZ的时钟信号。的时钟信号。(2)C51参考程序参考程序includesfr WAKE_CLKO=0 x8F;sfr AUXR=0 x8E;sfr BRT=0 x9C;增强型8051单片机原理与应用5 STC11F08XE单片机的可编程时钟输出功能 main()

33、TMOD=0 x22;AUXR=(AUXR|0 x80);/T0工作在无分频模式工作在无分频模式AUXR=(AUXR|0 x40);/T1工作在无分频模式工作在无分频模式AUXR=(AUXR|0 x04);/BRT工作在无分频模式工作在无分频模式BRT=176;/给给BRT、T0、T1定时器设置初值定时器设置初值TH0=76;TL0=76;TH1=16;TL1=16;WAKE_CLKO(WAKE_CLKO|0 x07);/允许允许T0、T1、BRT输出时钟信号输出时钟信号TR0=1;/启动启动T0TR1=1;/启动启动T1AUXR=(AUXR|0 x10);/启动启动BRTwhile(1);/无限循环无限循环

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁