单片机中断与定时器:波特率计算及中断系统解析

需积分: 16 3 下载量 111 浏览量 更新于2024-08-21 收藏 489KB PPT 举报
"波特率的计算方法以及单片机中断系统的详解" 在单片机通信中,波特率是一个关键参数,它表示数据传输的速率,即单位时间内传输的二进制位数。在微控制器如AT89S52中,通过定时器来设置和调整波特率。对于题目给出的计算公式,波特率=(2SMOD/32)×T1的溢出率,这里解释一下其含义: 1. **SMOD**:这是单片机中一个特殊功能寄存器(SFR)的位,用来决定波特率是否翻倍。当SMOD=0时,不翻倍;当SMOD=1时,波特率翻倍。 2. **溢出率**:定时器T1的溢出率指的是定时器T1满值后重置的频率,即T1溢出一次所需时间的倒数。例如,如果定时器工作在模式1,16位定时器,那么溢出周期就是2^16个机器周期。 3. **T1的初值**(X):用于设定定时器的初始计数值,通常为了得到特定的波特率,需要计算合适的初值X。初值X = 2^n - (2SMOD × fosc / 32 × 波特率 × 12),其中fosc是系统时钟频率,n是定时器的预分频系数。 4. **波特率公式**:根据以上信息,我们可以得出波特率的最终计算公式:波特率 = (2SMOD × fosc) / (32 × 12 × (2^n - X))。这个公式用于设置T1以达到期望的波特率。 现在转向单片机的中断系统,中断是单片机处理突发事件的一种机制。中断系统允许CPU在执行正常任务时,响应来自外部或内部的紧急请求,处理完中断事件后再返回原先的任务,保持程序的连续性。 **中断的流程**主要包括以下几个步骤: 1. **中断源**:触发中断的设备或事件。 2. **中断申请**:中断源向CPU发送请求。 3. **开放中断**:CPU开启中断系统,允许中断请求被处理。 4. **保护现场**:保存当前CPU的状态,以便中断服务完成后恢复。 5. **中断服务**:CPU执行中断服务程序,处理中断事件。 6. **恢复现场**:恢复之前保存的CPU状态。 7. **中断返回**:CPU返回到被中断的位置,继续执行原来的程序。 以AT89S52为例,它有6个中断源: 1. **两个外部中断**:INT0和INT1。 2. **三个定时器/计数器中断**:TF0、TF1(TF2对于S52是可用的)。 3. **一个串行口中断**:TI/RI。 **定时器控制寄存器TCON**: - TF0和TF1:分别表示定时器0和定时器1的溢出中断标志。 - TR0和TR1:控制定时器0和定时器1的启停。 - IE0和IE1:表示外部中断0和1的中断申请标志。 - IT0和IT1:选择外部中断的触发方式,0表示低电平触发,1表示下降沿触发。 在实际应用中,中断的管理和响应需要根据具体需求进行配置,以确保系统的高效和可靠运行。理解中断机制和波特率计算是单片机编程的基础,这对于开发嵌入式系统至关重要。