字電路課設(shè)經(jīng)典:四人搶答器設(shè)計(jì)與調(diào)試深度解析)
簡(jiǎn)介這是一份數(shù)電課程設(shè)計(jì)“四人搶答器”的完整報(bào)告面向電子信息工程及相關(guān)專業(yè)學(xué)生可用于數(shù)字電子技術(shù)課程設(shè)計(jì)、綜合實(shí)訓(xùn)或競(jìng)賽備賽參考。報(bào)告基于74LS175、74LS00、74LS21、555定時(shí)器、74LS192、74LS47等常用器件實(shí)現(xiàn)搶答鑒別與鎖存、定時(shí)計(jì)數(shù)、聲光報(bào)警及數(shù)碼管顯示等功能并給出Multisim仿真和DXP PCB設(shè)計(jì)流程能幫助讀者系統(tǒng)掌握從原理圖設(shè)計(jì)、電路仿真到PCB制作與實(shí)物調(diào)試的全過程。資源為1個(gè)PDF文件大小911KB正文涵蓋設(shè)計(jì)背景、方案論證、模塊電路、仿真結(jié)果、PCB布線、安裝調(diào)試及參考文獻(xiàn)等結(jié)構(gòu)完整、便于查閱。已有6000人瀏覽學(xué)習(xí)適合需要參考完整課程設(shè)計(jì)報(bào)告或快速理解搶答器電路設(shè)計(jì)的同學(xué)下載使用。 數(shù)電課設(shè)里四人搶答器絕對(duì)稱得上“麻雀雖小五臟俱全”。別看它功能聽起來簡(jiǎn)單——四個(gè)按鍵加一個(gè)數(shù)碼管可它背后牽扯到的鎖存器、編碼器、譯碼器、計(jì)數(shù)器、555定時(shí)器幾乎把數(shù)字電路半本教材的核心內(nèi)容全串起來了。當(dāng)年我自己做這個(gè)題目時(shí)沒少熬夜調(diào)線后來又幫好幾屆學(xué)弟學(xué)妹改板子、查故障發(fā)現(xiàn)很多人不是不會(huì)看芯片手冊(cè)而是卡在“不知道整個(gè)系統(tǒng)該按什么順序設(shè)計(jì)、信號(hào)應(yīng)該走哪條路”上。這篇就按最常見的課程設(shè)計(jì)要求展開支持4人搶答、搶答后鎖定、數(shù)碼管顯示選手編號(hào)、帶30秒倒計(jì)時(shí)限制講講我從方案選型、芯片原理、模塊設(shè)計(jì)到實(shí)際排錯(cuò)的全過程。無論你是正要交課設(shè)還是想把電路吃透應(yīng)付答辯這篇文章應(yīng)該都能幫你節(jié)省不少折騰時(shí)間。1. 項(xiàng)目概述與整體設(shè)計(jì)思路1.1 四人搶答器到底在考察什么很多人上來就急著查芯片引腳圖、抄別人現(xiàn)成的電路結(jié)果做完了也說不清每個(gè)模塊為什么存在。我建議先想明白一件事這個(gè)題目為什么被各種數(shù)電課程反復(fù)選用因?yàn)樗讶惖湫碗娐芬淮涡匀剂恕5谝活愂墙M合邏輯編碼器、譯碼器負(fù)責(zé)把按鍵信息轉(zhuǎn)換成數(shù)碼管顯示第二類是時(shí)序邏輯鎖存器負(fù)責(zé)記住“誰第一個(gè)按下”計(jì)數(shù)器負(fù)責(zé)倒計(jì)時(shí)第三類是脈沖產(chǎn)生電路555定時(shí)器提供秒脈沖。一個(gè)項(xiàng)目能把這三個(gè)能力點(diǎn)完整串聯(lián)起來這就是它的價(jià)值。功能上一套標(biāo)準(zhǔn)的四人搶答器至少要滿足以下幾點(diǎn)四名選手分別用四個(gè)按鍵搶答最先按下的人有效顯示其編號(hào)之后其他人再按無效主持人按下復(fù)位鍵后系統(tǒng)清零可進(jìn)行下一輪從開始搶答到有人搶答有時(shí)間限制超時(shí)未有人應(yīng)答則提示。1.2 方案選型為什么堅(jiān)持用74系列純硬件做這種題目很多同學(xué)第一反應(yīng)是用單片機(jī)一個(gè)STC89C52或者Arduino幾行代碼就把搶答邏輯寫完數(shù)碼管一驅(qū)動(dòng)完事。但絕大多數(shù)數(shù)電課設(shè)明確要求“使用中規(guī)模集成電路實(shí)現(xiàn)”目的就是讓你手搭硬件理解時(shí)序、電平、競(jìng)爭(zhēng)冒險(xiǎn)這些真實(shí)世界的問題。用74系列純硬件方案有三個(gè)實(shí)打?qū)嵉暮锰?。第一邏輯透明。每一顆芯片負(fù)責(zé)什么功能信號(hào)從哪進(jìn)、從哪出原理圖畫出來就是你的答辯講稿。第二成本極低。74LS系列芯片大部分一兩塊錢一片面包板或者洞洞板都能搞定。第三調(diào)試過程能逼你真正理解數(shù)字電路而不是把“魔法”全丟給編譯器。缺點(diǎn)也明顯接線多、焊點(diǎn)多、排查故障費(fèi)勁稍微接錯(cuò)一根線就全盤罷工。但課程設(shè)計(jì)如果不經(jīng)歷這種折騰后面做復(fù)雜系統(tǒng)會(huì)更痛苦。2. 核心器件選型與原理拆解2.1 74LS279用RS鎖存器實(shí)現(xiàn)“先按先得”搶答器的靈魂是“鎖定”功能。四個(gè)人按鍵系統(tǒng)怎么知道誰是第一個(gè)答案是鎖存器。我用的是74LS279內(nèi)部集成了4個(gè)基本RS鎖存器S和R都是低電平有效。當(dāng)S非端為低時(shí)對(duì)應(yīng)Q輸出為高當(dāng)R非端為低時(shí)Q清零S和R都為高時(shí)輸出保持原狀態(tài)。選它的理由很直接按鍵按下時(shí)正好產(chǎn)生一個(gè)低電平可以直接接到S非端主持人復(fù)位時(shí)產(chǎn)生低脈沖接到R非端。不需要額外的電平轉(zhuǎn)換邏輯非常順。唯一要注意的禁忌是S和R不能同時(shí)為低否則鎖存器進(jìn)入不確定狀態(tài)輕則顯示亂跳重則邏輯混亂這一點(diǎn)在接線時(shí)要刻意避開。2.2 74LS148優(yōu)先編碼器與顯示編號(hào)的偏移技巧鎖定之后系統(tǒng)需要把“哪一路被觸發(fā)”編碼成二進(jìn)制編號(hào)送顯示。74LS148是8線-3線優(yōu)先編碼器輸入低電平有效輸出的是反碼。它有優(yōu)先級(jí)設(shè)計(jì)即使同一瞬間有兩路輸入有效也會(huì)選編號(hào)大的那一路輸出避免沖突。一個(gè)容易踩坑的地方74LS148輸出是反碼比如輸入I1有效時(shí)輸出不是001而是110。如果直接接74LS48譯碼器顯示會(huì)完全對(duì)不上號(hào)必須在中間加反相器轉(zhuǎn)回原碼。更隱蔽的問題在于編號(hào)偏移。如果把四人按鍵直接接到I0~I3顯示出來的是0、1、2、3而不是選手習(xí)慣的1、2、3、4。我的做法是把四個(gè)按鍵輸入接到74LS148的I1、I2、I3、I4把I0固定接地。這樣沒有按鍵時(shí)編碼器輸出0顯示0選手1按下時(shí)編碼器輸出1選手2按下時(shí)輸出2以此類推正好顯示1~4不用額外做加1電路。2.3 74LS48與數(shù)碼管的匹配細(xì)節(jié)編碼出來之后要驅(qū)動(dòng)數(shù)碼管顯示。74LS48是BCD碼轉(zhuǎn)七段譯碼器輸出高電平有效專門配共陰極數(shù)碼管。很多同學(xué)在這里栽跟頭手里拿著一只共陽極數(shù)碼管插上74LS48怎么都不亮。記住74LS48和共陽極數(shù)碼管天生不匹配換74LS47才能驅(qū)動(dòng)共陽極。課件上寫得很清楚但實(shí)物接線時(shí)一忙就容易忽略。74LS48有三個(gè)控制腳平時(shí)必須處理LT非是燈測(cè)試正常工作時(shí)接高RBI非和BI/RBO非是滅零和消隱控制正常顯示也要接高。很多人畫原理圖時(shí)忽略了這些腳實(shí)物接出來顯示全滅或亂碼查半天才發(fā)現(xiàn)是控制腳懸空導(dǎo)致的。2.4 555定時(shí)器與74LS192倒計(jì)時(shí)模塊的常用組合如果題目要求搶答有時(shí)間限制就需要倒計(jì)時(shí)模塊。秒脈沖我用經(jīng)典555多諧振蕩器產(chǎn)生74LS192作為可預(yù)置數(shù)的十進(jìn)制加減計(jì)數(shù)器。選74LS192而不是74LS161之類的計(jì)數(shù)器是因?yàn)樗旧砭椭С譁p計(jì)數(shù)還有借位輸出很適合做倒計(jì)時(shí)。555的參數(shù)計(jì)算公式是f 1.44 / ((R1 2R2) × C)。倒計(jì)時(shí)精度要求不高所以這個(gè)電路的誤差完全可以接受。這點(diǎn)在后面參數(shù)計(jì)算時(shí)我還會(huì)具體展開。3. 模塊化電路設(shè)計(jì)與參數(shù)計(jì)算3.1 搶答鎖存與互鎖電路整個(gè)搶答器最核心的部分就是鎖存和互鎖。我推薦一個(gè)經(jīng)過驗(yàn)證的接法。四個(gè)按鍵一端接地另一端分別接10kΩ上拉電阻到VCC并接到74LS279的四個(gè)S非端。這樣按鍵未按時(shí)輸入為高按下時(shí)變成低產(chǎn)生一個(gè)有效的置位脈沖。復(fù)位鍵則接地并接到R非端按下時(shí)清零。但只接鎖存器還不夠。如果不做互鎖選手1先按下后選手2再按下鎖存器2照樣會(huì)被置位最后兩個(gè)鎖存器輸出都是高顯示編號(hào)就可能被優(yōu)先級(jí)更高的輸入搶走。所以必須加“總封鎖”邏輯。我的做法是從四個(gè)鎖存器的Q輸出引到一個(gè)或門網(wǎng)絡(luò)生成一個(gè)“有人已搶答”信號(hào)A再把A和每個(gè)按鍵輸入做一個(gè)或門結(jié)果接到對(duì)應(yīng)S非端。邏輯是這樣的A 0無人搶答時(shí)按鍵按下可以直接讓S非端變低鎖存器置位一旦有一個(gè)Q輸出為1A變1所有按鍵輸入與A相或之后恒為1后續(xù)按鍵再也無法觸發(fā)新的S非端低電平。這樣才真正做到“一鎖定全局”。四路或門用一片74LS32就能完成。做一個(gè)“四輸入或門”需要三個(gè)或門再加上四個(gè)按鍵輸入或門總共需要兩片74LS32。如果想省芯片也可以用少量二極管構(gòu)成線或但面包板調(diào)試時(shí)還是整片芯片省心。3.2 編碼譯碼顯示電路鎖存器Q輸出是四路高電平信號(hào)先經(jīng)過74LS04反相器取反接到74LS148的I1、I2、I3、I4輸入端。I0固定接地I5、I6、I7接高電平。74LS148的EI非使能端接地讓它一直處于工作狀態(tài)。舉個(gè)例子走一遍信號(hào)流。選手1按下鎖存器1的Q變成1經(jīng)反相后I1為074LS148內(nèi)部判斷這個(gè)輸入有效輸出A2A1A0110。再經(jīng)74LS04第二次取反變成001送到74LS48的CBA輸入數(shù)碼管顯示“1”。如果沒有按鍵按下由于I0接地有效編碼器輸出111取反后是000數(shù)碼管顯示“0”表示無人搶答倒計(jì)時(shí)期間這個(gè)狀態(tài)很直觀。這里有個(gè)位序問題容易錯(cuò)74LS48的A是最低位B、C依次對(duì)應(yīng)二進(jìn)制高位。A2、A1、A0經(jīng)過取反后要按順序接到74LS48的CBA不能交叉。數(shù)碼管每一段串一個(gè)330Ω限流電阻再接到74LS48對(duì)應(yīng)的段輸出上。3.3 1Hz秒脈沖與倒計(jì)時(shí)參數(shù)計(jì)算倒計(jì)時(shí)需要1Hz時(shí)鐘。按前面的公式我希望f盡量接近1Hz。取C10μF則要求R12R2≈144kΩ。我選了R14.7kΩR268kΩ算下來R1 2R2 4.7k 2×68k 140.7kΩf 1.44 / (140.7k × 10μ) ≈ 1.023Hz每個(gè)脈沖周期約0.978秒30秒倒計(jì)時(shí)誤差不到1秒做課設(shè)完全夠用。實(shí)際焊接時(shí)電解電容誤差常常在20%左右所以最好在R2的位置串聯(lián)一個(gè)100kΩ電位器用萬用表頻率檔或示波器校準(zhǔn)到1Hz左右再固定。倒計(jì)時(shí)部分用兩片74LS192分別做十位和個(gè)位。秒脈沖接到個(gè)位的減計(jì)數(shù)時(shí)鐘CPD端個(gè)位的借位輸出BO非接到十位的CPD端。個(gè)位每從0減到9時(shí)產(chǎn)生一個(gè)借位負(fù)脈沖其結(jié)束時(shí)的上升沿正好讓十位減1。預(yù)置數(shù)端接30十位的D3D2D1D0設(shè)為0011個(gè)位設(shè)為0000。主持人按“開始”時(shí)先給兩片192的PL非端一個(gè)低脈沖把30裝入計(jì)數(shù)器之后秒脈沖驅(qū)動(dòng)遞減。3.4 系統(tǒng)整合與電源處理把子模塊拼到一起之前先處理電源和復(fù)位。系統(tǒng)統(tǒng)一使用5V穩(wěn)壓電源每一片芯片的VCC和GND之間就近接0.1μF陶瓷去耦電容這是很多入門者容易省略的關(guān)鍵細(xì)節(jié)。如果不加電路工作時(shí)芯片間會(huì)互相干擾尤其555在輸出脈沖時(shí)電源紋波可能讓鎖存器誤觸發(fā)。復(fù)位電路要兼顧上電自動(dòng)復(fù)位和手動(dòng)復(fù)位。可以在74LS279的R非端接一個(gè)10μF電容到地再串一個(gè)1kΩ電阻到VCC上電瞬間R非端短暫為低自動(dòng)清零。手動(dòng)復(fù)位按鈕也并聯(lián)在這個(gè)節(jié)點(diǎn)上主持人按一下所有鎖存器復(fù)位數(shù)碼管回到0。信號(hào)連接順序建議按“鎖存→編碼→譯碼→顯示”一步步來每接完一個(gè)模塊就單獨(dú)驗(yàn)證不要一次性全插上芯片再通電。4. 調(diào)試實(shí)錄常見問題與排查技巧4.1 數(shù)碼管不亮或亂碼這應(yīng)該是出現(xiàn)頻率最高的問題。我調(diào)試時(shí)第一件事永遠(yuǎn)是拿萬用表量電源確認(rèn)5V送到了每一片芯片。然后拿一根導(dǎo)線把某個(gè)數(shù)碼管段驅(qū)動(dòng)腳直接接地看對(duì)應(yīng)段會(huì)不會(huì)亮以此判斷數(shù)碼管和限流電阻是否正常。如果數(shù)碼管本身沒問題再查74LS48。兩個(gè)容易忽略的控制腳LT非和BI/RBO非必須接高。另外檢查BCD輸入順序是否接反D、C、B、A四個(gè)輸入腳只要錯(cuò)一位顯示的數(shù)字就完全不對(duì)。74LS148輸出是反碼如果中間沒加反相器或者反相器接在錯(cuò)誤的位置也會(huì)出現(xiàn)“按下編號(hào)1顯示卻是6”這種怪象。4.2 搶答無法鎖定、多路同時(shí)響應(yīng)按下按鍵手一松開顯示就消失。這種情況通常是按鍵輸入沒有接上拉電阻懸空時(shí)噪聲導(dǎo)致鎖存器狀態(tài)不穩(wěn)定。解決辦法是在按鍵和VCC之間接10kΩ上拉保證未按下的狀態(tài)是高電平。另一種狀況是多個(gè)按鍵輪流按下去數(shù)碼管的編號(hào)會(huì)跟著跳。這說明互鎖或門沒有生效。檢查或門輸出到S非端的連線是否斷開或者“總封鎖”信號(hào)A是否真的能從四路Q輸出中產(chǎn)生??梢杂萌f用表直接量A點(diǎn)電壓在任意一個(gè)Q為1時(shí)A點(diǎn)應(yīng)該接近5V如果始終為0大概率是74LS32有引腳虛接或者接線時(shí)把輸入輸出搞反了。4.3 倒計(jì)時(shí)不走或頻率偏差555這塊經(jīng)常被人忽略的是第4腳復(fù)位端。接線時(shí)如果不把它接VCC555可能一直處于復(fù)位狀態(tài)3腳永遠(yuǎn)沒有輸出。另外第5腳控制端也不能懸空要接一個(gè)0.01μF電容到地否則頻率會(huì)異常。倒計(jì)時(shí)不走還要檢查74LS192的MR復(fù)位端是否被錯(cuò)誤拉高如果懸空或者誤接高電平計(jì)數(shù)器會(huì)一直被復(fù)位永遠(yuǎn)停在預(yù)置值。還有PL非端如果始終處于低電平計(jì)數(shù)器的值會(huì)被反復(fù)裝載同樣沒辦法往下減。頻率偏差的問題相對(duì)好辦用示波器或萬用表頻率檔測(cè)555的3腳如果實(shí)測(cè)頻率不是1Hz左右就把電位器阻值微調(diào)一下直到接近1Hz。課程設(shè)計(jì)階段追求秒級(jí)準(zhǔn)確就足夠了。4.4 芯片發(fā)燙和邏輯混亂的共性原因芯片發(fā)燙九成是電源接反或者輸出短路。74LS芯片耐不了反接一旦VCC和GND接反幾秒內(nèi)就會(huì)發(fā)熱到燙手這種通常只能換新芯片。上電前用萬用表蜂鳴檔測(cè)一下VCC和GND之間有沒有短路能避免大部分悲劇。邏輯混亂還有一類隱蔽原因是輸入端懸空。TTL電路的輸入端懸空時(shí)等效高電平看似“能用”實(shí)際上極易受到電源波動(dòng)和周圍線路干擾。所有暫時(shí)不用的輸入端都要按邏輯需要接VCC或GND不能放著不管。5. 最后說說我做這個(gè)課設(shè)的幾點(diǎn)體會(huì)這個(gè)項(xiàng)目做下來最深的感觸是“先畫框圖再連電路”這句話真不是廢話。我第一版直接照著網(wǎng)上的原理圖在面包板上懟結(jié)果出了問題完全不知道從哪里查起。后來老老實(shí)實(shí)畫了系統(tǒng)框圖標(biāo)清楚每個(gè)模塊之間的信號(hào)流向一步一驗(yàn)證反而一天就調(diào)通了。調(diào)試手法上一定要學(xué)會(huì)分段測(cè)量。信號(hào)從按鍵進(jìn)來先用萬用表量鎖存器S非端有沒有被拉低再量Q端有沒有變高再往后量編碼器輸入、輸出、譯碼器輸出。走到哪一步信號(hào)斷了問題就鎖定在哪一段比瞎猜高效得多。另外課程設(shè)計(jì)報(bào)告不要最后一天才寫。把你調(diào)試過程中真實(shí)遇到的怪問題、排查思路、解決過程寫進(jìn)去比如互鎖沒加導(dǎo)致編號(hào)跳動(dòng)或者555默認(rèn)頻率校準(zhǔn)這種細(xì)節(jié)老師閱卷時(shí)一眼就能看出你是真的動(dòng)手做過而不是純抄網(wǎng)圖。四人搶答器雖然看起來基礎(chǔ)但只要你把每一個(gè)模塊的原理都講透了答辯時(shí)完全不怕被提問。本文還有配套的精品資源點(diǎn)擊獲取