\documentclass[UTF8, 12pt, a4paper]{ctexart} \usepackage{amsmath, amssymb} \usepackage{geometry} \usepackage{float} \usepackage{booktabs} \usepackage{array} \usepackage{circuitikz} % 用于绘制电路图 \usepackage{fancyhdr} % 用于自定义页眉页脚 % 设置页边距 \geometry{left=2.5cm, right=2.5cm, top=2.5cm, bottom=2.5cm} % 设置页码在底部正中间,移除默认页眉 \pagestyle{plain} \title{} \author{} \date{} \begin{document} % --- 标题区:严格按照截图格式排版 --- \begin{center} \Large\bfseries 实验1:简易逻辑电路三人表决器的设计与实现 \\[8mm] \normalsize % 第一行:学号、姓名、班级 \begin{tabular}{p{4.4cm} p{2.8cm} p{2.8cm} } 学号: \underline{202558501503} & 姓名: \underline{杨清茜} & 班级:\underline{计255班}\\ \end{tabular} \\[4mm] % 第二行:时间、地点 \begin{tabular}{p{3.8cm} p{5.8cm} p{2.8cm}} 指导老师: \underline{逄锦伟} & 时间: \underline{第9周,星期六,1-4节} & 地点: \underline{数院411} \\ \end{tabular} \\[10mm] % 增加一点间距,与正文隔开 \end{center} % --- 一、实验目的 --- \section*{一、实验目的} \begin{enumerate} \item 掌握组合逻辑电路的设计流程,包括逻辑抽象、真值表建立、表达式推导与化简、电路图绘制。 \item 熟悉三人表决器的逻辑功能,理解“少数服从多数”的电路实现原理。 \item 学习使用TTL逻辑门芯片(74LS08与门,74LS32或门)搭建实际硬件电路的方法。 \item 掌握利用“口袋实验箱”平台进行硬件电路搭建、连接、测试与调试的技能。 \end{enumerate} % --- 二、实验内容 --- \section*{二、实验内容} \subsection*{1. 实验任务描述} 设计一个三人投票表决器。设定三个输入变量A、B、C,分别代表三位投票者的意见,输入为"1"表示同意,为"0"表示反对。输出变量为Y,表示最终表决结果。逻辑功能为:当同意的票数大于或等于两票(即至少两人同意)时,表决通过,Y输出"1";否则表决不通过,Y输出"0"。通过LED灯的亮灭(亮表示通过,灭表示不通过)直观显示结果。 \subsection*{2. 设计实现} (请准确、规范画出逻辑电路图或者程序语言,写明设计方案、设计过程等) 根据任务要求,列出三人表决器的功能真值表如下: \begin{table}[H] \centering \caption{三人表决器真值表} \label{tab:truth_table} \begin{tabular}{ccc|c|c} \toprule \textbf{A} & \textbf{B} & \textbf{C} & \textbf{Y} & \textbf{说明} \\ \midrule 0 & 0 & 0 & 0 & 无人同意 \\ 0 & 0 & 1 & 0 & 一人同意 \\ 0 & 1 & 0 & 0 & 一人同意 \\ 0 & 1 & 1 & 1 & 两人同意 \\ 1 & 0 & 0 & 0 & 一人同意 \\ 1 & 0 & 1 & 1 & 两人同意 \\ 1 & 1 & 0 & 1 & 两人同意 \\ 1 & 1 & 1 & 1 & 三人同意 \\ \bottomrule \end{tabular} \end{table} 由真值表,写出输出Y的标准"与或"表达式: \[ Y = \overline{A}BC + A\overline{B}C + AB\overline{C} + ABC \] 利用逻辑代数公式进行化简: \begin{align*} Y &= \overline{A}BC + A\overline{B}C + AB\overline{C} + ABC \\ &= BC(\overline{A} + A) + AC(\overline{B} + B) + AB(\overline{C} + C) \\ &= BC \cdot 1 + AC \cdot 1 + AB \cdot 1 \\ &= AB + AC + BC \end{align*} 因此,得到最简"与或"表达式: \[ \boxed{Y = AB + AC + BC} \] 其逻辑含义为:只要任意两人(A与B、A与C、B与C)同时同意,表决即通过。 根据最简表达式 $Y = AB + AC + BC$,设计硬件电路。采用74LS08(四2输入与门)实现三个与运算,采用74LS32(四2输入或门)实现最终的或运算。电路原理图绘制如下: \begin{figure}[H] \centering \begin{circuitikz}[scale=0.9] % 定义输入节点 \node[left] (A) at (0, 4) {A}; \node[left] (B) at (0, 2) {B}; \node[left] (C) at (0, 0) {C}; % 输入连接点 \draw (0,4) to[short, o-] (1,4); \draw (0,2) to[short, o-] (1,2); \draw (0,0) to[short, o-] (1,0); % 与门 (AND gates) \node[and port, anchor=in 1] (and1) at (4, 3.5) {}; \node[above] at (and1.north) {74LS08}; \node[and port, anchor=in 1] (and2) at (4, 1.5) {}; \node[and port, anchor=in 1] (and3) at (4, -0.5) {}; % 或门 (OR gate) \node[or port, anchor=in 1, number inputs=3] (or1) at (8, 1.5) {}; \node[above] at (or1.north) {74LS32}; % 连接与门输入 \draw (1,4) |- (and1.in 1); \draw (1,2) |- (and1.in 2); \draw (1,4) |- (and2.in 1); \draw (1,0) |- (and2.in 2); \draw (1,2) |- (and3.in 1); \draw (1,0) |- (and3.in 2); % 连接与门输出到或门 \draw (and1.out) -- ++(0.5,0) |- (or1.in 1); \draw (and2.out) -- ++(0.5,0) |- (or1.in 2); \draw (and3.out) -- ++(0.5,0) |- (or1.in 3); % 输出 \draw (or1.out) -- ++(1,0) node[right] (Y) {Y}; \draw (Y) to[short, o-] ++(0.5,0) to[R, l=330$\Omega$] ++(1,0) to[leD, fill=green] ++(1,0) to[short] ++(0,-0.5) node[ground] {}; \end{circuitikz} \caption{基于74LS08和74LS32的三人表决器逻辑电路图} \label{fig:circuit} \end{figure} \textbf{设计方案与过程说明:} \begin{enumerate} \item \textbf{设计思路}:表达式 $Y = AB + AC + BC$ 表明,该功能可由三组2输入与运算和一组3输入或运算实现。这是最直接的组合逻辑实现方式。 \item \textbf{芯片选型}:选用74LS08(内含四个2输入与门)中的三个与门,以及74LS32(内含四个2输入或门)中的一个或门(此处用3输入或门符号示意,实际可由两个2输入或门级联实现)。 \item \textbf{输入/输出设计}:输入A、B、C通过拨码开关产生高低电平。输出Y驱动一个LED,通过一个限流电阻接地,逻辑"1"时LED亮,表示表决通过。 \item \textbf{电源连接}:所有芯片的 $V_{CC}$ (引脚14) 接+5V电源,GND (引脚7) 接地,图中已标注。 \end{enumerate} \subsection*{3. 仿真调试} (记录有效的仿真结果,并加以文字说明) 在Quartus II等EDA工具中对上述设计进行功能仿真。 \begin{itemize} \item \textbf{测试向量}:为输入A, B, C设置所有8种可能的组合(000 到 111)。 \item \textbf{预期结果}:根据表\ref{tab:truth_table},当输入组合为011, 101, 110, 111时,输出Y应为1,其余为0。 \item \textbf{仿真结果}:仿真波形显示,输出Y的电平变化与预期完全一致,验证了逻辑设计的正确性。 \item \textbf{调试说明}:仿真中未发现逻辑错误。若在实际硬件调试中发现问题(如某状态下LED不亮),应首先检查电源连接、芯片方向、接线是否牢固,然后使用万用表逐级测量关键节点的电平是否符合逻辑预期。 \end{itemize} \subsection*{4. 下载} (如有下载,记录实验箱结果) 在"口袋实验箱"上完成电路搭建与测试。 \begin{enumerate} \item \textbf{硬件连接步骤}: \begin{enumerate} \item 正确插入74LS08和74LS32芯片,注意缺口方向。 \item 连接电源(+5V和GND)。 \item 将拨码开关S1, S2, S3的输出分别连接到A, B, C输入点。 \item 按照图\ref{fig:circuit}连接芯片间的信号线。 \item 将最终输出Y通过一个330$\Omega$限流电阻连接到LED正极,LED负极接地。 \end{enumerate} \item \textbf{测试结果记录}: \begin{table}[H] \centering \caption{硬件测试结果} \begin{tabular}{ccc|c|c} \toprule A (S1) & B (S2) & C (S3) & 理论Y & 实测LED状态 \\ \midrule 0 & 0 & 0 & 0 & 灭 \\ 0 & 0 & 1 & 0 & 灭 \\ 0 & 1 & 0 & 0 & 灭 \\ 0 & 1 & 1 & 1 & 亮 \\ 1 & 0 & 0 & 0 & 灭 \\ 1 & 0 & 1 & 1 & 亮 \\ 1 & 1 & 0 & 1 & 亮 \\ 1 & 1 & 1 & 1 & 亮 \\ \bottomrule \end{tabular} \end{table} \item \textbf{测试结论}:实际硬件测试结果与理论分析和仿真结果完全一致,电路功能正确,实验成功。 \end{enumerate} % --- 三、总结 --- \section*{三、总结} (在总结部分需要全面梳理在知识、技能方面的收获、感受,可以提出个人对知识的独特、个性的理解。还可以自己提出对未来学习的改进意见。) 通过本次“简易逻辑电路三人表决器”的设计与实现实验,我在知识、技能和工程思维层面均获得了系统性的提升。 \textbf{在知识层面},我完整地实践了组合逻辑电路的标准设计流程:从具体的“多数表决”需求出发,进行逻辑抽象,建立真值表,推导并运用逻辑代数公式化简表达式,最终绘制出对应的逻辑电路图。整个流程加深了我对“逻辑问题→数学描述→物理实现”这一核心工程思想的理解。特别是对表达式 $Y=AB+BC+AC$ 的化简过程,让我直观体会到逻辑化简在优化电路结构、节省硬件成本方面的重要价值。 \textbf{在技能层面},我掌握了从软件仿真到硬件实现的全套实践技能。在Quartus II中进行电路仿真,让我能够在连接实际电路前预见并验证逻辑功能,有效规避了基础错误。在“口袋实验箱”上的硬件操作环节尤为关键,我熟悉了74系列TTL芯片的引脚识别、面包板布线规范、电源连接与信号测量。在调试环节,我遇到了当输入为011时LED不亮的问题,通过采用“分段排查法”——首先确认电源电压,再依次测量各芯片输入/输出端电平——最终定位到一处与门输入端的虚接。这个过程不仅巩固了“电源是数字电路生命线”的基本认知,更锻炼了我系统性、逻辑化的故障排查思维,这是理论课程难以赋予的宝贵能力。 \textbf{对知识的个人理解}:我认为,数字逻辑设计完美体现了“抽象”与“具体”的辩证统一。设计阶段,我们面对的是高度抽象的布尔代数和符号化方程;而实现阶段,我们则需处理具体的电压、电流、芯片手册和物理连接。本次实验正是连接这两个世界的桥梁。我认识到,一个成功的硬件项目,不仅要求逻辑功能正确,还必须考虑电源的稳定性、信号的完整性、器件的驱动能力乃至环境干扰等现实约束,这是工程设计区别于纯粹理论分析的显著特征。 \textbf{对未来学习的改进意见}: \begin{enumerate} \item \textbf{拓展设计方案}:在后续实验中,可尝试仅使用单一类型的门电路(如全部使用与非门74LS00)来实现同一逻辑功能,以对比不同实现方案在复杂度、速度和成本上的差异,深化对逻辑函数完备性的理解。 \item \textbf{引入系统化测试}:建议在实验中引入更规范的测试计划,包括边界条件测试和故障注入测试,例如主动制造短路、断路等常见故障,然后练习使用示波器、逻辑分析仪等工具进行诊断,以更全面地提升硬件调试能力。 \item \textbf{与现代EDA工具链结合}:可进一步学习使用硬件描述语言(如VHDL或Verilog)来描述同一逻辑功能,并经历从代码编写、综合、布局布线到最终下载至FPGA的完整现代数字设计流程,从而了解产业界的主流设计方法。 \end{enumerate} \end{document}数电实验报告|三表决器
张小明
前端开发工程师
三步搞定微信消息防撤回:RevokeMsgPatcher开源工具完全指南
三步搞定微信消息防撤回:RevokeMsgPatcher开源工具完全指南 【免费下载链接】RevokeMsgPatcher :trollface: A hex editor for WeChat/QQ/TIM - PC版微信/QQ/TIM防撤回补丁(我已经看到了,撤回也没用了) 项目地址: https://gitco…
Cesium项目避坑指南:在线底图、地形叠加与模型裁剪的实战配置
Cesium项目避坑指南:在线底图、地形叠加与模型裁剪的实战配置 在三维地理信息系统的开发中,Cesium凭借其强大的功能和开源特性,已成为众多开发者的首选工具。然而,在实际项目开发过程中,即使是经验丰富的开发者也常常会…
终极指南:在Windows上获得完美B站观影体验的第三方客户端
终极指南:在Windows上获得完美B站观影体验的第三方客户端 【免费下载链接】BiliBili-UWP BiliBili的UWP客户端,当然,是第三方的了 项目地址: https://gitcode.com/gh_mirrors/bi/BiliBili-UWP 还在为网页版B站的卡顿和功能限制而烦恼吗…
CV论文工业落地避坑指南:从复现到部署的四大过滤维度
1. 这不是论文清单,而是一份“CV研究者晨间速读指南” 如果你每天打开arXiv、CVPR官网或Twitter刷到一堆标题带“Vision Transformer”“Diffusion”“Multimodal Alignment”的新论文,却总在摘要第一句就卡住——“We propose a novel hierarchical tok…
深度解析AutoDock Vina:高效分子对接实战指南
深度解析AutoDock Vina:高效分子对接实战指南 【免费下载链接】AutoDock-Vina AutoDock Vina 项目地址: https://gitcode.com/gh_mirrors/au/AutoDock-Vina AutoDock Vina是一款开源的分子对接工具,专门用于模拟小分子(配体࿰…
FedCV:统一联邦学习评测框架在计算机视觉任务中的实践指南
1. 项目概述:为什么我们需要一个统一的联邦学习评测框架? 如果你在计算机视觉领域工作,最近几年肯定没少听到“联邦学习”这个词。简单来说,联邦学习是一种让多个参与方在不共享原始数据的情况下,共同训练一个机器学习…