简介:华南理工大学《数字电子技术》期末试卷A及参考答案,面向高校理工科学生及备考数电期末、课程复盘的学习者,帮助对照真题检验数字逻辑、数字电路与集成电路等知识掌握情况。全包共1个doc文件,约268KB,集中呈现试卷与答案,便于打印或电子查阅。目前已有528人学习下载。试卷按单项选择题、填空题、电路分析题、电路设计题四类展开,涉及8421BCD码转换、卡诺图化简、TTL与CMOS电路特性、施密特触发器、A/D转换器、ROM地址与存储单元、JK触发器、移位寄存器、555定时器、双积分A/D转换器、74LS153数据选择器及十三进制计数器设计等内容,并附参考答案。读者可用于限时自测、核对解题思路、定位薄弱知识点,也可作为期末复习时的题型索引与考点清单。
1. 数电期末的知识地图:四大题型背后只有五条主线
拿到一份带标准答案的期末 A 卷,多数人的第一动作是从第一题往下做。我更建议先翻到答案页的评分标准看一眼:100 分、120 分钟的卷子,选择 20 分、填空 20 分、分析 36 分、设计 24 分,可采分点拆下来只有二十来个,落点高度集中——数制与码制换算、逻辑函数化简、门电路电气参数、时序器件的状态方程与激励方程,以及 ROM、双积分 A/D、555 定时器这三块计算。数电期末看起来题多,实际上是同一批知识点换着壳子重复考。这份笔记适合两类人:已经把课本过了一遍、但做题时说不清“这题在考哪一章”的;以及考前只剩几天、想按题型反查知识漏洞的。下面的顺序就是按这五条主线铺开的。
2. 数制、码制与逻辑代数:化简是一切大题的地基
选择题前几题、填空题的运算部分,考的都是这一块。它不难,但错误率极高,原因是很多人把“会换算”当成“会写答案”,中间步骤全省了,一进考场就凭感觉。
2.1 8421BCD 与二进制:数字一样、编码完全不同
8421BCD 的规则是“一个十进制数字对应四位二进制”,而二进制是“整个数按权重展开”。128 这个数,二进制写法是 10000000,8421BCD 写法是 0001 0010 1000,也就是 1、2、8 三位数字各自编码后拼起来。干扰项的设计套路就在这里:一个是对的编码,一个是错的位宽,一个是把 BCD 当二进制。
小数部分更能拉开差距。2006.375 的整数部分用“除 2 取余、逆序排列”,小数部分用“乘 2 取整、顺序排列”:0.375×2=0.75 取 0,0.75×2=1.5 取 1,0.5×2=1.0 取 1,得 011,合起来 11111010110.011。手算时建议先用十六进制过渡(2006 = 7D6H),出错概率会低很多。
# 十进制转二进制:整数部分除 2 取余,小数部分乘 2 取整 def dec2bin(x, frac_bits=12): n = int(x) f = x - n int_part = bin(n)[2:] # 整数部分直接调用内置转换 frac = "" while f and len(frac) < frac_bits: f *= 2 frac += str(int(f)) # 取整数位作为小数下一位 f -= int(f) return int_part + ("." + frac if frac else "") print(dec2bin(2006.375)) # 11111010110.011frac_bits是小数位的截断上限,防止 0.1 这类无限循环小数把循环跑死;浮点数存在表示误差,所以这个函数只用来验算,手写过程还是按课本的竖式走。
BCD 编码则要保证“每一位十进制数字固定四位”:
def dec2bcd(n): # 每一位十进制数字单独编码成 4 位,不足左补 0 return " ".join(f"{int(d):04b}" for d in str(n)) print(dec2bcd(128)) # 0001 0010 1000注意f"{int(d):04b}"里的04不能省,省了就会出现“1 0010 1000”这种位宽不齐的答案,判卷时直接算错。
2.2 逻辑函数的四种表示与两条变换规则
填空题里“写出四种表示方法”的正确答案是真值表、逻辑函数式、逻辑电路图、卡诺图。这四个不是并列的四种写法,而是一条流水线:真值表给出全部信息,函数式和卡诺图是两种压缩方式,逻辑图是最终落地的形式。考试时给真值表求最简式,走的是“真值表→卡诺图→与或式→逻辑图”这条路。
反演规则求反函数,三条操作:与换或、或换与;0 换 1、1 换 0;原变量换反变量、反变量换原变量。最容易翻车的是运算顺序——必须保持原式的括号结构和非号长度,长非号下面如果不属于单个变量,那一段整体不动。比如F = A + B'C的反演式是F' = A'·(B + C'),那个括号不能丢。对偶规则只做前两步、变量不动,两者别混。
2.3 卡诺图化简的标准动作
卡诺图的坐标轴必须按格雷码排(00、01、11、10),保证相邻格只差一个变量。圈 1 的四条硬规则:每圈只能圈 2 的幂个格;圈要尽量大;圈可以重叠;每个圈至少要包含一个新格,否则是冗余项。
| 圈的大小 | 消去的变量数 | 剩下的变量 |
|---|---|---|
| 1 格 | 0 | 全部保留 |
| 2 格 | 1 | 少 1 个 |
| 4 格 | 2 | 少 2 个 |
| 8 格 | 3 | 少 3 个 |
写与项的方法:圈内取值变化的变量全部丢掉,取值不变的变量保留,取 1 写原变量、取 0 写反变量。比如四变量卡诺图里Σm(0,1,2,3,8,9,10,11)这两组 4 格圈,第一圈消去 A、B,剩 C';第二圈消去 A、B,剩 C,合并后结果就是 B'。无关项用 d 表示,可以圈也可以不圈,原则是“能圈大就圈、圈了不会多出新的最小项”。选择题里卡诺图题丢分,十有八九是格雷码顺序记错,把 01 和 10 排反了。
3. 门电路与集成器件:电气参数决定了半张卷子
这一章是最不像“数字电路”的部分,却是选择填空的高频区。它的特点是:概念少、数字多,公式记不住还能推,参数记混就直接错。
3.1 扇出系数:两个约束取小,别只算一半
扇出系数描述一个门的输出能带几个同类门输入。约束来自两个方向:输出低电平时要灌入所有负载门的输入低电平电流,输出高电平时要拉出所有负载门的输入高电平电流,两边都不能超。
| 参数 | 含义 | 卷面给定值 |
|---|---|---|
| IOL(max) | 输出低电平最大灌电流 | 10 mA |
| IOH(max) | 输出高电平最大拉电流 | -0.4 mA |
| IiL | 输入低电平电流 | ≤ -1 mA |
| IiH | 输入高电平电流 | ≤ 20 μA |
低电平侧:10 ÷ 1 = 10。高电平侧:0.4 ÷ 0.02 = 20。扇出取较小值 10。
# 扇出系数:两侧分别计算,取小值 IOL, IOH = 10.0, 0.4 # 单位 mA,高电平电流取绝对值 IiL, IiH = 1.0, 0.020 # 20 μA 必须先换成 0.02 mA fanout_low = IOL / IiL # 10.0 fanout_high = IOH / IiH # 20.0 print(int(min(fanout_low, fanout_high))) # 10代码里唯一需要动脑的地方是单位:题目给 IiH 用 μA,给 IOL 用 mA,不统一单位就会算成 0.4÷20=0.02 这种荒唐结果。另外,如果负载门的多个输入端并在同一个门上,每个输入都要单独算一份电流,不能按“一个门算一份”去数。
3.2 多余输入端的处理:TTL 和 CMOS 完全是两套规则
这是填空题和选择题的固定考点,也是最容易被“差不多”糊弄过去的地方。
| 器件类型 | 与门 / 与非门的多余输入端 | 或门 / 或非门的多余输入端 |
|---|---|---|
| TTL | 接高电平(可悬空,但抗干扰差,不推荐) | 接低电平 |
| CMOS | 必须接固定高电平 | 必须接固定低电平 |
原则只有一句:不能改变原逻辑功能。与门要“全 1 才出 1”,所以多余端给 1 不影响;或门要“有 1 就出 1”,所以多余端给 0 不影响。CMOS 的输入阻抗极高,悬空时栅极电位不定,既可能误判电平也可能损坏器件,所以 CMOS 严禁悬空,必须接 VDD 或 VSS。TTL 输入端悬空在内部会被拉成高电平,功能上等价于接 1,但抗干扰能力差,工程上不这么干。
3.3 OC 门、三态门、传输门:三个“特殊门”各自的用途
OC 门(集电极开路门)的输出管只有下拉没有上拉,必须外接上拉电阻才能出高电平。它的价值在于“线与”:多个 OC 门输出端直接并接,只有全为高时输出才为高,等效于一个与关系,这在总线竞争和“多信号任一有效”的场合很省器件。上拉电阻的取值有上下限,下限由灌电流决定(阻值太小会烧输出管),上限由高电平漏电流和负载输入电流决定(阻值太大拉不到 VOH)。三态门多了一个高阻态控制端,用于总线分时复用,同一时刻只允许一个门输出有效。CMOS 传输门是并联的 PMOS 与 NMOS,做模拟开关用,静态功耗极小,但输入信号频率升高时,负载电容的充放电变频繁,动态功耗随频率线性增长,这正是填空题“频率增加时功耗将增大”的落点。动态功耗的关系是 P = C_L·V²·f,频率翻倍,功耗翻倍。
4. 组合与时序:设计题的两套固定套路
设计题 24 分,一道数据选择器、一道计数器,几乎是模板化的。模板化的另一面是“步骤分很细”,少写一步就少拿两三分,所以过程比结果重要。
4.1 用数据选择器实现逻辑函数:地址端和数据端的分配
4 选 1 数据选择器的输出表达式是固定的:
Y = D0·(A1'A0') + D1·(A1'A0) + D2·(A1·A0') + D3·(A1·A0)所以用它实现逻辑函数,本质是把目标函数整理成“最小项之和”的标准形式,然后按地址变量的组合把系数逐项对上。函数变量数等于地址端数时,四个数据端直接接 0 或 1;函数变量比地址端多一个时,用降维法,把多出来的那个变量挪到数据端。
卷面这道题给的是双 4 选 1 器件 74LS153,它的关键结构是:内部两片 4 选 1 共用一组地址端,各自有独立的使能端。所以要想扩展成 8 选 1,只能靠“另一片的使能端接到高位地址”来实现,而不是再加地址线。
| 输入(使能 / 地址) | 输出 |
|---|---|
| 使能 = 1 | 输出为 0,与数据无关 |
| 使能 = 0,地址选定 | 输出对应的 Di |
评分标准把这道题拆成四步:写出最小项之和的标准形式(3 分)、把 4 选 1 扩展成 8 选 1(2 分)、正确确定地址变量与 D0~D7 的接法(3 分)、画出逻辑图(2 分)。第二、三步是拉开差距的地方,很多人只写“接 1 接 0”,却没说清是哪一个地址变量控制哪一片的使能。
# 验证接线:把 A3A2A1 与 D0~D7 的接法翻译成真值表,和原函数逐项比对 def mux8(a3, a2, a1, d): # d 是长度为 8 的数据端取值列表 idx = (a3 << 2) | (a2 << 1) | a1 # 用三个地址位拼出 0~7 的下标 return d[idx] target = { # 假设原函数在 A3A2A1 = 000~111 上的取值 (0, 0, 0): 1, (0, 0, 1): 0, (0, 1, 0): 1, (0, 1, 1): 1, (1, 0, 0): 0, (1, 0, 1): 1, (1, 1, 0): 0, (1, 1, 1): 1, } d = [target[(a3, a2, a1)] for a3 in (0, 1) for a2 in (0, 1) for a1 in (0, 1)] for k, v in target.items(): assert mux8(*k, d) == v # 接线若正确,断言不会触发 print("接线正确,D 端取值:", d)这段脚本的作用是“画图前的自查”:把你想好的 D0~D7 代进去跑一遍,和原函数的最小项对照,能提前发现地址高位高低位接反这种错误。实际考试时不需要写脚本,但可以在草稿纸上画一张三行八列的小表做同样的检查。
4.2 触发器的三层方程:特性、状态、激励
时序题的所有推导都建立在三层方程上,分清楚它们的关系比背公式更重要。
| 触发器类型 | 特性方程(次态 Q*) | 约束 |
|---|---|---|
| 基本 RS | Q* = S + R'Q | RS = 0,两输入不能同时为 1 |
| D | Q* = D | 无 |
| JK | Q* = JQ' + K'Q | 无 |
| T | Q* = T ⊕ Q | 无 |
状态方程是从电路结构推出来的次态表达式,由次态卡诺图化简得到;激励方程是反过来问“要让 Q* 变成这个样子,J、K 该给什么”。做法是对比系数:把状态方程整理成Q* = (… )Q' + (… )Q的形式,与JQ' + K'Q逐项对照,Q'前面的系数就是 J,Q前面的系数就是 K'。基本 RS 的约束条件写成RS = 0或R + S = 1都算对,但写成R+S=0就完全反了。JK 改 T 的方法是把两个输入并在一起,J = K = T,此时Q* = TQ' + T'Q = T ⊕ Q,正好是 T 触发器的特性方程。
4.3 任意进制计数器:先算位数,再选方案,最后验证自启动
十三进制计数器,需要几个触发器?2³=8 不够,2⁴=16 够,所以四个触发器,产生 16 个状态,用掉 13 个,剩 3 个无效状态。设计有三条路:置零法(计数到 13 时异步清零,简单但有瞬态)、置数法(计数到某个值时同步置入初值,状态完整)、次态方程法(直接用卡诺图设计每个触发器的次态,最稳但步骤多)。14 分的设计题要求“并检查能否自启动”,实际上是在逼你用第三条路。
自启动的含义是:电路万一被干扰进了无效状态,能不能自己回到有效循环。检查方法是把 13、14、15 三个无效状态代入你求出的状态方程,看它们的次态落在哪里。
def check_self_start(next_fn, n_total=16, n_valid=13): """从每个状态出发走一条链,看最终落点是否在 0~n_valid-1 的有效环内""" for s in range(n_total): path, cur = [], s while cur not in path and len(path) <= n_total: path.append(cur) cur = next_fn(cur) # next_fn 就是你的状态方程 print(f"起点 {s:04b} -> 落点 {cur:04b},自启动 = {cur < n_valid}") # next_fn 要换成自己化简出来的次态表达式,例如: # def next_fn(q): # q3, q2, q1, q0 = (q >> 3) & 1, (q >> 2) & 1, (q >> 1) & 1, q & 1 # return (d3 << 3) | (d2 << 2) | (d1 << 1) | d0判据很干脆:三个无效状态的最终落点都在 0~12 之内,就是能自启动;只要有一个在 13~15 之间打转,就不能。写答案时要把这一步的过程写出来,光写“能自启动”四个字,评分标准里那 2 分拿不到。
5. 易漏点排查:五处“看着会、写着错”的地方
这一章是整份笔记里最该反复看的部分。下面五条不是难点,是“以为自己会了”的盲区,考场上平均每人至少踩中两条。
5.1 易漏点一:把 8421BCD 当成二进制写
为什么漏:两个编码在数值小的时候长得几乎一样,比如 5 的 BCD 是 0101、二进制也是 101,练几道题之后大脑会自动把“转二进制”当成默认动作,看到 BCD 三个字母反而跳过。
怎么补:养成一个动作——凡是看到 BCD,先在草稿纸上方写下“每位数 4 位”这五个字,再动笔。答案写完后做一次反向检查:把结果按每 4 位断开,看能不能还原成原来的十进制数字串。0001 0010 1000 断成 1、2、8,还原成功;10000000 断不出来,立刻能发现错了。
5.2 易漏点二:扇出系数只算一侧
为什么漏:低电平侧算出来是 10,高电平侧是 20,前者数字更“整”,很多人算完第一个就停手,或者记得“取小”却忘了还有第二个约束。
怎么补:把公式写成两行,强制自己两行都写完再取 min。另外把单位换算单独作为一步写出来,20 μA 先划成 0.02 mA 再代入,这一步写在卷面上也不算多余,反而方便回头检查。
5.3 易漏点三:反演规则丢括号、丢长非号
为什么漏:反演规则的三条操作很好记,但“保持原式运算顺序”这句话在执行时最容易被省略。A + B'C反演成A'·(B + C')是对的,写成A'·B + C'就错了,而这两种写法在快速书写时几乎看不出区别。
怎么补:反演时不要在原式上改,另起一行重写;每做完一个或运算就立刻补括号。做完后再用一组具体取值代入原式和反演式,两者必须互补,代一组数比反复看十遍有效。
5.4 易漏点四:计数器自启动只画状态图不验证
为什么漏:状态转换图画完,13 个有效状态首尾相连,视觉上很“完整”,大脑就默认它闭合了。无效状态那三个点根本不在图上,自然想不起来验。
怎么补:把“13、14、15 的次态是什么”当成设计题的固定一问,写在状态图旁边而不是另起一页。只要有一个无效状态的次态还是无效状态,就必须回去改卡诺图的圈法,把那个无效状态圈进有效循环里。
5.5 易漏点五:双积分 A/D 的位数取整方向与量纲
为什么漏:分辨率要求“小于 0.1 mV”,用 2 V ÷ 0.1 mV 得 20000,然后要取 2ⁿ ≥ 20000,很多人顺手写成 n = 14(因为 2¹⁴=16384 “差不多”)。方向错了,答案就全错。
怎么补:记住一句口诀——分辨率是“上限”,位数只能往上取,不能四舍五入。2¹⁴=16384 < 20000,不够;2¹⁵=32768 ≥ 20000,取 15。量纲也要统一:2 V 和 0.1 mV 必须先化成同一单位,否则会算出 20 这种离谱的数字。
6. 复习清单:考前三天把这份卷子用透的三步
剩下的时间不多时,最忌讳的是把卷子从头到尾再看一遍。看第二遍的收益极低,因为“看懂了”和“写对了”是两件完全不同的事。比较有效的用法是三步。
第一步,限时闭卷做一遍,120 分钟,一张白纸,不许翻书。这一步的目的不是得分,是暴露问题——哪些题卡住超过 5 分钟,直接标记跳过,先把会做的拿满。
第二步,对照评分标准给自己打分,按采分点给,不给“差不多”分。这一步的收益最高,因为评分标准暴露的是“命题人认为什么值钱”。比如设计题 14 分里,状态转换图 3 分、卡诺图化简 3 分、激励方程 3 分、逻辑图 3 分、自启动分析 2 分,逻辑图只值 3 分,过程占了大头。很多人图省事只画图,等于主动放弃 11 分。
第三步,把每一处失分归到五条主线上去,做一张自查表:
| 主线 | 自查项 | 常错形式 |
|---|---|---|
| 数制与码制 | 8421BCD 与二进制能否互查 | 位宽不齐、当成二进制 |
| 逻辑代数 | 卡诺图格雷码、反演规则括号 | 01 与 10 排反、丢长非号 |
| 门电路参数 | 扇出取小、多余端接法 | 只算一侧、CMOS 悬空 |
| 时序设计 | 状态方程、激励方程、自启动 | 少写验证步骤 |
| 三大计算 | ROM 容量、A/D 位数、555 周期 | 量纲错、位数取整方向错 |
填完这张表,你会发现失分往往集中在两三条主线上,而不是均匀分布。接下来的时间就只补那两条,其他的保持手感即可。
我自己的习惯是:每次做完整套卷子,不管分数多少,都强制把评分标准抄一遍关键的采分点,抄完再回头看自己的答案缺了哪一步。这个动作花不了十分钟,但比再刷一套新卷子管用得多,因为它改的是“写答案的方式”,而不只是“会不会”。从那以后我每次考前复习,都强制走一遍这份三步清单,心里踏实很多。希望帮到你。
本文还有配套的精品资源,点击获取