李 俠
(安徽電子信息職業(yè)技術(shù)學院,安徽 蚌埠 233000)
關(guān)鍵字:物聯(lián)網(wǎng); CC2530單片機;任務驅(qū)動教學法
物聯(lián)網(wǎng)是通信網(wǎng)和互聯(lián)網(wǎng)的拓展應用和網(wǎng)絡延伸,它利用感知技術(shù)與智能裝置對物理世界進行感知識別,通過網(wǎng)絡傳輸互聯(lián),進行計算、處理和知識挖掘,實現(xiàn)人與物、物與物信息交互和無縫鏈接,達到對物理世界實時控制、精確管理和科學決策目的。CC2530是德州儀器(TI)公司推出的用于2.4GHz IEEE802.15.4Zigbee應用的一個真正的片上系統(tǒng)解決方案,它能夠以非常低的成本建立強大的網(wǎng)絡節(jié)點,廣泛應用于物聯(lián)網(wǎng),包括智能家居、工業(yè)控制、照明系統(tǒng)、消費電子及醫(yī)療保健等領(lǐng)域。在高職院校的物聯(lián)網(wǎng)專業(yè)課程中,《CC2530單片機》是一門重要的專業(yè)核心課程,主要內(nèi)容包括單片機基礎(chǔ)知識、BasicRF通訊、Z-Stack協(xié)議棧等。開設這門課程,多是依托新大陸公司的開發(fā)板,使用的教材中的實驗也多是引用新大陸公司推出的《物聯(lián)網(wǎng)無線傳感網(wǎng)實訓教程》中的相關(guān)實驗,包括基礎(chǔ)實驗、BasicRF無線通訊實驗和Z-Stack組網(wǎng)實驗三大部分。在CC2530的基礎(chǔ)實驗中,包含了CC2530單片機并口知識、按鍵使用、外部中斷、定時器、串口通信等。這些實驗中所用到的知識點較多、實驗任務復雜,需要將用到的多個寄存器逐個配置,并需嚴格配置工程運行環(huán)境。傳統(tǒng)的教學方法往往是教師先講授知識點、演繹,再讓學生通過做實驗以驗證所學知識點。而在講解這些知識時,教師更多的是按照書本上的安排,以分立的實驗來運用這些知識點。導致初學的學生會在不相關(guān)聯(lián)的實驗和新的知識點之間產(chǎn)生迷茫,失去學習興趣。建構(gòu)主義提出:只有當一個人已有的知識無法解決他所面臨的問題時,真正的學習才會發(fā)生。根據(jù)建構(gòu)主義的思想,近幾年任務驅(qū)動教學法應運而生。
任務驅(qū)動教學法實際上就是將理論與實際相結(jié)合,運用啟發(fā)的方式進行教學,將理論教學與實踐教學整合為一元結(jié)構(gòu)。對比傳統(tǒng)教學方法,任務驅(qū)動教學的核心是圍繞“做”這個中心,將教師的“教”與學生的“學”融為一體,將知識傳授與技能訓練融為一體,將學習過程與模仿工作過程、實際工作過程融為一體。任務驅(qū)動式教學是將任務布置給學生,讓學生在完成任務的同時去學習與掌握理論知識,完成任務也是對理論知識的驗證,將“強迫式、被動式”學習轉(zhuǎn)變?yōu)椤皞€性式、主動式”學習。
下面我們就以一個具體的任務來說明任務驅(qū)動教學法在CC2530單片機課程中的應用:用CC2530控制一個LED燈的閃爍。教學目的是使學生掌握并口、寄存器、按鍵、中斷、定時器等知識,并學習借助互聯(lián)網(wǎng)及書本獨立解決問題的技能。在教學中我將這個大任務又分成了由易到難的四個子任務,具體如下:
1.子任務一:通過并口的高低電平變化控制LED燈的閃爍。
任務的操作過程:
(1)開發(fā)板電路分析,通過分析電路可知對LED控制的引腳為P1.0。
(2)利用IAR集成開發(fā)環(huán)境建立工程、編輯源程序、配置工程環(huán)境、編譯工程。
(3)將程序下載至開發(fā)板、根據(jù)現(xiàn)象調(diào)試工程。
源代碼(部分)如下:
通過該實驗,使學生掌握CC2530總共有21個數(shù)字I/O引腳,這21個I/O 可配置為通用I/O端口(GPIO),可通過編程將I/O端口設置為輸出方式或輸入方式。并學習了與I/O口相關(guān)的寄存器(SFG),如Px:端口數(shù)據(jù)寄存器(x=0、1、2)、PxSEL:端口功能選擇寄存器(x=0、1、2)以及PxDIR:端口方向寄存器(x=0、1、2)。
2.子任務二:通過查詢按鍵狀態(tài)實現(xiàn)LED燈的閃爍。
任務的操作過程:
(1)開發(fā)板電路分析,通過分析電路可知對LED控制的引腳為P1.0,按鍵所接引腳為P1.2。
(2)利用IAR集成開發(fā)環(huán)境建立工程、編輯源程序、配置工程環(huán)境、編譯工程。
(3)將程序下載至開發(fā)板、根據(jù)現(xiàn)象調(diào)試工程。
源代碼(部分)如下:
通過本任務的完成,使學生掌握了如何將I/O端口配置為輸入端口以及如何配置輸入模式,通過判斷按鍵狀態(tài)和按鍵消抖,實現(xiàn)了用按鍵控制LED燈閃爍,完成了既定任務。
3.子任務三:用按鍵的外部中斷控制LED燈的閃爍。
任務的操作過程:
(1)分析查詢按鍵狀態(tài)實現(xiàn)LED燈閃爍存在的問題——消耗CPU資源,不能實現(xiàn)實時控制,引出外部中斷。
(2)學生通過查閱資料利用按鍵的外部中斷方式實現(xiàn)LED燈的閃爍。
(3)對學生遇到的問題進行分析,并總結(jié)中斷用到的寄存器、中斷向量、中斷優(yōu)先級、中斷服務程序等知識。
源代碼(部分)如下:
通過本次任務的完成,使學生理解了中斷、中斷源、中斷嵌套、中斷優(yōu)先級等概念,理解了中斷處理的過程,掌握了中斷處理函數(shù)的編寫。并通過與查詢按鍵狀態(tài)控制LED閃爍的工程相比較,使學生理解了通過中斷能夠?qū)PU解放出來,并能夠?qū)崿F(xiàn)實時控制。
4.子任務四:通過定時器實現(xiàn)LED燈的閃爍。
任務的操作過程:
(1)在LED的閃爍中,如何實現(xiàn)LED亮和滅的時間長度固定,引出定時器。
(2)學生通過查閱資料利用定時器方式實現(xiàn)LED燈的閃爍。
(3)對學生遇到的問題進行分析,并總結(jié)定時器、定時器初始化、定時器工作模式、定時器中斷服務函數(shù)等知識。
源代碼(部分)如下:
定時/計數(shù)器是CC2530的重要資源之一,定時/計數(shù)器的基本功能是實現(xiàn)定時和計數(shù),整個工作過程中不需要CPU進行過多參與,節(jié)省了CPU資源并能夠?qū)崿F(xiàn)周期性運行。CC2530的定時器比51單片機的定時器功能更多。通過該任務的完成,使學生掌握了定時/計數(shù)器概念、作用和工作原理,與定時器/計數(shù)器相關(guān)的寄存器配置。
上述的四個子任務均實現(xiàn)了利用CC2530控制LED的閃爍,對比如表1所示。子任務一通過電平的高平變換和延時實現(xiàn)LED的閃爍,使學生掌握了GPIO的設置。子任務二通過查詢按鍵是否被按下實現(xiàn)LED的閃爍,使學生學會對按鍵的操作。子任務三是對子任務二的改進,由于查詢的方式會消耗CPU資源,從而引入中斷及其相關(guān)操作。子任務四通過定時器實現(xiàn)了LED在固定周期內(nèi)閃爍,使學生進一步學習了由定時器引發(fā)的中斷操作。通過四個實現(xiàn)相同效果的子任務,使學生牢固掌握了所涉及的知識點,并通過做出對比掌握每個子任務運用的知識點的優(yōu)劣,從而為將來設計電路做好準備。
表1 四個子任務對比分析
通過任務驅(qū)動的教學法在《CC2530單片機》課程中的應用,使學生成為教學中的主體,還學習的主動權(quán)給學生。當學生因遇到問題使任務沒有順利完成時,迫切希望能夠得到老師的指導或查閱資料解決問題。任務驅(qū)動教學法具有以下優(yōu)勢:①使學生能夠明確學習目標,并提高學習興趣。②能夠?qū)⒎稚⒌闹R點與實際工程相結(jié)合,更加深入理解知識點的作用及對知識點的運用。③培養(yǎng)了學生獨立解決問題的能力,提高學習效果。④實現(xiàn)了師生間的良性互動,激發(fā)了學生的學習熱情。⑤能夠為學生將來走上工作崗位做好零阻力的對接。