田相鵬,朱黎(通信作者),李清海
(湖北民族大學信息工程學院實驗中心,湖北恩施,445000)
模擬電路、數字電路、單片機原理和電子系統設計這些課程是現今大多數高校電子、電氣專業開設的重要電子類基礎課程。這些課程對實踐動手能力的培養要求很高,并且在整個課程培養體系中課程之間存在依賴或者漸進的關系[1-2]。因此,這幾門實驗課程的開設應該綜合考慮,實驗項目應該系統設計,實驗平臺應該統一搭建。
在傳統的實驗教學中主要以實驗箱為主,這種方式存在電路連線復雜、測試繁瑣和創新性設計性實驗項目難以開展等諸多問題,已逐漸被各大高校教師所棄用[3],取而代之的是以設計性實驗為主、驗證性實驗為輔的思路。文獻[4]提出了教學、實驗和實訓三位一體的教學實踐方法,將電子實訓項目引入實驗教學,取得了較好的效果;文獻[5]將創新競賽項目與教學項目結合,大大提高學生的創新意識和科研能力;文獻[6]提出了運用EDA實現多課程的融合教學的探討,但是所用平臺過于復雜。因此,目前對于單門課程以設計性實驗項目為主的實驗教學效果較好,但對于多課程實驗項目建設涉及較少,尤其式缺乏一個多課程的軟硬件可裁剪的實驗項目體系[7]。本文以多課程基礎綜合實驗平臺搭建為落腳點,探討系統性的多課程實驗教學方法,運用Proteus軟件[8]搭建最核心的綜合實驗硬件平臺。
結合模擬電路、數字電路、單片機原理和電子系統設計等課程的內容,以單片機原理為主線,Proteus軟件為開發平臺,設計出一個涵蓋五門課程的主要實驗項目系統。實驗項目內容如圖1所示。該實驗項目系統分為基礎實驗項目、51單片機總線接口電路實驗和綜合實驗項目三部分。這種將多門課程的實驗內容系統化設計的方案,考慮了實驗課程的連續性、銜接性和進階性,通過這種堆疊式的和“積木”式的實驗項目管理可以有效的提升學生學習知識的連貫性和系統性。

圖1 實驗項目系統示意圖
在實際實驗課程的開設中,如圖1所示設計的實驗項目并不是一成不變的,可以根據具體情況進行適當的修改和添加,但設計的實驗項目應該具有擴展性和衍生性。為了達到更好的實驗效果,這類課程的開設應該由一個教研組內的老師完成,以達到課程開設的連續性。
仿真電路的搭建是以51單片機總線結構的電路為核心,各模塊電路均設計成兼容51單片機總線時序的電路結構,以設備的形式掛載在總線上,主要包含51單片機最小系統、總線擴展邏輯電路、外設電路[9]。這一點和一些“口袋”式實驗平臺有較大差異,實際中較多“口袋”式平臺無法實現多模塊同時工作[10],而且在軟件編程上接口不統一,無法實現“搭積木”式的軟硬件擴展。
總線擴展電路的時序邏輯遵循標準的51單片機總線時序結構,采用74HC373地址鎖存芯片和74HC154譯碼芯片構成地址總線擴展電路。通過這種電路設計,最大可實現16個外部設備同時工作,如果外設個數超過16個,還可以通過添加譯碼器實現地址擴展。電路圖如圖2所示。也可以看到采用總線方案,幾乎可以任意擴展外設數量,這是傳統普通IO口直接掛載外設方式無法做到的。

圖2 總線擴展電路
IO端口擴展電路的實現是整個系統多樣化應用的一個重要前提。在實際應用中,有些模塊并沒有標準的51單片機總線時序結構,但是也需要應用到系統中,比如數碼管顯示、按鍵輸入、步進電機等,因此,如何設計一個簡單、高效、編程方便的IO擴展方案具有重要作用??紤]到實際應用中,雙向IO口的功能一般應用較少,因此本文采用74HC273實現IO口的輸出,采用74HC245實現IO口的輸入,這樣IO擴展和總線擴展電路均使用74系列的邏輯芯片實現,在搭建硬件環境時,這些較多的74系列芯片可以用一片CPLD芯片來實現,極大簡化硬件電路設計,IO口擴展電路如圖3所示。

圖3 IO口擴展電路
作為一個混合信號實驗平臺,ADC與DAC是必不可少的。本系統的ADC和DAC芯片選擇經典的ADC0804和DAC0832,轉 換 時 間 分 別 為100μs和10Msps,在普通實驗應用領域足夠。與單片機的總線連接如圖4所示。數據端口DB0~DB7均連接到單片機P0口;地址端口連接74HC154的ADD2端口,DAC0832連接ADD3端口;控制端口WR和RD均和單片機的WR和RD對應連接即可。

圖4 ADC與DAC電路
在采用總線方式對各外設進行統一編址后,對外設訪問編程將變得非常簡潔。首先在Keil軟件中包含intrins.h頭文件,然后根據74HC154的外接端口對各個外設進行編址。比如ADC0804接的端口為ADD2,那么地址為0xffc2,運用#define ADC0804 XBYTE[0xffc2]宏定義就將ADC0804的地址設定完成。只需要語句tmp = ADC0804就可把ADC轉換的數據存儲到tmp變量中。采用這種方式訪問任何外設編程語句就和訪問單片機內部的寄存器相似,軟件擴展性和裁剪性均較好。
在上述仿真硬件系統搭建完成后,就可以開展綜合性的實驗項目或者開展需要用到處理器的實驗項目,也可以作為基礎實驗項目的實驗素材。下面介紹2種實驗項目仿真結果。
單片機模擬DDS信號發生器實驗需要用到的模塊電路主要有按鍵輸入、DAC0832模塊和LED數碼管顯示模塊。通過按鍵可以調整輸出波形類別和頻率。DAC0832外接運算放大器,實現電流信號到電壓信號的轉換。LED數碼管實現輸出信號的頻率和波形類別顯示。如圖5所示為20Hz正弦波和10Hz三角波的仿真結果圖。

圖5 仿真測試結果圖
運用本系統的ADC、DAC、矩陣鍵盤、LCD12864和LM317電路模塊就可以組建一個較為復雜的程控直流穩壓電源綜合實驗項目。圖6為程控電源的主拓撲部分,該電路在運用LM317可調穩壓電源的基礎上,實現輸出電壓能夠在1.25V-6.25V程控可調,并且輸出電壓能夠通過LCD顯示。

圖6 程控電源主拓撲部分
圖7 為程控電源的矩陣鍵盤輸入和LCD顯示部分,通過矩陣鍵盤可以輸入一個設定電壓值,然后按下ON/C按鍵,輸出電壓就可以調整到設定電壓值。另外,LCD接口的控制總線采用了一個與門和一個或非門電路,在編程時,只需要定義好寫數據宏#define LCDWR_D XBYTE[0xf5c7],然后語句LCDWR_D=0x01就可以實現對LCD寫入數據。這種方式相比較經典的普通IO口賦值方式來看,編程得到極大的簡化。

圖7 程控電源輸入與顯示部分
通過上述應用案列表明,通過這種模塊化的組合,可以快速實現軟硬件的裁剪和組合運行??梢詫崿F所有外設模塊的同時運行,而且軟件編程接口統一,外設擴展數量幾乎沒有限制,這極大的增加了系統的擴展性和可裁剪性。因此,本系統不但能夠用于基礎性實驗開展,也能夠通過模塊的拼接實現復雜的系統性實驗,使得做實驗就像“搭積木”這樣簡潔,另外還能夠在本系統的基礎上進一步擴展,構建一個更加龐大和完善的多課程一體化的實驗平臺,比如可以加入FPGA實驗課程、PCB制版課程、電工訓練等課程。