王功勝
摘 要:對(duì)中職學(xué)生快速入門(mén)單片機(jī)給出了具體可行的策略和技巧,對(duì)中職機(jī)電專(zhuān)業(yè)、電子類(lèi)專(zhuān)業(yè)的師生有一定的借鑒價(jià)值。單片機(jī)體積小、功能強(qiáng)大、性?xún)r(jià)比高,在智能控制領(lǐng)域應(yīng)用極廣。中職學(xué)生學(xué)習(xí)單片機(jī)有一定的難度。
關(guān)鍵詞:?jiǎn)纹瑱C(jī);實(shí)訓(xùn)設(shè)備;編程語(yǔ)言
一、選擇合適的實(shí)訓(xùn)設(shè)備
不一定需要買(mǎi)數(shù)千元以上的實(shí)訓(xùn)設(shè)備。像STC89C52等51單片機(jī)價(jià)格僅幾元錢(qián)、可以反復(fù)燒寫(xiě)程序,最適合初學(xué)者入門(mén)。在淘寶網(wǎng)上可購(gòu)買(mǎi)相應(yīng)的實(shí)訓(xùn)板,其價(jià)格低廉,有配套的例程、視頻教程和相關(guān)開(kāi)發(fā)軟件,功能也很強(qiáng)大,可以達(dá)到和數(shù)千元設(shè)備一樣的實(shí)訓(xùn)效果。
二、選擇編程語(yǔ)言
單片機(jī)編程語(yǔ)言有匯編語(yǔ)言和C語(yǔ)言?xún)煞N。匯編語(yǔ)言要求編程者對(duì)寄存器的地址非常清楚,指令較多,中職學(xué)生很難入門(mén)。而C語(yǔ)言靈活、編程思路符合人們的思維習(xí)慣,很容易實(shí)現(xiàn)模塊化編程,可供參考的程序示例也很多,可移植性強(qiáng),所以要采用C語(yǔ)言編程。編程環(huán)境一般都采用傳統(tǒng)的 keil uvision 4或其他版本。
三、循序漸進(jìn)做好入門(mén)五步
1.做好第一個(gè)C51工程(點(diǎn)亮一個(gè)燈)
所謂做好第一個(gè)C51工程,就是通過(guò)點(diǎn)亮一個(gè)LED來(lái)使學(xué)生學(xué)會(huì)“了解單片機(jī)的I/O口搭建硬件電路啟動(dòng)keil uvision 4并進(jìn)行設(shè)置建工程、命名、保存建.c文件、命名、將.c文件添加到工程中去輸入用‘位操作點(diǎn)亮一個(gè)LED的程序代碼(注:代碼只有幾行,這里不要求學(xué)生理解代碼的含義,只要求知道一個(gè)C51工程的基本結(jié)構(gòu))編譯燒寫(xiě)程序到單片機(jī)觀察效果在此基礎(chǔ)上,再講解代碼的含義”。
第一個(gè)C51工程很簡(jiǎn)單,但也很關(guān)鍵。做好了第一個(gè)C51工程,可以使學(xué)生掌握開(kāi)發(fā)一個(gè)工程的步驟,激發(fā)學(xué)生的好奇心并增強(qiáng)自信心。
鞏固與提高:指導(dǎo)學(xué)生做好“操作單個(gè)端口(位操作)”同時(shí)點(diǎn)亮多個(gè)燈的實(shí)驗(yàn),再講清10進(jìn)制、16進(jìn)制、二進(jìn)制數(shù)的含義和相互轉(zhuǎn)換的方法,再指導(dǎo)學(xué)生做“操作一組端口(字節(jié)操作)”,同時(shí)點(diǎn)亮多個(gè)燈的實(shí)驗(yàn)。這時(shí)學(xué)生就能感受到已站在“入門(mén)的門(mén)檻上”了。
2.讓燈眨眨眼—— 一只腳踏進(jìn)單片機(jī)的大門(mén)
給學(xué)生講清一個(gè)帶參數(shù)的延時(shí)函數(shù),學(xué)生就能夠在第一個(gè)工程的基礎(chǔ)上編程控制燈,并周期性地點(diǎn)亮、熄滅。
鞏固與提高:學(xué)生獨(dú)立做多個(gè)燈的亮、滅閃爍實(shí)驗(yàn),可以用位操作或字節(jié)操作,但因?yàn)橛米止?jié)操作程序簡(jiǎn)潔一些,所以提倡該方法。
3.學(xué)會(huì)花樣流水燈——真正入門(mén)
該實(shí)驗(yàn)可以把C51的基本知識(shí)——常量、變量、數(shù)據(jù)類(lèi)型、運(yùn)算符、語(yǔ)法、語(yǔ)句全部用到,還會(huì)用到單片機(jī)的定時(shí)器,學(xué)會(huì)配置寄存器的基本方法。
這部分要采用即學(xué)即用的方法。將C51的知識(shí)分解成若干個(gè)小模塊,每講一個(gè)小模塊,就指導(dǎo)學(xué)生用該模塊的知識(shí)做一個(gè)流水燈的實(shí)驗(yàn),這樣,學(xué)生更容易掌握,并能夠及時(shí)看到成果。具體做法是:
(1)先讓學(xué)生分別用位操作、字節(jié)操作實(shí)現(xiàn)流水燈,并進(jìn)行復(fù)習(xí)、鞏固。
(2)學(xué)習(xí)庫(kù)函數(shù)后,用循環(huán)移位庫(kù)函數(shù)實(shí)現(xiàn)流水燈。
(3)學(xué)習(xí)if語(yǔ)句、swtich...case語(yǔ)句后,分別用這兩個(gè)語(yǔ)句實(shí)現(xiàn)流水燈。
(4)學(xué)習(xí)數(shù)組、指針后,分別用數(shù)組、指針實(shí)現(xiàn)流水燈。
鞏固與提高:指導(dǎo)學(xué)生完成數(shù)碼管的靜態(tài)顯示和動(dòng)態(tài)顯示。動(dòng)態(tài)顯示有一定的難度,老師可以講解典型范例,使學(xué)生理解,然后改變硬件的接線、改變顯示的內(nèi)容,讓學(xué)生自己完成,這樣可使學(xué)生真正掌握。
到達(dá)這里,學(xué)生就算入門(mén)了。然后指導(dǎo)學(xué)生學(xué)習(xí)單片機(jī)的外圍器件(如小型液晶屏、溫度傳感器、各種電機(jī)、AD/DA模塊等),并用這些器件和單片機(jī)組合來(lái)模擬很多產(chǎn)品(如微波爐、豆?jié){機(jī)、生產(chǎn)線等)的設(shè)計(jì),使學(xué)生綜合編程能力在實(shí)戰(zhàn)中得到實(shí)質(zhì)的提升。
四、初學(xué)者學(xué)習(xí)單片機(jī)的方法與技巧
1.記憶
對(duì)C51的規(guī)則、語(yǔ)法、語(yǔ)句要記憶。在實(shí)際應(yīng)用中可以使記憶更加牢固。
2.對(duì)關(guān)鍵狀態(tài)的處理
首先閱讀項(xiàng)目任務(wù)書(shū),搞清楚產(chǎn)品的工作過(guò)程,特別要搞清楚工作過(guò)程中有哪些關(guān)鍵時(shí)刻(狀態(tài))。用標(biāo)志變量賦不同的值(如a=1;a=2;…)或者給不同的標(biāo)志變量賦一個(gè)值(如a=1;b=1;…)表示這些關(guān)鍵狀態(tài),有利于編程時(shí)對(duì)這些關(guān)鍵狀態(tài)的表述。這是解決復(fù)雜問(wèn)題的關(guān)鍵措施之一。
3.仿寫(xiě)
當(dāng)找不到編程思路時(shí),可以看別人寫(xiě)好的例程,找到思路后,再自己獨(dú)立地完成仿寫(xiě),這樣可使自己較快地解決問(wèn)題,增強(qiáng)信心。堅(jiān)持下去,就會(huì)逐步形成自己的編程思想。
4.對(duì)單片機(jī)的外圍器件的使用
應(yīng)閱讀其資料,大致了解,再結(jié)合例程(網(wǎng)上一般都有)進(jìn)行套用,只需修改部分參數(shù)或部分代碼就可符合自己的需求,這是快速應(yīng)用的技巧。
5.精煉、高效
對(duì)自己的代碼,要反復(fù)檢查,刪掉多余的語(yǔ)句,使代碼更精煉、更高效,還要考慮用其他的思路來(lái)實(shí)現(xiàn)本項(xiàng)目。要保存自己成熟的代碼,以便移植到其他項(xiàng)目中去。
參考文獻(xiàn):
徐金增.單片機(jī)編程仿真實(shí)驗(yàn)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].山東師范大學(xué),2009(4).
編輯 薛直艷