51单片机期末核心考点速查,零基础学Docker(6)--DockerFile。
·
期末复习:51单片机核心知识点梳理
51单片机基础概念
51单片机属于Intel MCS-51系列,以8051为典型代表,采用哈佛结构(程序与数据存储分离)。核心特点包括:
- 基本架构:8位CPU、4KB ROM(程序存储器)、128B RAM、32个I/O口、2个定时器/计数器、1个串行通信接口。
- 时钟周期与机器周期:时钟周期为晶振频率倒数,12个时钟周期构成1个机器周期(传统8051)。
- 引脚功能:P0口需外接上拉电阻,P3口复用为串口、中断等特殊功能。
存储器结构与寻址方式
- 存储器分区:
- 程序存储器(ROM):存放代码,通过
MOVC A, @A+DPTR读取。 - 数据存储器(RAM):分为内部RAM(00H~7FH)、特殊功能寄存器(80H~FFH)。
- 程序存储器(ROM):存放代码,通过
- 寻址方式:立即寻址(
MOV A, #30H)、直接寻址(MOV A, 30H)、寄存器间接寻址(MOV A, @R0)。
中断系统
- 中断源:外部中断(INT0/INT1)、定时器中断(TF0/TF1)、串口中断(TI/RI)。
- 中断优先级:通过IP寄存器设置,默认优先级为INT0 > T0 > INT1 > T1 > 串口。
- 中断响应流程:硬件压栈PC → 跳转至中断向量地址 → 执行中断服务程序(ISR)→
RETI返回。
定时器/计数器
- 工作模式:
- 模式1(16位定时器):
TH0和TL0组成16位计数器,溢出触发TF0。 - 模式2(8位自动重装):
TL0计数,TH0存放重装值。
- 模式1(16位定时器):
- 计算公式:定时初值 = 65536 - (所需时间 × 晶振频率) / 12。
串行通信
- 工作方式:
- 方式1(10位异步):1起始位 + 8数据位 + 1停止位,波特率由定时器T1控制。
- 方式2(11位异步):增加第9位校验位。
- 波特率计算:方式1波特率 = (2^SMOD × 定时器T1溢出率) / 32。
编程实例
按键控制LED闪烁(使用定时器中断):
#include <reg51.h>
sbit LED = P1^0;
void Timer0_Init() {
TMOD = 0x01; // 定时器0模式1
TH0 = 0xFC; // 1ms定时初值(12MHz晶振)
TL0 = 0x18;
EA = 1; // 开总中断
ET0 = 1; // 开定时器0中断
TR0 = 1; // 启动定时器
}
void Timer0_ISR() interrupt 1 {
static unsigned int count = 0;
TH0 = 0xFC; // 重装初值
TL0 = 0x18;
if (++count == 1000) { // 1s到达
count = 0;
LED = ~LED; // LED状态翻转
}
}
void main() {
Timer0_Init();
while(1);
}
常见问题与调试技巧
- 硬件问题:检查晶振是否起振、复位电路是否正常(高电平复位)。
- 软件问题:使用Keil仿真观察寄存器值,注意堆栈溢出(尤其是中断嵌套时)。
- 抗干扰设计:加入看门狗(WDT)、电源滤波电容。
通过掌握以上核心内容,结合实验调试,可系统性完成51单片机期末复习。建议重点练习中断、定时器及串口通信的编程应用。
更多推荐
所有评论(0)