田萍果
(西安工商學(xué)院,陜西西安,710200)
為進一步深化課堂教學(xué)改革,提高人才培養(yǎng)質(zhì)量,從“灌輸知識為主”轉(zhuǎn)向“能力和知識并重”的課程內(nèi)容設(shè)計,要有利于培養(yǎng)學(xué)生分析和解決問題的能力,激勵學(xué)生善于獨立思考、敢于質(zhì)疑并大膽創(chuàng)新。
單片機的應(yīng)用和上手實踐正是這門課的學(xué)習(xí)要求和學(xué)習(xí)價值所在,但以往的單片機教學(xué)很難提起學(xué)生學(xué)習(xí)興趣,注意力容易轉(zhuǎn)移,更不用說提高學(xué)生的自主思考能力了。
所以結(jié)合以上課程改革要求和單片機課程自身實踐性強的特點,筆者在授課過程中將課程以項目的形式劃分為五大模塊——彩燈的設(shè)計與實現(xiàn),電子鐘的設(shè)計與實現(xiàn),溫度測控系統(tǒng)的設(shè)計與實現(xiàn),電子秤的設(shè)計與實現(xiàn)以及遠程通信系統(tǒng)的設(shè)計與實現(xiàn)。同時,為了使項目式教學(xué)的效果發(fā)揮到最大化,學(xué)生吸收、掌握和運用最大化,筆者把Proteus引入課堂教學(xué)和實驗教學(xué)當(dāng)中,取得了較之以往理論灌輸更好的效果。下面以本學(xué)期講授的五大項目中電子鐘的設(shè)計與實現(xiàn)為例來說明。
電子鐘的設(shè)計包含數(shù)碼管顯示、定時器設(shè)置、按鍵輸入以及蜂鳴器提示四個部分。在進行各功能設(shè)計之前,在Proteus中仿真、演示電子鐘所實現(xiàn)的功能,給學(xué)生一個整體的印象,激發(fā)學(xué)生的好奇心,然后再做拆解。電子鐘的組成和知識點拓展如圖1所示。
圖1 電子鐘設(shè)計功能和知識點拆解圖
在這個系統(tǒng)的介紹中,先以人機交流、互動比較好的數(shù)碼管顯示模塊來切入,以便講述其他功能電路時,能在顯示電路的基礎(chǔ)上來觀察、調(diào)試和實現(xiàn)。
由簡入難,課堂上先講解靜態(tài)數(shù)碼管顯示原理及其編程方法,用Proteus仿真實現(xiàn)靜態(tài)數(shù)碼管顯示0~9,如圖2所示。還可以拓展性地提問學(xué)生如何顯示0~F;如何改變每一個數(shù)碼顯示的時長;當(dāng)改變數(shù)碼管共陰/共陽極時電路和程序分別如何更改等等問題。學(xué)生可以在課堂上討論,也可以在課下自行用Proteus拓展思路,試著實現(xiàn)功能,以大作業(yè)的形式提交,最終教師給予最終解答,形成閉環(huán),促進知識點的掌握。
圖2 共陽極數(shù)碼管靜態(tài)顯示電路
然后再講述動態(tài)數(shù)碼管的顯示,介紹完動態(tài)顯示原理、硬件電路實現(xiàn)和程序設(shè)計后,可以在Proteus中搭建2位一體數(shù)碼管的顯示電路,并編寫相應(yīng)的程序。課堂中逐步深入,再設(shè)計8位一體數(shù)碼管的動態(tài)顯示電路,修改程序,讓學(xué)生深入理解電路設(shè)計和程序編寫中段選和位選的概念和控制方法。具體電路如圖3、4所示。
圖3 2位一體數(shù)碼管顯示電路
1s信號的產(chǎn)生有兩種方式,一是通過延時實現(xiàn),這種方法占用CPU工作效率,而且不夠精準,所以選用第二種方式,用定時器實現(xiàn)。課堂先講述定時器內(nèi)部電路組成、工作原理和工作方式,在Proteus中仿真簡單的例子——如何實現(xiàn)200μs定時,如何在某個IO端口輸出周期為400μs的方波,又如何實現(xiàn)20ms的定時時間。
圖4 8位一體數(shù)碼管顯示電路
在仿真實現(xiàn)以上三個例子后,提問學(xué)生電子鐘的1s基準時間如何實現(xiàn)。學(xué)生在認識到由于定時時間較長,具有最大定時時間的方式1也不能直接實現(xiàn)1s時,可用定時/計數(shù)器先產(chǎn)生20ms的定時,然后用一個寄存器R2對20ms計數(shù)50次便可實現(xiàn)秒信號。在keil5開發(fā)環(huán)境中對上述實現(xiàn)20ms定時的程序進行補充編寫,進而啟發(fā)學(xué)生60s定時又如何實現(xiàn),60s定時的程序如何與前面8位一體數(shù)碼管的動態(tài)掃描顯示程序綜合起來實現(xiàn)在8位一體的數(shù)碼管電路上實現(xiàn)60s的秒計時呢?學(xué)生可以提出自己的想法,在keil中整合程序,并在軟件Proteus中仿真,來驗證自己的編程思想是否實現(xiàn)了60s計時并且得以正常顯示,或者觀察仿真出現(xiàn)了哪些現(xiàn)象,這些現(xiàn)象又是為何產(chǎn)生的,怎么樣得到解決和改善。如此引導(dǎo)學(xué)生,一步步實現(xiàn)秒的60s計時和顯示,如圖5所示。學(xué)生在此基礎(chǔ)上進一步編程實現(xiàn)60分和24時的計時和顯示,如圖6所示。
圖5 在8位一體的數(shù)碼管電路上實現(xiàn)60s計時
圖6 實現(xiàn)電子鐘計時并顯示
在完成溫度測控系統(tǒng)的設(shè)計與實現(xiàn)這個項目后,啟發(fā)學(xué)生如何通過液晶顯示器來顯示電子鐘的計時時間,以擴展學(xué)生的設(shè)計能力。
在電子鐘的設(shè)計中,按鍵輸入可以使用獨立式按鍵,也可以矩陣鍵盤來實現(xiàn)時鐘的啟動、停止、復(fù)位以及調(diào)整時間。
先以獨立式按鍵來實現(xiàn)時鐘啟動和停止,這種情況僅需要一個按鍵。筆者在課上先講述了按鍵處理的步驟,然后提出了分別以查詢方式和中斷方式如何來實現(xiàn)啟停功能,讓學(xué)生思考在前面設(shè)計的電路基礎(chǔ)上怎么進行硬件電路的設(shè)計和軟件程序的編寫,最終在Proteus中設(shè)計出了按鍵電路與系統(tǒng)的兩種連接方式,并在程序中以查詢方式和中斷處理方式實現(xiàn)了啟停功能,如圖7、8所示。
圖7 查詢方式對應(yīng)的電路圖
進一步拓展設(shè)計,讓同學(xué)們修改程序在圖8的中斷方式電路上實現(xiàn)時鐘啟動、停止和復(fù)位,掌握一個按鍵有三種功能時程序應(yīng)該如何編寫。
圖8 中斷方式對應(yīng)的電路圖
在上述中斷方式電路設(shè)計基礎(chǔ)上,再進一步實現(xiàn)按鍵調(diào)時的功能,以獨立式按鍵結(jié)構(gòu)實現(xiàn)時需要兩個按鍵,其中一個按鍵控制時、分、秒的哪一位需要調(diào)整,另一個按鍵控制需要調(diào)整的具體時間點。此時的情況是單片機只有兩個外部中斷引腳,但有三個按鍵要以中斷方式來響應(yīng),硬件電路上中斷要如何擴展。筆者在課上普及了中斷擴展的方法,并最后引導(dǎo)學(xué)生在Proteus中設(shè)計出了,具有啟動、停止、復(fù)位和調(diào)時功能的硬件電路圖,如圖9所示。
圖9 三個按鍵以中斷擴展方式接入電路
以矩陣按鍵來實現(xiàn)上述功能,可以在筆者介紹了矩陣按鍵的工作原理和識別方法后,由同學(xué)自行結(jié)合Proteus和keil軟件進行電路設(shè)計和程序編寫。
蜂鳴器的分類及其驅(qū)動方法比較簡單,布置給學(xué)生自行學(xué)習(xí)和仿真,課堂總結(jié)學(xué)生做得好的地方以及不足之處。
這種在Proteus中靈活化、逐漸遞進式深入地講授方式,使得學(xué)生很容易理解各個知識點,建立直觀的仿真思想,并很有動力進行創(chuàng)新,讓學(xué)生不再畏難而卻步,也慢慢明白了仿真出現(xiàn)的現(xiàn)象和電路、程序編制的之間對應(yīng)關(guān)系,同樣也有了一個實際功能可以由硬件實現(xiàn),也可用軟件實現(xiàn)的體驗。在本學(xué)期的科創(chuàng)大賽中,學(xué)習(xí)單片機課程的整個年級學(xué)生踴躍報名,從在Proteus中仿真去實現(xiàn)設(shè)計功能,到繪制電路原理圖,搭建硬件電路圖調(diào)試,進而實現(xiàn)題目規(guī)定功能,比往屆同學(xué)對于本課程的實踐水平高出了很多,對教學(xué)產(chǎn)生了積極的影響。這樣的學(xué)習(xí)方式也為學(xué)生參加全國電子設(shè)計大賽奠定了牢固的基礎(chǔ)。