高 林
(湖北民族學院 信息工程學院,湖北 恩施 445000)
“數(shù)字電路”、“微機原理”和“單片機原理”這三門課程是現(xiàn)今大多數(shù)高校電子、電氣和自動化專業(yè)開設的重要專業(yè)基礎和專業(yè)課程?!皵?shù)字電路”是“微機原理”的基礎,“微機原理”是“數(shù)字電路”的延續(xù)和升華, 兩者無論在指導思想上還是在內(nèi)容上都應該順利過渡[1]?;谶@個特點,國內(nèi)有學者建議將目前的“數(shù)字電路”與“微機原理”課程內(nèi)容整合為一門課程[2]。而“微機原理”一直作為“單片機原理”的先導課程,兩者之間有著非常緊密的聯(lián)系[3]。這兩門課程的內(nèi)容既有很大交叉,又有各自的特點:微機原理及應用理論更系統(tǒng),而單片機應用性更強[4]。由于“微機原理”與“單片機原理”課程間的緊密聯(lián)系,國內(nèi)也有學者主張將這兩門課合并處理[3,5]。但是不管上述三門課程是合并開設,還是仍然獨立開設,傳統(tǒng)的“PPT+板書”的理論教學模式對電路原理和功能的講解單調(diào)且枯燥,而且很難講清楚復雜的電路結構,而且傳統(tǒng)的“PC機+實驗箱”的實驗教學模式,也存在實驗設備老化、價格昂貴、電路固定不能修改、利于驗證性而不利于設計性實驗等問題。
鑒于上述三門課程傳統(tǒng)教學中存在的問題,迫切需要引入先進的技術手段以進行改進。目前, 電子類課程的仿真軟件非常多, 這些軟件中, 還沒有一個軟件比Proteus軟件對電子類課程的影響大[6]。Proteus軟件是由英國Labcenter公司開發(fā),作為一個從設計到完成的完整電子設計與仿真平臺, 由于其能實現(xiàn)電路仿真與處理器仿真的有機結合, 為電子專業(yè)多課程一體化仿真提供了革命性的手段, 已經(jīng)被越來越多大學采用[7]。Proteus強大的設計與仿真功能被廣泛應用在“數(shù)字電路”、“模擬電路”、“單片機原理”、“嵌入式系統(tǒng)”等多門課程的教學和實驗中。但是,Proteus在“微機原理”教學中的應用卻鮮有報道,這主要是因為以往的Proteus版本缺乏對“微機原理”課程所涉及芯片的支持。直至2009 年,Labcenter公司推出了VSM for 8086平臺及Proteus 7.5 SP3軟件,支持8086微處理器與8255、8253、8259、8251等接口芯片的系統(tǒng)仿真[8-9]。因此,有必要針對“數(shù)字電路”、“微機原理”和“單片機原理”三門課程設計出一個基于Proteus的多課程綜合軟件仿真系統(tǒng),不管這三門課程是合并還是分開,都能夠用于提升這些課程的教學效果。
結合“數(shù)字電路”、“微機原理”和“單片機原理”三門課程的教學內(nèi)容,以及三門課程現(xiàn)有實驗條件,以Proteus軟件為平臺,設計出一個多課程綜合軟件仿真系統(tǒng)。該系統(tǒng)總體框圖如圖1所示。
該系統(tǒng)的核心有三種,①不使用微控制器,主要針對“數(shù)字電路”課程;②以8086最小模式系統(tǒng)(由1片8086CPU、3片74LS373鎖存器和2片74LS245雙向數(shù)據(jù)緩沖器組成[10])為核心,主要針對“微機原理”課程;③以AT89C52單片機為核心,主要針對“單片機原理”課程。在該系統(tǒng)實際應用時,也可以根據(jù)需要選擇其中一種或幾種作為核心。在系統(tǒng)核心之外,具有多種外圍電路,包括:
圖1 系統(tǒng)總體框圖
(1) 一般數(shù)字電路。主要是圖中上下兩部分外圍電路,包括觸發(fā)器、編碼器、寄存器、數(shù)據(jù)分配器、數(shù)據(jù)選擇器、數(shù)值比較器、算術運算電路、計數(shù)器、555定時器、基本邏輯門電路、譯碼器、顯示譯碼器、鎖存器、存儲器、A/D轉(zhuǎn)換器和D/A轉(zhuǎn)換器等[11]。其中有一部分電路通常只用于“數(shù)字電路”課程中,如算術運算電路、計數(shù)器等,而有些電路則三門課程都經(jīng)常使用,如鎖存器、譯碼器、555定時器、A/D轉(zhuǎn)換器和D/A轉(zhuǎn)換器等。
(2) 可編程接口電路。主要是825x系列可編程芯片,包括并口擴展芯片8255、串口擴展芯片8251、計數(shù)器/定時器8253和中斷控制器8259這四種,它們一般用在“微機原理”和“單片機原理”課程中。另外“微機原理”課程中常見的DMA控制器8237不能進行仿真[12]。
(3) 常用串行總線。主要是I2C總線和RS-232總線,用于模擬單片機與PC機、單片機之間或單片機與串行設備進行數(shù)據(jù)交換[13]。這些串行總線主要用在“單片機原理”課程中。
(4) 輸入/輸出電路。輸出電路包括數(shù)碼管顯示、發(fā)光二極管顯示、16×16LED點陣顯示和液晶顯示等,輸入電路包括獨立式鍵盤和矩陣式鍵盤。輸入/輸出電路在三門課程中會經(jīng)常用到。
當上述系統(tǒng)設計出來以后,就能夠直接用于“數(shù)字電路”、“微機原理”和“單片機原理”三門課程的教學中。該系統(tǒng)在應用過程中存在與相關課程編程軟件配合使用的問題,其中純數(shù)字電路不需要編程,“微機原理”課程采用“Masm for Windows集成實驗環(huán)境”軟件進行匯編語言源程序的編寫和編譯,而“單片機原理”課程則采用Keil C軟件和C51語言[14]。下面以一個綜合上述三門課程的應用案例來說明在教學中使用該系統(tǒng)進行仿真的過程,案例的功能是AT89C52和8086通過串行通信同步各自的數(shù)字時鐘顯示。
此案例電路原理框圖如圖2所示。其中AT89C52單片機以4×4矩陣式鍵盤為輸入設備,1602液晶顯示為輸出設備,通過自身串口經(jīng)由串口擴展芯片8251與8086最小模式系統(tǒng)相連。8086CPU通過并口擴展芯片8255的PA口、PB口和PC口分別輸出hr、min、sec數(shù)值,并連接6個七段顯示譯碼器74LS248和6個數(shù)碼管組成的顯示器,采用靜態(tài)方式進行顯示。8086CPU還要通過計數(shù)器/定時器8253產(chǎn)生兩路方波信號,其中通道1將時鐘源產(chǎn)生的230.4 kHz方波變成38.4 kHz的方波輸出,作為8251芯片的發(fā)送器/接收器時鐘(TXC/RXC)信號;通道2將NE555多諧振蕩器產(chǎn)生的72 Hz矩形波信號變成1 Hz方波輸出,既用作AT89C52單片機的外部中斷INT0的中斷請求信號,又用于控制數(shù)碼管hr、min顯示和min、sec顯示之間小數(shù)點的每sec閃爍。而8086CPU周邊可編程芯片8251、8253和8255的片選信號均由74LS138譯碼器提供。
該案例要求4×4矩陣式鍵盤設定時鐘數(shù)值和控制時鐘啟動/停止,8253產(chǎn)生的1 Hz方波通過單片機外部中斷INT0控制時鐘每秒變化,AT89C52單片機的日歷(year、mon、day和week)和時鐘信息在1602液晶上顯示。而8086最小模式系統(tǒng)的時鐘顯示在數(shù)碼管顯示器上,AT89C52單片機通過串口每秒發(fā)送hr、min、sec數(shù)據(jù)給8086CPU,由此獲得AT89C52單片機和8086最小模式系統(tǒng)各自的數(shù)字時鐘同步顯示的效果。
8086CPU和AT89C52單片機的主程序流程如圖3所示。8086CPU將8255的PA、PB和PC三個并口均設為方式0輸出,8253所用兩個計數(shù)器通道均工作在方式3(方波發(fā)生器),8251設為8位異步串行通信,波特率因子為16,通信波特率為2.4 kb/s,采用查詢式輸入(查詢接收準備好標志RXRDY),且連續(xù)接收3次,分別是hr、min和sec的數(shù)值,再將這些數(shù)值通過8255輸出并顯示。AT89C52單片機將串口設置為方式1,定時器T1作為波特率發(fā)生器,通信波特率與8251相同,還要開啟外部中斷INT0,并設為下降沿觸發(fā),然后反復執(zhí)行鍵盤掃描函數(shù),在此過程中,INT0中斷服務函數(shù)每隔1 s執(zhí)行一次,讓時鐘發(fā)生變化并在1602液晶上顯示,同時將時鐘數(shù)值從串口輸出。
圖3 主程序流程圖
首先在Proteus軟件中完成電路原理圖設計,然后在“Masm for Windows 集成實驗環(huán)境”軟件中進行8086匯編語言程序的編寫、編譯和連接,并將生成的EXE文件裝載到8086CPU中作為程序文件(Program File)。接著在Keil C軟件中完成單片機C51語言程序的編寫和編譯,將生成的HEX文件裝載到AT89C52中[15]。最后按F12或點擊工具欄的運行按鈕,Proteus開始運行[16-17],其仿真結果如圖4所示,圖中數(shù)碼管上顯示的是8086CPU接收的時鐘信息(23.56.42),1602液晶上顯示的是單片機上的日歷(2013.9.23 MON)和時鐘(23:56:42)信息,可見兩邊時鐘顯示保持同步,4×4矩陣式鍵盤中0~9數(shù)字鍵用于設置hr、min、sec數(shù)值,ON/C鍵用于啟動/停止時鐘。
圖4 仿真結果圖
通過上述案例表明,不管“數(shù)字電路”、“微機原理”和“單片機原理”三門課程如何設置,該綜合軟件仿真系統(tǒng)均能幫助教師提高課程教學效果,提升學生的學習興趣和實踐動手能力,培養(yǎng)他們電路系統(tǒng)開發(fā)的能力。該系統(tǒng)不但能用于三門課程的理論和實驗教學,還能夠用于課程設計和畢業(yè)設計中。而且該系統(tǒng)還能繼續(xù)擴展,將模擬電路、其他單片機和嵌入式系統(tǒng)等納入其中,構建一個更加龐大和完善的多課程一體化綜合軟件仿真平臺。
[1] 謝光明. “數(shù)字電路”與后續(xù)課程的連貫性[J]. 科技資訊,2007(31):129.
XIE Guang-ming. Consistency of digital circuit and subsequent courses[J]. Science and Technology Information in China,2007(31):129.
[2] 楊拴科, 寧改娣, 申忠如. “數(shù)字電路”與“微機原理”課程整合之我見[J]. 華北航天工業(yè)學院學報,2001,11(S1):128-129.
YANG Shuan-ke, NING Gai-di, SHEN Zhong-ru. My opinion to course integration of digital circuit and principle of microcomputer[J]. Journal of North China Institute of Aerospace Engineering,2001,11(S1):128-129.
[3] 蔡述庭, 劉銀萍, 謝 云, 等. 微機原理及單片機技術課程教學改革研究[J]. 實驗科學與技術,2011,9(5):70-72.
CAI Shu-ting, LIU Yin-ping, XIE Yun,etal. Research of Teaching Reform of Principle of Microcontroller and MCU[J]. Research and Exploration in Laboratory,2011,9(5):70-72.
[4] 張秀梅, 王春玲, 王 麗. 微機原理與單片機教學內(nèi)容的優(yōu)化處理[J]. 佳木斯教育學院學報, 2013(6):217.
ZHANG Xiu-mei, WANG Chun-ling, WANG Li. Optimization of microcomputer and microcontroller teaching content[J]. Journal of Jiamusi Education Institute, 2013(6):217.
[5] 楊明欣, 孟 芳. 微機原理與單片機課程體系改革[J]. 實驗科學與技術, 2008,6(4):73-74,88.
YANG Ming-xin, MENG Fang. Comprehensive Reform on the Curriculum System Principle of Microcomputers and Microcontroller[J]. Experiment Science and Technology in China, 2008,6(4):73-74,88.
[6] 楊加國. PROTEUS對電子類專業(yè)課程的影響[J]. 成都大學學報(教育與教學研究), 2013,27(4):83-84,121.
YANG Jia-guo. Proteus’s Influence on Electronics-related Courses[J]. Journal of Chengdu University(Educational Sciences Edition), 2013,27(4):83-84,121.
[7] 呂干云, 汪金山. 基于Proteus的電子專業(yè)多課程一體化仿真教學研究[C]//楊義先, 孟利民. 2008年中國高校通信類院系學術研討會論文集(上冊).北京:國防工業(yè)出版社, 2008:588-590.
Lü Gan-yun, WANG Jin-shan. Teaching research of electronics major synthetic simulation for many courses based on Proteus[C]//YANG Yi-xian, MENG Li-min. Conference Proceeding of academic seminar on the communications department of Chinese universities in 2008(the first volume).Beijing: National Defense Industry Press, 2008:588-590.
[8] 陳 越, 顧 暉, 梁惺彥. Proteus虛擬仿真在微機原理教學中的應用[J]. 電子技術應用, 2012,38(1):106-108.
CHEN Yue, GU Hui, LIANG Xing-yan. The application of Proteus virtual simulation in microcomputer principle teaching[J]. Application of Electronic Technique, 2012,38(1):106-108.
[9] 吉向東, 李新鄂. 基于Proteus的微機原理實驗仿真[J]. 信息技術,2010(2):36-39, 44.
JI Xiang-dong, LI Xin-e. Simulation of microcomputer principles experiments based on Proteus[J]. Information Technology,2010(2):36-39, 44.
[10] 周荷琴, 馮煥清. 微型計算機原理與接口技術[M]. 5版. 合肥:中國科學技術大學出版社, 2013.36-46.
[11] 康華光, 鄒壽彬, 秦 臻, 等. 電子技術基礎數(shù)字部分[M]. 第5版. 北京:高等教育出版社, 2008.127-461.
[12] 田社平, 俞水鋒, 方向忠, 等. Proteus在微機原理課程教學中的應用[J]. 電氣電子教學學報,2011,33(5):70-72.
TIAN She-ping, YU Shui-feng, FANG Xiang-zhong,etal. Application of Proteus on Teaching of Course of Microcomputer Principle[J]. Journal of Electrical and Electronic Education,2011,33(5):70-72.
[13] 郭天祥. 51單片機C語言教程——入門、提高、開發(fā)、拓展全攻略[M]. 北京:電子工業(yè)出版社, 2009:124-192.
[14] 陳令榮. 仿真軟件在單片機教學中的應用[J]. 計算機光盤軟件與應用,2013(3):247-248.
CHEN Ling-rong. Simulation software in the application of microcontroller teaching[J]. Computer CD Software and Application,2013(3):247-248.
[15] 李 莎. 基于Proteus的單片機課程教學方法研究[J]. 湖北第二師范學院學報,2013,30(2):90-92.
LI Sha. Research on MCU Teaching Methods Based on Proteus[J]. Journal of Hubei University of Education,2013,30(2):90-92.
[16] 王 娟. Proteus軟件在單片機專題實訓中的應用[J]. 實驗室研究與探索, 2012, 31(8):72-74,110.
WANG Juan. Application of Proteus in MCU Practical Teaching[J]. Research and Exploration in Laboratory, 2012, 31(8):72-74,110.
[17] 王海燕, 楊艷華. Proteus和Keil軟件在單片機實驗教學中的應用[J]. 實驗室研究與探索, 2012, 31(5):88-91.
WANG Hai-yan, YANG Yan-hua. Application of Proteus and Keil in MCU Experiment Teaching[J]. Research and Exploration in Laboratory, 2012, 31(5):88-91.