李 媛
(商丘師范學院 電子電氣工程學院,河南 商丘 476000)
單片機課程是電子信息工程、自動化專業(yè)的一門實踐性比較強的專業(yè)課程,目前我校的教學模式仍然是理論加實驗課的教學形式,而且實驗通常需要理論的支撐,由于課時限制,往往理論內(nèi)容和實踐不能有效地結(jié)合,難以培養(yǎng)學生的實踐能力.為滿足我校培養(yǎng)應用型人才要求,在單片機教學實踐中,提出了利用超星泛雅平臺為學生提供錄制視頻資源,并通過小組合作形式,基于Proteus和Keil軟件結(jié)合實現(xiàn)項目式的教學改革,加強對學生的實踐能力培養(yǎng).
以商丘師范學院為例,單片機的理論和實踐是分開教學,理論課上多以講解單片機的結(jié)構(gòu)、匯編語言設(shè)計、指令等理論知識,而實驗課只是對一些程序設(shè)計進行驗證.由于教學課時的限制,能開展的實驗也有限,實驗課要先對匯編程序進行講解,導致學生在理論知識理解不透徹和動手實踐的時間有限的情況下,做過基礎(chǔ)實驗并不能更好地理解單片機的工作原理,反而會有更多的疑惑,感覺入不了門,實驗效果不是很理想.導致學生興趣不高,學習效果比較差.
實驗教學基本是側(cè)重軟件編寫和調(diào)試,對單片機的硬件設(shè)計及外部擴展電路設(shè)計涉及很少.單片機課程本身是需要軟硬件結(jié)合的課程,由于硬件開發(fā)設(shè)計及接口電路設(shè)計實驗很難開設(shè),導致綜合性實驗開設(shè)效果不理想,學生的自主設(shè)計電路的能力比較差,并且工程實踐能力的培養(yǎng)也很難實現(xiàn),難以調(diào)動學生學習的積極性和學習興趣,教學效果比較差.
為了提高學生的學習興趣,確保教學效果良好,采用基于Proteus和Keil的項目式教學方法[1-3]開展單片機課程的教學,將C51的教學與單片機教學融合在一起,削弱匯編教學內(nèi)容的學習.本著讓學生學習內(nèi)容夠用,實用,將單片機的課程內(nèi)容進行整合,劃分為6個模塊:單片機最小系統(tǒng)、單片機IO口的應用、中斷系統(tǒng)的應用、定時器/計數(shù)器的應用、串行口的應用、鍵盤及顯示接口的應用.并將6個模塊細化為12個項目,項目的劃分如表1所示.從表1可以看出,教學過程首先讓學生認識單片機的開發(fā)工具,學會使用Proteus和Keil軟件,接著由淺入深講述單片機開發(fā)的流程,從而讓學生先感性認識單片機并產(chǎn)生興趣,再進行各個模塊的應用介紹.每個模塊設(shè)計一個或者多個項目,以項目制作為導向,圍繞項目開展知識點講解,配合Proteus和Keil將硬件、軟件的設(shè)計過程展示給學生,完成項目的調(diào)試與運行,并將仿真過程錄制成視頻,上傳超星泛雅平臺,供學生課下參考.在此基礎(chǔ)上進行擴展,讓學生在課下以小組合作的方式,從硬件設(shè)計、軟件設(shè)計和PPT匯報和撰寫報告幾個方面進行合理分工,要求學生自主完成一些項目的設(shè)計與仿真.
表1 模塊化項目劃分表
由于單片機課程的應用性特點,要求教學過程要體現(xiàn)理論與實踐的融合,但受課時的限制,實物的制作過程在理論課程中難以完成.利用Proteus仿真軟件進行硬件設(shè)計,配合Keil軟件進行聯(lián)調(diào),可實現(xiàn)在課堂中演示單片機從硬件設(shè)計、軟件設(shè)計到軟硬件聯(lián)調(diào)的全過程,使抽象的課程變得生動有趣.下面以簡易秒表為例,說明基于Proteus與Keil的項目式教學方法在教學中的應用.一個項目的實施過程包括5個部分[5-6]:
圖1 簡易秒表電路仿真圖
(1)項目導入.通過公共場合的電子手表、手機秒表、計時秒表等圖片引入項目.
(2)項目功能分析與設(shè)計.根據(jù)預定的人機接口確定需要進行按鍵和顯示裝置的控制要求,確定單片機的IO口如何控制數(shù)碼管和按鍵,使用數(shù)碼管的公共端是共陰還是共陽,按鍵的閉合和彈起狀態(tài),講解硬件設(shè)計方案.
(3)項目相關(guān)知識.由于數(shù)碼管顯示的內(nèi)容固定,通過數(shù)組實現(xiàn)比較方便,對數(shù)組知識進行講解;按鍵的去抖動知識講解,數(shù)碼管動態(tài)顯示的消隱問題講解.
(4)項目實現(xiàn).通過對實現(xiàn)功能的分析,進行流程圖的設(shè)計,利用Keil進行軟件編程的設(shè)計,并配合Proteus進行聯(lián)調(diào).
(5)項目拓展.根據(jù)現(xiàn)有的兩位數(shù)碼管秒表進行改進,拓展為6位數(shù)碼管秒表,實現(xiàn)啟動、復位和暫停按鍵控制功能.
下面對簡易秒表的實現(xiàn)過程進行說明.如圖1所示,簡易秒表的硬件原理圖通過Proteus進行設(shè)計,圖中AT89C51單片機構(gòu)成最小系統(tǒng),注意由于是仿真硬件設(shè)計,電源和地引腳沒有顯示,實際系統(tǒng)中AT89C51需要5 V供電,圖中使用共陽極數(shù)碼管,按鍵可實現(xiàn)秒表0-10 s的計數(shù)、復位和暫停功能.
軟件在KeilC51中完成編譯生成timer.hex文件,然后將timer.hex文件添加到AT89C51中即可實現(xiàn)聯(lián)調(diào).源程序如下:
#include
sbit KEY=P3^7;//位定義
unsigned char code Table[]={0xC0,0xf9,0xA4,0x0B0,0x99,0x92,0x82,0xf8,0x80,0x90};//共陽極數(shù)碼管段碼
unsigned char i=0;count=0;key_flag=0;flag=0;
bit Key_State;
void key_Handle();//按鍵處理函數(shù)聲明
void delay(unsigned int ms)
{unsigned char j;
while(ms-—)for(j=0;j<120;j++);}
void main()
{P0=0xff;//初始顯示0
P2=0x00;//位選關(guān)閉
TMOD=0x01;//T0定時器,工作模式1
TH0=(65536-50000)/256;//50ms定時初值
TL0=(65536-50000)%256;
Key_State=1;//用于有按鍵按下的記錄
while(1)
{if(Key_State!=KEY)//判斷是否有按鍵按下
{
delay(5);
Key_State=KRY;//按鍵的狀態(tài)值賦給 Key_State
key_Handle();}
if(flag==1)
{P0=Table[count/10]&0x7f;//顯示十位數(shù)和小數(shù)點
P2=0x01;
delay(5);
P0=0xff;
P0=Table[count%10];//顯示個位數(shù)
P2=0x02;
delay(5);
P0=0xff;
if(count==100)//計數(shù)滿100次,10 s顯示00
count=0;} } }
void key_Handle()
{if(Key_State==0)
{key_flag=(key_flag+1)%3;//記錄按的次數(shù)后處理為1,2,0
switch(key_flag)
{case 1:EA=1;ET0=1;TR0=1;break;//開中斷,啟動定時器,50 ms進入中斷
case 2:EA=0;ET0=0;TR0=0;break;//關(guān)中斷,停止定時器
case 0:P0=0xC0;P2=0x00;i=0;count=0;break;//全部清零} } }
void DSY_refresh()interrupt 1
{TMOD=0x01;//T0定時器,工作模式1
TH0=(65536-50000)/256;//50 ms定時初值
TL0=(65536-50000)%256;
if(++i==2) //每0.1 s計數(shù)一次,并刷新數(shù)據(jù)
{i=0;
count++;
flag=1;} }
為了保證過程管理的有效性,對單片機課程的考核方式進行改革,采用考勤和作業(yè)評價(占比20%)、項目實施過程性評價(占比30%)與期末考試(占比50%)相結(jié)合的方式.其中,考勤和作業(yè)評價主要是針對平時對單片機理論知識學習和學習態(tài)度考核,過程性評價注重項目設(shè)計過程和實踐能力的考核,期末考試以考核課程的基礎(chǔ)理論知識為主.項目完成后要進行PPT演示和實物演示,PPT演示鍛煉學生對設(shè)計內(nèi)容的語言表達能力,實物演示要求能夠展示硬件及調(diào)試過程,并要求提交設(shè)計報告,其中PPT報告占10%,硬件設(shè)計與功能實現(xiàn)占50%,設(shè)計報告占40%,旨在考核學生對所學知識的應用能力、實踐能力、合作能力及語言表達能力.該考核方式已在2015級工科各專業(yè)、2017級自動化專業(yè)和2018級電子信息工程專業(yè)進行實施,改革效果良好,學生實踐能力大幅提高,得到學生一致好評.
改革后的單片機教學真正做到了轉(zhuǎn)換教師為主導的傳統(tǒng)教學方式,實現(xiàn)以學生為中心的“教、學、做”一體的教學方式.基于Proteus和Keil的項目教學法可以讓學生很好地掌握單片機開發(fā)流程的工程實踐能力,而且由于Proteus是純軟件系統(tǒng),通過對51控制系統(tǒng)的電路搭建,輔以Keil軟件進行仿真,只需電腦就可建立虛擬實驗室,學生可以在課下獨立完成實驗、作業(yè)或者課程設(shè)計.學生在實踐過程中獲得成就感,自然會更好激發(fā)學習興趣,更好實現(xiàn)以學生為中心的“教、學、做”三位一體的教學法.階段性的考核也可以培養(yǎng)學生的語言組織能力、團隊合作能力和實踐能力,使學生綜合素質(zhì)鍛煉得到有效提高,滿足社會對應用人才的需求,以便于今后能快速的適應工作崗位.