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