高娟 田鑫鑫 吳思
摘 要:?jiǎn)栴}驅(qū)動(dòng)教學(xué)法是以問(wèn)題為牽引,將提出問(wèn)題、分析問(wèn)題、解決問(wèn)題作為主要內(nèi)容和手段的教學(xué)法。本文通過(guò)單片機(jī)教學(xué)中的“流水燈”案例,淺談“問(wèn)題驅(qū)動(dòng)法”在單片機(jī)應(yīng)用課程教學(xué)中的應(yīng)用。
關(guān)鍵詞:?jiǎn)栴}驅(qū)動(dòng)教學(xué)法;單片機(jī)應(yīng)用;流水燈
問(wèn)題驅(qū)動(dòng)教學(xué)法是以問(wèn)題為牽引,將提出問(wèn)題、分析問(wèn)題、解決問(wèn)題作為主要內(nèi)容和手段的教學(xué)法。它的突出特征是以提出問(wèn)題方式引導(dǎo)學(xué)生主動(dòng)學(xué)習(xí)和思考,因此如何在課堂教學(xué)中設(shè)計(jì)問(wèn)題無(wú)疑是該教學(xué)模式的關(guān)鍵。
筆者從事單片機(jī)應(yīng)用課程教學(xué)多年,在教學(xué)過(guò)程中多次嘗試將“問(wèn)題驅(qū)動(dòng)教學(xué)法”應(yīng)用其中,教學(xué)效果顯著。該文通過(guò)單片機(jī)教學(xué)中的“流水燈”案例,淺談“問(wèn)題驅(qū)動(dòng)教學(xué)法”在單片機(jī)應(yīng)用課程教學(xué)中的應(yīng)用。
1 問(wèn)題驅(qū)動(dòng)教學(xué)法應(yīng)用實(shí)例分析
1.1 編寫(xiě)流水燈程序
為了引入流水燈,首先設(shè)計(jì)如下問(wèn)題:在上一任務(wù)中已經(jīng)實(shí)現(xiàn)用單片機(jī)控制8個(gè)發(fā)光二極管亮滅閃爍的任務(wù),但是8個(gè)燈是同時(shí)亮滅的。那么我們能不能控制8個(gè)燈按照流水作業(yè)的形式一個(gè)一個(gè)的輪流點(diǎn)亮呢?由此引出流水燈的實(shí)現(xiàn)方法。
學(xué)生根據(jù)以前學(xué)過(guò)的知識(shí),很快可以編寫(xiě)出程序,并將程序下載到單片機(jī)中,可以看到實(shí)現(xiàn)了我們預(yù)期的效果,8個(gè)燈依次輪流點(diǎn)亮了。
為了使學(xué)生熟練掌握流水燈程序的編寫(xiě)方法,可以引入趣味性的問(wèn)題,從而達(dá)到吸引學(xué)生和增強(qiáng)他們的發(fā)散思維。可以提出一個(gè)新的問(wèn)題:除了這一種流水顯示方式外,還有沒(méi)有別的顯示方式呢?
大家經(jīng)過(guò)思考得出還可以讓8個(gè)燈依次全部點(diǎn)亮、雙燈流水點(diǎn)亮、雙燈相向點(diǎn)亮等,實(shí)現(xiàn)的方法就是控制P1口輸出相應(yīng)的數(shù)據(jù)即可。這時(shí)可以讓學(xué)員自己編寫(xiě)程序,觀察效果。
通過(guò)編寫(xiě)程序,實(shí)現(xiàn)各種各樣的流水燈效果,學(xué)生有了較濃學(xué)習(xí)興趣。接下來(lái)趁熱打,又提出如下問(wèn)題:看了剛才的流水燈效果,大家可以發(fā)現(xiàn)燈閃爍得太快,也即延時(shí)時(shí)間太短,那么怎樣修改延時(shí),增長(zhǎng)延時(shí)時(shí)間呢?
1.2 增長(zhǎng)延時(shí)時(shí)間
要增長(zhǎng)延時(shí)時(shí)間首先要計(jì)算延時(shí)子程序的延時(shí)時(shí)間,由此引出延時(shí)時(shí)間的計(jì)算。
在12MHZ晶振頻率下,前三條單周期指令的執(zhí)行時(shí)間是1us,后兩條雙周期指令的執(zhí)行時(shí)間為2us。因此:
內(nèi)循環(huán)的延時(shí)時(shí)間是:255*(1+2)=765?S
外循環(huán)一次的時(shí)間是:765?S+1?S+2?S=768?S
外循環(huán)的執(zhí)行時(shí)間是768*255=195840?S
粗略的計(jì)算:765*255=195075?S≈195ms≈0.2S
知道了原來(lái)延時(shí)子程序的執(zhí)行時(shí)間是0.2s后,怎樣增長(zhǎng)延時(shí)時(shí)間呢?例如要增加延時(shí)時(shí)間為1s。
學(xué)員經(jīng)過(guò)思考得出通過(guò)增加一層循環(huán)從而增長(zhǎng)延時(shí)時(shí)間,修改后的1s延時(shí)程序如下:
DELAY1S:MOV R3,#100;延時(shí)1s的循環(huán)次數(shù)
DEL2:MOV R4,#10;延時(shí)10s的循環(huán)次數(shù)
DEL1:MOV R5,#250;延時(shí)1ms的循環(huán)次數(shù)
DEL0: NOP
NOP
DJNZ R5, DEL0
DJNZ R4, DEL1
DJNZ R3, DEL2
RET
將1s延時(shí)程序下載后,觀察到流水燈閃爍變慢了。接下來(lái)又提出如下問(wèn)題:MOV P1,#XXXXXXXXB和ACALL DELAY在以上程序中被引用了8次,而8個(gè)數(shù)據(jù)之間是有規(guī)律的,顯然程序重復(fù)太多,能否使其簡(jiǎn)化?由此引出利用循環(huán)程序?qū)崿F(xiàn)流水燈。
1.3 簡(jiǎn)化程序結(jié)構(gòu)
循環(huán)程序的關(guān)鍵要用到循環(huán)左移指令RL A,首先設(shè)置循環(huán)次數(shù)和循環(huán)初值, 顯示模式字送P1端口, 顯示模式字左移1位,判斷循環(huán)次數(shù)-1是否等于0,跳轉(zhuǎn)到不同的地方。具體程序如下:
START:MOV R2,#08H
MOV A, #0FEH
NEXT:MOV P1,A
ACALL DELAY1s
RL A
DJNZ R2,NEXT
SJMP START
接下來(lái)又提出如下問(wèn)題:上面這種方法只能簡(jiǎn)化流水燈程序,如果要讓8個(gè)燈變幻出很多花樣的閃爍方式,那程序還是要編寫(xiě)很長(zhǎng)的,有沒(méi)有什么方法用短一點(diǎn)程序可以實(shí)現(xiàn)多一些花樣的閃爍效果呢?由此引出萬(wàn)能閃爍燈的程序。
1.4 萬(wàn)能閃爍燈
萬(wàn)能閃爍燈是利用查表程序來(lái)實(shí)現(xiàn)的。將要輸出的數(shù)據(jù)都放在一個(gè)表格中,利用循環(huán)程序依次查表輸出每一個(gè)數(shù)據(jù),直到所有的數(shù)據(jù)都輸出一遍再?gòu)念^開(kāi)始。
2 結(jié)語(yǔ)
以上就是問(wèn)題驅(qū)動(dòng)教學(xué)法在“流水燈”教學(xué)中的整個(gè)應(yīng)用過(guò)程。在這個(gè)過(guò)程中,始終以問(wèn)題引出新知識(shí),且問(wèn)題的設(shè)計(jì)由易到難、層層遞進(jìn),符合人們對(duì)事物的認(rèn)知規(guī)律。我們多年在單片機(jī)課程教學(xué)中運(yùn)用問(wèn)題驅(qū)動(dòng)教學(xué)法,設(shè)計(jì)了一系列的問(wèn)題引導(dǎo)學(xué)生學(xué)習(xí),而學(xué)生通過(guò)觀察、思考、聯(lián)想,感受到成功的喜悅,也認(rèn)識(shí)到學(xué)習(xí)這門(mén)課的意義,從而變被動(dòng)學(xué)習(xí)為主動(dòng)學(xué)習(xí),提高了學(xué)習(xí)的興趣。
此外,由于單片機(jī)應(yīng)用是一門(mén)實(shí)踐性很強(qiáng)的課程,因此,“問(wèn)題驅(qū)動(dòng)教學(xué)法”還應(yīng)注重引導(dǎo)學(xué)生在實(shí)踐中主動(dòng)發(fā)現(xiàn)并解決問(wèn)題。這一應(yīng)用還需要更深入地探索和研究。該文僅做初步探討,以期能拋磚引玉。
[參考文獻(xiàn)]
[1]張廣群,汪杭軍,王保平.問(wèn)題驅(qū)動(dòng)模式在VB教學(xué)中的應(yīng)用研究[J].計(jì)算機(jī)教育,2008(22).