基于 MCU 的經(jīng)典數(shù)字電路邏輯功能模擬系統(tǒng)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
引 言
目前,數(shù)字電子技術(shù)課程的學(xué)習(xí)內(nèi)容依然基于經(jīng)典的 74 系列數(shù)字邏輯電路,相應(yīng)的數(shù)字電子技術(shù)實(shí)驗(yàn)也要使用該系列的芯片,但隨著半導(dǎo)體技術(shù)的飛速發(fā)展,集成電路的集成度和性能大大提高,且成本很低 [1],導(dǎo)致經(jīng)典的 74 系列數(shù)字邏輯電路芯片在工程中的使用越來越少 [2],生產(chǎn)廠家也隨之減少,零售價(jià)越來越高,使得實(shí)驗(yàn)室的維護(hù)成本不斷增加。另一方面,數(shù)字電子技術(shù)課程教學(xué)往往是理論教學(xué)與實(shí)驗(yàn)教學(xué)分開進(jìn)行,不利于學(xué)生快速理解數(shù)字邏輯電路和提高工程應(yīng)用能力。因此,本文利用 MCU 成本低廉、性能強(qiáng)大的優(yōu)勢 [3],設(shè)計(jì)了一款基于 MCU 的經(jīng)典 74 系列數(shù)字電路邏輯功能模擬系統(tǒng)。
1 系統(tǒng)硬件設(shè)計(jì)
本系統(tǒng)以國產(chǎn)增強(qiáng)型 8051 系列 MCU—STC15W4K32S4 為核心 [4],利用撥碼開關(guān)控制經(jīng)典數(shù)字邏輯電路的輸入狀態(tài), LED 燈指示經(jīng)典數(shù)字邏輯電路的輸出狀態(tài),構(gòu)成模擬經(jīng)典數(shù)字邏輯電路的主體。同時(shí),系統(tǒng)的邏輯功能可由按鍵控制, 并通過 LCD1602 液晶顯示屏顯示系統(tǒng)正在模擬的經(jīng)典數(shù)字邏輯電路型號(hào) [5]。系統(tǒng)的硬件組成如圖 1 所示。
撥動(dòng)開關(guān)共 8路,分別控制 MCU8個(gè)引腳的輸入電平; LED燈共 8路,其狀態(tài)受 MCU引腳獨(dú)立控制,亮表示相應(yīng)的輸出端為高電平,滅表示相應(yīng)的輸出端為低電平。按鍵共 兩個(gè),一個(gè)用于切換 MCU的工作狀態(tài),使之模擬多個(gè)經(jīng)典數(shù)字邏輯電路 ;另一個(gè)按鍵用于模擬時(shí)序邏輯電路的時(shí)鐘脈沖。
此外,硬件系統(tǒng)中加入了基于 CH340 的串口轉(zhuǎn) USB 電路 [6],并且使用比較流行的 Micro USB 接口 [7],系統(tǒng)的供電和程序的下載均可通過一條主流智能手機(jī)的數(shù)據(jù)線來完成, 進(jìn)一步降低了成本,提高了便攜性。
2 系統(tǒng)功能設(shè)計(jì)
本系統(tǒng)所涉及的邏輯功能利用 C 語言編程實(shí)現(xiàn),在 Keil 軟件中完成代碼的編譯與調(diào)試 [8]。系統(tǒng)在一個(gè)硬件平臺(tái)上, 通過軟件編程實(shí)現(xiàn)了多個(gè)經(jīng)典的數(shù)字邏輯電路的功能模擬, 見表 1 所列。
由表 1 可知,系統(tǒng)既實(shí)現(xiàn)了簡單的組合邏輯電路,又實(shí)現(xiàn)了復(fù)雜的時(shí)序邏輯電路,涵蓋了數(shù)字電子技術(shù)課程中主要數(shù)字電路型號(hào)。MCU 具有 32 KB 的片上 FLASH ROM 和4 KB 片上 RAM, 屬于增強(qiáng)型 51 系列 MCU, 在現(xiàn)有邏輯功能的基礎(chǔ)上, 仍可繼續(xù)增加軟件代碼, 以實(shí)現(xiàn)其他功能。
3 程序設(shè)計(jì)
在搭建好的硬件平臺(tái)上進(jìn)行軟件編程以實(shí)現(xiàn)所需功能 :
(1) MCU上電后初始化,在 LCD1602上顯示開始信息 ;
(2) 系統(tǒng)實(shí)時(shí)檢測選擇按鍵的狀態(tài),隨時(shí)準(zhǔn)備切換功能 ;
(3) 功能選定后,MCU將按照規(guī)劃好的引腳分配相應(yīng)的軟件代碼,實(shí)現(xiàn)對應(yīng)數(shù)字電路的邏輯功能。
3.1 組合邏輯電路的實(shí)現(xiàn)
基本邏輯門、譯碼器和數(shù)值比較器等屬于組合邏輯電路。組合邏輯電路在邏輯功能上的特點(diǎn)是任意時(shí)刻的輸出僅僅取決于該時(shí)刻的輸入,與電路原來的狀態(tài)無關(guān)。采用掃描方式實(shí)現(xiàn)組合邏輯電路。MCU 不斷讀取撥動(dòng)開關(guān)陣列的電平狀態(tài),經(jīng) MCU 運(yùn)算轉(zhuǎn)換后,將結(jié)果通過 LED 燈實(shí)時(shí)顯示。
3.2 時(shí)序邏輯電路的實(shí)現(xiàn)
觸發(fā)器、計(jì)數(shù)器等屬于時(shí)序邏輯電路。時(shí)序邏輯電路在邏輯功能上的特點(diǎn)是任意時(shí)刻的輸出不僅取決于當(dāng)時(shí)的輸入信號(hào),而且還取決于電路原來的狀態(tài),或者說,還與以前的輸入有關(guān),并且時(shí)序邏輯電路狀態(tài)的改變發(fā)生在 CP 信號(hào)的跳變沿 [9]。采用外部中斷方式實(shí)現(xiàn)時(shí)序邏輯電路,使用 CCP 捕獲功能檢測跳變沿 [10]。實(shí)現(xiàn)時(shí)序邏輯電路時(shí),MCU 保存上一次跳變沿時(shí)的系統(tǒng)狀態(tài),下一次跳變沿到來后,由已保存的上一次狀態(tài)與當(dāng)前輸入狀態(tài)共同決定當(dāng)前時(shí)刻的輸出,并將結(jié)果通過 LED 燈直觀顯示。
4 結(jié) 語
本文設(shè)計(jì)的經(jīng)典 74 系列數(shù)字電路邏輯功能模擬系統(tǒng)在同一個(gè)以 MCU 為核心的硬件平臺(tái)上,可實(shí)現(xiàn)多款經(jīng)典數(shù)字電路的邏輯功能,并且可根據(jù)實(shí)際需求隨時(shí)通過軟件編程修改系統(tǒng)功能,以完成對所需邏輯電路的模擬。該系統(tǒng)可有效降低高校電子技術(shù)基礎(chǔ)實(shí)驗(yàn)室的維護(hù)成本。此外,該系統(tǒng)體積小巧,可隨身攜帶,便于在理論課的課堂中同時(shí)進(jìn)行理論學(xué)習(xí)和實(shí)驗(yàn)研究。