摘 要 微機原理與接口技術的實驗教學是該課程教學中的重點環節。I/O接口實驗承前啟后,要獲得良好的教學效果有一定難度。本文在實際教學的基礎上,總結了好的教學經驗,對如何完善實驗內容及方法進行了一定探索。
關鍵詞 I/O接口 實驗教學 霓虹燈
中圖分類號:G642文獻標識碼:A
0 前言
在微機原理與接口技術這門課的教學中,I/O接口一章起到了承前啟后的作用。在前面的章節中介紹了Intel微處理器的結構、匯編語言程序設計,在后續章節中將介紹中斷系統、定時器/計數器芯片、并行I/O接口、數模轉換接口等。①學生在學習匯編語言的過程中,經常會把匯編語言同其他高級語言(例如C語言)加以比較,覺得匯編語言在解決同類問題上繁瑣復雜、難以學習,無法直觀地理解匯編語言的優點。而后續學習8259、8237、8253、8255等芯片時,都要用到匯編語言。I/O接口實驗內容簡單,程序很簡短,遠比利用匯編語言解決純軟件的問題容易得多,學生可以更好地理解匯編語言的優勢。②從實驗教學的角度說,之前完成的匯編語言編程,側重于對語言本身規則的熟悉與使用,并不涉及對硬件的編程,在任何一臺計算機上都可以完成實驗。而I/O接口實驗是學生第一個涉及硬件芯片的編程,要使用到開關,LED燈等簡單外設,實驗還可以體現出存儲器地址譯碼等知識點的應用。可以說實驗本身很簡單,但涉及的知識的應用卻很豐富,要求學生真正理解軟硬件之間的關系。因此做好這項實驗很重要。如果只是單純完成驗證性實驗,往往達不到實驗的預期目的,也很難引起學生的學習興趣,所以應該對這項實驗進行進一步完善。
1 基本實驗
筆者所在學校采用DJ系列8086/8088微機實驗開發系統。驗證性實驗內容為利用74LS244作為輸入口,讀取開關狀態,并將此狀態通過74LS273再驅動發光二極管顯示出來。③實驗接線圖如圖1所示:
開關作為輸入設備接緩沖器74LS244,LED燈作為輸出設備連接鎖存器74LS273。緩沖器、鎖存器作為接口,其地址由74LS138譯碼器產生,分別是FF80H、FF90H。實驗程序如下:
實驗中,AL某位為0,對應LED燈亮;AL某位為1,對應LED燈不亮。該實驗可要求學生思考以下幾個問題:能否用74LS244連接LED燈,用74LS273連接開關?接口地址在編程中如何體現的?程序最后為什么要有一條無條件轉移語句?
通過基本實驗,學生對接口編程有了一個直觀的了解,也認識到匯編語言在解決硬件類問題的方便。由于實驗本身內容簡單,學生的學習興趣難以持續較長時間。
圖1 簡單I/O口擴展實驗接線圖
2 拓展實驗
城市里每到夜晚,五光十色的霓虹燈構成了一種亮麗的風景。利用現有設備,可以將I/O接口實驗與霓虹燈效果制作結合起來。教師可以介紹幾種基本的霓虹效果制作,然后由學生自由發揮,制作自己喜歡的霓虹效果。
2.1 利用一個開關控制8個LED燈亮滅
在制作霓虹燈效果之前,可做此準備實驗,加強學生對軟硬件結合的理解,熟悉查詢式傳送的使用。硬件連線可以同基本實驗。首先,需要學生加強理解的是LED燈的狀態直接取決于從輸出接口寫出的AL值。一個開關控制8個燈意味著輸出AL的值只有兩個選擇:00H(全0)、FFH(全1)。其次,基本實驗中一個開關對應一個LED燈,采用的是無條件傳送方式。本實驗只用一個開關,應采用軟件查詢式傳送。實驗程序修改如下:
具體采用哪一個開關控制,是可以調整的,可要求學生加以變化。
2.2 單燈閃爍效果制作
一種最基本的霓虹效果即單燈閃爍效果。硬件連線類似于基本實驗,可以不采用輸入接口,即霓虹效果完全由程序控制。本實驗涉及到一個新的知識點——軟件延時。所謂燈的閃爍,即燈亮一段時間,滅一段時間,循環往復。其中的一段時間如何控制?由于在學習I/O接口一章時,尚未介紹到硬件定時芯片8253,因此本實驗只適用軟件來控制延時。其原理也很簡單,利用循環執行一些不影響程序最終結果的指令來消耗時間,從而達到延時目的。燈的閃爍也就是AL對應位在0和1之間跳變。實驗程序修改如下:
軟件延時的長短可在實驗過程逐步調整。如果閃爍時間間隔過長,可減小CX的值;如果閃爍時間間隔過段,可在LOOP循環體中增加語句,如INCBX,DECBX等。建議時間間隔不要過短,容易影響燈絲使用壽命。
2.3 單燈循環移動閃爍效果制作
單燈循環移動閃爍也是一種簡單霓虹效果。硬件連線同上。與上述實驗的區別在于具體實現這種變化的指令是移位指令,類似于接力賽跑,在8個LED燈之間傳遞0狀態(燈亮)。實驗程序修改如下:
可讓學生思考嘗試,采用普通移位指令會是什么結果;如果要實現多燈移動閃爍,程序又該如何修改。
通過介紹以上幾個例子,學生將對如何實現霓虹效果有了一個直觀認識。總結一句話就是改變AL值,輸出,延時。不同的霓虹效果,主要取決于對AL的變化。可以讓學生自行設計想要的霓虹效果。指導學生實驗時,為提高實驗作用,注意要求學生先考慮好想要實現的效果,編程運行調試,根據調試結果修改程序以達到預期目的。要求學生對調試中出現的錯誤或非預期效果,要思考原因,不要胡亂寫一個程序,無任何預期目的,直接將運行結果作為最終結果。
3 總結
通過近三年的實際教學,I/O接口實驗完善前后,學生的學習興趣完全不同。之前只做基本實驗,學生學習興趣不濃,覺得不好玩,沒有參與感。改善后的拓展實驗,很多學生都積極設計屬于自己的霓虹效果,形成一種有益的競爭,爭取做出更有趣、更復雜的效果,如多燈跳變,多種霓虹效果按一定順序實現、通過開關控制霓虹的始終等。教學相長,學生的創新也給教師帶來很多新思路。實驗中所用軟件延時還可以與后續章節中硬件延時形成呼應。本文介紹的對實驗的完善,主要是與生活中的實際應用相結合,提高學生的參與感和積極性,可按照此思路繼續完善各章節的實驗。
注釋
① 趙樹升,趙雪梅.現代微機原理及接口技術[M].北京:清華大學出版社,2008.
② 周荷琴,吳秀清.微型計算機原理與接口技術(第三版)[M].合肥:中國科技大學出版社,2004.
③ 啟東市東疆計算機有限公司 DJ系列8086/88實驗指導書.