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