9th省赛.客观题笔记

:trophy: 9th省赛.客观题笔记

:date: 整理日期:2026-03-23
:pushpin: 范围:第九届蓝桥杯单片机省赛客观题中的选择题部分,共 8 题
:bullseye: 对答案:你的答案是 A / D / B / B / A / B / C / AD
:books: 本套重点:二极管温度特性、C51 存储类型、8421BCD 计数器、共阴极数码管编码、三极管三种组态、C51 数据类型、运放虚短虚断、MCS-51 基础结构


:bar_chart: 成绩总览

题号 主题 题型 正确答案 你的答案 结果
1 二极管反向饱和电流 单选 A A :white_check_mark: 答对
2 C51 程序存储区关键字 单选 D D :white_check_mark: 答对
3 8421BCD 计数器触发器个数 单选 B B :white_check_mark: 答对
4 共阴极数码管显示 F 的编码 单选 B B :white_check_mark: 答对
5 高阻源与低阻负载的匹配电路 单选 C A :cross_mark: 答错
6 C51 中表达数值最大的类型 单选 D B :cross_mark: 答错
7 运放电路输入输出关系 单选 B C :cross_mark: 答错
8 MCS-51 说法错误项判断 多选 BD AD :cross_mark: 答错

:bullseye: 最终结果:答对 4 题,答错 4 题,正确率 50%

:warning: 注意:最后一题我没有直接采信常见网文答案,而是按 MCS-51 基础知识重新判断,结论应为 BD,不是 B 也不是 AD


:memo: 题目详解


:brain: 第1题 · 二极管反向饱和电流 · 单选 · :white_check_mark: 答对

题目:
当温度升高时,二极管的反向饱和电流将( )。

选项:

  • A. 增大 :white_check_mark:

  • B. 减小

  • C. 保持不变

  • D. 与温度没有直接关系

:white_check_mark: 正确答案:A

:open_book: 解析:
二极管的反向饱和电流本质上和少数载流子的热运动有关。温度升高后,半导体内部本征激发增强,少数载流子数量增加,所以反向饱和电流会明显增大。

  • A 对:温度越高,反向饱和电流通常越大。

  • B 错:和实际规律相反。

  • C 错:二极管温度特性很明显,不可能保持不变。

  • D 错:二极管很多参数都受温度影响,比如导通压降、反向饱和电流。

:warning: 易错点:
很多人只记得“温度升高,PN 结导通压降下降”,却忘了“反向饱和电流会上升”,这两个结论常一起考。

:light_bulb: 记忆技巧:
“温度一高,漏得更快。”反向漏电流就是反向饱和电流,温度升高它会变大。

:books: 拓展知识:
蓝桥杯虽然主要是单片机题,但模电基础常和传感器、电压采样混在一起考。比如 STC15F2K60S2 做 AD 采样时,如果外围用到二极管限幅或温度相关器件,温漂会影响采样稳定性。常见结论:

  • 温度升高,硅二极管导通压降大约下降 2mV/摄氏度 :thermometer:

  • 温度升高,反向饱和电流增大 :chart_increasing:

  • 做比较器或限幅时,要留意温漂误差 :warning:


:floppy_disk: 第2题 · C51 程序存储区关键字 · 单选 · :white_check_mark: 答对

题目:
下列哪个 C51 关键字能够将数据存储在程序存储区中( )。

选项:

  • A. xdata

  • B. idata

  • C. bdata

  • D. code :white_check_mark:

:white_check_mark: 正确答案:D

:open_book: 解析:
在 Keil C51 里,不同关键字对应不同存储区:

  • code:程序存储器,通常是 ROM / Flash

  • data:内部 RAM 低 128 字节

  • idata:内部 RAM 可间接寻址区

  • xdata:外部 RAM

  • bdata:可位寻址数据区

所以,能够把常量数组、查表数据这类内容放到程序存储区的关键字是 code

  • A 错:xdata 是外部数据存储器,不是程序存储器。

  • B 错:idata 是内部数据 RAM。

  • C 错:bdata 是位寻址数据区。

  • D 对:code 才是程序存储区关键字。

:warning: 易错点:
codeconst 不是一回事。const 是“只读语义”,code 是“存储位置”。在 C51 里经常一起出现,但概念不能混。

:light_bulb: 记忆技巧:
code 看名字就像“代码区”,把查表数组放那里最顺手 :sparkles:

:books: 拓展知识:
在 STC15F2K60S2 实战里,数码管段码表、LED 流水表、菜单字符串,经常这样写:

unsigned char code seg_tab[] = {0xc0,0xf9,0xa4,0xb0};

这样做的好处:

  • 节省片内 RAM :safety_pin:

  • 查表方便 :rocket:

  • 比把大数组塞进 data 更稳

:warning: 如果把大量查表数据误放进 RAM,蓝桥杯程序题里很容易出现内存不够、变量被挤乱的问题。


:1234: 第3题 · 8421BCD 计数器所需触发器数 · 单选 · :white_check_mark: 答对

题目:
设计一位 8421BCD 码计数器至少需要( )个触发器。

选项:

  • A. 3

  • B. 4 :white_check_mark:

  • C. 5

  • D. 8

:white_check_mark: 正确答案:B

:open_book: 解析:
一位 8421BCD 码计数器要表示十进制 0 到 9,共 10 个状态。
一个触发器能表示 2 个状态,n 个触发器能表示 2 的 n 次方个状态。

  • 3 个触发器:2^3 = 8 个状态,不够

  • 4 个触发器:2^4 = 16 个状态,够用

所以最少需要 4 个触发器。

  • A 错:8 个状态小于 10。

  • B 对:16 个状态覆盖 0 到 9。

  • C 错:能实现,但不是“至少”。

  • D 错:明显多了。

:warning: 易错点:
这里问的是“至少”,不是“刚好”。满足“状态数大于等于需要状态数”的最小 n 才对。

:light_bulb: 记忆技巧:
十进制计数器先想“10 个状态”,再找最小的 2^n >= 10,答案就是 4。

:books: 拓展知识:
蓝桥杯数电题常把“计数器”“触发器”“编码”混着考,顺手记住这几个结论:

  • 二进制 8 状态需要 3 个触发器

  • 十进制 10 状态需要 4 个触发器

  • 8421BCD 本质是“4 位二进制编码十进制数” :repeat_button:

在单片机场景里,虽然你不会手搓触发器计数器,但会经常写“软件计数器”。本质一样,都是“状态数够不够”的问题。


:input_symbols: 第4题 · 共阴极数码管显示 F 的编码 · 单选 · :white_check_mark: 答对

题目:
已知如图所示共阴极数码管,令数码管显示 “F” 的编码是( )。

选项:

  • A. 0xC8

  • B. 0x71 :white_check_mark:

  • C. 0xD9

  • D. 0xE2

:white_check_mark: 正确答案:B

:open_book: 解析:
显示字符 F 时,需要点亮的段一般是 a、e、f、g,很多题图里也会把 d 标成需要亮,但蓝桥杯板卡常见七段定义下,标准 F 对应 a、e、f、g,若按题图给出的位序计算,最终答案对应 0x71

共阴极数码管的特点是:
某段输出高电平,该段点亮。

按题图的段码位序换算后,0x71 对应字符 F

  • A 错:不是 F 的编码。

  • B 对:与题图位序对应正确。

  • C 错:常见会对应别的字符或数字。

  • D 错:同样不符合 F 的点亮段组合。

:warning: 易错点:
数码管题最怕两个坑:

  • 共阳极 / 共阴极搞反

  • 段码位序 dp g f e d c b aa b c d e f g dp 搞混

:light_bulb: 记忆技巧:
先判“共阴还是共阳”,再判“位序”,最后再算十六进制,别上来就背段码。

:books: 拓展知识:
蓝桥杯 STC15F2K60S2 板卡程序题里,数码管段码表是高频考点:

  • 共阳极常见数字 0 段码是 0xC0

  • 共阴极常见数字 0 段码是 0x3F

  • 消隐通常用 0xFF0x00,具体看硬件极性 :warning:

写代码时最好把段码表注释清楚:

// 位序:dp g f e d c b a

不然调试时很容易把字符全点歪,气人得很 :upside_down_face:


:electric_plug: 第5题 · 高阻源与低阻负载的匹配电路 · 单选 · :cross_mark: 答错(你选 A,正确答案 C)

题目:
为了使高阻信号源与低阻负载进行配合,在设计电路过程中往往需要进行阻抗匹配,以下哪种电路适合接入高阻信号源与低阻负载之间( )。

选项:

  • A. 共射电路

  • B. 共基电路

  • C. 共集电路 :white_check_mark:

  • D. 以上都可以

:white_check_mark: 正确答案:C

:open_book: 解析:
高阻信号源希望后级“别来重负担”,所以需要后级输入电阻高;
低阻负载又希望前级“带得动”,所以需要前级输出电阻低。

三种基本三极管组态里:

  • 共射电路:输入、输出电阻都不是最适合做缓冲

  • 共基电路:输入电阻低,反而不适合接高阻源

  • 共集电路:输入电阻高、输出电阻低,最适合做阻抗匹配

所以应选共集电路,也就是射极跟随器。

  • A 错:共射主要看电压放大,不是最优匹配级。

  • B 错:共基输入阻抗低,高阻源接进去会被拖垮。

  • C 对:典型缓冲级。

  • D 错:显然不是都可以。

:warning: 易错点:
“增益大”不等于“适合匹配”。阻抗匹配题优先看输入阻抗、输出阻抗,不要先看放大倍数。

:light_bulb: 记忆技巧:
共集 = 跟随 = 缓冲 = 前高后低。
一句话记住:“高进低出找共集。” :glowing_star:

:books: 拓展知识:
虽然蓝桥杯单片机程序题里不直接画三极管组态,但这个思想很常见:

  • ADC 采样前常加缓冲器,避免信号源带载能力不足

  • 传感器输出若内阻大,直接喂给后级会失真

  • 运放电压跟随器本质上也是“高输入阻抗、低输出阻抗”的缓冲思想

把三极管共集和运放电压跟随器放一起记,效果很好 :light_bulb:


:input_latin_uppercase: 第6题 · C51 中表达数值最大的类型 · 单选 · :cross_mark: 答错(你选 B,正确答案 D)

题目:
在 C51 中以下哪种数据类型能够表达的数值最大( )。

选项:

  • A. char

  • B. long

  • C. int

  • D. float :white_check_mark:

:white_check_mark: 正确答案:D

:open_book: 解析:
这题考的是“可表示数值范围”的上限,不是整数精度,也不是字节数本身。

在 C51 常见实现里:

  • char:8 位,范围很小

  • int:16 位

  • long:32 位有符号整数

  • float:浮点型,可表示的数值范围远大于 long

虽然 float 的精度不如整数精确,但它能表示更大的数量级,所以本题选 float

  • A 错:最小

  • B 错:比 int 大,但还不如 float 的数量级范围

  • C 错:比 long 还小

  • D 对:数量级最大

:warning: 易错点:
“能表示的数值最大”考的是范围,不是“最精确”也不是“最省空间”。
很多人看到 long 是 32 位就下意识选它,这里就会栽。

:light_bulb: 记忆技巧:
整数拼“精确整数范围”,浮点拼“数量级”。题目问“最大”,大多数时候先看 float

:books: 拓展知识:
蓝桥杯 STC15F2K60S2 实战里要谨慎用 float,因为:

  • 51 单片机没有硬件浮点,运算慢 :turtle:

  • 代码体积会变大 :package:

  • 显示和比较时还容易出精度误差 :warning:

更实用的写法常是“定点化”:

  • 电压 3.30V 存成 330

  • 温度 25.6 摄氏度存成 256

这样速度快、误差可控、显示也方便。


:plus: 第7题 · 运放电路输入输出关系 · 单选 · :cross_mark: 答错(你选 C,正确答案 B)

题目:
电路原理图如下图所示,以下哪个选项能够正确表达输入与输出之间的关系( )。

选项:

  • A. UO = U1 + U2 * R1 / R2

  • B. UO = U1 + U2 * R2 / R1 :white_check_mark:

  • C. UO = U1 * R2 / R1 + U2

  • D. UO = U1 * R1 / R2 + U2

:white_check_mark: 正确答案:B

:open_book: 解析:
理想运放分析抓两句话就够:

  • 虚短:两个输入端电位近似相等

  • 虚断:输入端电流近似为 0

按题图节点列电流关系,可得输入节点总电流约为:

I ≈ U1 / R2 + U2 / R1

这部分电流通过反馈电阻 R2 形成输出,于是:

UO = I * R2 = (U1 / R2 + U2 / R1) * R2

整理得:

UO = U1 + U2 * R2 / R1

所以选 B。

  • A 错:把比例关系写反了

  • B 对:和推导结果一致

  • C 错:把 U1 前的系数写错了

  • D 错:两个项的系数都不对

:warning: 易错点:
运放题最容易把 R1 / R2R2 / R1 颠倒,尤其是一看到反馈就条件反射写反。

:light_bulb: 记忆技巧:
谁通过哪个电阻进来,就先写“电压除电阻”得到电流;最后乘“反馈电阻”还原输出。别硬背,按电流法走最稳。

:books: 拓展知识:
蓝桥杯客观题很爱考运放三件套:

  • 虚短 :backhand_index_pointing_left: 两输入端电位近似相等

  • 虚断 :backhand_index_pointing_left: 输入端电流近似 0

  • 反馈 :backhand_index_pointing_left: 决定增益和功能

常见变形:

  • 反相比例运算

  • 同相放大

  • 加法器

  • 电压跟随器

如果题目和 STC15F2K60S2 实际应用结合,最常见就是“传感器调理 + ADC 采样”,这时候运放增益和偏置都会直接影响 AD 结果。


:puzzle_piece: 第8题 · MCS-51 说法错误项判断 · 多选 · :cross_mark: 答错(你选 AD,正确答案 BD)

题目:
关于 MCS-51 单片机,以下说法中错误的有( )。

选项:

  • A. 单片机数据存储器和程序存储器扩展的最大范围是一样的。

  • B. 串口数据发送和接收缓冲器均为 SBUF,不能够同时发送和接收数据。 :white_check_mark:

  • C. 为消除按键产生的抖动,可以采用软件和硬件两种办法。

  • D. 单片机上电复位后,片内数据存储器的内容均为 00H。 :white_check_mark:

:white_check_mark: 正确答案:BD

:open_book: 解析:
这题是多选,关键词就是“错误的有”。我们逐项判断:

  • A 对:标准 MCS-51 的外部程序存储器扩展空间为 64KB,外部数据存储器扩展空间也为 64KB,最大范围一样。

  • B 错:虽然发送和接收都使用 SBUF 这个地址名,但底层实际上对应两个独立缓冲器,可以同时发送和接收,串口是全双工。

  • C 对:按键消抖既可以软件延时、状态机消抖,也可以硬件 RC + 施密特触发器消抖。

  • D 错:上电复位后,片内 RAM 内容一般不保证为 00H,很多单片机文档都把它视为不确定值,程序不能依赖它天然清零。

所以错误项应为 BD

:warning: 你的错误点:
你把 A 误判成错项了,但 A 实际上是对的;
你把真正错误的 D 没抓准原因的话,后面写程序就容易默认“RAM 上电就是 0”,这个很危险。

:light_bulb: 记忆技巧:
SBUF 是“同地址双缓冲”而不是“同一个物理寄存器”;
RAM 上电默认全 0 这种话,考试里大多要警惕,通常是坑。

:books: 拓展知识:
这题和 STC15F2K60S2 实战关系很大:

  • 串口是全双工,所以接收中断和发送流程可以并行设计 :satellite_antenna:

  • 全局变量若依赖默认初值,最好显式初始化,不要赌上电状态 :warning:

  • 按键消抖在蓝桥杯程序题里高频出现,常见方案有:

    • 延时消抖

    • 定时扫描 + 状态机

    • RC 滤波 + 施密特输入

做题时一看到“上电后 RAM 内容”这类说法,先按“不可依赖”处理,稳得多。


:high_voltage: 速查卡

:pushpin: 本套题核心结论一页记住

  • 二极管温度升高时:反向饱和电流增大,导通压降减小 :thermometer:

  • C51 把常量放程序区:用 code

  • 十进制 0~9 共 10 个状态,至少需要 4 个触发器

  • 共阴极数码管:高电平点亮,做题先判极性再判位序

  • 高阻源接低阻负载:优先想到共集电路 / 射极跟随器

  • float 数值范围通常大于 long,但 51 上不适合滥用

  • 运放做题两板斧:虚短 + 虚断

  • MCS-51 串口是全双工,SBUF 可同时收发

  • 上电复位后 RAM 内容通常不可靠,必须显式初始化

  • 按键消抖既能软件做,也能硬件做

:warning: 本套最容易错的坑

  • 把“数量级最大”和“整数范围最大”混为一谈

  • 把共射当成阻抗匹配级

  • 运放里把 R1 / R2 写反

  • 看到 SBUF 就误以为收发共用一个物理寄存器

  • 误以为上电后 RAM 默认全是 00H

:light_bulb: 备考建议

  • 数码管段码表一定手写默一遍,不要只靠背答案

  • C51 存储类型建议画成表:data / idata / bdata / xdata / code

  • 运放题至少熟练三类:比例运算、加法运算、电压跟随

  • 单片机基础判断题里,凡是“上电默认”“一定是”“全部为 0”这类绝对化描述,都要先警惕一下 :eyes:


:magic_wand: 最后结论

你这套选择题真正稳住的是前 4 题,后 4 题里主要暴露了三个薄弱点:

  • 模拟电路里“阻抗匹配”和“运放关系式”不够稳

  • C51 数据类型范围理解有点混

  • MCS-51 基础结构题里,对 SBUF 和 RAM 上电状态有误区

如果你愿意,我下一步可以继续顺手把这 8 题再压成一版 超短背诵版冲刺卡,专门适合赛前 5 分钟扫一遍,那个会更适合你临考前抱着猛看一下 :pinching_hand::blue_book: