陳智勇
【摘 要】本文主要探討了基于清華大學TPC-USB實驗系統平臺下,高等職業院校計算機類專業《微機原理》實驗VC++實現教學設計典型案例。設計了實驗教學各環節的組織與銜接,嘗試從中總結出部分內在規律,探索出循序漸進的實驗教學模式。以提高該課程的實驗教學效果,增強學生的學習興趣,促進我院計算機系該課程教學水平的提升。
【關鍵詞】交通燈 匯編語言 指令 流程圖 芯片 TPC-USB VC++ ISP1581 USB2.0
《微機原理與接口技術》是一門理論性和實踐性都很強的計算機類專業的主干專業課程。筆者依據高等職業院校培養實用型人才的方針,結合本院計算機系教學實踐,針對于以往學生對該課程的理論與試驗難以結合,VC++/匯編語言指令與實驗流程圖脫節,芯片功能引腳理解艱澀等問題,嘗試通過循序漸進的實驗教學模式,就基于清華大學TPC-USB實驗系統的一典型實驗案例——交通燈控制,讓學生在實驗操作,數據驗證的過程中,潛移默化將理論知識融匯于實驗操作,將實驗流程圖“翻譯“成具體VC++指令,用實驗現象佐證芯片引腳功能。
一、實驗平臺簡介
我院微機原理實驗室采用的是清華大學TPC-USB實驗系統,該系統由一塊USB總線接口模塊、一個擴展實驗臺及軟件集成實驗環境組成。USB總線接口模塊通過USB總線電纜與PC機相連,模塊與實驗臺之間由一條50芯扁平電纜連接。其主要特點是USB總線接口使用ISP1581 USB2.0高速接口芯片,完全符合USB2.0規范。提供了高速USB下的通信能力。即插即用、速度快、使用方便。
二、實驗過程設計
由于我院微機原理實驗室TPC-USB實驗設備充足,教師將學生分成每兩人一組。并要求學生在實驗操作時,一名學生操作,之后另一名學生檢查,如此反復。這樣既能充分滿足學生的實踐動手需要,又能培養學生的團隊協作精神,有利與實驗教學水平的提高。
(一)實驗前期準備
1.實驗預習
實驗前,布置好預習的內容,要求學生必須結合自己所學的理論知識,通過查閱8255A交通燈控制并口芯片有關資料,獲得實驗的第一手資料,做到實驗目的明確,實驗原理清楚。
2.布置實驗任務
教師不向學生提供具體的、詳細的交通燈控制實驗電路與VC++程序,只提出具體的實驗要求,讓學生通過自己的預習以及對實驗要求的理解和分析,自行設計實驗方案,小組獨立完成實驗程序編寫。
3.連接主機與TPC-USB實驗系統(通過50芯線纜的USB2.0接口模塊),開機—運行USB2.0接口模塊驅動程序,完成實驗硬件平臺的搭建。運行軟件集成實驗環境TPC-USB,進入實驗環境。完成實驗軟件平臺的搭建。
(二)教師講解實驗項目
著重講解實驗的設計思想、設計方法,并演示實驗操作,通過并行接口8255A實現十字路口交通燈的模擬控制,掌握對并行口的使用。讓學生能夠從教師的示范中獲得啟發,突出學生的主體地位,實驗過程是學生進行思維訓練、提高分析問題與解決問題能力的重要實踐活動,整個過程應以學生為主體,鼓勵學生動手、動腦,采用多種方式去完成實驗任務。
(三)芯片功能分析報告
要求學生將查閱的有關資料與實驗平臺上的8255A并口芯片實物進行對比,分析相關引腳功能,并記錄于實驗報告中,強化學生深入鉆研問題的能力培養。
參考如圖-1:L7、L6、L5作為南北路口的交通燈與PC7、PC6、PC5相連,L2、L1、L0作為東西路口的交通燈與PC2、PC1、PC0相連。編程使六個燈按交通燈變化規律亮滅。
(四)線纜的連接
要求學生自行完成實驗芯片8255A的相關通信引腳線的連接。再參照實驗指導書的連線規則,進行檢查與校正。
(五)VC++編程實現
要求學生先參照TPC-USB實驗系統的匯編語言程序, 小組獨立自行設計交通燈控制實驗方案,繪制實驗流程圖,完成VC++實驗程序對TPC-USB系統自帶匯編語言程序的“翻譯”編寫。并記錄與實驗報告中。
交通燈控制實驗編程提示:十字路口交通燈的變化規律要求:(1)南北路口的綠燈、東西路口的紅燈同時亮30秒左右。(2)南北路口的黃燈閃爍若干次,同時東西路口的紅燈繼續亮。(3)南北路口的紅燈、東西路口的綠燈同時亮30秒左右。(4)南北路口的紅燈繼續亮、同時東西路口的黃燈亮閃爍若干次。(5)轉(1)重復。
(六)運行實驗
啟動實驗箱電源,TPC-USB軟件,運行實驗,查看實驗結果。檢查并校正錯誤。
參考程序JTD.CPP如下(注:為便于讀者理解,編者在程序中添加了部分中文注釋,上機編程時應刪除相應注釋)
#include
#include
#include ”…\\ApiEx.h”
#pragma commnet(lib,”…\\ApiEx.h”)
Void main()
{
Int i;
Int portc[]={0x24,0x44,0x04,0x44,0x04,0x44,0x04,0x81,0x82,0x80,0x82,0x80,0x82,0x80,oxff};*六個燈可能的狀態數據結束標志*
if(!Startup())*打開設備*
{
Printf(“ERROR:Open Device Error!\n”)
Return;
}
Printf(“Enter any key will return!\n”);
PortWriteByte(0x28b,ox80); *輸出一個負脈沖*
for(;;)
{
For(i=0,i<14;i++)
{
PortWriteByte(0x28a,portc[i]);
if(kbhit())*判斷是否有鍵按下*
Exit(0);
If(portc[i]&0x21)
Sleep(30000)*延遲30秒鐘*
Else
Sleep(500)*延遲0.5秒鐘*
}
}
Cleanup();*關閉設備*
}
三、總結
通過該教學實驗設計在我院計算機系學生的執行,學生能夠自覺預習實驗內容,把握實驗原理,操作過程更為準確規范,能夠循序漸進的融匯基礎性,設計性和綜合應用性知識點,建立VC++/匯編語言與實驗流程圖的溝通學習渠道。部分學生已經開始嘗試基于交通燈控制實驗的實際項目設計。教學效果得到了明顯提高,也歷練了教師的教學創新能力。
參考文獻:
[1]韓雁.微機原理與接口技術.電子工業出版社,2005,1.
[2]張毅.單片機原理與應用設計.哈爾濱工業大學出版社,2008,7.
[3]楊立.微機原理實驗指導書.人民郵電出版社,2008,4.
[4]蔣本珊.微機原理與接口技術實驗指導與習題集.人民郵電出版社,2008,08.