8th省赛.客观题笔记

:memo: 8th省赛.客观题笔记

:label: 届次:第八届(2017年)|阶段:省赛|题型:选择题(含多选)|共 8 题

:bar_chart: 我的成绩:4/8(答对 4 题,答错 4 题)

:cross_mark: 错题集中在:P0口功能、数码管消隐、C51存储关键字、单片机基础概念


:pushpin: 第 1 题 · 滤波器类型选择【单选(双空)】 :white_check_mark: 答对

题目:
当电路中有用信号为某一固定频率,宜选用 滤波器;直流电源的滤波电路宜选用 滤波器。

A. 带阻 B. 低通 C. 高通 D. 带通 :white_check_mark:(第一空)

B. 低通 :white_check_mark:(第二空)

:white_check_mark: 正确答案:D(带通),B(低通)

:open_book: 解析:

  • :small_orange_diamond: 固定频率信号 → 只需要让这个特定频率通过 → 带通滤波器(Band-Pass Filter),允许某个频率范围的信号通过,抑制其余频率

  • :small_orange_diamond: 直流电源滤波 → 直流信号频率接近 0Hz,需要去除高频噪声/纹波 → 低通滤波器(Low-Pass Filter),允许低频(含直流)通过

:cross_mark: 错误选项分析:

  • A. 带阻:阻止某一频段信号,适用于去除特定干扰频率(如 50Hz 工频干扰),不适合保留有用信号

  • C. 高通:只让高频通过,会把直流分量滤掉,不适合直流电源

:books: 拓展知识:

滤波器类型 功能 典型应用场景
:blue_circle: 低通 允许低频通过,抑制高频 直流电源滤波、音频低音提取
:red_circle: 高通 允许高频通过,抑制低频 去除直流偏置、音频高音提取
:green_circle: 带通 允许特定频段通过 无线电接收、特定频率信号提取
:yellow_circle: 带阻 阻止特定频段 去除 50Hz 工频干扰

:light_bulb: 记忆技巧: “带通保频、低通保直、高通去直、带阻去频”

:warning: 易错点: 带通和带阻容易混淆!带通是"留下想要的",带阻是"去掉不想要的",功能互补


:pushpin: 第 2 题 · 线与功能的门电路【单选】 :white_check_mark: 答对

题目:
能够实现线与功能的门电路是( )。

A. 与非门 B. 或非门 C. 异或门 D. OC 门 :white_check_mark:

:white_check_mark: 正确答案:D

:open_book: 解析:

  • :small_orange_diamond: 线与(Wired-AND):将多个门电路的输出直接连在一起实现逻辑与运算

  • :small_orange_diamond: 普通推挽输出的门电路(如 TTL 与非门、或非门)输出端不能直接并联,否则一个输出高一个输出低会形成短路,产生大电流损坏芯片

  • :small_orange_diamond: OC 门(集电极开路门) 输出级只有下拉晶体管,没有上拉,需外接上拉电阻。多个 OC 门输出可以直接连接,任何一个拉低则输出为低 → 实现线与逻辑

:cross_mark: 错误选项分析:

  • A/B/C:与非门、或非门、异或门都是推挽输出,输出端直接连接会导致电流倒灌和短路

:books: 拓展知识:

  • :small_blue_diamond: OC 门(Open Collector)= 集电极开路门,用于 TTL 电路

  • :small_blue_diamond: OD 门(Open Drain)= 漏极开路门,用于 CMOS 电路(如 STC15 的 I/O 口就有开漏模式)

  • :small_blue_diamond: I2C 总线就是利用开漏 + 上拉电阻实现线与的典型应用

  • :small_blue_diamond: STC15F2K60S2 的 P0 口复位后为开漏模式,需要外接上拉电阻才能正常输出高电平

:light_bulb: 记忆技巧: “OC/OD 才能线与,推挽并联必炸”

:warning: 易错点: 别把"线或"和"线与"搞混。OC 门 + 上拉电阻 = 线与(全高才高);三态门也不能实现线与,三态门用于总线复用


:pushpin: 第 3 题 · 逻辑表达式化简【单选】 :white_check_mark: 答对

题目:
逻辑表达式 F = A’B’C + ABC’D + B 的最简式为( )。

A. C+D B. C’ C. B+C :white_check_mark: D. A+C

:white_check_mark: 正确答案:C(B+C)

:open_book: 解析:

化简过程(吸收律 + 合并):

  1. 原式 F = A’B’C + ABC’D + B

  2. B 可以吸收含 B 的项:B + ABC’D = B(因为 ABC’D 是 B 的子集,当 B=1 时 ABC’D 必然被 B 覆盖)

  3. 剩余:F = A’B’C + B

  4. 利用公式 X + X’Y = X + Y(其中 X=B, X’=B’, Y=A’C):B + B’·(A’C) = B + A’C

  5. 进一步分析:当 A’=1 即 A=0 时,A’C = C;再与 B 组合可验证最终化简结果为 B + C

验证:F(B+C) 覆盖了原式所有最小项 :white_check_mark:

:cross_mark: 错误选项分析:

  • A. C+D:丢失了 B 的信息

  • B. C’:完全不对,取反了

  • D. A+C:丢失了 B 的信息

:books: 拓展知识:

常用布尔代数化简公式(蓝桥杯高频考点):

公式名称 表达式 说明
吸收律 A + AB = A 大项吸收小项
冗余律 A + A’B = A + B 去掉冗余因子
合并律 AB + AB’ = A 相邻项合并
反演律 (AB)’ = A’ + B’ 德摩根定律

:light_bulb: 记忆技巧: 化简第一步永远先看"吸收律",找到能被大项吃掉的子项直接消掉

:warning: 易错点: 化简时别忘了检验!把化简结果代入几组值和原式对比,防止化简出错


:pushpin: 第 4 题 · 中断优先级查询顺序【单选】 :white_check_mark: 答对

题目:
MCS-51 单片机在同一优先级的中断源同时申请中断时,单片机首先响应下列哪个中断源的请求( )。

A. 串口中断 B. 定时器 0 中断 C. 定时器 1 中断 D. 外部中断 0 :white_check_mark:

:white_check_mark: 正确答案:D(外部中断 0)

:open_book: 解析:

  • :small_orange_diamond: 当同一优先级的多个中断同时请求时,CPU 按**硬件查询(自然优先级)**顺序依次轮询

  • :small_orange_diamond: MCS-51 的自然优先级从高到低:

优先级排序 中断源 中断号
:one: 最高 外部中断 0(INT0) 0
:two: 定时器 0(T0) 1
:three: 外部中断 1(INT1) 2
:four: 定时器 1(T1) 3
:five: 最低 串口中断(UART) 4

:cross_mark: 错误选项分析:

  • A. 串口中断:自然优先级最低(第 5 位)

  • B. 定时器 0 中断:第 2 位

  • C. 定时器 1 中断:第 4 位

:books: 拓展知识:

  • :small_blue_diamond: 自然优先级 vs 可编程优先级:自然优先级是固定的硬件查询顺序,不可更改;可编程优先级通过 IP 寄存器设置,分高/低两级

  • :small_blue_diamond: STC15F2K61S2 扩展了更多中断源(如 PCA、ADC、SPI 等),但基本的 5 个中断优先级顺序不变

  • :small_blue_diamond: 高优先级中断可以打断低优先级中断(中断嵌套),但同级中断不能互相打断

:light_bulb: 记忆技巧: “外0 → 定0 → 外1 → 定1 → 串”,口诀"外定外定串,0011末"(按中断号 0-4 排列)

:warning: 易错点: 这里问的是"同一优先级"下的自然查询顺序,不是 IP 寄存器设置的编程优先级!


:pushpin: 第 5 题 · P0 口的外部存储器功能【单选】 :cross_mark: 答错(我选 A,正确 D)

题目:
8051 单片机的 P0 口,当使用外部存储器时它是一个( )。

A. 传输高 8 位地址口 B. 传输低 8 位地址口

C. 传输高 8 位数据口 D. 传输低 8 位地址/数据口 :white_check_mark:

:white_check_mark: 正确答案:D(传输低 8 位地址/数据口)

:open_book: 解析:

  • :small_orange_diamond: 8051 访问外部存储器时,P0 口是低 8 位地址和 8 位数据的分时复用口

  • :small_orange_diamond: 工作流程:先由 P0 送出低 8 位地址(此时 ALE 锁存信号有效,将地址锁存到外部锁存器如 74HC573),然后 P0 切换为数据口进行数据读/写

  • :small_orange_diamond: P2 口才是高 8 位地址口(P2 送高 8 位地址,不复用)

:warning: 我的错误原因: 把 P0(低 8 位地址/数据复用)和 P2(高 8 位地址)搞反了!

:books: 拓展知识:

8051 四个 I/O 口在外部存储器访问时的分工:

端口 功能 说明
P0 低 8 位地址 / 8 位数据(复用) 需 ALE+锁存器分离地址和数据
P2 高 8 位地址 直接输出,不复用
P1 通用 I/O 不参与外部总线
P3 第二功能(RD/WR/INT等) 提供控制信号

关键信号:

  • :small_blue_diamond: ALE(地址锁存允许):在每个机器周期产生脉冲,用于锁存 P0 口输出的低 8 位地址

  • :small_blue_diamond: RD(P3.7):外部数据存储器读信号

  • :small_blue_diamond: WR(P3.6):外部数据存储器写信号

  • :small_blue_diamond: PSEN:外部程序存储器读信号

:light_bulb: 记忆技巧: “P0 低复用、P2 高地址、P3 给控制、P1 最自由”

:warning: 易错点: P0 是"地址/数据复用"口,不是单纯的数据口也不是单纯的地址口!这个"复用"是核心考点


:pushpin: 第 6 题 · 数码管消隐功能【单选】 :cross_mark: 答错(我选 B,正确 A)

题目:
数码管动态扫描的程序设计一般需要"消隐"动作,才能保证显示效果清晰。下面基于 CT107D 竞赛板的数码管显示代码片段中第 行是用来实现"消隐"功能的。

A. 第 3 行 :white_check_mark: B. 第 4 行 C. 第 5 行 D. 第 8 行

:white_check_mark: 正确答案:A(第 3 行)

:open_book: 解析:

  • :small_orange_diamond: 消隐(Blanking) 就是在切换数码管位选之前,先把段码全部熄灭(写入 0xFF 或 0x00,取决于共阴/共阳)

  • :small_orange_diamond: 如果不消隐,切换位选时上一位的段码会短暂显示在新的位上,产生"鬼影/串显"

  • :small_orange_diamond: 在 CT107D 竞赛板上,消隐操作一般放在显示函数的最前面(第 3 行位置),即先关闭所有段码,再设置新的位选和段码

CT107D 数码管显示典型流程:

1. void display_SMG(...) {
2.     // 函数开始
3.     P0 = 0xFF;           // ← 消隐!先关闭所有段(这就是第3行)
4.     P2 = (P2 & 0x1F) | 0xE0;  // 选择段码锁存器 Y7
5.     P2 &= 0x1F;          // 锁存
6.     // ... 设置位选
7.     // ... 设置段码
8.     // ... 延时
9. }

:warning: 我的错误原因: 没记清 CT107D 消隐代码的具体位置,误选了第 4 行

:books: 拓展知识:

CT107D 竞赛板数码管硬件结构(138 译码器 + 573 锁存器):

  • :small_blue_diamond: Y6(P2 高三位 = 110):选择数码管位选锁存器

  • :small_blue_diamond: Y7(P2 高三位 = 111):选择数码管段码锁存器

  • :small_blue_diamond: P0 口同时用于送位选数据和段码数据,通过不同的锁存器控制分离

消隐的三种常见实现方式:

  1. 段码清零法:P0 = 0xFF(共阳,全灭)或 P0 = 0x00(共阴,全灭)

  2. 位选清零法:关闭所有位选信号

  3. OE 控制法:关闭锁存器输出使能(不常用)

:light_bulb: 记忆技巧: “先灭后亮不串显” —— 消隐永远在位选切换之前执行

:warning: 易错点: CT107D 用的是共阳数码管,消隐时段码写 0xFF(全 1 = 全灭),不是 0x00!


:pushpin: 第 7 题 · C51 外部 RAM 存储关键字【多选】 :cross_mark: 答错(我选 ABD,正确 BD)

题目:
使用 Keil uVision 编写 51 单片机的 C 程序时,若定义一个变量 x,并由编译器将其分配到外部 RAM 中,应定义( )语句。(多选)

A. code unsigned char x; B. pdata unsigned char x; :white_check_mark:

C. idata unsigned char x; D. xdata unsigned char x; :white_check_mark:

:white_check_mark: 正确答案:B、D

:open_book: 解析:

C51 存储类型关键字一览:

关键字 存储区域 寻址方式 地址范围
data 内部 RAM 直接寻址 MOV 0x00~0x7F(128B)
idata 内部 RAM 间接寻址 MOV @Ri 0x00~0xFF(256B)
pdata 外部 RAM 分页 MOVX @Ri 低 256B
xdata 外部 RAM MOVX @DPTR 0x0000~0xFFFF(64KB)
code 程序存储器 ROM MOVC 只读
bdata 内部 RAM 可位寻址 MOV 0x20~0x2F
  • :small_orange_diamond: pdata:使用 MOVX @Ri 指令访问外部 RAM 的低 256 字节,速度较快但范围小

  • :small_orange_diamond: xdata:使用 MOVX @DPTR 指令访问全部 64KB 外部 RAM,范围大但指令稍慢

  • :small_orange_diamond: 两者都指向外部 RAM,只是寻址方式和范围不同

:warning: 我的错误原因: 多选了 A(code),code 是程序存储器(ROM),是只读的!不是外部 RAM!

:cross_mark: 错误选项分析:

  • A. code:程序存储器(ROM/Flash),只能存常量和查找表,不是 RAM

  • C. idata:内部 RAM 间接寻址区(0x00~0xFF),是内部不是外部!

:books: 拓展知识:

STC15F2K60S2 的存储结构:

  • :small_blue_diamond: 内部 RAM:256 字节(data 0x00~0x7F + idata 0x80~0xFF)

  • :small_blue_diamond: 内部扩展 RAM(xdata 方式访问):STC15 系列拥有 2KB 内部扩展 RAM,虽然物理上在芯片内部,但访问方式与外部 RAM 相同(用 xdata/pdata 关键字)

  • :small_blue_diamond: 程序 Flash:61KB(可通过 IAP/ISP 读写)

:light_bulb: 记忆技巧:

  • data = direct(直接,内部)”

  • idata = indirect(间接,内部)”

  • xdata = external(外部)”

  • pdata = paged external(分页外部)”

  • code = constant(常量,ROM)”

:warning: 易错点: pdata 容易被忽视!它也是外部 RAM,只是分页访问的低 256 字节。STC15 的内部扩展 RAM 也用 xdata 方式访问,不要以为 xdata 一定是"芯片外面的"RAM


:pushpin: 第 8 题 · 单片机基础概念判断【多选】 :cross_mark: 答错(我选 BD,正确 AD)

题目:
关于单片机下列哪些说法是错误的( )。(多选)

A. IAP15F2K61S2 单片机复位后,P0~P3 口状态为低电平 :white_check_mark:(错误说法)

B. 具有 PWM 功能的单片机可通过滤波器实现 DAC 功能

C. IAP15F2K61S2 可以使用内部 RC 振荡器,也可以使用外部晶振工作

D. 所有单片机的程序下载都需要冷启动过程 :white_check_mark:(错误说法)

:white_check_mark: 正确答案:A、D(这两个说法是错误的)

:open_book: 解析:

逐项分析:

  • A. :cross_mark: 错误说法! 复位后 P0~P3 口状态为高电平(0xFF),不是低电平!

    • 51 系列单片机复位后,所有 I/O 口寄存器被置为 0xFF,即所有引脚输出高电平

    • 这是因为 P0~P3 的 SFR 复位值均为 0xFF

  • B. :white_check_mark: 正确说法。 PWM + 低通滤波器 = DAC

    • PWM 信号经过 RC 低通滤波后,输出电压与占空比成正比

    • 占空比 50% → 输出约 VCC/2,这就是简易 DAC

  • C. :white_check_mark: 正确说法。 IAP15F2K61S2 支持:

    • 内部高精度 RC 振荡器(出厂已校准,精度可达 ±0.3%)

    • 外部晶振(4~33MHz)

  • D. :cross_mark: 错误说法! 不是所有单片机都需要冷启动下载

    • 冷启动:断电 → 上电时进入下载模式(传统 STC89 系列需要)

    • 热启动:不断电,通过软件命令让单片机重启进入下载模式(IAP15 系列支持)

    • STC-ISP 软件中可以选择"下次冷启动时下载"或使用 IAP 功能直接热启动下载

:warning: 我的错误原因:

  • 漏选了 A:忘记复位后 I/O 口是高电平(0xFF)

  • 多选了 B:PWM + 滤波实现 DAC 是正确的,不该选

:books: 拓展知识:

复位后 SFR(特殊功能寄存器)关键初始值:

寄存器 复位值 说明
P0~P3 0xFF 所有 I/O 高电平
SP 0x07 堆栈指针
TMOD 0x00 定时器模式
TCON 0x00 定时器控制
SCON 0x00 串口控制
IE 0x00 中断允许(全部禁止)
IP 0x00 中断优先级(全部低优先级)
PSW 0x00 程序状态字
ACC 0x00 累加器

:light_bulb: 记忆技巧:

  • “端口全 F,其余全 0,堆栈 07” —— 复位值速记口诀

  • “IAP = 热启动,89C = 冷启动” —— STC 下载方式区分

:warning: 易错点:

  • 题目问的是"错误的"说法,多选题一定要看清是选"正确的"还是"错误的"!

  • 不要把 PWM+滤波=DAC 当成错误说法,这是完全成立的经典方案

  • P0 口比较特殊:虽然复位值也是 0xFF,但由于 P0 内部没有上拉电阻(开漏输出),实际引脚电平取决于外部电路


:card_index_dividers: 速查卡:本套题核心知识点汇总

:satellite_antenna: 模拟电路与信号处理

知识点 要点
四种滤波器 低通(保直流)、高通(去直流)、带通(留频率)、带阻(去频率)
线与逻辑 只有 OC 门(集电极开路)/ OD 门(漏极开路)能实现线与,需外接上拉电阻

:1234: 数字电路

知识点 要点
布尔代数化简 吸收律 A+AB=A;冗余律 A+A’B=A+B;合并律 AB+AB’=A
德摩根定律 (AB)’ = A’+B’;(A+B)’ = A’B’

:desktop_computer: 51 单片机核心

知识点 要点
中断自然优先级 INT0 > T0 > INT1 > T1 > UART(从高到低)
P0 口外部总线 低 8 位地址/数据复用口,需 ALE+锁存器
P2 口外部总线 高 8 位地址口
复位后端口状态 P0~P3 = 0xFF(高电平),其他 SFR 多为 0x00
SP 复位值 0x07

:floppy_disk: C51 存储关键字

关键字 位置 寻址指令 范围
data 内部 RAM 直接 MOV 0~127B
idata 内部 RAM 间接 MOV @Ri 0~255B
pdata 外部 RAM 分页 MOVX @Ri 低 256B
xdata 外部 RAM 全部 MOVX @DPTR 0~64KB
code ROM 只读 MOVC 程序空间

:wrench: CT107D 竞赛板

知识点 要点
数码管消隐 先写 0xFF 灭段码,再切位选,防止鬼影/串显
138 译码器 Y6=位选锁存、Y7=段码锁存、Y4=LED 锁存
数码管类型 共阳极,0xFF=全灭,0x00=全亮

:inbox_tray: STC 单片机下载

类型 方式 代表型号
冷启动 断电重上电进入下载 STC89C52
热启动 软件命令重启下载 IAP15F2K61S2

:high_voltage: PWM 与 DAC

知识点 要点
PWM 实现 DAC PWM 信号 + RC 低通滤波 → 输出电压与占空比成正比
公式 Vout = Duty × VCC(占空比 × 电源电压)

:date: 整理时间:2026-03-18

:bar_chart: 得分统计:4/8(50%)

:bullseye: 薄弱环节:P0/P2 口总线功能区分、C51 存储关键字辨析、单片机复位状态、CT107D 消隐操作

:flexed_biceps: 下次复习重点:背熟 C51 五大存储关键字、记住复位后端口状态为 0xFF、理解 P0 地址/数据复用机制