王愛華
(上海師范大學信息與機電工程學院,上海 201418)
單片機課程是電子類專業的必修課程,實驗教學中有內容簡單和實驗箱陳舊等問題。學生按部就班地上課和做實驗,學生學習積極性不高。
學生通過實驗驗證才能更好地掌握理論知識,通過實驗教學改革,使得學生高效率學習單片機,能夠有效激發學生的學習興趣,提高學生的調試和設計能力,培養學生的實踐能力。
以前理論課時多,實驗課時少,學生覺得這門課枯燥泛味。存在實驗內容簡單、教學儀器有限、實驗方法單一、理論實踐脫節等問題,學生做實驗的時候按實驗指導書接幾根線,很快完成實驗,實驗報告敷衍了事。考核方式不全面,實驗考試占比例小,期末筆試占比例大。
實驗用IAP15W4K58S4芯片,是宏晶科技提供的。采用C語言編寫程序,在以前開設的驗證性實驗的基礎上增加難度高的實驗,實驗有:I/O口、外部中斷、定時器/計數器、串口通信、A/D轉換、步進電機以及LCD(1602)顯示實驗等。
選擇Proteus 和keil uvision5軟件組成虛擬實驗系統,學生在課外用這兩個軟件對自己編寫的程序進行仿真調試,通過微信、QQ和教師互動。在實驗課上改用開發板調試。實驗內容有基礎題和提高題。教師適當地運用講授法、討論法、練習法等教學方法,啟發學生勤思考和勤動手。學生調試出程序的時候,自豪感油然而生。教師不僅要講解實驗內容和回答學生提問,而且每堂課都要仔細檢查學生實驗結果并打分。學生還可以在課外時間進入開放實驗室,編寫和調試程序。教師每周有固定的課外坐班答疑時間,教師要鼓勵學生多參與各類電子競賽,以學促賽,以賽促學。
學生在課外用Proteus軟件畫原理圖,在keil uvision5中建立新的設計工程,添加新的.C文件到當前工程,把經過編譯后生成.hex文件加載到51單片機中,然后進行系統仿真。因為Proteus軟件無法仿真IAP15W4K58S4單片機,所以進入實驗室后需要稍微改變程序,然后在開發板上調試出實驗結果。
教師在每次實驗中逐個查看學生實驗現象并打分,很多學生為了得到高分,專心細致地調試程序。課程總評成績根據出勤、實驗、作業、上機考及筆試等計算,實驗考試占比例增大,期末筆試占比例減少。
用宏晶科技的開發板做實驗,使用STC官方軟件下載程序。以下是IAP15W4K58S4通道P1.1輸入的模擬量,A/D轉換后的結果(模擬電壓形式)顯示在數碼管上的實例,P0口輸出段碼,P2口輸出位碼。部分程序如下:
void main(void)
{u32 Vin=0; u16 ADval=0;
Pin_Mode();ADC_Initial();
while(1)
{ADval = ADC_Convert();
Vin = VCC * ADval/1023;
Da_Buf[0]= Vin % 10;
。。。。。。//省略
SEG7_Display();}}
u16 ADC_Convert(void)
{u16 ADC_Da = 0;
while((ADC_CONTR & 0x10)!= 0x10);ADC_CONTR = 0x81;
ADC_Da=(ADC_RES << 2)|(ADC_RESL & 0x03);
ADC_CONTR = 0x89;return ADC_Da;}

圖1 A/D轉換后的結果顯示在數碼管上
通過更新上課教材、實驗教材以及實驗開發板,更新實驗內容,增加實驗課時,運用新的教學方法,改革實驗考核方式,培養學生的學習興趣,提高學生的設計能力和創新能力,取得了較好的教學效果。