十天学会单片机让单片机不在神秘

preview
需积分: 0 2 下载量 99 浏览量 更新于2011-05-09 收藏 227KB PDF 举报
### 单片机中的定时器/计数器详解 #### 一、定时器/计数器的基本概念 在单片机的学习过程中,掌握定时器/计数器的使用是非常重要的一步。定时器/计数器作为单片机的重要组成部分,在实际应用中扮演着不可或缺的角色。它们主要用于产生精确的时间延迟(定时)或是对外部事件进行计数。 **定时器/计数器的概念:** - **定时器**:用于产生固定时间间隔,通过内部时钟信号来计数。 - **计数器**:用于记录外部事件发生的次数,通过外部脉冲信号触发计数。 8031单片机内置两个16位的定时器/计数器(T0 和 T1)。这两个定时器既可以作为定时器使用,也可以作为计数器使用。当用作定时器时,每个机器周期定时寄存器会自动加1;当用作计数器时,外部引脚上的每一次下降沿(从1到0的跳变)会使计数器自动加1。 #### 二、定时器/计数器的结构与组成 定时器/计数器由以下几个部分组成: 1. **定时器/计数器寄存器**:包括THx(高位)和TLx(低位),x代表0或1,用于存储当前的计数值。 2. **控制寄存器**:包括TCON(定时器控制寄存器)和TMOD(定时器模式寄存器)。 - **TCON**:控制定时器/计数器的启停及中断请求标志。 - **TMOD**:设定定时器/计数器的工作方式。 #### 三、定时器/计数器的工作方式 定时器/计数器T0 和 T1 都有四种工作方式: 1. **方式0**(13位工作方式):定时器/计数器由THx和TLx的13位构成,THx提供高8位,TLx提供低5位。 2. **方式1**(16位工作方式):定时器/计数器由THx和TLx的16位构成,THx提供高8位,TLx提供低8位。 3. **方式2**(8位自动重装工作方式):定时器/计数器由TLx的8位构成,THx用于存储初始值,每当计数溢出时,THx的值被重新加载到TLx。 4. **方式3**(仅适用于T0):T0分为两个独立的8位计数器,而T1此时只能工作在方式0、1或2。 #### 四、控制寄存器详解 - **TMOD**(定时器方式控制寄存器): - **GATE**:门控位,用于决定是否开启定时器/计数器。 - **C/T**:工作状态选择位,决定是定时还是计数。 - **M1/M0**:工作方式设置位,用于设置具体的工作方式。 - **TCON**(定时器控制寄存器): - 包含定时器/计数器的启停控制位(TR0/TR1)和中断请求标志位(TF0/TF1)。 #### 五、定时器的初值计算 定时器的初值计算公式如下: - **计数器方式**:\( D = M - C \) - **定时器方式**:\( D = M - TC \times (f_{osc}/12) \) 其中: - \( D \):定时器/计数器的初值。 - \( C \):计数器所需计数的次数。 - \( TC \):所需的定时时间。 - \( M \):计数器的模值,与工作方式有关。 - \( f_{osc} \):单片机的振荡频率。 #### 六、定时器的应用举例 以下通过几个具体的例子来进一步理解定时器的使用方法。 **例9-1**:若要使P1.0输出周期为1ms的连续方波,使用T0定时器,设振荡频率fosc=6MHz。 - **解析**:周期为1ms,则定时时间为500us。定时器初值计算得 \( D = 2^8 - 250 = 6 \)(采用方式2)。 **例9-2**:若要求P1.0输出周期为4ms的连续方波,仍用T0定时器,设振荡频率fosc=6MHz。 - **解析**:周期为4ms,则定时时间为2ms。定时器初值计算得 \( D = 2^{13} - 1000 = 1C18H \)(采用方式0)。 **例9-3**:应用T0定时器的方式3产生200us和400us的定时,并使P1.0和P1.1分别输出400us和800us的连续方波,设振荡频率fosc=6MHz。 - **解析**:定时时间为200us和400us。对于200us定时,采用方式3时,计算得 \( D = 2^8 - 100 = 56H \)。对于400us定时,同样采用方式3,计算得 \( D = 2^8 - 200 = EC \)。 通过以上内容的学习,我们可以了解到定时器/计数器的基本原理及其在单片机中的应用,这对于进一步深入学习单片机技术具有重要意义。
zxxc110
  • 粉丝: 0
  • 资源: 2
上传资源 快速赚钱
voice
center-task 前往需求广场,查看用户热搜

最新资源