十天学会单片机让单片机不在神秘
需积分: 0 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
最新资源
- 精益管摆盘周转车sw17可编辑全套设计资料100%好用.zip
- 可变距平皮带输送机sw16可编辑全套设计资料100%好用.zip
- 六轴二保焊焊接机器人设计(带焊接枪)x_t全套设计资料100%好用.zip
- C# 运动控制系统 雷赛运动控制卡控制系统 像高川控制卡、高川控制器、或者固高运动控制卡以及正运动控制器、正运动控制卡可以用这个框架,自己替一下库文件等代码就可以 源码全开放,不设限,标有注释
- 马铃薯收割机sw20可编辑全套设计资料100%好用.zip
- 奶酪包装装盒生产线 sw20全套设计资料100%好用.zip
- 皮带输送机检测机sw17全套设计资料100%好用.zip
- 农业机械-耕耘割茬播种一体机sw17全套设计资料100%好用.zip
- 基于拓展卡尔曼滤波的车辆质量与道路坡度估计 车辆坡度与质量识别模型,基于扩展卡尔曼滤波,估计曲线与实际误差合理 先用递归最小二乘法(RLS)质量识别,最后利用扩展卡尔曼坡度识别(EKF) 送纹献
- 随机路面,路面激励,路面不平度 软件使用:Matlab Simulink 适用场景:采用模块化建模方法,搭建随机路面模型,可实现不同车速,不同路面等级的路面激励 包含:simulink源码文件,详细
- wincc高级报表,支持自定义模版,支持打印预览,支持打印PDF,支持导出Excel表格,支持自定义打印区域,可显示最大值,最小值,平均值,可求和 可以在wincc7.4 7.5 8.0,博图win
- (179842242)校园食堂订餐系统 JAVA毕业设计 源码+数据库+论文+启动教程(SpringBoot+Vue.JS).zip
- 基于fpga的温度采集系统工程,max6675驱动源码,可上传到电脑上位机软件绘制温度曲线 fpga代码、和QT控制软件 是工程代码
- (21545816)JAVA登录注册页面实现前端与后台数据连接
- (4799648)图书管理系统(源代码)
- 燃烧器三维step全套设计资料100%好用.zip