劉 敬
(濱州學(xué)院機(jī)電工程學(xué)院,山東 濱州 256600)
單片機(jī)自20 世紀(jì)70 年代問(wèn)世以來(lái),廣泛地應(yīng)用在工業(yè)自動(dòng)化、自動(dòng)控制與檢測(cè)、智能儀器儀表、機(jī)電一體化以及家用電器等各個(gè)方面[1,2]?!皢纹瑱C(jī)原理與應(yīng)用”是工科類專業(yè)(如機(jī)械設(shè)計(jì)制造及其自動(dòng)化、電子信息工程、測(cè)控技術(shù)、機(jī)電一體化等專業(yè))重要的基礎(chǔ)課程之一。通過(guò)理論課程的學(xué)習(xí),講解MCS-51 單片機(jī)的硬件結(jié)構(gòu)、指令系統(tǒng)、常用的匯編語(yǔ)言設(shè)計(jì)以及片內(nèi)各外圍部件(中斷系統(tǒng)、定時(shí)/計(jì)數(shù)器、UART 串行口)的工作原理,同時(shí),實(shí)驗(yàn)課程的實(shí)踐訓(xùn)練可進(jìn)一步加深理解所學(xué)知識(shí),使學(xué)生具備單片機(jī)應(yīng)用系統(tǒng)的初步設(shè)計(jì)能力,為將來(lái)從事機(jī)電一體化、測(cè)控系統(tǒng)、儀表等方面應(yīng)用系統(tǒng)的開發(fā)打下堅(jiān)實(shí)的基礎(chǔ)[3,4]。單片機(jī)原理與應(yīng)用課程內(nèi)容多,課時(shí)少,知識(shí)比較抽象難懂,傳統(tǒng)的以教師為中心的“注入式”教學(xué)模式教學(xué)顯然不利于學(xué)生自主學(xué)習(xí)能力的提升以及發(fā)散性思維的培養(yǎng)。因此,教師如何高效利用課堂,采取什么樣的手段引導(dǎo),讓學(xué)生從被動(dòng)接收轉(zhuǎn)為主動(dòng)思考,對(duì)于激發(fā)學(xué)生求知欲和培養(yǎng)創(chuàng)新意識(shí),最終達(dá)到學(xué)以致用的效果有著重要的現(xiàn)實(shí)意義。
以濱州學(xué)院機(jī)械制造及其自動(dòng)化專業(yè)的學(xué)生為例,“單片機(jī)原理與應(yīng)用”是本科階段第四學(xué)期開設(shè)的專業(yè)課程,相比通用性強(qiáng)、直觀易懂的先修課程“C 語(yǔ)言程序設(shè)計(jì)”,本門課程介紹的匯編語(yǔ)言是面向“硬件”的語(yǔ)言,是在圍繞單片機(jī)的硬件結(jié)構(gòu)和原理進(jìn)行講解的基礎(chǔ)上,對(duì)片內(nèi)外各功能部件進(jìn)行編程應(yīng)用。該課程綜合性、實(shí)踐性較強(qiáng),所講授內(nèi)容相對(duì)抽象,而機(jī)械類學(xué)生對(duì)微型計(jì)算機(jī)的結(jié)構(gòu)和原理的前期認(rèn)知較少,基礎(chǔ)相對(duì)比較薄弱,知識(shí)遷移能力、知識(shí)應(yīng)用于實(shí)踐中的能力相對(duì)滯后[5,6],在學(xué)習(xí)過(guò)程中容易產(chǎn)生消極被動(dòng)的情緒。
就機(jī)械類專業(yè)培養(yǎng)方案及課程標(biāo)準(zhǔn)來(lái)看,單片機(jī)原理與應(yīng)用課程的理論課時(shí)所占比重較多(理論課32 學(xué)時(shí)、實(shí)驗(yàn)實(shí)踐課4 學(xué)時(shí))。目前,理論授課以課堂板書結(jié)合PPT 的講授法為主。其中,課程理論內(nèi)容的前期安排通常是對(duì)單片機(jī)的內(nèi)部硬件結(jié)構(gòu)進(jìn)行講解,比如,在以某具體型號(hào)的MCS-51 單片機(jī)為例,首先介紹片內(nèi)硬件組成、引腳功能以及存儲(chǔ)器結(jié)構(gòu),進(jìn)而講授8051 指令系統(tǒng)以及匯編語(yǔ)言編程基礎(chǔ),然后從實(shí)際應(yīng)用的角度對(duì)中斷系統(tǒng)、定時(shí)計(jì)數(shù)器、串行口等主要硬件的具體原理和應(yīng)用展開講解。
由于單片機(jī)內(nèi)的硬件部分以及邏輯結(jié)構(gòu)是看不見(jiàn)、摸不到的,對(duì)于沒(méi)有扎實(shí)專業(yè)基礎(chǔ)知識(shí)鋪墊的學(xué)生來(lái)說(shuō)較為抽象難懂,初始接觸時(shí)學(xué)生普遍感到難以理解、無(wú)從入手,這就往往導(dǎo)致學(xué)生對(duì)單片機(jī)的學(xué)習(xí)提不起來(lái)興趣,缺乏主動(dòng)探索學(xué)習(xí)的動(dòng)力[7]。因此,任課教師在教學(xué)過(guò)程中的教學(xué)方法與設(shè)計(jì)對(duì)于單片機(jī)原理與應(yīng)用課程知識(shí)的傳授顯得尤為重要,圍繞專業(yè)培養(yǎng)方案和課程目標(biāo)選取合適的教學(xué)方法,能使復(fù)雜的問(wèn)題簡(jiǎn)單化,抽象的理論具體化,學(xué)生也能更容易吸收所學(xué)知識(shí)。
啟發(fā)式教學(xué)是指教師在課堂講授過(guò)程中根據(jù)教學(xué)內(nèi)容和學(xué)生學(xué)習(xí)的客觀規(guī)律,借助生活中的實(shí)例與常識(shí),以啟發(fā)學(xué)生的聯(lián)想擴(kuò)展為核心,激起學(xué)生自主學(xué)習(xí)的興趣,引導(dǎo)學(xué)生能夠生動(dòng)靈活地接收所學(xué)知識(shí)的一種教學(xué)指導(dǎo)思想[8,9]。啟發(fā)式教學(xué)的關(guān)鍵在于問(wèn)題情境的設(shè)置,可采用循序漸進(jìn)由淺入深的方式將理論知識(shí)融入案例講解,從“疑”入手,巧設(shè)懸念,對(duì)于促進(jìn)學(xué)生積極主動(dòng)地參與教學(xué)活動(dòng),激發(fā)學(xué)生獨(dú)立思考和創(chuàng)新意識(shí),達(dá)到教與學(xué)的最佳效益具有重要的現(xiàn)實(shí)意義。下面以MCS-51 單片機(jī)的定時(shí)/計(jì)數(shù)器章節(jié)為例,介紹啟發(fā)式教學(xué)在“單片機(jī)原理與應(yīng)用”課程中的應(yīng)用。
在工業(yè)檢測(cè)與控制中,許多場(chǎng)合都要用到計(jì)數(shù)或定時(shí)的功能。例如,對(duì)外部脈沖計(jì)數(shù)或產(chǎn)生精確的定時(shí)時(shí)間等。在介紹定時(shí)/計(jì)數(shù)器的邏輯結(jié)構(gòu)之前,可以先從生活中常見(jiàn)的實(shí)例引入相關(guān)概念,再過(guò)渡到課程理論知識(shí)的講解。
1)定時(shí)和計(jì)數(shù)的概念。生活中,計(jì)數(shù)的例子比比皆是,選舉時(shí)通過(guò)畫“正”字對(duì)票數(shù)進(jìn)行統(tǒng)計(jì)就是計(jì)數(shù)的一種方式。家庭里面用的水表、電度表,汽車上的里程表等也是計(jì)數(shù)的形式。在單片機(jī)內(nèi)部也有一類功能部件用于實(shí)現(xiàn)計(jì)數(shù)的功能,該功能部件稱為定時(shí)/計(jì)數(shù)器,其計(jì)數(shù)的功能是通過(guò)對(duì)脈沖進(jìn)行計(jì)數(shù)來(lái)實(shí)現(xiàn)的。單片機(jī)內(nèi)的定時(shí)/計(jì)數(shù)器除了能作計(jì)數(shù)之用外,還能用作時(shí)鐘,如打鈴器,家用電器的定時(shí)開關(guān)等都是其定時(shí)功能的體現(xiàn)。然后請(qǐng)同學(xué)們思考:計(jì)數(shù)器是如何作為定時(shí)器來(lái)用的呢?引入生活實(shí)例進(jìn)行啟發(fā),以鬧鐘為例,定時(shí)1h,秒針走了3600 次,時(shí)間就轉(zhuǎn)化為秒針走的次數(shù),學(xué)生思考秒針走的次數(shù)和時(shí)間之間的關(guān)系是什么(秒針每走動(dòng)一次的時(shí)間是1s)。由此得出,定時(shí)/計(jì)數(shù)器在作定時(shí)的功能時(shí),其本質(zhì)也是通過(guò)“計(jì)數(shù)”來(lái)實(shí)現(xiàn)的,關(guān)鍵是計(jì)數(shù)的時(shí)間間隔要固定,而這個(gè)時(shí)間間隔由單片機(jī)的晶振頻率決定,也可以理解為對(duì)機(jī)器周期進(jìn)行計(jì)數(shù),即:定時(shí)時(shí)間=計(jì)數(shù)次數(shù)×機(jī)器周期。最后,對(duì)本知識(shí)點(diǎn)總結(jié),定時(shí)和計(jì)數(shù)是定時(shí)/計(jì)數(shù)器的兩種工作模式,本質(zhì)上都是通過(guò)計(jì)數(shù)來(lái)實(shí)現(xiàn)的,只是計(jì)數(shù)對(duì)象不同,定時(shí)模式下是對(duì)機(jī)器周期計(jì)數(shù),計(jì)數(shù)模式下是對(duì)來(lái)自相應(yīng)引腳(P3.4、P3.5)的外部脈沖計(jì)數(shù)。
2)定時(shí)/計(jì)數(shù)器的容量和預(yù)置數(shù)。對(duì)于定時(shí)/計(jì)數(shù)器的容量和預(yù)置數(shù)的講解,可以從日常生活中用到的容器導(dǎo)入,在我們的認(rèn)知中任何容器都是有容量的,同樣,MCS-51 的兩個(gè)計(jì)數(shù)器(T0 和T1)也有計(jì)數(shù)的上限,由于每個(gè)計(jì)數(shù)器都是由兩個(gè)8 位的寄存器組合構(gòu)成,則最大的計(jì)數(shù)容量是216=65536。隨后進(jìn)一步引導(dǎo)學(xué)生思考,若將水杯放在水龍頭下接水,水逐滴落入水杯中,當(dāng)液面上升至與杯口平齊時(shí)若再有一滴水落下,水杯會(huì)發(fā)生什么現(xiàn)象呢?(水滿溢出沿杯壁流下)同樣,單片機(jī)內(nèi)的計(jì)數(shù)器達(dá)到計(jì)數(shù)上限后,再多記一次脈沖也會(huì)“溢出”,只是“溢出”后的現(xiàn)象是將標(biāo)志位TF0/TF1 由“0”變?yōu)椤?”,而標(biāo)志位的變化就如觸發(fā)警報(bào)一般傳達(dá)到CPU,則意味著計(jì)數(shù)/定時(shí)的任務(wù)已完成。
當(dāng)學(xué)生理解定時(shí)/計(jì)數(shù)器的容量及“溢出”現(xiàn)象后,承接上面所鋪墊的基礎(chǔ)知識(shí)導(dǎo)入問(wèn)題:生活中的計(jì)數(shù)一般從1 開始,計(jì)到幾是幾,而單片機(jī)中定時(shí)/計(jì)數(shù)器的計(jì)數(shù)不管從何初始值開始,都是要計(jì)到滿為止。請(qǐng)同學(xué)們思考:一般我們現(xiàn)實(shí)生活中經(jīng)常會(huì)有少于65536 個(gè)計(jì)數(shù)值的要求,怎么實(shí)現(xiàn)?由此引出預(yù)置數(shù)的概念,預(yù)置數(shù)意味著要先給計(jì)數(shù)器賦初值,而初值的大小由計(jì)數(shù)上限和要計(jì)的次數(shù)來(lái)確定。
3)定時(shí)/計(jì)數(shù)器的相關(guān)控制寄存器。特殊功能寄存器(SFR)是用來(lái)對(duì)片內(nèi)各功能模塊進(jìn)行管理、控制以及監(jiān)視的控制寄存器和狀態(tài)寄存器,是一個(gè)很抽象的概念[10]。對(duì)于定時(shí)/計(jì)數(shù)器的相關(guān)控制寄存器的講解可以拿家用電器空調(diào)來(lái)舉例進(jìn)行知識(shí)導(dǎo)入,空調(diào)可以制冷也可以制熱,且在任意工作模式下都可以選擇不同風(fēng)速(可看作不同工作方式),同樣,定時(shí)/計(jì)數(shù)器作為單片機(jī)的功能部件同樣有不同工作模式(定時(shí)/計(jì)數(shù))和工作方式(用途和計(jì)數(shù)能力不同)。空調(diào)工作模式和工作方式的選擇可以通過(guò)控制按鍵來(lái)實(shí)現(xiàn),那怎樣讓單片機(jī)內(nèi)的定時(shí)/計(jì)數(shù)器按我們想要的用途工作呢?由此問(wèn)題引出定時(shí)/計(jì)數(shù)器的工作方式控制寄存器TMOD 和運(yùn)行狀態(tài)控制寄存器TCON,進(jìn)而展開介紹各控制位的名稱及作用。
為加深學(xué)生對(duì)以上所講理論知識(shí)的理解,緊接著以應(yīng)用實(shí)例進(jìn)行鞏固。在工廠車間流水線上一個(gè)包裝是200 盒,要求每到200 盒就產(chǎn)生一個(gè)打包動(dòng)作,用AT89S51 單片機(jī)定時(shí)/計(jì)數(shù)器T0 來(lái)實(shí)現(xiàn)(選用工作方式1),試寫出定時(shí)計(jì)數(shù)器的初始化設(shè)置。
結(jié)合前面所學(xué)知識(shí),引導(dǎo)學(xué)生根據(jù)任務(wù)繪制主程序框圖,如圖1 所示。
圖1 主程序框圖
首先,對(duì)工作方式寄存器TMOD 賦值(選用T0在方式1 下進(jìn)行計(jì)數(shù),則TMOD 設(shè)置為05H)。然后,根據(jù)所需計(jì)數(shù)個(gè)數(shù)計(jì)算初值X,X 為65536-200=65336,對(duì)應(yīng)的十六進(jìn)制為FF38H,則相應(yīng)寄存器賦初值為TH0=FFH,TL0=38H。
進(jìn)一步引導(dǎo)學(xué)生寫出主程序即定時(shí)/計(jì)數(shù)器的初始化設(shè)置:
匯編語(yǔ)言、通信技術(shù)等知識(shí)結(jié)合起來(lái)的一門課,有一定的理論深度且工程性、實(shí)踐性強(qiáng),是工科類學(xué)生培養(yǎng)方案中普遍設(shè)置的專業(yè)課。本文以機(jī)械制造及其自動(dòng)化專業(yè)的學(xué)生為教學(xué)對(duì)象,進(jìn)行學(xué)情分析,并指出了當(dāng)前教學(xué)過(guò)程中常存在的問(wèn)題,針對(duì)目前學(xué)生普遍反應(yīng)理論知識(shí)枯燥難懂的現(xiàn)象,提出采用啟發(fā)式教學(xué)法進(jìn)行授課并展示了定時(shí)/計(jì)數(shù)器章節(jié)的教學(xué)設(shè)計(jì)。經(jīng)課堂教學(xué)實(shí)踐,發(fā)現(xiàn)從生活常識(shí)切入所授教學(xué)內(nèi)容,以啟發(fā)式的教學(xué)手段講解相對(duì)枯燥的理論,更能激發(fā)學(xué)生的學(xué)習(xí)熱情,提高學(xué)生的主觀能動(dòng)性。