蘇州建設(shè)交通高等職業(yè)技術(shù)學(xué)校 李 英
任務(wù)驅(qū)動(dòng)法在高職單片機(jī)課程教學(xué)中的應(yīng)用
蘇州建設(shè)交通高等職業(yè)技術(shù)學(xué)校 李 英
單片機(jī)課程在我校從高職三年級(jí)下學(xué)期開(kāi)始學(xué)習(xí),學(xué)習(xí)兩學(xué)期。高職生本身的特點(diǎn)是沒(méi)有經(jīng)過(guò)高中階段,學(xué)習(xí)積極性不是很高,好奇心強(qiáng),不太喜歡理論學(xué)習(xí),尤其是深?yuàn)W的專(zhuān)業(yè)理論,但是喜歡動(dòng)腦筋,喜歡自己操作。而單片機(jī)課程作為電子信息工程專(zhuān)業(yè)主要的專(zhuān)業(yè)課之一,本身的特點(diǎn)是內(nèi)容較多,且多是看不著摸不到的知識(shí),因此,一般高職生認(rèn)為單片機(jī)課程較為深?yuàn)W,很難聽(tīng)懂學(xué)會(huì)。筆者個(gè)人在單片機(jī)課程的教學(xué)過(guò)程中,根據(jù)學(xué)生的特點(diǎn),第一學(xué)期主要采用理論講授,打好理論基礎(chǔ),第二學(xué)期主要是實(shí)踐操作。在第一學(xué)期的理論講授過(guò)程中,任務(wù)驅(qū)動(dòng)法帶來(lái)了較好的教學(xué)效果。
以定時(shí)器/計(jì)數(shù)器部分內(nèi)容為例,按照單片機(jī)教材本身的安排,先是半頁(yè)介紹定時(shí)器/計(jì)數(shù)器的結(jié)構(gòu),然后兩頁(yè)介紹定時(shí)器/計(jì)數(shù)器的方式寄存器和控制寄存器(TMOD和TCON),接著三頁(yè)介紹定時(shí)器/計(jì)數(shù)器的工作方式,最后介紹定時(shí)器/計(jì)數(shù)器的初始化程序設(shè)計(jì),在程序設(shè)計(jì)中才牽涉定時(shí)器初值的計(jì)算公式和例題。也就是說(shuō),普通的教學(xué)時(shí)間每節(jié)課45分鐘,需要整整一節(jié)課才能介紹完定時(shí)器/計(jì)數(shù)器所牽涉的理論知識(shí),這一節(jié)課只需要學(xué)生認(rèn)真聽(tīng)講,然后第二節(jié)課才開(kāi)始引入計(jì)算??上攵?,我們的學(xué)生在第一節(jié)課只是小部分同學(xué)睡著了,極個(gè)別同學(xué)發(fā)呆,還有一部分在掙扎著盡量不睡,其實(shí)什么也沒(méi)聽(tīng)進(jìn)去。這樣的教學(xué)效果顯然背離了我們教學(xué)的初衷。因此,筆者采取了任務(wù)驅(qū)動(dòng)法教學(xué)。
首先介紹定時(shí)器/計(jì)數(shù)器在實(shí)際生活中的應(yīng)用,比如,學(xué)校里提示上下課的自動(dòng)鈴聲,自動(dòng)洗衣機(jī)相關(guān)的洗滌時(shí)間、脫水時(shí)間,二極管的閃亮、彩燈循環(huán)等,通過(guò)這些應(yīng)用引導(dǎo)學(xué)生的思考和興趣,然后和單片機(jī)芯片定時(shí)器/計(jì)數(shù)器聯(lián)系起來(lái)。最后設(shè)置問(wèn)題——如何實(shí)現(xiàn)定時(shí)功能?帶著問(wèn)題,引導(dǎo)學(xué)生認(rèn)真學(xué)習(xí)實(shí)現(xiàn)定時(shí)所需要的大概過(guò)程:首先進(jìn)行定時(shí)器的初始化。通俗講就是給定時(shí)器設(shè)置初值,因?yàn)閱纹瑱C(jī)復(fù)位之后除了SP為07H,P0~P3口為0FFH之外,其余寄存器都是OOH。因此如果想定時(shí),必須先設(shè)定初值,比如隔1秒二極管閃亮一次,那么就應(yīng)該設(shè)置好1秒。另外,定時(shí)器的初始化還包括工作方式的設(shè)置,工作方式不同卻可以同樣實(shí)現(xiàn)定時(shí)的功能。接著啟動(dòng)定時(shí)器。然后判斷定時(shí)器定時(shí)時(shí)間是否到,時(shí)間到后如何操作就可以完全按照實(shí)際需要去做了。那么,我們首先是要講清楚,如何設(shè)置定時(shí)器工作方式,從而引出TMOD,進(jìn)行詳細(xì)介紹(圖1)。
其中,M1M0的組合決定了工作方式:00,對(duì)應(yīng)為方式0,01對(duì)應(yīng)方式1,10對(duì)應(yīng)方式2,11對(duì)應(yīng)方式3。接著,是定時(shí)器初值的計(jì)算,先給出公式:定時(shí)時(shí)間t=(2N-X)×機(jī)器周期,其中,X為定時(shí)器的初值,從而可以推出初值X=2N-t/機(jī)器周期。而常見(jiàn)的機(jī)器周期只有兩種,晶振為12MHz時(shí),機(jī)器周期為1μs;晶振為6MHz時(shí),機(jī)器周期為2μs。比如,定時(shí)器常用的工作方式只有方式0和方式1(應(yīng)用最多),方式0對(duì)應(yīng)的μ為13,方式1對(duì)應(yīng)的n為16,從而只要知道定時(shí)時(shí)間就可以計(jì)算出初值。
設(shè)定時(shí)器T0選擇工作方式0,求最長(zhǎng)定時(shí)時(shí)間,如果要實(shí)現(xiàn)定時(shí)時(shí)間為1ms,fosc=6MHz,試確定T0的初值。并編程實(shí)現(xiàn),當(dāng)定時(shí)時(shí)間到后將P1.4取反。
解:晶振fosc=6MHz 時(shí),機(jī)器周期為2μs,T0處于工作模式0時(shí),設(shè)定時(shí)時(shí)間為1ms時(shí)的初值為X,則X = 213-1ms/2μs = 8192-500 =7 692=1 111 000 001 100B。(1)
T0的高8位TH0= 11110000B,即F0H。
程序清單如下:
整整兩節(jié)課的時(shí)間,安排的內(nèi)容較多,而除了第一節(jié)課剛開(kāi)始的十幾分鐘內(nèi)主要是教師本人在簡(jiǎn)單講述,其他時(shí)間內(nèi)幾乎全體同學(xué)都在積極地參與計(jì)算、思考。當(dāng)然,這期間教師要穿插提問(wèn)和學(xué)生板演。事實(shí)證明,這兩節(jié)課不僅學(xué)生的參與率很高,而且內(nèi)容多,學(xué)生吸收的東西也多,甚至到下課時(shí),仍有學(xué)生在討論對(duì)方計(jì)算有失誤,最后趁熱打鐵,布置的作業(yè)跟教學(xué)內(nèi)容非常相似,既包括了理論知識(shí)的鞏固,又有計(jì)算題目。筆者認(rèn)為,這次打破傳統(tǒng)的理論講授,以提高學(xué)生積極性為目標(biāo),以學(xué)生參與為主線,采用任務(wù)驅(qū)動(dòng)法的學(xué)習(xí)方法在實(shí)際教學(xué)中取得了明顯的教學(xué)效果。