本帖最后由 SingleYork 于 2016-8-29 20:28 编辑
bg7.png
I51开发板 第四讲:流水灯之软件篇(续)
https://bbs.icxbk.com/community/forum.php?mod=viewthread&tid=65459
(出处: ICKEY BBS)
这一讲,主要介绍定时器的一些基本知识,主要内容参考自STC官方自带的芯片手册。
IAP15F2K61S2单片机内部集成了3个16位的定时器/计数器T0、T1、T2,其核心部件是一个加法计数器(TH、TL),对输入脉冲进行计数,若计数脉冲来自系统时钟,则为定时器方式,若计数脉冲来自T0(P3.4)、T1(P3.5)、T2(P3.1)引脚,则为计数方式。
定时器/计数器T0和T1具有四种工作方式,由特殊功能寄存器TMOD中的M1、M0位决定,如下表所示:
M1 M0 工作方式 功能说明
0 0方式016位自重重装初值的定时器/计数器
0 1方式116位的定时器/计数器
1 0方式28位自动重装初值的定时器/计数器
1 1方式3T0被分成两个8位的定时器/计数器,T1停止计数
定时器/计数器T0和T1的工作方式1~方式3与传统的8051类似,但是工作方式0为16位自动重装方式,这一点与传统的8051不同,另外方式0和方式2还可以作为可编程时钟输出源使用。定时器/计数器T0工作方式0的逻辑结构如下图所示:
定时器/计数器T0工作方式0的逻辑结构
定时器/计数器T2的工作方式固定为16位自动重装初值方式,逻辑结构如下图所示,T2除了可用作定时器之外,还可以用作串行口波特率发生器或可编程时钟输出源。
定时器/计数器T2的逻辑结构
定时器方式在输入脉冲可以直接是系统时钟脉冲fsys简称1T方式,也可以对系统时钟fsys进行12分频之后作为定时输入脉冲,简称12T方式,12T方式与传统的定时器方式相同。采用1T还是12T方式,有特殊功能寄存器AUXR决定,当AUXR寄存器中的T0x12、T1x12、T2x12为0时,采用12T方式,当T0x12、T1x12、T2x12为1时,采用1T方式。
计数方式下从外部引脚输入的脉冲,必须保证脉冲电平在变化之前至少被采样一次。
IAP15F2K61S2单片机与定时器/计数器相关的特殊功能寄存器如下表所示:
寄存器名地址MSB 复位地址及位名称 LSB复位值
TH0 8CH定时器/计数器T0的高8位0000 0000
TL0 8AH定时器/计数器T0的低8位 0000 0000
TH1 8DH定时器/计数器T1的高8位 0000 0000
TL1 8BH定时器/计数器T1的低8位 0000 0000
T2H D6H定时器/计数器T2的高8位 0000 0000
H2L D7H定时器/计数器T2的低8位 0000 0000
TCON 88HTF1 TR1 TF0TR0 IE1 IT1 IE0 IT0 0000 0000
TMOD 89HGATE C/T M1 M0 GATE C/T M1 M0 0000 0000
IE A8HEA ELVD EADC ES ET1 EX1 ET0 EX0 0000 0000
IE2 AFH- - - - - EET2 ESP1 ES2 0000 0000
IP B8HPPCA PLVD PADC PS PT1 PX1 PT0 PX0 0000 0000
INT_CLKO 8FH- EX4 EX3 EX2 - T2CLKO T1CLKO T0CLKO 0000 0000
AUXR 8EHT0x12 T1x12 UART_M0x6 T2R T2_C/T T2x12 WXTRAM S1ST2 0000 0000
(1)寄存器TH0、TL0、TH1、TL1、T2H、T2L分别用于用于装入T0、T1和T2的初值。
(2)寄存器TCON和TMOD的功能和用法与传统8051相同。
(3)寄存器IE、IE2中ET1、ET0和ET2位分别用于T1、T0和T2的中断允许或禁止,置1允许中断,清0禁止中断。
(4)寄存器IP中的PT1和PT0位分别用于T1和T0的中断优先级,置1为高优先级,清0为低优先级;T2固定为最低优先级。
(5)寄存器INT_CLKO中的T2_CLKO、T1_CLKO和T0_CLKO位分别用于控制T2、T1和T0的可编程时钟输出,置1允许从P3.0、P3.4和P3.5引脚输出时钟频率,清0禁止输出时钟频率。
(6)寄存器AUXR中的T0x12、T1x12和T2x12位分别位于控制T0、T1和T2的1T或12T定时方式,置1采用1T方式,清0采用12T方式。AUXR中的T2R位用于控制T2的启动和停止,置1启动T2,清0停止T2。AUXR中的T2_C/T位用于控制T2的计数或定时方式,置1采用计数方式,置1采用定时方式。
下一讲,本菜将带领大家一起学习定时器的使用,敬请期待!
I51开发板 第六讲:定时器之配置篇
https://bbs.icxbk.com/community/forum.php?mod=viewthread&tid=65517
(出处: ICKEY BBS)
本帖最后由 SingleYork 于 2016-8-29 20:28 编辑
bg7.png
I51开发板 第四讲:流水灯之软件篇(续)
https://bbs.icxbk.com/community/forum.php?mod=viewthread&tid=65459
(出处: ICKEY BBS)
这一讲,主要介绍定时器的一些基本知识,主要内容参考自STC官方自带的芯片手册。
IAP15F2K61S2单片机内部集成了3个16位的定时器/计数器T0、T1、T2,其核心部件是一个加法计数器(TH、TL),对输入脉冲进行计数,若计数脉冲来自系统时钟,则为定时器方式,若计数脉冲来自T0(P3.4)、T1(P3.5)、T2(P3.1)引脚,则为计数方式。
定时器/计数器T0和T1具有四种工作方式,由特殊功能寄存器TMOD中的M1、M0位决定,如下表所示:
M1 M0 工作方式 功能说明
0 0方式016位自重重装初值的定时器/计数器
0 1方式116位的定时器/计数器
1 0方式28位自动重装初值的定时器/计数器
1 1方式3T0被分成两个8位的定时器/计数器,T1停止计数
定时器/计数器T0和T1的工作方式1~方式3与传统的8051类似,但是工作方式0为16位自动重装方式,这一点与传统的8051不同,另外方式0和方式2还可以作为可编程时钟输出源使用。定时器/计数器T0工作方式0的逻辑结构如下图所示:
定时器/计数器T0工作方式0的逻辑结构
定时器/计数器T2的工作方式固定为16位自动重装初值方式,逻辑结构如下图所示,T2除了可用作定时器之外,还可以用作串行口波特率发生器或可编程时钟输出源。
定时器/计数器T2的逻辑结构
定时器方式在输入脉冲可以直接是系统时钟脉冲fsys简称1T方式,也可以对系统时钟fsys进行12分频之后作为定时输入脉冲,简称12T方式,12T方式与传统的定时器方式相同。采用1T还是12T方式,有特殊功能寄存器AUXR决定,当AUXR寄存器中的T0x12、T1x12、T2x12为0时,采用12T方式,当T0x12、T1x12、T2x12为1时,采用1T方式。
计数方式下从外部引脚输入的脉冲,必须保证脉冲电平在变化之前至少被采样一次。
IAP15F2K61S2单片机与定时器/计数器相关的特殊功能寄存器如下表所示:
寄存器名地址MSB 复位地址及位名称 LSB复位值
TH0 8CH定时器/计数器T0的高8位0000 0000
TL0 8AH定时器/计数器T0的低8位 0000 0000
TH1 8DH定时器/计数器T1的高8位 0000 0000
TL1 8BH定时器/计数器T1的低8位 0000 0000
T2H D6H定时器/计数器T2的高8位 0000 0000
H2L D7H定时器/计数器T2的低8位 0000 0000
TCON 88HTF1 TR1 TF0TR0 IE1 IT1 IE0 IT0 0000 0000
TMOD 89HGATE C/T M1 M0 GATE C/T M1 M0 0000 0000
IE A8HEA ELVD EADC ES ET1 EX1 ET0 EX0 0000 0000
IE2 AFH- - - - - EET2 ESP1 ES2 0000 0000
IP B8HPPCA PLVD PADC PS PT1 PX1 PT0 PX0 0000 0000
INT_CLKO 8FH- EX4 EX3 EX2 - T2CLKO T1CLKO T0CLKO 0000 0000
AUXR 8EHT0x12 T1x12 UART_M0x6 T2R T2_C/T T2x12 WXTRAM S1ST2 0000 0000
(1)寄存器TH0、TL0、TH1、TL1、T2H、T2L分别用于用于装入T0、T1和T2的初值。
(2)寄存器TCON和TMOD的功能和用法与传统8051相同。
(3)寄存器IE、IE2中ET1、ET0和ET2位分别用于T1、T0和T2的中断允许或禁止,置1允许中断,清0禁止中断。
(4)寄存器IP中的PT1和PT0位分别用于T1和T0的中断优先级,置1为高优先级,清0为低优先级;T2固定为最低优先级。
(5)寄存器INT_CLKO中的T2_CLKO、T1_CLKO和T0_CLKO位分别用于控制T2、T1和T0的可编程时钟输出,置1允许从P3.0、P3.4和P3.5引脚输出时钟频率,清0禁止输出时钟频率。
(6)寄存器AUXR中的T0x12、T1x12和T2x12位分别位于控制T0、T1和T2的1T或12T定时方式,置1采用1T方式,清0采用12T方式。AUXR中的T2R位用于控制T2的启动和停止,置1启动T2,清0停止T2。AUXR中的T2_C/T位用于控制T2的计数或定时方式,置1采用计数方式,置1采用定时方式。
下一讲,本菜将带领大家一起学习定时器的使用,敬请期待!
I51开发板 第六讲:定时器之配置篇
https://bbs.icxbk.com/community/forum.php?mod=viewthread&tid=65517
(出处: ICKEY BBS)