王麗 王志凌 鐘麗娜


摘 要:文中探討了單片機課程教學中現(xiàn)存的共性問題,提出了基于Proteus的單片機項目式教學模式。通過實例分析,使用項目式教學方式有助于改進單片機課程的理論教學和實踐教學,提高學生分析問題和實踐能力,取得了良好的教學效果。
關鍵詞:單片機;理實一體化;項目式教學;Proteus
中圖分類號:G642 文獻標識碼:A 文章編號:2095-1302(2016)07-0-02
0 引 言
單片機課程是工科專業(yè)的主干課程,也是一門實踐性很強的課程。單片機作為計算機應用技術的一大分支,在智能化產(chǎn)品開發(fā)過程中占據(jù)核心地位[1,2]。
為了更好地適應市場的需求,廣大獨立學院紛紛進行了課程的教學模式改革,以期形成更具活力、更高效的獨立院校本科實踐課程教學體系[3,4]。培養(yǎng)學生對課程學習的積極性和一定的獨立實踐、設計能力,要求我們處理好實踐課程的理論教學與實踐教學環(huán)節(jié)的關系。
單片機課程的傳統(tǒng)教學模式是先理論教學,中后期進行實驗教學。理論教學中以單片機的硬件結構為主線,講授指令及指令系統(tǒng)。抽象的單片機芯片與空洞的指令系統(tǒng)的學習造成學生對課堂內(nèi)容理解困難,更加無法高效地理解單片機應用系統(tǒng)的設計過程。實驗教學多是進行驗證性實驗,學生遵循實驗指導書進行簡單的導線連接和程序驗證,學生不會自行思考應用系統(tǒng)的設計環(huán)節(jié),缺乏主動性。
此外,理論與實踐的脫節(jié)教學方式也會使學生缺乏對單片機應用系統(tǒng)設計過程最直觀的認識與工程體驗。最終導致單片機課程具有“難入門”、“內(nèi)容繁雜、枯燥”等特點。
本文基于單片機課程教學現(xiàn)狀的分析,提出基于“項目方式”的理實一體化教學模式在課程教學過程中的應用。使學生能在“學中做”和在“做中學”,師生雙方也是邊教邊做,二者相輔相成,激發(fā)學生的學習積極性。整個教學過程以實際的項目內(nèi)容與設計過程為基線,利用Proteus軟件為工具,進行項目內(nèi)容的硬件原理與軟件設計。學生對項目內(nèi)容及方案先自主調(diào)研,較好地理解單片機的內(nèi)部結構,掌握單片機應用系統(tǒng)的硬件電路設計與軟件程序設計的技能,從而積累項目開發(fā)的經(jīng)驗。為以后的畢業(yè)設計、甚至就業(yè)打好基礎。
1 項目應用實例
單片機課程學習的最終目的是單片機應用系統(tǒng)設計,包括硬件和軟件兩方面。即在教學過程中應將硬件原理與軟件程序設計相結合。以51單片機中斷綜合實例來說明“項目式”教學方式在單片機教學中的應用。
1.1 單片機應用系統(tǒng)設計流程
單片機應用系統(tǒng)的設計主要包括硬件和軟件設計兩大部分。一般來說,用途不同,它們的硬件和軟件結構差別就會很大,但是系統(tǒng)的設計方法和步驟基本相同[5]。
1.2 硬件電路設計
硬件電路主要包括單片機最小系統(tǒng)模塊、存儲器模塊、按鍵模塊和顯示模塊。項目內(nèi)利用了單片機的中斷技術、存儲器擴展技術、串行口擴展技術、單片機輸入輸出接口技術。
本實例的Proteus電路原理圖如圖1所示。控制記錄按鍵開關,利用中斷技術將開關次數(shù)K值存入外擴存儲器AT24C02C芯片,利用數(shù)碼管同步顯示K值。單片機P3.2引腳/外部中斷源0(跳沿觸發(fā)方式)連接記錄按鍵開關,單片機P2.6和P2.7引腳模擬I2C總線與AT24C02C芯片通信。74LS47驅(qū)動七段數(shù)碼管顯示記錄按鍵的開關次數(shù)。
當系統(tǒng)斷電后,再次上電時,能記憶斷電時按鍵次數(shù),連續(xù)記錄按鍵S按下的次數(shù)。單片機的P3.6引腳連接清零按鍵,能保證異步清除按鍵的歷史記錄次數(shù),重新記錄。
1.3 軟件設計
本程序采用模塊化設計,主要包括主程序模塊、外部中斷模塊、存儲器的I2C通信模塊和顯示模塊。
1.3.1 主程序模塊
主程序主要完成參數(shù)的初始化、開中斷、判斷按鍵開關與控制等。主程序設計流程圖如圖2所示。
具體的主程序如下:
#include
#include
typedef unsigned char uchar;
#define DAT_ADDR 0x03
uchar g_ucDat;//記錄按鍵開關次數(shù)
sbit sda = P2^7;//AT24C02的數(shù)據(jù)總線
sbit scl = P2^6; //AT24C02的時鐘總線
sbit LED1 = P2^0;
sbit LED2 = P2^1;
sbit clear_key = P3^6;//清零按鍵
void main(void)
{
uchar temp = 0;
g_ucDat=0;
int0_init();//中斷初始化
init_I2C();//I2C總線初始化
temp = read_I2C(DAT_ADDR);
if(temp == 0xFF)
{
temp = 0;
write_I2C(DAT_ADDR,temp);
delay_ms(10);
}
g_ucDat = temp;
while(1)
{
if(clear_key == 0)
{g_ucDat = 0;
}
temp = g_ucDat;
write_I2C(DAT_ADDR , temp);
display(temp);
}
}
1.3.2 中斷模塊
中斷模塊程序如下:
void int0_init(void)//中斷系統(tǒng)初始化
{
EX0 =1;
IT0 =1;
EA=1;
}
void int0_tnter() interrupt 0
{
g_ucDat ++;
}
1.3.3 存儲器AT2402C的I2C通信模塊
51單片機沒有專用的I2C總線接口控制器,采用軟件模擬的方法實現(xiàn)與具有I2C總線接口的外圍器件AT2402C連接,從而構成單片機應用系統(tǒng)。在51單片機模擬I2C總線通信時,需要調(diào)用一些子程序構建相應的時序。這些子程序包括總線初始化,典型信號時序模擬子程序,I2C總線模擬通用子程序。為簡便起見,具體程序參考文獻[5]。
1.3.4 顯示模塊
利用單片機P0口控制74LS47驅(qū)動兩位數(shù)碼管顯示按鍵次數(shù)K值。其程序如下:
void display(uchar dat)
{
LED1 = 0;
LED2 = 1;
P0 = (dat%10);
delay_ms(1);
LED2 = 0;
LED1 = 1;
P0 = (dat/10);
delay_ms(1);
}
1.4 軟硬件結合仿真調(diào)試
生成HEX文件后,將其加入Proteus仿真系統(tǒng)的單片機中調(diào)試。接下來就可以通過調(diào)試菜單進行仿真與驗證。
2 結 語
將理論與實踐教學結合在項目內(nèi)容中,師生邊教邊學,對培養(yǎng)學生的程序設計、硬件設計及綜合知識應用起到積極的作用。其中Proteus將理論與實踐相結合,使學生對單片機的認識更加直觀,進一步激發(fā)了學生的學習興趣,從而提高了教學質(zhì)量。
參考文獻
[1]任國臣,陳曉英,藍和慧,等.單片機原理及接口技術實踐教學改革與實踐[J].遼寧工業(yè)大學學報(社會科學版),2014,16(5): 141-142.
[2]魯俊生,萬忠,萬光毅.單片機可曾教學改革的實踐和思考[J].實驗室研究與探索,2004,23(3):54-56.
[3]張晶.精品課程建設的實踐與思考[J].黑龍江高教研究,2006(1):143-146.
[4]林志貴,袁臣虎,李現(xiàn)國.單片機原理及接口技術課程教學改革新思路[J].電氣電子教學學報,2007,29(2):16-19.
[5]王麗,張燕,王恒.單片機原理及應用[M].北京:國防工業(yè)出版社,2014.