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