計(jì)全攻略:從編碼器到鎖存器的數(shù)字電路實(shí)戰(zhàn))
簡(jiǎn)介面向數(shù)字電子技術(shù)課程設(shè)計(jì)的四人搶答器完整設(shè)計(jì)說(shuō)明書(shū)適合電子信息工程及相關(guān)專業(yè)學(xué)生用于課程鞏固與綜合訓(xùn)練系統(tǒng)梳理門(mén)電路、觸發(fā)器、計(jì)數(shù)器、定時(shí)器等知識(shí)。文檔完整覆蓋設(shè)計(jì)任務(wù)、方案論證、實(shí)現(xiàn)步驟圍繞74LS175、74LS00等數(shù)字芯片以及555定時(shí)器、74LS47譯碼器、74LS192計(jì)數(shù)器細(xì)致說(shuō)明搶答、計(jì)時(shí)、鎖存、聲光報(bào)警電路的搭建與調(diào)試思路并給出Multisim仿真、PCB制作流程。包內(nèi)為1個(gè)PDF文件壓縮包大小911KB內(nèi)容緊湊便于閱讀打印目前已有6000人學(xué)習(xí)下載。讀者可從中獲取課程設(shè)計(jì)任務(wù)書(shū)、工作原理分析、元器件清單、仿真驗(yàn)證與PCB制作要點(diǎn)等完整說(shuō)明書(shū)式參考也可視為數(shù)字電路綜合應(yīng)用的案例筆記對(duì)完成同類課程設(shè)計(jì)或理解數(shù)字系統(tǒng)設(shè)計(jì)方法很有幫助。 數(shù)電課程設(shè)計(jì)這東西說(shuō)難不難但要說(shuō)輕松過(guò)關(guān)也真不一定。尤其是四人搶答器這種經(jīng)典題目幾乎每個(gè)學(xué)校、每個(gè)版本的數(shù)電教材里都會(huì)出現(xiàn)網(wǎng)上資料一大堆PDF版本更是滿天飛可真正能把原理講透、能把坑提前踩平的分享反而不多。我當(dāng)年做這個(gè)題目的時(shí)候拿著下載來(lái)的“參考模板”照著連完線結(jié)果仿真能跑、實(shí)物一上電就各種怪問(wèn)題前前后后折騰了好幾天。這篇就把我完整做過(guò)一遍的思路、選型、實(shí)操過(guò)程和排錯(cuò)經(jīng)驗(yàn)整理出來(lái)給正在為這門(mén)課頭疼的同學(xué)一個(gè)可以直接“抄作業(yè)”的版本也讓你知道每一步為什么要這么做而不只是照著畫(huà)。四人搶答器的核心需求其實(shí)就三條第一四個(gè)人各自有按鍵誰(shuí)先按下誰(shuí)有效第二一旦有人搶答成功其他人的按鍵立刻失效不能出現(xiàn)“兩個(gè)人同時(shí)亮燈”的情況第三要有清晰的聲光提示最好還能顯示是幾號(hào)選手搶到了。圍繞這三條整個(gè)設(shè)計(jì)的邏輯框架就出來(lái)了編碼、鎖存、譯碼顯示、發(fā)聲提示。把這幾個(gè)功能模塊拆開(kāi)逐個(gè)解決課程設(shè)計(jì)的主體就完成了大半。1. 設(shè)計(jì)思路與方案選型1.1 組合邏輯方案還是單片機(jī)方案現(xiàn)在網(wǎng)上搜“四人搶答器”會(huì)看到兩大類做法一類是用純數(shù)字邏輯芯片搭出來(lái)的組合邏輯電路另一類是用單片機(jī)比如51、STM32寫(xiě)程序?qū)崿F(xiàn)的“偽搶答器”。我建議做數(shù)電課程設(shè)計(jì)的時(shí)候老老實(shí)實(shí)選純邏輯芯片方案不要一上來(lái)就想著用單片機(jī)。為什么這么說(shuō)因?yàn)檫@門(mén)課叫數(shù)字電子技術(shù)考察的就是你對(duì)編碼器、觸發(fā)器、計(jì)數(shù)器、譯碼器這些基礎(chǔ)器件的理解和運(yùn)用。用單片機(jī)寫(xiě)個(gè)幾十行的C語(yǔ)言按鍵掃描、優(yōu)先級(jí)判斷都是軟件邏輯老師在答辯時(shí)一問(wèn)“74LS148的真值表怎么推導(dǎo)的”“鎖存器的保持功能是怎么實(shí)現(xiàn)的”你答不上來(lái)分?jǐn)?shù)直接打折扣。反過(guò)來(lái)純硬件方案雖然連線多、調(diào)試麻煩一點(diǎn)但每一個(gè)模塊都在紙面上、在芯片管腳上原理看得見(jiàn)摸得著答辯時(shí)也更有底氣。1.2 器件選型的幾點(diǎn)考慮確定走純邏輯方案之后接下來(lái)就是選具體芯片。四人搶答器的經(jīng)典搭配是這樣的優(yōu)先編碼器用74LS148鎖存器用74LS279或74LS373譯碼顯示用CD4511加共陰數(shù)碼管定時(shí)和發(fā)聲用555定時(shí)器。這套組合是幾十年來(lái)無(wú)數(shù)課程設(shè)計(jì)驗(yàn)證過(guò)的成熟方案資料多、芯片便宜、邏輯清晰非常適合作為課程設(shè)計(jì)的主干。選型的時(shí)候有幾個(gè)細(xì)節(jié)要注意。74LS148是8線-3線優(yōu)先編碼器我們只用4路輸入剩下的輸入引腳要處理妥當(dāng)不能懸空。鎖存器我推薦74LS279它是4個(gè)R-S鎖存器集成在一起的芯片專門(mén)為搶答器這類場(chǎng)景設(shè)計(jì)的用起來(lái)非常順手。顯示部分如果選CD4511那數(shù)碼管必須是共陰極的這個(gè)特別容易搞錯(cuò)買(mǎi)的時(shí)候一定要問(wèn)清楚。555定時(shí)器在這里的作用有兩個(gè)一個(gè)是產(chǎn)生搶答成功后的提示音另一個(gè)是產(chǎn)生幾秒鐘的復(fù)位延時(shí)后面會(huì)詳細(xì)說(shuō)。2. 核心模塊原理與關(guān)鍵參數(shù)2.1 優(yōu)先編碼器搶答器的“裁判”優(yōu)先編碼器解決的是“同時(shí)按下怎么辦”的問(wèn)題。74LS148的優(yōu)先邏輯是輸入序號(hào)越大優(yōu)先級(jí)越高對(duì)應(yīng)到我們的接線上就是讓1號(hào)選手的按鍵接在優(yōu)先級(jí)最低的輸入上4號(hào)選手接在優(yōu)先級(jí)最高的輸入上。這樣即使兩人幾乎同時(shí)按下電路也能判定編號(hào)大的選手搶答成功從硬件層面徹底避免了“雙人同時(shí)亮燈”的尷尬。這里有一個(gè)容易被忽略的細(xì)節(jié)74LS148的輸出是反碼也就是說(shuō)輸入4號(hào)鍵對(duì)應(yīng)二進(jìn)制100輸出的是3位反碼011。如果直接把這個(gè)反碼送給譯碼器顯示的數(shù)字就會(huì)是反的。解決辦法有兩個(gè)——要么在中間加反相器把反碼轉(zhuǎn)回原碼要么利用CD4511的輸入特性做轉(zhuǎn)換。我實(shí)際做的時(shí)候用了三片74LS04反相器成本很低邏輯也直觀接線時(shí)多花幾分鐘但后續(xù)調(diào)試省了很多事。2.2 鎖存器記住誰(shuí)先按下鎖存器是整個(gè)搶答器里最靈魂的部分。它的邏輯功能說(shuō)起來(lái)很簡(jiǎn)單某個(gè)選手按下按鍵后對(duì)應(yīng)的鎖存器輸出鎖定為有效電平同時(shí)這個(gè)有效電平會(huì)反饋給編碼器的使能端把編碼器“關(guān)掉”這樣后面再按其他鍵就無(wú)效了。74LS279內(nèi)部集成了4個(gè)獨(dú)立的R-S鎖存器每個(gè)鎖存器有1個(gè)置位端和1個(gè)復(fù)位端。把選手按鍵接置位端按下即置位輸出高電平把主持人復(fù)位鍵接復(fù)位端按下即清零準(zhǔn)備下一輪搶答。這個(gè)芯片很好買(mǎi)也好焊唯一要注意的是R-S鎖存器的約束條件——置位和復(fù)位不能同時(shí)有效所以在連主持人復(fù)位鍵的時(shí)候要確保復(fù)位邏輯不會(huì)和選手按鍵信號(hào)打架。我做的電路里復(fù)位鍵是獨(dú)立的一個(gè)按鈕直接接電源和地不經(jīng)過(guò)任何邏輯門(mén)從根本上規(guī)避了這個(gè)風(fēng)險(xiǎn)。2.3 555定時(shí)器在這里扮演什么角色很多人不理解為什么搶答器里要放一個(gè)555定時(shí)器。其實(shí)它的角色很重要一是產(chǎn)生搶答成功后的“滴”聲提示音二是為整個(gè)系統(tǒng)提供幾秒鐘的顯示保持時(shí)間讓主持人看清是幾號(hào)選手搶答后再手動(dòng)復(fù)位。我用的是555定時(shí)器的單穩(wěn)態(tài)模式。單穩(wěn)態(tài)的意思就是給它一個(gè)觸發(fā)脈沖它的輸出會(huì)維持一段固定的高電平時(shí)間時(shí)間長(zhǎng)短由外接的電阻R和電容C決定公式是T 1.1RC。我選了R100kΩ、C47μF算下來(lái)保持時(shí)間約5.17秒足夠主持人看清顯示結(jié)果。發(fā)聲部分用了一個(gè)無(wú)源蜂鳴器串聯(lián)一個(gè)100Ω的限流電阻接到555的輸出端搶答成功的那一瞬間會(huì)響一聲短促的“嘀”提示音不要太長(zhǎng)不然會(huì)蓋過(guò)后續(xù)的交流環(huán)節(jié)。這里要特別提醒一下計(jì)算延時(shí)的時(shí)候別只看標(biāo)稱值電容的誤差通常在±20%左右焊上去之后實(shí)測(cè)延時(shí)可能會(huì)偏長(zhǎng)或偏短這是正常現(xiàn)象。你要是希望延時(shí)精確到秒級(jí)可以用可調(diào)電阻代替固定電阻調(diào)起來(lái)更方便。3. 完整實(shí)操流程與仿真驗(yàn)證3.1 用仿真軟件先把邏輯跑通我強(qiáng)烈建議不要一上來(lái)就焊板子先花一兩個(gè)小時(shí)在仿真軟件里把電路搭一遍。我用的是Multisim當(dāng)然你用Proteus或者在線仿真平臺(tái)也行關(guān)鍵是先把邏輯關(guān)系驗(yàn)證清楚。仿真搭建的順序是先放74LS148編碼器把4個(gè)按鍵通過(guò)上拉電阻接好按鍵按下時(shí)輸入低電平有效再放74LS279鎖存器把按鍵信號(hào)接到置位端鎖存器輸出再接回編碼器的使能控制然后放74LS04反相器把反碼轉(zhuǎn)成原碼最后接CD4511譯碼器和數(shù)碼管。全部連完后用虛擬按鍵模擬4個(gè)選手分別搶答觀察數(shù)碼管顯示是否正確、后續(xù)按鍵是否被屏蔽。仿真有個(gè)好處是能隨時(shí)看各個(gè)節(jié)點(diǎn)的電平發(fā)現(xiàn)問(wèn)題直接在原理圖上改比焊接后再拆了重焊效率高太多。我第一次仿真的時(shí)候遇到一個(gè)典型的低級(jí)錯(cuò)誤74LS148的使能端E1我直接接地了導(dǎo)致編碼器一直被禁用怎么按都沒(méi)反應(yīng)。后來(lái)查手冊(cè)才發(fā)現(xiàn)這個(gè)芯片的使能端是低電平有效要讓它正常工作必須把E1接低電平同時(shí)把E0、GS這些輸出端處理好。這種細(xì)節(jié)光看文字可能記不住但自己搭一遍電路、查一遍真值表就再也不會(huì)忘了。3.2 面包板驗(yàn)證仿真和實(shí)物的差距在哪仿真通過(guò)之后我建議先用面包板插一遍電路驗(yàn)證實(shí)物邏輯。面包板的好處是即插即用改線方便特別適合課程設(shè)計(jì)這種需要反復(fù)調(diào)整的場(chǎng)景。我當(dāng)初就是直接在面包板上把整個(gè)電路驗(yàn)證無(wú)誤后才去焊洞洞板的。面包板接線有幾個(gè)容易踩的坑。第一面包板上下兩排通常分別是電源和地但中間左右兩半的電源軌是不連通的需要額外用跳線把兩邊接起來(lái)。第二74LS系列芯片的電源引腳和地引腳位置固定一般左下角是地、右上角是電源插的時(shí)候要看清缺口方向不能插反否則芯片會(huì)發(fā)燙甚至燒毀。第三按鍵一定要接上拉電阻不然按下時(shí)輸入電平不確定邏輯會(huì)隨機(jī)跳變。我在面包板驗(yàn)證階段發(fā)現(xiàn)了一個(gè)仿真相較難發(fā)現(xiàn)的問(wèn)題按鍵抖動(dòng)導(dǎo)致偶爾出現(xiàn)“誤觸發(fā)”。手指按下按鍵的瞬間機(jī)械觸點(diǎn)會(huì)快速通斷幾次這個(gè)抖動(dòng)信號(hào)會(huì)被芯片當(dāng)成多次按下處理導(dǎo)致鎖存器狀態(tài)不穩(wěn)定。解決辦法是在按鍵兩端并聯(lián)一個(gè)0.1μF的瓷片電容做硬件消抖或者用555定時(shí)器構(gòu)成單穩(wěn)態(tài)電路做軟件消抖。課程設(shè)計(jì)里我用了最簡(jiǎn)單的電容消抖實(shí)測(cè)效果不錯(cuò)。3.3 洞洞板焊接與布局經(jīng)驗(yàn)面包板驗(yàn)證通過(guò)后就可以轉(zhuǎn)移到洞洞板上正式焊接了。焊接這一步考驗(yàn)的不是電路知識(shí)而是耐心和整潔度。我的布局習(xí)慣是把電路按功能分區(qū)左上角放編碼器區(qū)域左下角放鎖存器區(qū)域中間放譯碼顯示區(qū)域右側(cè)放555定時(shí)器和蜂鳴器區(qū)域電源入口放在角落。每個(gè)芯片的電源和地先在背面就近連接再統(tǒng)一匯到電源軌上避免滿天飛線。數(shù)碼管我用了共陰極的記得把公共陰極接到地而不是電源如果接到電源上數(shù)碼管直接不亮或者亂碼這是我實(shí)際踩過(guò)的坑焊之前一定確認(rèn)好引腳定義。焊接順序也很有講究先從矮小的元件開(kāi)始焊比如電阻、瓷片電容、芯片座再焊按鍵、數(shù)碼管最后焊電源線和蜂鳴器。芯片座一定要用原因很簡(jiǎn)單——萬(wàn)一芯片冒煙燒了換個(gè)新的就行不用把焊好的板子全拆了。我后來(lái)修板子的時(shí)候無(wú)數(shù)次慶幸自己用了芯片座。3.4 上電調(diào)試的分步策略整塊板子焊完之后不要直接通電看效果要分步調(diào)試。先把電源和地用萬(wàn)用表確認(rèn)沒(méi)有短路再通電測(cè)量各芯片電源腳電壓是否正常。然后單獨(dú)測(cè)試數(shù)碼管直接把它的段選引腳依次接高電平確認(rèn)每一段都能亮再測(cè)試CD4511的譯碼功能。接著單獨(dú)測(cè)編碼器手動(dòng)給輸入引腳加低電平看編碼輸出是否和真值表一致。最后才把所有模塊連接起來(lái)整體跑一遍搶答流程。這一步看似繁瑣實(shí)際上是最快發(fā)現(xiàn)問(wèn)題的方式。我有一次整個(gè)板子上電后數(shù)碼管顯示亂碼排查了半天最后發(fā)現(xiàn)是CD4511的鎖存端LE沒(méi)有接對(duì)它默認(rèn)應(yīng)該是高電平允許輸出可我把它懸空了導(dǎo)致輸出被鎖死。用分步調(diào)試法幾分鐘就能定位到這個(gè)問(wèn)題比整體瞎猜高效得多。4. 常見(jiàn)問(wèn)題與排查技巧實(shí)錄4.1 按鍵按下沒(méi)反應(yīng)數(shù)碼管不亮這是最常見(jiàn)的故障。首先檢查按鍵對(duì)應(yīng)的輸入引腳電平是否有變化——按下前應(yīng)該是高電平按下后應(yīng)該是低電平。如果沒(méi)有變化大概率是按鍵本身接觸不良或者上拉電阻虛焊。如果電平變化正常繼續(xù)往后查看編碼器對(duì)應(yīng)輸出引腳電平是否符合真值表再看鎖存器輸出是否被正確觸發(fā)。這里有個(gè)容易忽略的點(diǎn)74LS148編碼器不用的輸入引腳千萬(wàn)不能懸空要全部接高電平。懸空的輸入引腳電平不確定會(huì)隨機(jī)干擾編碼輸出表現(xiàn)就是數(shù)碼管亂碼、按鍵邏輯時(shí)好時(shí)壞。我把另外4個(gè)不用的輸入全部經(jīng)10kΩ電阻接到電源正極問(wèn)題立刻消失了。4.2 多人快速連續(xù)按鍵顯示卻被后按的人“覆蓋”出現(xiàn)這個(gè)現(xiàn)象說(shuō)明鎖存器沒(méi)有起到鎖定作用。最常見(jiàn)的原因是鎖存器的輸出沒(méi)有反饋到編碼器的使能端或者反饋回路接錯(cuò)了??梢皂樦娐凡橐幌碌谝粋€(gè)選手按鍵后編碼器使能端是否變成了無(wú)效電平如果還是有效狀態(tài)說(shuō)明反饋線斷了或者接錯(cuò)位置。還有一種可能是你選的鎖存器在按鍵松開(kāi)后輸出也跟著恢復(fù)沒(méi)有保持能力。74LS279是R-S鎖存器在置位信號(hào)撤掉后輸出會(huì)保持置位狀態(tài)除非復(fù)位端被觸發(fā)。如果你用了其他類型的鎖存器建議換回74LS279或檢查復(fù)位端的接線是否正確。復(fù)位端如果懸空可能會(huì)被噪聲誤觸發(fā)導(dǎo)致鎖存狀態(tài)被意外清除。4.3 數(shù)碼管顯示數(shù)字和實(shí)際選手編號(hào)不符這個(gè)問(wèn)題的根源大概率在反碼/原碼轉(zhuǎn)換環(huán)節(jié)。74LS148輸出的是反碼直接送譯碼器必然出錯(cuò)。如果你沒(méi)有加反相器顯示當(dāng)然不對(duì)。如果加了反相器還不對(duì)那就檢查反相器的每一路是否對(duì)應(yīng)正確有沒(méi)有錯(cuò)位。還有一個(gè)小細(xì)節(jié)CD4511的輸入是BCD碼二進(jìn)制編碼的十進(jìn)制數(shù)只能處理0-9的數(shù)字。四路搶答器最多顯示4號(hào)BCD碼完全夠用。但如果你用的是74LS48或74LS47這類芯片它們驅(qū)動(dòng)的是共陽(yáng)極數(shù)碼管跟CD4511不通用選型時(shí)一定要匹配好數(shù)碼管的共陰共陽(yáng)類型。4.4 蜂鳴器不響或者長(zhǎng)響不停蜂鳴器不響先看555定時(shí)器有沒(méi)有正常工作。用示波器或萬(wàn)用表測(cè)量555的輸出引腳看看有沒(méi)有方波信號(hào)沒(méi)有就檢查外接的R、C參數(shù)是否焊錯(cuò)、是否虛焊。如果555輸出正常但蜂鳴器不響大概率是蜂鳴器類型搞錯(cuò)了——無(wú)源蜂鳴器需要方波驅(qū)動(dòng)有源蜂鳴器通電就響兩者外觀相似但驅(qū)動(dòng)方式不同買(mǎi)的時(shí)候要問(wèn)清楚。蜂鳴器長(zhǎng)響不停說(shuō)明555被持續(xù)觸發(fā)而不是單穩(wěn)態(tài)觸發(fā)問(wèn)題出在觸發(fā)信號(hào)上。檢查觸發(fā)端的電容和電阻構(gòu)成的微分電路確保每次搶答只產(chǎn)生一個(gè)下降沿脈沖而不是一直保持低電平。我在這個(gè)位置用了0.1μF電容串聯(lián)在按鍵信號(hào)和555觸發(fā)端之間把持續(xù)電平轉(zhuǎn)成脈沖信號(hào)完美解決。4.5 常見(jiàn)問(wèn)題速查表故障現(xiàn)象優(yōu)先檢查項(xiàng)常見(jiàn)原因所有按鍵無(wú)反應(yīng)編碼器使能端、電源使能端接錯(cuò)、芯片未供電單鍵無(wú)反應(yīng)按鍵、上拉電阻按鍵壞、電阻虛焊顯示亂碼未用輸入引腳、反碼轉(zhuǎn)換輸入懸空、反相器接線錯(cuò)后按覆蓋先按鎖存反饋回路反饋線斷、鎖存器選型錯(cuò)顯示數(shù)字錯(cuò)誤譯碼器數(shù)碼管匹配共陰共陽(yáng)選錯(cuò)、BCD碼錯(cuò)蜂鳴器不響555輸出、蜂鳴器類型RC參數(shù)錯(cuò)、驅(qū)動(dòng)方式不匹配蜂鳴器長(zhǎng)響觸發(fā)電路微分電路缺失、持續(xù)低電平最后再分享一點(diǎn)個(gè)人體會(huì)。課程設(shè)計(jì)這東西很多人覺(jué)得“做出來(lái)”就行了實(shí)際上“做出來(lái)”和“弄明白”之間的差距往往就是分?jǐn)?shù)拉開(kāi)差距的地方。四人搶答器這個(gè)題目雖然經(jīng)典到有些老套但它把數(shù)電里最核心的幾個(gè)知識(shí)點(diǎn)——編碼、鎖存、譯碼、定時(shí)——全部串起來(lái)了是少數(shù)能讓你在一周內(nèi)把整本教材復(fù)習(xí)一遍的實(shí)踐項(xiàng)目。我做完這個(gè)題目之后再看后面計(jì)數(shù)器、移位寄存器那些章節(jié)明顯感覺(jué)輕松了很多因?yàn)閷?duì)“數(shù)字電路是怎么協(xié)同工作”這件事有了實(shí)打?qū)嵉捏w感。如果你時(shí)間充裕還可以在基礎(chǔ)功能之上加一些擴(kuò)展比如給每個(gè)選手加一個(gè)LED指示燈、用計(jì)數(shù)器統(tǒng)計(jì)每人搶答成功的次數(shù)、增加主持人限時(shí)搶答的功能這些擴(kuò)展不僅能加分更能讓你把課本上的知識(shí)真正變成自己的東西。做課程設(shè)計(jì)別怕慢別怕錯(cuò)踩過(guò)的坑都是以后面試、比賽、工作里能拿出來(lái)講的資本。本文還有配套的精品資源點(diǎn)擊獲取