王麗 王志凌 鐘麗娜


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