51单片机期末速成复习路线:五大模块与高频考点全攻略

发布时间:2026/10/12 1:07:07
51单片机期末速成复习路线:五大模块与高频考点全攻略
又到了一年两度的期末考试季后台收到最多的私信就是问《单片机原理与应用》这门课怎么速成。这门课一般4.5个学分在好多高校的专业培养方案里都被归为“小专业课”但很多同学期末复习时才反应过来——教材这么厚知识点这么碎C语言还夹着硬件寄存器一天根本背不完。先说个结论这门课期末复习核心难点不在“多”而在“散”。散在硬件原理、C语言编程、中断定时器、串口通信几个大板块之间彼此还互相穿插。但只要把这几条主线捋清楚51单片机其实是所有单片机课程里最好突击的一门因为它结构简单、知识点边界清楚、题型套路相对固定。这篇内容就是一份完整的期末速成路线适合正在复习备考的本科生也适合想系统梳理一遍单片机知识框架的初学者照着这个思路走大概率能省下一半的复习时间。1. 课程全景与复习思路这门课其实只有两件事1.1 课程定位与复习目标《单片机原理与应用》在绝大多数工科专业的课程体系里承担的是“从纯软件思维过渡到软硬件结合思维”的桥梁作用。前面你可能学过C语言程序设计、电路基础、数字电子技术到了这门课这些知识全部要拧到一起。你要面对的不再是屏幕上打印“Hello World”而是要让一个芯片引脚输出高低电平驱动LED亮灭、数码管跳动、蜂鸣器发声。4.5学分意味着这门课在绩点里占的比例不小期末考试成绩往往直接决定总评。很多同学抱着“小专业课随便混混”的心态结果期末发现考点覆盖了整本书实验报告还占了一部分分数最后总评被拉到及格线边缘。我的建议是复习前先把课程目标降维理解——这门课不要求你成为嵌入式工程师它只考三件事第一51单片机的基本硬件结构第二C语言控制硬件的编程思路第三典型外设LED、数码管、按键、定时器、串口的工作原理与代码实现。把这三件事吃透期末卷面拿个80分以上是完全可以实现的。1.2 难在哪从C语言到单片机的思维转变很多同学挂在期末不是因为不努力而是因为思维没转过来。普通C语言程序是顺序执行的输入输出靠键盘和屏幕单片机C语言程序是“死循环中断”的输入输出靠引脚电平变化还要考虑时序、消抖、延时、寄存器配置。你会发现同样的while循环在电脑上跑和单片机上跑含义完全不同——后者是在“无意义地占用CPU时间”来制造延时。这门课还有一个隐性门槛寄存器。P0、P1、TCON、TMOD、SCON、IE……一堆缩写字母每个寄存器里每一位都有特殊含义。很多同学复习时试图背下所有寄存器然后崩溃。实际上不需要背理解功能分区后常用的只有十几个考试反复考的更是屈指可数。后面我把它们整理成了一张表照着表去复习会轻松很多。1.3 把整本书拆成五大模块根据历年期末真题和多个高校的考纲来看《单片机原理与应用》的知识体系基本可以拆成五个模块模块核心内容考试占比估算复习优先级单片机基础结构引脚、内部结构、存储器、IO口20%高C语言编程基础数据类型、sbit、循环、数组、指针20%高定时器/计数器TMOD、TCON、初值计算、中断服务函数20%极高中断系统中断源、优先级、嵌套、EA总开关15%极高串行通信SCON、波特率、方式1/方式210%中外围电路与应用LED、数码管、按键、蜂鸣器、LCD15%中高从这个表就能看出来定时器和中断是绝对的重头戏几乎每套卷子都有一道大题专门考定时器初始化程序或中断程序阅读。而串口通信单独占比不高但经常和中断、定时器结合起来考比如“利用定时器T1产生波特率串口接收数据后由中断处理”这种综合题就是典型的期末压轴题型。2. 硬件主线51单片机内部资源怎么复习才不白背2.1 引脚、最小系统和IO口先解决“它长什么样”51单片机主流封装是40引脚DIP但考试不会让你默写引脚编号会考的是功能分区电源引脚、晶振引脚XTAL1、XTAL2、复位引脚RST、IO口P0到P3。绝大多数填空题和选择题都围绕“P0口的特点”展开——P0口内部没有上拉电阻是开漏输出所以作为普通IO口使用时必须外接上拉电阻而P1、P2、P3口内部有上拉可以直接输出高低电平。这个知识点为什么反复考因为它直接决定了你在Proteus仿真或开发板点灯时为什么P0口要接排阻。很多同学实验课上没注意考试看到“P0口与P1口的区别”简答题就傻眼。复习时记住一句话P0是“三态双向口”做IO要上拉做数据/地址总线可以复用P1是最纯粹的IO口一般只做输入输出P2口在高8位地址总线时使用P3口每个引脚都有第二功能串口、中断、定时器外部计数输入等。P3口第二功能是高频考点每个引脚对应什么功能尽量记熟。2.2 SFR和存储器记不住寄存器的同学看这里51单片机有128字节的片内RAM数据存储器和特殊功能寄存器区SFRSFR区域分布在0x80到0xFF。考试一般不要求你背地址但要求你知道哪些寄存器可以位寻址。位寻址是什么意思就是可以直接操作这个寄存器里的某一位比如“EA 1”就是打开中断总开关而不是对整个字节操作。能够位寻址的寄存器集中在0x80、0x88、0x90……这样以0或8结尾的地址上。真正需要你记住名字和功能的关键寄存器我压到十个以内P0/P1/P2/P3端口寄存器、TMOD定时器模式、TCON定时器控制、TH0/TL0、TH1/TL1定时器计数初值、IE中断允许、IP中断优先级、SCON串口控制、SBUF串口缓冲。这些寄存器就是考试高频词的“基本盘”每个对应什么位、什么功能用一张纸抄下来贴书桌上每天睡前过一遍比抱着教材从头读到尾有效得多。2.3 定时器与中断考试大户怎么打通定时器和中断是这门课的“地狱难度区”也是拉分关键。先说定时器的工作原理用一个厨房定时器的类比你设定一个初值定时器从初值开始加1计数加到溢出从全1变成全0时触发一次中断请求。51单片机的定时器T0和T1都是16位由TH和TL两个8位寄存器组成内部是加1计数器。初值计算是必考的公式很简单初值 65536 - 定时时间 / 机器周期。机器周期 12 × 晶振周期以12MHz晶振为例机器周期就是1微秒如果要定时50毫秒初值 65536 - 50000 15536换算成十六进制后高8位赋给TH0低8位赋给TL0。这个计算步骤考试几乎年年考你可以自己多算几组10ms、20ms、50ms确保换算和赋值不出错。中断系统要理清五件事中断源INT0、INT1、T0、T1、串口、控制寄存器IE里的EA总开关和各个中断使能位、优先级自然优先级和IP可设置优先级、中断请求标志位TCON和SCON里、中断服务函数写法。注意一个坑定时器溢出后TCON里的TF0会自动置1如果用了中断方式进入中断服务函数后TF0会自动清零如果用查询方式必须软件清零TF0否则会反复进入。这个细节简答题和程序阅读题都很爱挖坑。2.4 串口通信简答题高频区域串行通信是很多学校期末简答题的“题源地”。核心考点集中在什么是串行通信、什么是并行通信、串行通信的四种工作方式、波特率的计算。51单片机串口有四种工作方式方式0是同步移位寄存器方式1是8位UART常用方式2和方式3是9位UART带一位可编程位常用于多机通信。波特率计算是重点方式1和方式3的波特率由定时器T1的溢出率和SMOD位决定公式是波特率 (2^SMOD / 32) × 定时器T1溢出率。特别容易错的地方是很多人以为T1溢出率等于“1 / 溢出时间”而溢出时间 机器周期 × (256 - TH1初值) × 12注意T1在方式2是8位自动重装TH1和TL1相同自动重装模式不需要重赋初值实际工程里非常常用。考试给晶振12MHz和波特率9600bps倒推TH1初值的过程一定要亲手算一遍纸上谈兵很容易丢分。3. 软件主线C语言在单片机里的实战套路3.1 单片机C语言和普通C语言的区别学这门课之前你可能已经写过不少C语言程序但单片机C语言有几个显著区别考试、做实验都会遇到。第一是变量类型的位宽char是8位、int是16位51单片机是8位机对int运算会拆成多条指令所以写代码时能用unsigned char就不用int。第二是特殊操作符sbit这是Keil C51扩展的关键字用来定义特殊功能寄存器的某一位比如“sbit LED P1^0;”就定义P1口的第0位叫LED后续直接操作LED就能控制这个引脚。第三是没有标准的main函数返回值概念主函数通常是一个for(;;)或while(1)死循环程序永远在循环里“原地打转”。第四是会频繁使用预处理命令比如#include reg51.h这个头文件里定义了所有SFR和位变量是写51程序的基础。第五是延时功能需要自己写普通C的sleep()函数在单片机上基本用不了都是靠for循环嵌套来实现比如经典的延时函数void delay(unsigned int t) { unsigned int i, j; for (i 0; i t; i) for (j 0; j 120; j) ; }这个空循环语句在很多教材里出现考试让你分析延时时间时不要死磕精确值要知道延时时间和t的粗略关系即可。实际工程中延时精确值还跟编译器优化选项、晶振频率都有关系所以更可靠的做法是用定时器延时这也是为什么定时器是重点的原因之一。3.2 五类必练的编程题模板期末编程大题基本可以从下面五个模板里出每个模板都建议亲手在开发板或仿真软件里跑通一遍。第一个是流水灯。核心操作是循环左移/右移函数_crol_和_cror_记得在头文件包含intrins.h。典型代码是#include reg51.h #include intrins.h void delay(unsigned int t) { unsigned int i; while (t--) { for (i 0; i 110; i); } } void main() { unsigned char temp 0x01; while (1) { P1 temp; delay(500); temp _crol_(temp, 1); } }注意一个常见坑_crol_是库函数传参和返回值都是unsigned char类型如果你的temp不是unsigned char而是int可能出现左移后前面高位补1之类的异常。另外有些考卷会让你不用循环函数改用数组查表法实现流水灯本质上是一回事数组元素按序存入表格再循环输出。第二个是按键消抖。题目通常要求按键按下LED状态翻转。核心考点是消抖原理。代码框架大致是检测P口某一位是否为低电平延时10-20ms再检测一次确认是低电平后执行操作。消抖的本质原因很简单机械按键触点接触瞬间会产生一系列抖动信号持续时间大概5-10ms如果不去抖一次按下可能被执行好多次翻转。sbit KEY P3^2; sbit LED P1^0; void delay(unsigned int t); void main() { while (1) { if (KEY 0) { delay(20); if (KEY 0) { LED ~LED; while (KEY 0); // 等待松手 } } } }三个细节容易被扣分松手检测不能在按下保持时反复执行消抖延时放在判断前后各一次而不是只放一次如果按键和LED在同一个端口还要考虑读外部输入前需要先写1准双向口输入前置位这在P0口尤其明显。第三个是数码管动态显示。数码管分共阳共阴段选决定显示什么数字位选决定哪一位亮。动态显示的核心是利用“视觉暂留”轮流点亮各位数码管刷新频率约50-100Hz人眼看起来就以为各位同时亮了。常见八位数码管驱动代码里段码表数组是背的unsigned char code table[10] {0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F, 0x6F};考试常让你写出“显示数字5”的段码或者判断段码表对应哪个数字。复习时建议自己推导一遍共阴段码的编码逻辑而不是死背一个字节的7位对应a到g七个笔画再加一位小数点dp数字5需要点亮a、f、g、c、d对应二进制0b01101101所以十六进制是0x6D。能推导就不怕换题型。另外动态显示中的位选切换后必须加短暂延时或先消隐再切换否则会有重影残影这也是实验报告里经常被老师追问的点。第四个是定时器中断。这个模板几乎是每套卷子编程大题的必考选项。要求大概是“利用定时器T0每50ms翻转一次LED”。完整代码你要能默写#include reg51.h sbit LED P1^0; void timer0_init() { TMOD 0xF0; // 清T0模式位 TMOD | 0x01; // T0方式116位定时 TH0 (65536 - 50000) / 256; // 初值高8位 TL0 (65536 - 50000) % 256; // 初值低8位 ET0 1; // 开放T0中断 EA 1; // 打开总中断 TR0 1; // 启动定时器T0 } void timer0_isr() interrupt 1 { TH0 (65536 - 50000) / 256; // 重装初值 TL0 (65536 - 50000) % 256; LED ~LED; } void main() { timer0_init(); while (1) { // 主循环随便写点什么 } }这段代码的考点很多interrupt关键字后面为什么是1T0中断号为1TMOD的赋值为什么要先用与运算清零再或运算置位中断服务函数里为什么要重新赋初值如果忘了重装初值会怎样定时时间不对LED闪烁频率会变得不可控。每一个点都值得你自己在纸上推导一遍。第五个是串口发送数据。模板代码一般包含串口初始化、发送一个字符函数、发送字符串函数通常放在主程序或定时器中断里循环发送比如每隔1秒向电脑发送一个递增数字。关键代码有void uart_init() { TMOD 0x20; // T1方式28位自动重装 TH1 0xFD; // 9600波特率晶振11.0592MHz TL1 0xFD; SCON 0x50; // 方式1REN使能接收 TR1 1; // 启动T1 ES 1; // 打开串口中断 EA 1; } void send_byte(unsigned char dat) { SBUF dat; while (TI 0); TI 0; }初值0xFD是怎么算出来的用11.0592MHz晶振机器周期约1.085微秒T1方式2的溢出率 1 / (机器周期 × (256 - TH1))波特率 溢出率 / 32反推TH1 256 - 11059200 / (12 × 32 × 9600) 253 0xFD。这个计算过程务必亲手算一遍很多学校期末考试就喜欢不给你晶振频率让你自己选你要是直接背0xFD遇到12MHz晶振就全错了——12MHz下9600波特率误差很大常用的是2400波特率TH1初值应为0xF3。3.3 读程序题的通用破解方法期末卷子必有一道“阅读程序写出功能”或“找错改错”的题。这类题其实有套路按三步走能拿住大部分分数。第一步找出主函数中的循环结构判断程序是在重复执行什么操作是流水灯闪烁还是数码管轮流显示。第二步找出所有中断服务函数或定时器初始化代码判断时间参数是多少。第三步连线组合——硬件外设交给哪个端口定时器控制什么节奏中断里做了什么动作。比如一个程序里P1接LEDT0定时50ms中断里翻转P1.0那么答案就是“LED以100ms为周期闪烁”因为半个周期是50ms翻一次电平相当于一个周期100ms。失分最多的地方有两个一个是把“翻转一次电平”理解成“亮一次灭一次”导致周期计算错一倍另一个是忽略EA 1和ET0 1这两个使能位把程序误判为“定时器只管设置但不工作”。这种细节恰恰说明中断使能的理解很重要不只是在编程时要注意读程序时也要第一时间去找“总开关”。4. 考试题型与答题细节把会的分拿全4.1 选择、填空、判断题的必背清单客观题覆盖的知识点又碎又多但高频考点非常集中整理成清单如下51单片机是多少位单片机8位。51单片机片内RAM容量128字节和ROM容量4KB8051型号。复位后PC的值0000H、SP的值07H、P0-P3口的值FFH。进制转换二进制与十六进制互转特别是0xFE、0xFD这类和取反、移位有关的数值。机器周期计算公式机器周期 12 × 晶振周期一个机器周期包含12个时钟周期。指令周期、机器周期、时钟周期三个概念的大小关系。P0口和P3口第二功能。中断源及其对应的入口地址外部中断0入口地址0003HT0入口000BH外部中断1入口0013HT1入口001BH串口入口0023H。定时器T0和T1是16位加1计数器TMOD的D0-D1控制T0方式D4-D5控制T1方式。C51的位变量定义关键字是bit和sbit其中sbit用于SFR的位bit用于普通位变量。DA转换器和AD转换器如果考到一般只考概念比如分辨率、转换时间不考具体芯片时序。存储器扩展中P0口分时复用输出低8位地址和数据由ALE信号锁存地址。上面这些内容建议以“一句话卡片”的形式过两遍考试时不要在这种送分题上浪费犹豫时间。有一个容易混的表达提醒一下51单片机的程序存储器空间和数据存储器空间是分开编址的程序存储器用EA引脚选择内部还是外部ROM片内ROM和片外ROM的地址可能重叠但互不影响这个“哈佛结构”的概念在简答题里经常出现。4.2 简答题的规范作答模板简答题最怕的不是不会而是会但写不到采分点。阅卷老师一般按关键词给分所以答题要分条、写关键词、画结构图。我归纳了几个高频简答题的答题套路。“简述单片机中断响应的条件”这道题几乎年年有至少三个条件一是中断源发出中断请求二是在该中断源对应的中断允许位为1三是总中断允许位EA为1四是不是在执行同级或更高优先级中断五是当前指令执行完毕如果遇到长指令或RETI要等这些指令结束后才能响应。答题时先写条件再画一个简单的响应流程图请求→查询→响应→执行服务函数→返回断点。“说明定时器T0方式1的工作原理”和“说明串口方式1的帧格式”这类题答题模板是“功能结构步骤”三段式。先说为什么用这个方式再说里面哪些位干什么最后说怎么启动怎么处理数据。比如串口方式1的帧格式10位起始位0、8位数据、停止位1波特率由T1溢出率决定接收时REN1。这种题不需要长篇大论但“8位数据”“起始位”“停止位”“波特率”这些关键词必须出现。“简述LED动态显示的基本原理”这道题在实验相关的简答题里出现率很高。答题结构第一句话动态显示利用人眼视觉暂留效应第二句话各位数码管轮流导通刷新频率不低于50Hz第三句任一时刻只有一个数码管点亮但因为轮流速度快看起来是同时点亮第四句与静态显示相比动态显示省IO口和功耗。四个点写全这题分值基本拿满。4.3 编程与读图题的拿分策略编程题阅卷通常按照“初始化正确、主循环正确、中断处理正确、语法规范”分步给分。就算完全不会也建议先写上#include reg51.h、main函数框架、while(1)死循环这些结构分能拿一点是一点。更实用的策略是先画流程图再写代码。很多学校允许在编程题旁边写注释或画流程图作为辅助说明你把思路写清楚就算代码有个别语法错误老师也可能给过程分。别小看这个技巧实际操作中不少同学代码逻辑正确但寄存器名写错比如把TCON写成TMOD如果有第0步的“TMOD配置”“TCON配置”说明阅卷时更容易判断你只是笔误而不是不会。另一个常见失分点是进制书写不规范。十六进制数必须以0x开头二进制数在C51里可以用0b前缀但部分编译器不支持或写成十六进制。很多同学直接写二进制数一串0和1没有进制标识在Keil里会报错或者被当成十进制数。考场上写初值计算步骤时写成“TH0 (65536 - 50000) / 256 60 0x3C”这种格式既展示了计算过程又展示了进制转换能力比直接写0x3C更容易让阅卷老师给满分。如果是电路分析或连线题比如让你把数码管接到P1口并说明位选和段选的连接答题时尽量画出简易连线图并标注引脚号。这种题考察的是动手能力画图比纯文字描述更直观得分也更稳。记住“段选接数据、位选接控制”的口诀再结合共阴共阳判断大多数情况不会跑偏。5. 复习计划与常见翻车现场5.1 一周完整复习 vs 三天极限突击先说一周完整复习的时间分配。前三天主攻硬件模块第2章内容边看教材边画图把内部结构、寄存器、定时器、中断的框架搭起来同时开始背客观题卡片中间两天集中刷C语言编程模板每个模板至少上机跑一次跑不出来就对照代码逐行读理解每一行的作用最后两天刷历年真题尤其把近三年的卷子做一遍把错题整理成清单。这套节奏比较适合平时上课学过、但没怎么动手练的同学。如果只有三天那就只能“保大题放小题”了。思路是把定时器中断编程题练熟大概率压轴把流水灯、数码管、按键、串口的模板各默写一遍简答题背中断响应条件、定时器方式、动态显示原理这三个高频套路客观题用零碎时间过一遍必背清单进制转换和初值计算一定要动手算。至于其余偏难怪的知识点果断放弃保证基础分不丢。一个真实的经验很多同学复习时不看真题只抱着教材一遍一遍从头翻效率非常低。教材是先导课程的知识体系顺序不是考试出题的逻辑顺序。正确做法是先花一小时把真题卷子从头到尾扫一遍——不要做只看题型分布用荧光笔标注哪些知识点反复出现然后按考频从高到低去复习。这比看十遍教材都管用最大限度避免“背的全没考、考的全都不会”。5.2 硬件实验区开发板和仿真软件怎么选期末复习过程中很多同学纠结要不要买开发板。如果学校实验课用的是某仿真软件比如Proteus类那仿真软件完全够用。仿真能解决点灯、数码管、按键、定时器、中断这些常规实验的验证需求而且它有一个开发板没有的好处可以直接查看引脚电平、观察时序波形这对理解程序执行过程非常有帮助。但仿真和实物有差距的地方也要心里有数。仿真里的晶振频率、按键响应、延时时间都比较理想不会出现实际开发板上常见的接触不良、供电不足、晶振起振慢等问题。所以仿真跑通的代码拿到实物板上不一定会一次性成功。如果时间充裕建议花几十块钱买一块最基础的51开发板把几种典型外设都亲手跑一遍因为你期末卷面上能流畅默写出来的代码一定是你真正在板子上调过的代码而不是背下来的代码。做实验时有一个“通电前检查清单”值得养成习惯先看电源指示灯是否点亮再量芯片VCC和GND之间的电压是否正常通常5V然后检查复位按键是否卡住最后用可调电位器或杜邦线确保没有把P0口直接接VCC。很多奇怪问题排查到最后都是接线松动或者电源不稳和代码半毛钱关系没有。5.3 考场真实丢分点与避坑清单根据我这些年接触到的情况学生期末考场上最容易丢分的点集中在以下几处一是忘记归一化。TMOD寄存器配置时很多同学直接赋值TMOD 0x01这没问题但如果是同时设置T0和T1比如“T0方式1T1方式2”有些同学会写TMOD 0x11或0x21这其实是错的因为TMOD每一位都有自己的含义正确的写法是TMOD 0x21其中高四位0x2控制T1为方式2低四位0x1控制T0为方式1。写之前先在草稿纸上把二进制展开写一遍能避免因为数位错位导致整个寄存器状态不对。二是中断服务函数里漏重装初值。手动重装模式下这是非常典型且隐蔽的bug。程序看起来能编译、能下载但定时时间完全不对。原因是定时器溢出后自动清TF0但TH0和TL0还停留在溢出值不会自动还原成初值。只有方式2才有自动重装功能方式0和方式1都必须手动赋初值。考试编程题里如果你使用了方式1千万不要漏掉“TH0 ...; TL0 ...;”这几乎就是编程题的第一大扣分点。三是位操作和字节操作的混淆。比如P1 ~P1和P1 ^ 1虽然都能让某个灯闪烁但语义不同。考试阅读题经常问“这个程序实现了什么效果”答案往往跟究竟是字节翻转还是位翻转有关。如果误把“仅翻转最高位”看成“全部位翻转”整个题目分析就全错了。做题时先看操作符是~、^、还是|再根据端口所接外设推断结果。四是忽略EA。写中断程序时不少同学记得开ET0、EX0或ES但忘了开EA总开关导致整个中断系统不工作。这个错误在编程和读程序题里都频繁出现复习时建议把“每个中断程序都必须有EA1”写进自己的模板注释里。看别人程序时也要第一时间检查EA是否有值没有的话这个程序基本处于“假中断”状态。五是进制和初值换算时粗心。算定时器初值的时候把65去掉1、把除法写成取整或者把十六进制0xF0当成240来用这些错误看着小但在阅卷时毫厘之差就扣分了。算完初值之后一定要反过来验算一下初值换算成十进制代入“定时时间 (65536 - 初值) × 机器周期”看结果是否约等于题目要求这一来一回能抓住多数计算错误。六是编程题不写注释、不写流程。很多同学答题时直接甩一段代码没有任何注释。考试阅卷和实际工程一样代码可读性影响评分。在关键配置行后面加一行注释比如“// T0方式116位定时”除了方便阅卷老师理解也能帮自己在检查时快速回忆思路。现实一点讲哪怕你的代码有些问题注释也会引导老师去理解你的意图过程分往往就是这么来的。最后再说点复习之外的题外话我自己带过不少同学的期末突击也看过很多从不及格到80多分的真实案例。这类同学身上有个共同点不去硬背教材全文而是把知识压缩成几个模块反复过。就像这道题一样“速成”的本质从来不是偷工减料而是分清主次、抓大放小把最常考的几十个知识点反复练到肌肉记忆。另外一个小技巧是复习结束前拿出一张白纸不看任何资料自己默写“定时器T0方式1初始化代码”和“中断优先级结构图”。如果这两项能流畅写出那么这门课的基础盘你已经握住了大半。写不出来的地方就是你明天优先要看的部分不必慌查漏补缺比焦虑有用得多。如果你想把这门课的价值再往前延伸一步学完51单片机之后再看STM32或者其他单片机时你会发现很多概念是相通的寄存器配置、中断管理、定时器使用、串口协议都是同一套底层逻辑换了个壳。期末复习不只是为了过这一门课反而是打通嵌入式入门的关键节点。祝期末考试顺利稳住心态能拿到的分一分都别丢。