第1章 MCS51 单片机基本结构(3)-OY【pp22-47】1
在本章中,我们主要探讨了MCS51单片机的定时器/计数器T0和T1的基本结构及初始化过程。MCS51单片机的定时器/计数器是其核心功能之一,广泛应用于各种实时控制和定时任务。 初始化定时器/计数器T0和T1涉及以下几个步骤: 1. 配置工作模式和操作模式,这通过设置TMOD寄存器来完成,其中TMOD寄存器包含了四个8位的位,用于设定定时器的工作方式。 2. 计数初值的设定,这直接影响定时器的定时或计数行为。初值需写入TH0、TL0或TH1、TL1寄存器。根据不同的工作方式,最大计数值(2^n)不同,例如: - 方式0:2^n = 8192,n = 13 - 方式1:2^n = 65536,n = 16 - 方式2:2^n = 256,n = 8 - 方式3:2^n = 256,n = 8,此时T0被分为两个独立的8位计数器。 3. 根据需要开启CPU和定时器的中断,这需要对IE和IP寄存器进行编程。 4. 启动定时器/计数器工作。如果需要软件启动,可通过设置TCON寄存器中的TR0或TR1位。若要由外部中断启动,除了设置TR0或TR1,还需要在外部中断引脚上提供启动电平。 计数模式下,计数初值X的计算公式为X=2^n - 计数值,计时模式下,由于计数频率为fcont=fosc/12,计数周期T=1/fcont=12/fosc,因此初值X的计算变为X=2^n - (t×fosc)/12,其中fosc是系统时钟频率,单位为MHz,t是所需定时长度,单位为μs。 举个例子,假设我们要在P1.0口输出2ms周期的方波,使用定时器T0工作在方式1,系统时钟频率fosc为6MHz。要达到1ms的定时,我们需要计算初值X: X=2^n - 计数值=2^16 - (1ms * 6MHz) / 12 = 65536 - 500 = 65036 = 0xFE0C。 因此,TH0和TL0的初始值分别为0xFEH和0CH。 此外,章节还提到了MCS-51的串行口通信。串行通信是计算机系统与外设间常见的通信方式,与并行通信相比,串行通信的优点在于传输线少,成本低,适合远距离通信。串行通信有单工、半双工和全双工三种方式,其中全双工允许数据同时双向传输。 MCS-51的串行口是一个全双工接口,可用作通用异步接收发送器(UART)或同步移位寄存器。它有一个数据缓冲寄存器SBUF,具有独立的发送和接收缓冲器,虽然它们共享同一地址,但实际上是物理独立的。写入SBUF会启动串行发送,完成后设置TI标志,而接收到的数据会被存入接收缓冲器并设置RI标志,以请求中断处理。 MCS51单片机的定时器/计数器和串行口是实现各种时间控制和通信功能的基础,理解它们的初始化和操作原理对于开发基于MCS51的嵌入式系统至关重要。
剩余25页未读,继续阅读
- 粉丝: 27
- 资源: 335
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
评论0