張玲 姚莉

摘要:針對數字邏輯電路實踐教學中存在的問題,提出將集成數字芯片的驅動編寫融入實踐教學,對數字電路課堂教學涉及到的集成芯片,利用C語言實現驅動對其進行控制,并利用MCU芯片進行仿真。不僅提高了學生的學習興趣和編程能力,而且有效改善了傳統單純驗證性實驗的教學效果,提高了學生對集成數字芯片的應用能力,為后續硬件相關課程的學習提供基礎和保障。學生的反饋和階段考核結果表明,該實踐方式能有效地提高數字邏輯電路的教學效果。
關鍵詞:數字邏輯電路;芯片驅動編寫;實踐教學
一、引言
數字邏輯電路是計算機專業的一門基礎課,其教學目標包括數字信號的概念,組合邏輯電路和時序邏輯電路,常用的數字集成芯片,數字電路設計流程及應用。傳統的數字邏輯電路實踐教學一般采用傳統的驗證性實驗[1-2]。為了提高學生的學習興趣和動手能力,基于數字模塊的綜合設計[3]將抽象的數字邏輯模塊與具體應用聯系起來,對學過的電路模塊通過仿真實現出來。基于硬件描述語言的數字集成電路前端設計法[4-5]將硬件描述語言引入進來,用硬件語言行為描述法描述。這些實踐教學方法取得了一定的成效,一定程度上提高了教學效果。但針對計算機專業的同學來說,更注重的是數字集成芯片將來的應用,特別是數字集成電路驅動的編寫和應用,如何將數字邏輯電路驅動的編寫嵌入到數字邏輯電路時間教學中,并通過時序控制使得數字集成芯片工作起來是數字邏輯電路教學的一個重要任務。
本文提出以驅動編寫為導向的數字邏輯電路實踐教學,針對數字邏輯電路常用組合邏輯模塊,如編碼器和譯碼器模塊、數據選擇和分配器模塊、串并并串轉換等模塊進行分析,通過微控制單元(MCU)對其時序進行控制,實現集成數字芯片的驅動;針對常用時序邏輯模塊,如計數器模塊,寄存器模塊,通過MCU收發信號,實現相關集成數字模塊的驅動。這種實踐教學方式不僅提高了學生的學習興趣,加深了對數字邏輯模塊的理解,掌握相關硬件編程方法,而且對嵌入式開發過程有了一定的了解,為后續學習打下基礎。教學結果表明以驅動為導向的實踐教學較大程度的提高了數字邏輯電路的教學效果。
二、以驅動編寫為導向的數字集成電路實踐教學的教學設計
針對數字邏輯電路涉及的基本教學模塊,根據數字邏輯電路教學的經驗,在教學中設計了三個部分的實踐教學:針對組合邏輯電路部分的實踐,針對時序邏輯電路部分的實踐安排和綜合實踐教學安排。
針對組合邏輯電路涉及的數字集成電路芯片,設計了以下相關模塊:集成雙全加器74LS183/C661的連線及驅動、4位集成數值比較器74LS85/C663的連線及驅動、8線-3線優先編碼器74LS148、集成3-8譯碼器74LS138、電平驅動顯示譯碼器74LS48、集成4選1選擇器74LS151、1路4路數據分配器74LS139。
針對時序邏輯電路涉及的數字集成電路芯片,設計了以下相關模塊:集成4位二進制同步加法計數器74161的連線方式及驅動實現、集成十進制同步加法計數器74160、8位單向集成移位寄存器74164、4位雙向移位寄存器74LS194的連線及驅動實現、串并轉換芯片74HC595和并串轉換芯片74HC165的驅動的實現。
綜合實踐安排包括常用組合和時序邏輯模塊組成的綜合系統,本部分安排了兩個小系統的實現:數字時鐘的設計和實現和六路搶答器的設計和實現。
數字時鐘利用基本數字電路制作小時電子鐘,顯示時分秒,其電路包括24進制計數器,60進制計數器,譯碼電路和顯示電路模塊。
六路搶答器利用數字電路設計搶答器,它允許8路參加,用LED小燈顯示搶答結果,利用清除鍵對LED小燈滅燈。此電路包括門控電路、開關控制電路、數據鎖存電路、8-3優先編碼模塊,案件輸入模塊、顯示模塊。
本實踐教學穿插在理論課上和課后進行,在學習每部分數字模塊基礎上,對相關模塊的應用環境和作用作以介紹,給出相應的原理圖及時序控制原理介紹。這部分的教學要求學生進行預習,在時間教學課堂前,以報告形式完成硬件電路設計及相關關鍵代碼設計,循序漸進,在實踐教學時進行調試,并利用互動教學來驗證、鞏固教學內容。
三、數字集成電路芯片驅動編寫--以串并轉換集成芯片74HC595為例
數字集成電路芯片驅動編寫的實質即對該芯片工作時序的控制。本小節為串并74HC595并串集成芯片為例,說明集成電路芯片驅動的編寫方法。
74HC595是將串行信號轉成并行數據信號的數字集成芯片,為了實現串并轉換,它具有一個串行輸入口,通過內部8位移位寄存器經過8個時鐘周期將8個1位的串行信號轉換成一個8位的并行信號,通過其內部8位緩沖寄存器及一個具有三態輸出的移位寄存器將并行數據送出。為了讓74HC595實現串并轉換,必須根據其工作時序給出正確的控制信號。其工作時序圖在圖1中給出,該結構串行數據的輸入和并行數據的輸出分別用不同的時鐘控制,分別為SCK和LCK,[Q0→Q7]并行輸出端,[Q7']串行數據輸出。
如時序圖所示,其基本時序運行如下:在輸入時鐘SCK的上升沿控制下,8位串行數據從SDI送入,8個周期后,該8位數據被送入到74HC595的緩沖區;接著在輸出時鐘LCK的控制下,將8位并行數據從輸出端Q0-Q7送出。并行數據輸出在時鐘信號LCK控制下,一個時鐘上升沿便可完成輸出。8位串行數據num1轉成并行數據的關鍵時序代碼為:for (j=0;j<8;j++) {CY=num1&0x01;num1=num1>>1;ds=CY;SCK=1; SCK=0; }
四、小結
本文提出以驅動編寫為導向的數字電路的實踐教學方法,并應用到數字電路實踐教學中,學生反映較好。以驅動編寫為導向進行數字電路的實踐教學將抽象概念具體化,使學生認識到數字模塊的作用和其應用場合,并利用proteus仿真軟件進行仿真,增加了學生的學生興趣。通過綜合系統的實現,提高了學生的動手能力,并提高了學生利用C語言進行硬件編程的編程能力,為后續相關硬件課程的學習及從事數字集成電路的工作打下基礎。
參考文獻
[1]王爾中,龐濤,李鵬,鄭丹,Multisim和Proteus仿真在數字電路課程教學中的應用,實驗技術與管理,30(3):78-81.2013.
[2]唐凱,吳偉力,集成電路設計課程實驗內容的探索,集美大學學報, 2013,14(3):121-124.
[3]毛松,EDA實驗在數字集成電路設計課程中的應用,教育論壇,2012:159-160.
[4]陳海進,硬件描述語言與數字集成電路課程教學,2003,2(3):60-62.
[5]夏少波,榮麗麗,陳兆慶,數字集成電路試驗教學探討,山東電大學報,2008,4:39-40.
湖北理工學院教研項目:2014c25。
作者簡介:張玲,女,(1980-),講師,湖北理工學院計算機學院。endprint