李紹平 彭志平
廣東石油化工學(xué)院 廣東茂名 525000
仿真實(shí)例教學(xué)法在單片機(jī)理論教學(xué)中的應(yīng)用
李紹平 彭志平
廣東石油化工學(xué)院 廣東茂名 525000
針對(duì)單片機(jī)理論教學(xué)中存在的實(shí)際問題,提出利用Keil和Proteus仿真軟件建立單片機(jī)虛擬實(shí)驗(yàn)室,使其應(yīng)用到展示應(yīng)用實(shí)例、理解單片機(jī)原理、學(xué)習(xí)程序設(shè)計(jì)、觀察實(shí)驗(yàn)結(jié)果等課堂教學(xué)中,讓單片機(jī)的學(xué)習(xí)直觀、有趣,充分調(diào)動(dòng)學(xué)生學(xué)習(xí)的積極性。
單片機(jī);仿真軟件;實(shí)例教學(xué);
單片機(jī)課程是高等工科院校電子信息工程、通信工程、計(jì)算機(jī)等專業(yè)必修的專業(yè)基礎(chǔ)課,成為專業(yè)培養(yǎng)計(jì)劃中的重要一環(huán)。該課程是數(shù)據(jù)邏輯、電路、模電、高級(jí)語言程序設(shè)計(jì)的后續(xù)課程,實(shí)踐性強(qiáng),應(yīng)用廣泛。課程覆蓋了電子硬件、軟件應(yīng)用知識(shí),內(nèi)容跨度大,但又相互聯(lián)系,緊密滲透,用傳統(tǒng)的教學(xué)方式讓學(xué)生感到難學(xué)。問題主要在于:
(1)學(xué)生經(jīng)常會(huì)問為什么學(xué)這門課有什么用?教師理論上會(huì)給學(xué)生簡述,但學(xué)生沒有感性認(rèn)識(shí)到單片機(jī)的應(yīng)用,很難激發(fā)學(xué)生學(xué)習(xí)的積極性。
(2)單片機(jī)理論教學(xué)先講單片機(jī)原理后講匯編語言,再講應(yīng)用,理論和實(shí)踐不能同步進(jìn)行。用原理來引導(dǎo)學(xué)生入門,學(xué)生很難懂,覺得枯燥乏味;在講匯編語言時(shí),又很難與硬件連接上,學(xué)生往往把單片機(jī)當(dāng)做一門計(jì)算機(jī)語言來學(xué)習(xí)。
(3)單片機(jī)應(yīng)用的例題,很多需要電路原理圖,用傳統(tǒng)的PPT教學(xué),很難直觀地描述原理、操作過程和運(yùn)行結(jié)果,學(xué)生的學(xué)習(xí)很吃力,影響教學(xué)效果。
以上問題嚴(yán)重抑制了學(xué)生學(xué)習(xí)的主動(dòng)性和創(chuàng)新意識(shí),經(jīng)過幾年的教學(xué)探索,我們通過構(gòu)建由Keil和Proteus仿真軟件組成的虛擬單片機(jī)實(shí)驗(yàn)室,并在教學(xué)中采用仿真實(shí)例教學(xué)法較好地解決了以上問題。
1.1 仿真軟件Keil
Keil是目前最流行的開發(fā)單片機(jī)的軟件,提供了包括編譯器、宏匯編、連接器、庫管理和仿真調(diào)試器在內(nèi)的完整開發(fā)方案,通過集成開發(fā)環(huán)境將這些部分組合在一起,并且提供多種視圖窗口觀察程序運(yùn)行的動(dòng)態(tài)過程。Keil支持匯編語言和C語言的程序設(shè)計(jì)(本文用匯編語言闡述),易學(xué)易用,只要安裝在一臺(tái)普通計(jì)算機(jī)上,即可編寫、編譯以及調(diào)試程序。
1.2 仿真軟件Proteus
Proteus是由英國Labcenter Electronics公司開發(fā)的EDA工具軟件,已有近二十年的歷史,在全球得到廣泛應(yīng)用。用Proteus可以進(jìn)行電路仿真、數(shù)字電路仿真、單片機(jī)及其外圍電路組成系統(tǒng)的仿真,提供各種虛擬儀器,如示波器、信號(hào)發(fā)生器等,便于觀察設(shè)計(jì)電路的執(zhí)行結(jié)果,并對(duì)Keil等第三方軟件提供良好的支持。
單片機(jī)課程內(nèi)容抽象,邏輯性強(qiáng),主要體現(xiàn)在單片機(jī)的存儲(chǔ)器結(jié)構(gòu),I/O口、定時(shí)器/計(jì)數(shù)器不好理解,指令不好記憶等方面。下面用仿真實(shí)例方法講述,把抽象的知識(shí)具體化,幫助學(xué)生理解記憶。
2.1 仿真實(shí)例展示單片機(jī)應(yīng)用,激發(fā)學(xué)生學(xué)習(xí)熱情
如何讓學(xué)生對(duì)單片機(jī)課程感興趣,開始階段就要明確學(xué)習(xí)目的,感受到單片機(jī)的應(yīng)用情況。帶學(xué)生到企業(yè)參觀是比較好的方式之一,但是大部分學(xué)校沒有這種條件。那么只能利用課堂時(shí)間來解決,目前最好就是用仿真的方法來展示單片機(jī)的應(yīng)用,教師能用有限的課堂教學(xué)時(shí)間,通過仿真實(shí)例演示單片機(jī)的應(yīng)用。以水溫控制系統(tǒng)為實(shí)例來講述單片機(jī)的應(yīng)用。如圖1所示,首先介紹AT89C51單片機(jī)控制部分,同時(shí)帶一塊單片機(jī)芯片給學(xué)生看,讓學(xué)生感受到仿真的真實(shí)性。然后簡述單片機(jī)能夠根據(jù)溫度傳感器DS18B20所采集的溫度數(shù)據(jù)來控制加熱器啟停,從而把溫度控制在設(shè)定的范圍之內(nèi)。怎樣控制啟停?就要結(jié)合圖來操作和簡述。圖中設(shè)定的最高溫值為90度,實(shí)際溫度值(仿真水溫值)通過調(diào)整DS18B20按鍵來調(diào)整,當(dāng)值高于90度時(shí),加熱提示燈滅,停止加熱;當(dāng)值低于90度時(shí),加熱提示燈亮,啟動(dòng)加熱系統(tǒng),繼續(xù)加熱。通過這樣一個(gè)過程,讓學(xué)生目睹單片機(jī)在控制水溫中的應(yīng)用。當(dāng)然,也可以展示其他實(shí)例,讓學(xué)生感到小小單片機(jī)能廣泛應(yīng)用于各行各業(yè)中,擴(kuò)大了學(xué)生的眼界,從感性中來激發(fā)他們的學(xué)習(xí)熱情。

圖1 Proteus水溫控制系統(tǒng)
2.2 仿真實(shí)例理解單片機(jī)原理,降低學(xué)生學(xué)習(xí)難度
單片機(jī)原理主要包括單片機(jī)的組成和結(jié)構(gòu)分析,涉及很多抽象概念和電路知識(shí),是后面學(xué)習(xí)匯編和接口技術(shù)的基礎(chǔ),要讓單片機(jī)抽象的知識(shí)變得簡單、易懂,需要仿真軟件實(shí)例的輔助。Keil提供豐富的視圖窗口,調(diào)試可以通過視圖窗口觀察值的變化。我們來看如下程序段:
MOV PSW,#00000000B
MOV R0,#05H
MOV R3,#0F3H
MOV PSW,#00001000B
MOV R0,#16H
MOV R3,#0F5H
這段程序的作用是在不同的工作寄存器區(qū)給相同的工作寄存器賦值,可以通過Keil視圖窗口演示工作寄存器及其對(duì)應(yīng)的存儲(chǔ)器單元值,讓學(xué)生理解它們的關(guān)系。圖2是寄存器和數(shù)據(jù)存儲(chǔ)器窗口,單片機(jī)在復(fù)位狀態(tài)時(shí),R0~R7工作寄存器及其對(duì)應(yīng)的內(nèi)存值為00H。單步運(yùn)行第1條指令,工作寄存器工作在0區(qū),接著運(yùn)行2、3條指令,就為圖2(a)的狀態(tài),這時(shí)R0和R3值分別為05H和F3H,分別對(duì)應(yīng)內(nèi)存00H和03H單元的值。繼續(xù)運(yùn)行第4條指令,工作寄存器工作在1組,接著運(yùn)行5、6條指令,就為圖2(b)的狀態(tài),R0和R3值被改變了,分別為16H和F5H,但00H和03H單元值保持不變,而是分別對(duì)應(yīng)內(nèi)存08H和0BH單元的值。通過這樣的視圖來演示、講述工作寄存器R0~R7在不同的工作寄存器區(qū)與存儲(chǔ)單元的對(duì)應(yīng)關(guān)系,學(xué)生很容易理解、接受。總的來說單片機(jī)原理的大部分內(nèi)容可以實(shí)例化、具體化,如時(shí)序定時(shí)單位的晶振頻率、機(jī)器周期不好理解,可以通過運(yùn)行延時(shí)程序來觀察時(shí)間的變化,隨時(shí)修改程序,動(dòng)態(tài)觀察時(shí)間的變化,及時(shí)分析原理,學(xué)生就很容易理解了。

圖2 工作寄存器與對(duì)應(yīng)的內(nèi)存單元
2.3 仿真實(shí)例講解單片機(jī)指令和編程,提高學(xué)生學(xué)習(xí)效率
學(xué)習(xí)單片機(jī)的匯編指令和編程與學(xué)習(xí)高級(jí)語言有很大的區(qū)別,匯編是低級(jí)語言,只有在理解硬件知識(shí)的基礎(chǔ)上,才能學(xué)好匯編語言,我們以圖3單片機(jī)控制彩燈為例,闡述用仿真實(shí)例方法講解匯編指令和程序設(shè)計(jì)方法。剛開始學(xué)指令時(shí),學(xué)生對(duì)于字和位操作指令模糊不清,我們用“CLR P1.0”和“SEBP1.0”位指令讓一盞燈亮滅閃爍給學(xué)生看,學(xué)生會(huì)覺得新鮮好奇,用“MOV P1,#0FEH”和“MOV P1,#0FFH”字節(jié)指令修改程序,再次運(yùn)行,發(fā)現(xiàn)用字節(jié)和字的方法都是一樣效果,再來簡述位和字節(jié)操作指令的區(qū)別與聯(lián)系,學(xué)生就很容易接受。然后開展互動(dòng),讓學(xué)生修改程序,如果讓燈全亮和全滅,應(yīng)該怎樣修改?大部分學(xué)生會(huì)積極發(fā)言說出自己的方法。學(xué)習(xí)其他指令也可類同,這種實(shí)例法動(dòng)靜兼?zhèn)洌馍跒橐惑w,學(xué)生自然而然地理解并記住了指令。

圖3 Proteus彩燈圖
查表程序設(shè)計(jì)是單片機(jī)匯編程序設(shè)計(jì)中最常用的程序設(shè)計(jì)方法,但對(duì)于初學(xué)者來說一個(gè)難點(diǎn),用查表的方法讓燈閃爍,輸出到燈的數(shù)據(jù)是存放在程序存儲(chǔ)器中。我們先存放簡單的數(shù)據(jù),讓燈成流水狀態(tài),分析如何設(shè)計(jì)數(shù)據(jù),找地址和相應(yīng)的數(shù)據(jù),然后適當(dāng)修改數(shù)據(jù),讓彩燈變小樣式流動(dòng)或閃爍。通過這樣的講述,當(dāng)大部分學(xué)生掌握程序之后,就進(jìn)行多方位的啟發(fā),要求學(xué)生課后模擬廣告燈、裝飾燈的多種樣式來編程,學(xué)生會(huì)非常積極地表現(xiàn)。用仿真實(shí)例教學(xué)法能讓學(xué)生直接看到單片機(jī)控制信息的變化,使其更具有直觀性、生動(dòng)性和真實(shí)性,將那些原來難以理解的指令和程序變得簡單、有趣。這種方法調(diào)動(dòng)學(xué)生的感官,加深學(xué)生對(duì)所學(xué)內(nèi)容的理解,提高了學(xué)習(xí)效率。
2.4 仿真實(shí)例講解單片機(jī)應(yīng)用結(jié)果,豐富課堂教學(xué)內(nèi)容
單片機(jī)作為波形發(fā)生器廣泛應(yīng)用于醫(yī)學(xué)、教育、通訊、工業(yè)控制、軍事和宇航等領(lǐng)域,在教材上都會(huì)有單片機(jī)控制輸出波形的實(shí)例。用傳統(tǒng)方法講述,摸不著,看不到,比較抽象。用仿真工具來簡述,效果非常好,如用單片機(jī)的P1.0口輸出一個(gè)矩形波,在軟件方面用T0或T1的中斷方式和查詢方式來編程,然后用Keil生成目標(biāo)文件,導(dǎo)入Proteus原理圖運(yùn)行,通過Protues的示波器直觀單片機(jī)控制輸出的波形(如圖4所示),可以驗(yàn)證軟件編程是否成功。同時(shí)也可以修改程序,讓單片機(jī)控制輸出任意的波形形狀,發(fā)現(xiàn)單片機(jī)控制靈活,示波器輸出逼真,單調(diào)的實(shí)例豐富起來了。

圖4 Proteus示波器觀察控制信號(hào)
經(jīng)過幾年的教學(xué)實(shí)踐表明,Keil與Proteus仿真實(shí)例在單片機(jī)理論教學(xué)的應(yīng)用,能從軟硬件結(jié)合,應(yīng)用性的角度簡述理論知識(shí),快速、直觀展示應(yīng)用實(shí)例,學(xué)生不但能很好地理解抽象、繁雜的理論知識(shí),而且能感性認(rèn)識(shí)單片機(jī)應(yīng)用的開發(fā)過程,在鍛煉學(xué)生系統(tǒng)掌握知識(shí)的同時(shí),也開闊了學(xué)生的視野,調(diào)動(dòng)了學(xué)生學(xué)習(xí)的興趣,但也給教師提出了更高的要求。教師要與時(shí)俱進(jìn)地學(xué)習(xí)單片機(jī)的仿真技術(shù),才能傳授學(xué)生新的知識(shí)。教師在上課前需制作好Proteus原理圖,適當(dāng)編好程序,這樣才能在有限的課堂時(shí)間里傳授更多的知識(shí)。
[1] 朱清慧,張鳳芯.Proteus教程—電子線路設(shè)計(jì)、制版與仿真[M].北京:清華大學(xué)出版社,2008.
[2] 張子紅,劉鑫.基于Proteus的單片機(jī)課程教學(xué)改革[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2010,11.
[3] 高衛(wèi)東,辛友順.51單片機(jī)原理與實(shí)踐[M].北京:北京航空航天大學(xué)出版社,2008,1.
[4] 萬志平.仿真軟件在電類課程教學(xué)中的應(yīng)用[J].實(shí)驗(yàn)室技術(shù)與管理,2009,4.
Application of simulation case teaching method in single-chip microcomputer theory teaching
Li Shaoping, Peng Zhiping
Guangdong university of petrochemical technology, Maoming, 525000, China
In view of the problems in single-chip microcomputer theory teaching, this paper proposes to build up single-chip microcomputer virtual laboratory by making use of such simulation software as Keil and Proteus, and apply it to class teaching such as displaying application examples, understanding single-chip microcomputer principle, learning program design, watching experiment results. The purpose is to let single-chip microcomputer learning intuitive and interesting, fully arouse the enthusiasm of students' learning in addition.
single-chip microcomputer; simulation software; case teaching
2011-08-20
李紹平,碩士,高級(jí)實(shí)驗(yàn)師。彭志平,博士,教授。