简介华南理工大学《数字电子技术》期末试卷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 这个数二进制写法是 100000008421BCD 写法是 0001 0010 1000也就是 1、2、8 三位数字各自编码后拼起来。干扰项的设计套路就在这里一个是对的编码一个是错的位宽一个是把 BCD 当二进制。小数部分更能拉开差距。2006.375 的整数部分用“除 2 取余、逆序排列”小数部分用“乘 2 取整、顺序排列”0.375×20.75 取 00.75×21.5 取 10.5×21.0 取 1得 011合起来 11111010110.011。手算时建议先用十六进制过渡2006 7D6H出错概率会低很多。# 十进制转二进制整数部分除 2 取余小数部分乘 2 取整 def dec2bin(x, frac_bits12): 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 BC的反演式是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 mAIOH(max)输出高电平最大拉电流-0.4 mAIiL输入低电平电流≤ -1 mAIiH输入高电平电流≤ 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÷200.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·(A1A0) D1·(A1A0) D2·(A1·A0) D3·(A1·A0)所以用它实现逻辑函数本质是把目标函数整理成“最小项之和”的标准形式然后按地址变量的组合把系数逐项对上。函数变量数等于地址端数时四个数据端直接接 0 或 1函数变量比地址端多一个时用降维法把多出来的那个变量挪到数据端。卷面这道题给的是双 4 选 1 器件 74LS153它的关键结构是内部两片 4 选 1 共用一组地址端各自有独立的使能端。所以要想扩展成 8 选 1只能靠“另一片的使能端接到高位地址”来实现而不是再加地址线。输入使能 / 地址输出使能 1输出为 0与数据无关使能 0地址选定输出对应的 Di评分标准把这道题拆成四步写出最小项之和的标准形式3 分、把 4 选 1 扩展成 8 选 12 分、正确确定地址变量与 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*约束基本 RSQ* S RQRS 0两输入不能同时为 1DQ* D无JKQ* JQ KQ无TQ* T ⊕ Q无状态方程是从电路结构推出来的次态表达式由次态卡诺图化简得到激励方程是反过来问“要让 Q* 变成这个样子J、K 该给什么”。做法是对比系数把状态方程整理成Q* (… )Q (… )Q的形式与JQ KQ逐项对照Q前面的系数就是 JQ前面的系数就是 K。基本 RS 的约束条件写成RS 0或R S 1都算对但写成RS0就完全反了。JK 改 T 的方法是把两个输入并在一起J K T此时Q* TQ TQ T ⊕ Q正好是 T 触发器的特性方程。4.3 任意进制计数器先算位数再选方案最后验证自启动十三进制计数器需要几个触发器2³8 不够2⁴16 够所以四个触发器产生 16 个状态用掉 13 个剩 3 个无效状态。设计有三条路置零法计数到 13 时异步清零简单但有瞬态、置数法计数到某个值时同步置入初值状态完整、次态方程法直接用卡诺图设计每个触发器的次态最稳但步骤多。14 分的设计题要求“并检查能否自启动”实际上是在逼你用第三条路。自启动的含义是电路万一被干扰进了无效状态能不能自己回到有效循环。检查方法是把 13、14、15 三个无效状态代入你求出的状态方程看它们的次态落在哪里。def check_self_start(next_fn, n_total16, n_valid13): 从每个状态出发走一条链看最终落点是否在 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 BC反演成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 周期量纲错、位数取整方向错填完这张表你会发现失分往往集中在两三条主线上而不是均匀分布。接下来的时间就只补那两条其他的保持手感即可。我自己的习惯是每次做完整套卷子不管分数多少都强制把评分标准抄一遍关键的采分点抄完再回头看自己的答案缺了哪一步。这个动作花不了十分钟但比再刷一套新卷子管用得多因为它改的是“写答案的方式”而不只是“会不会”。从那以后我每次考前复习都强制走一遍这份三步清单心里踏实很多。希望帮到你。本文还有配套的精品资源点击获取