久久久国产精品视频_999成人精品视频线3_成人羞羞网站_欧美日韩亚洲在线

0
首頁 精品范文 單片機c語言

單片機c語言

時間:2023-05-29 17:37:46

開篇:寫作不僅是一種記錄,更是一種創(chuàng)造,它讓我們能夠捕捉那些稍縱即逝的靈感,將它們永久地定格在紙上。下面是小編精心整理的12篇單片機c語言,希望這些內(nèi)容能成為您創(chuàng)作過程中的良師益友,陪伴您不斷探索和進步。

單片機c語言

第1篇

關(guān)鍵詞: C語言;單片機;開發(fā);應(yīng)用

作為一種智能化工具,單片機的開發(fā)在傳統(tǒng)上來說更傾向于使用匯編語言,而高級語言一直使用的甚少。但面對目前計算機領(lǐng)域技術(shù)發(fā)展的最新環(huán)境,匯編語言對于單片機開發(fā)來說已經(jīng)不是最適合的編程語言了。從長遠來看,將類似于C語言這樣的高級計算機語言運用于單片機開發(fā)的技術(shù)雖然目前尚未成熟,但卻是單片機開發(fā)技術(shù)更為完善和發(fā)展的大勢所趨。

1 單片機的開發(fā)

近代計算機技術(shù)發(fā)展的突出特點是微電子技術(shù)的蓬勃興起,作為微電子技術(shù)發(fā)展的代表,單片機逐漸被應(yīng)用于生活的各個領(lǐng)域。它的出現(xiàn)使近代計算機技術(shù)向前邁進了一大步,更從系統(tǒng)分支上使計算機形成了兩大系統(tǒng)分支:通用系統(tǒng)和嵌入系統(tǒng)。在現(xiàn)代電子系統(tǒng)中,單片機有其無可比擬的優(yōu)越性:成本低、芯片體積小、性能好,因此,單片機的適用領(lǐng)域也非常廣泛。在我們?nèi)缃竦纳钪校瑔纹瑱C技術(shù)已成功被滲入到儀器儀表、家用電器、汽車機械等領(lǐng)域,是智能化工具的代表。

1.1 單片機開發(fā)的特征

目前單片機的開發(fā)主要具有以下特征:“擴展的串行方式、廣泛的運用在片程序儲存器技術(shù)、全盤CMOS化、8位機的主導(dǎo)地位、逐步使用C語言”[1]。上述特征概括性的展示了單片機技術(shù)目前的發(fā)展?fàn)顩r,其中,C語言的使用已經(jīng)開始成為單片機技術(shù)開發(fā)的主要語言。

1.2 單片機開發(fā)的語言

應(yīng)用于單片機開發(fā)的語言主要有兩種:匯編語言與高級語言,其中高級語言以C語言為代表。匯編語言相較C語言來說具有較高的可控性,使用起來較為簡便,因此在單片機開發(fā)中運用的較為廣泛。隨著目前處理器對C語言的運用逐漸增多,結(jié)合C語言相較于匯編語言來說具有更強的可移植性的特點,在對處理器內(nèi)部結(jié)構(gòu)的具體情況不甚清楚的狀況下,處理C語言的編譯器也可很快上手,因此,C語言比匯編語言更加適用于目前的單片機開發(fā)系統(tǒng)。

2 C語言應(yīng)用于單片機開發(fā)

作為編譯型語言,C語言兼具高級語言和匯編語言的特點和功能,因其自身強大的可移植性,C語言在單片機的開發(fā)應(yīng)用中有很大的便捷性。C語言主導(dǎo)結(jié)構(gòu)化的程序設(shè)計方式,自頂向下展開。使用C語言進行單片機開發(fā),即使沒有對單片機的硬件結(jié)構(gòu)的詳細了解,編譯器也可以按照自頂向下的設(shè)計方式使變量儲存單元得到合理有效的分配,如此設(shè)計出的單片機程序十分可靠易行。

2.1 特點

作為程序設(shè)計語言中的一種,C語言以其結(jié)構(gòu)化的特征被廣泛運用于程序開發(fā)。C語言具有以下特點:功能性強、結(jié)構(gòu)性好、高度的可移植性(不同的機型都可運行,面向用戶)。此外,相比于匯編語言,C語言這種編譯型程序設(shè)計語言具有更強的可讀性,這主要是得益于該種語言有功能強大的庫函數(shù)、高效的編譯能力和迅捷簡便的運算。

使用C語言進行單片機開發(fā)程序的編寫,程序開發(fā)者不用時時與硬件接觸,能夠?qū)⒕θ考杏谒伎汲绦虻乃惴ê凸δ埽瑢τ谝恍┈嵥榈募毠?jié)問題可以大而化之不必過于在意,因此C語言比匯編語言更適應(yīng)一般人的思維習(xí)慣,更能節(jié)省程序編寫的時間。

除了上述兩點之外,C語言在自身改進和擴充方面也是十分便捷的,這主要得益于它功能完善的程序結(jié)構(gòu),此種強大的程序結(jié)構(gòu)很適合用來設(shè)計模塊化程序。“自頂向下、逐步求精”是結(jié)構(gòu)化程序設(shè)計的主要原則,C語言在應(yīng)用于單片機系統(tǒng)開發(fā)時主要采用該種設(shè)計方法。這種方法的優(yōu)勢就在于可以使模塊功能得到系統(tǒng)化的分工,每個模塊有每個模塊的任務(wù)。

2.2 C語言對單片機的優(yōu)化

單片機開發(fā)目前被廣泛應(yīng)用于工業(yè)測控領(lǐng)域中的嵌入式系統(tǒng),這是利用C語言對單片機系統(tǒng)資源的優(yōu)化,這樣的應(yīng)用使得單片機開發(fā)所面對的工作環(huán)境和內(nèi)容日趨復(fù)雜,最繁瑣的便是軟件的設(shè)計。由于工作任務(wù)艱巨,設(shè)計人員尤其需要考慮控制系統(tǒng)單片機的資源分配(軟硬件方面),而單片機系統(tǒng)的資源量卻不夠充裕。這種不充裕主要體現(xiàn)為結(jié)構(gòu)簡單的CPU和片內(nèi)結(jié)構(gòu)以及缺少程序存儲器等方面的資源。

基于以上原因,利用有限的資源做好C語言的程序設(shè)計成為單片機開發(fā)的關(guān)鍵環(huán)節(jié)。C語言作為高級計算機語言利弊并存,雖然優(yōu)點很多,但是不能忽視的是,C語言由于生成代碼長,造成占用存儲空間大,基本在20%~50%左右,這就要求我們在具體操作的時候要知曉軟硬件的任務(wù)所屬,根據(jù)其不同的優(yōu)勢來分配任務(wù),對系統(tǒng)任務(wù)也要做到預(yù)先分析。因此,當(dāng)C語言運用于單片機開發(fā)時,對程序的優(yōu)化是需要適當(dāng)進行的。這不僅是C語言本身的特點所決定的,也是單片機開發(fā)的現(xiàn)狀所決定的。

2.3 開發(fā)環(huán)境

以C語言編程的單片機應(yīng)用開發(fā)軟件有很多,其中KEILC51

以其完善的性能成為這其中的佼佼者。“這款軟件既能編輯仿真,又能編譯,它同時支持不同公司的以MCS51為架構(gòu)的芯片,也支持匯編和C語言的程序設(shè)計”[2]。這款軟件功能強大,尤其是在程序的調(diào)試和仿真軟件方面具有卓越的功能,方便學(xué)習(xí)使用和投入工作。在這種單一卻不失靈活的開發(fā)環(huán)境中,C語言被集成于統(tǒng)一的開發(fā)環(huán)境,“這個集成開發(fā)環(huán)境包含:編譯器,匯編器,實時操作系統(tǒng),項目管理器,調(diào)試器”[3]。這種單一卻不失靈活的開發(fā)環(huán)境有如下特點:

該軟件的工程由三部分組成:源文件、開發(fā)工具選項、編程說明。該軟件的特點就是一對多(一個工程對應(yīng)產(chǎn)生一個或N個目標(biāo)程序),從而構(gòu)成多個組。

該軟件可以滿足用戶瀏覽源文件的需求,且方便快速,可以尋找文件,全局搜索文件,在集成開發(fā)的環(huán)境下也可保證用戶功能得以啟動。“另外KEILC51可以在編輯器內(nèi)編輯、調(diào)試程序,它能提供一種自然的調(diào)試環(huán)境,使你更快速地檢查和修改程序”[4]。

2.4 C語言在單片機開發(fā)中運用的步驟

C語言在單片機開發(fā)中運用的步驟主要有:編寫編譯源程序和連接轉(zhuǎn)換目標(biāo)代碼。除了這兩方面的主要內(nèi)容之外,當(dāng)程序設(shè)計結(jié)束之后,還應(yīng)該將“源程序轉(zhuǎn)換成在單片機上能運行的HEX件,使單片機能執(zhí)行編寫好的程序”[5]。具體的C語言在單片機開發(fā)中的步驟如下所述:

1)安裝軟件。作為商業(yè)軟件,我們在KEIL的網(wǎng)站上可以下載到軟件的安裝包,這個過程很簡單,只要跟隨軟件提示安裝即可。首先對安裝包進行解壓,然后打開SETUP.EXE文件,點擊安裝,按照提示輸入序列號并在詢問是否接受版權(quán)信息時點擊接受按鈕,最后按要求完成安裝。

2)進行C源文件的創(chuàng)建工作。第一步建立新項目,在新項目中添加以前就有的程序文件或者建立新文件。第二步建立一個新的程序文件,找到新文件的文字編輯窗口,在其中編寫程序,即可生成C源文件。

3)編譯并調(diào)試。編譯調(diào)試是C語言運用于單片機開發(fā)的中間階段。這一階段首先要求軟件操作者調(diào)整到調(diào)試模式,然后使用仿真器在源程序的一級進行程序調(diào)試,調(diào)試的時候要注意對已建立的源文件糾錯,同時編譯源程序,在使用C51編譯器的基礎(chǔ)上生成目標(biāo)文件或浮動的目標(biāo)碼模塊。最后,將編譯好的模塊連接,生成文件。

4)最后進行生成HEX文件的工作。作為整個步驟的最后一步。生成文件對C語言的運用有著非常重要的作用,也使單片機開發(fā)在性能、功效上有了現(xiàn)實的意義。進行這一步首先要把目標(biāo)文件生成HEX文件,該文件的主要功能是燒寫芯片。該文件以Intel公司所提出的數(shù)據(jù)寬度為字節(jié),“文件轉(zhuǎn)換后所生成的HEX文件可以通過編程器寫入單片機的程序存儲器,也可以用仿真器進行調(diào)試”[6]。

3 總結(jié)

C語言在單片機開發(fā)中的運用目前比較廣泛,它使單片機應(yīng)用于生產(chǎn)生活的時候更為有效,同時極高的開發(fā)效率將單片機的使用推廣到了生產(chǎn)生活的各個方面。面對目前計算機領(lǐng)域技術(shù)發(fā)展的最新環(huán)境,匯編語言對于單片機開發(fā)來說已經(jīng)不是最適合的程序編寫技術(shù)了。綜上所述,C語言應(yīng)用于單片機的開發(fā)對單片機在未來運用于更廣闊的空間具有很大的促進作用。

參考文獻:

[1]居水榮,單片機開發(fā)系統(tǒng)綜述[J].半導(dǎo)體情報,2011(01).

[2]張亞力、賈英布,基于C語言在單片機技術(shù)的應(yīng)用[J].農(nóng)業(yè)網(wǎng)絡(luò)信息,2011(05).

[3]董蘊寶、潘旭君,淺談C語言在單片機中的程序設(shè)計[J].科學(xué)與技術(shù)信息,2009(11).

[4]牛余朋,談?wù)凜語言在單片機開發(fā)中的應(yīng)用[J].電子制作,2009(01)

[5]趙亮、候國銳,單片機C語言編程與實例[M].北京:人民郵電出版社,2009.

[6]范壽康、王寧,單片微型計算機的應(yīng)用開發(fā)技術(shù)[M].北京:人民郵電出版社,2009.

作者簡介:

第2篇

一、c語言與單片機課程在中職學(xué)校電子及相關(guān)專業(yè)中的重要地位

c語言是一種被廣泛使用的計算機程序設(shè)計語言,在中職學(xué)校引入c語言課程,不但能使學(xué)生掌握一種基礎(chǔ)的編程語言,還為學(xué)生發(fā)展能力和進一步學(xué)習(xí)打下基礎(chǔ)。

傳統(tǒng)的電子裝置,只能使用復(fù)雜的模擬電路或分立的集成電路來實現(xiàn),這樣的產(chǎn)品不僅體積大,且成本高,控制的精度也不高,適應(yīng)性更差。有了單片機后,可實現(xiàn)很多復(fù)雜的功能。而學(xué)好單片機可讓學(xué)生在電子行業(yè)內(nèi)找到一個比較好的工作。所以,單片機課程,也常被稱為“飯碗”課程。

二、中職學(xué)校“c語言”與“單片機”課程教學(xué)方式現(xiàn)狀分析

目前,中職學(xué)校中“c語言”與“單片機”課程的教學(xué)是采用完全割離的方式進行的,一般在第二學(xué)期開設(shè)“c語言”,在第四學(xué)期開設(shè)“單片機”。

在講授“c語言”時,通常以turboc 2.0為藍本,除了介紹“c語言”的數(shù)據(jù)類型、控制語句、數(shù)組、指針外,還對函數(shù)、結(jié)構(gòu)體甚至文件進行詳細地介紹。整個教學(xué)過程中,過分注重語句、語法的細節(jié)和程序設(shè)計技巧的講授,對如何分析和解決實際問題講得不夠。從而沒有明確的學(xué)習(xí)目的,更缺少學(xué)習(xí)的興趣。

而單片機的教材中,往往以匯編語言做為編程工具,為了能正確地運用匯編語言編寫單片機的程序,就要對單片機內(nèi)部結(jié)構(gòu)、存儲器結(jié)構(gòu)等知識做詳細介紹。從多年的教學(xué)實踐來看,單片機課程講到尋址方式時,就基本上講不下去了,后面的課程,學(xué)生只能像聽天書一樣被動地接受。

所以,多年來,學(xué)生怕學(xué)c語言,更怕學(xué)單片機。學(xué)過c語言課程的學(xué)生,不知道c語言的具體用途,學(xué)完后很快就忘記了。學(xué)過單片機的學(xué)生,感覺單片機內(nèi)部結(jié)構(gòu)難懂,匯編語言更加難掌握,學(xué)到最后,連數(shù)碼管、鍵盤這樣的最基本的程序,也無法順利完成。因此,這兩門課程的教學(xué)改革,勢在必行。

三、“c語言”與“單片機”課程整合的可行性分析

通過上述對“c語言”與“單片機”本文由收集整理教學(xué)現(xiàn)狀的分析,我們發(fā)現(xiàn),之所以這兩門課難教難學(xué),其根本原因在于兩門課教學(xué)過程的割裂。

c語言是一門較特別的高級語言,它把高級語言的基本結(jié)構(gòu)和語句與低級語言的實用性結(jié)合起來,允許直接訪問物理地址,可直接對硬件進行操作,因此既具有高級語言的功能,又有低級語言的許多功能,能夠像匯編語言一樣對位、字節(jié)和地址進行操作。而單片機的指令系統(tǒng)和硬件結(jié)構(gòu),正是學(xué)生最頭疼的內(nèi)容。而有了c語言這個編程工具后,單片機的學(xué)習(xí)效率會大大提高。

同時,單片機用c語言編程,繞過了單片機中難學(xué)的內(nèi)容,用c語言編程,驅(qū)動單片機裝置,解決了c語言應(yīng)用抽象的難題,所以,這兩個課程,整合在一起教學(xué),真可謂是“天生一對”!

四、“c語言”與“單片機”課程整合的方法

對c語言與單片機課程的教學(xué)過程進行整合,可提高兩門課的學(xué)習(xí)效果,但整合過程中,要想達到最佳的效果,也要采用正確的方法。

首先,這種整合不是簡單的“一加一”式的整合,不是將兩門課在相對集中的時間內(nèi)相繼開設(shè),就叫“整合”,而是要以單片機課程做為“主線”,在講授單片機課程的同時,根據(jù)編程的需要,不斷地“滲透”c語言的知識。再通過觀察程序驅(qū)動硬件的現(xiàn)象,深入體會單片機的原理。

其次,這種整合,也不必追求課時的壓縮,認(rèn)為既然是“整合”了,效率提高了,就應(yīng)該體現(xiàn)在課時的減少上,這種想法是錯誤的。所以,建議兩門課程,仍然保持兩個學(xué)期的課時量:第一個學(xué)期,主要介紹基本知識;第二個學(xué)期,可以項目實訓(xùn)的方式,讓學(xué)生完成一些綜合性的實驗,以提高對兩門課程知識的實際運用能力。

五、“c語言”與“單片機”課程整合的實踐與效果

第3篇

關(guān)鍵詞:C語言;高職;單片機

中圖分類號:G642 文獻標(biāo)識碼:B

“C語言程序設(shè)計”是高職高專電子專業(yè)的專業(yè)必修課。傳統(tǒng)教學(xué)以理論為主,以學(xué)科本位的邏輯體系來設(shè)計課程的教學(xué)內(nèi)容。課程內(nèi)容沒有與高職電子專業(yè)的其他課程有機銜接,不符合高職高專技能培養(yǎng)的特點。學(xué)生在學(xué)習(xí)C語言之后,不能用之有效地解決實際問題,學(xué)生的學(xué)習(xí)積極性難以調(diào)動,因此有必要對該課程進行改革。

1 現(xiàn)狀分析

目前高等學(xué)校都把“C語言程序設(shè)計”作為理工科非計算機專業(yè)的計算機基礎(chǔ)教育課程,屬于計算機基礎(chǔ)教育課程的一部分。但課程設(shè)置并沒有考慮與其他專業(yè)課程之間的關(guān)系,沒有針對高職應(yīng)用電子技術(shù)的專業(yè)特點,成了非計算機專業(yè)學(xué)生的“計算機通識教育”課程。

雖然許多學(xué)校對“C語言程序設(shè)計”課程從教學(xué)內(nèi)容、教學(xué)手段、教學(xué)方法等方面進行了大膽的改革,把邏輯與編程解題思路(算法)放在主體地位,講解如何分析問題和解決問題;但是受“在學(xué)校里牢固掌握基礎(chǔ)知識,畢業(yè)后在實踐中積累經(jīng)驗”這種傳統(tǒng)的教學(xué)理念的影響,把培養(yǎng)學(xué)生閱讀程序、設(shè)計程序的能力,分析問題、、解決問題的能力和邏輯思維能力作為教學(xué)目標(biāo)。課堂上學(xué)到的也只是用C語言解決一些數(shù)學(xué)問題,所學(xué)內(nèi)容和實際應(yīng)用相脫節(jié),認(rèn)識不到“C語言程序設(shè)計”和自己專業(yè)之間的關(guān)系,學(xué)生在學(xué)習(xí)C語言之后,不能用C語言編寫為本專業(yè)服務(wù)的應(yīng)用軟件。特別對高職高專電子專業(yè)學(xué)生來說,C語言的知識成了他們專業(yè)知識結(jié)構(gòu)中的一個“孤島”。

2 改革的必要性

C語言是影響深遠的、傳統(tǒng)的、優(yōu)秀的面向過程的結(jié)構(gòu)化程序設(shè)計語言。C語言功能豐富、表達能力強、使用靈活方便、應(yīng)用面廣、代碼轉(zhuǎn)換質(zhì)量高。C語言方便進行模塊化軟件設(shè)計,還可以實現(xiàn)C語言和匯編語言的混合編程。C語言既具有高級語言的優(yōu)點,又具有低級語言的許多特點,能像匯編語言那樣直接利用CPU的硬件特性進行程序設(shè)計。既可以編寫應(yīng)用軟件,又可以編寫系統(tǒng)軟件。和匯編語言相比,C高級語言程序設(shè)計快、可讀性、可移植性和可維護性好。一般情況下,完成同樣的任務(wù),使用C高級語言比用匯編語言可提高工作效率5-10倍,在調(diào)試階段更容易體會到這一點,因此C語言特別適合單片機的開發(fā)。嵌入式系統(tǒng)中使用的嵌入式操作系統(tǒng)絕大部分也都是以C高級語言為基礎(chǔ)的,很多直接將源代碼提供給使用者。目前在單片機應(yīng)用領(lǐng)域,C高級語言越來越受到人們的重視。用C語言進行單片機程序設(shè)計已經(jīng)成為單片機開發(fā)的一個主流,是單片機開發(fā)與應(yīng)用的必然趨勢。

單片機課程是應(yīng)用電子技術(shù)及相關(guān)專業(yè)的一門重要的專業(yè)主干課,在專業(yè)基礎(chǔ)課和其他專業(yè)課方面起著重要的橋梁作用。它涉及到的基礎(chǔ)理論知識較廣,應(yīng)用范圍廣,是一門實踐性、工程性很強的技術(shù)課程,在電子技術(shù)及相關(guān)專業(yè)課程中群中占有十分重要的地位。電子專業(yè)的學(xué)生普遍將單片機用于課程設(shè)計、畢業(yè)設(shè)計和電子產(chǎn)品設(shè)計大賽等許多實踐環(huán)節(jié)。單片機應(yīng)用也是學(xué)生將來在電子類公司或電子行業(yè)工作的最基本的技能。“單片機原理與應(yīng)用”課程都是基于匯編語言的,高職高專學(xué)生很難應(yīng)用匯編語言去搞程序設(shè)計,學(xué)生學(xué)到的單片機知識不能得到應(yīng)用。

高等職業(yè)教育的培養(yǎng)目標(biāo)是:培養(yǎng)既有一定理論基礎(chǔ)又有較強實踐能力,在生產(chǎn)服務(wù)第一線工作高層次的實用型、技術(shù)型人才,它不同于一般本科院校的學(xué)術(shù)型、工程型人才的培養(yǎng)目標(biāo)。就高職應(yīng)用電子技術(shù)專業(yè)而言,它培養(yǎng)強電弱電相結(jié)合,以弱電為主,并能熟練應(yīng)用電氣技術(shù)、計算機技術(shù)和控制技術(shù)等現(xiàn)代科學(xué)技術(shù),具有較強實踐能力的技術(shù)管理人才。強調(diào)應(yīng)用性、實用性是高職教育的特色,教學(xué)內(nèi)容突出基礎(chǔ)理論知識的應(yīng)用和實踐能力培養(yǎng)的原則,以應(yīng)用為目的,以“必需、夠用”為度,加強針對性和實用性。

因此,高職應(yīng)用電子專業(yè)的“C語言程序設(shè)計課程”應(yīng)不同于本科相應(yīng)專業(yè),也應(yīng)不同于高職其他專業(yè)。“C語言程序設(shè)計”課程的開設(shè)應(yīng)緊扣本專業(yè)的特點,為本專業(yè)的培養(yǎng)目標(biāo)服務(wù)。如果將“C語言程序設(shè)計”變成“單片機C語言程序設(shè)計”,學(xué)生通過本課程的學(xué)習(xí)掌握單片機C語言程序設(shè)計方法,達到獨立利用C語言編寫單片機應(yīng)用程序的目的。將C語言“知識孤島”和單片機“知識孤島”連接起來,結(jié)合所學(xué)其他專業(yè)知識,使學(xué)生學(xué)會應(yīng)用單片機開發(fā)電子系統(tǒng)的基本方法。如果學(xué)生以后需要用C語言或其他高級語言開發(fā)通用計算機系統(tǒng)的應(yīng)用軟件或系統(tǒng)軟件,有了“單片機C語言程序設(shè)計”的基礎(chǔ),可以觸類旁通,很容易掌握其他高級程序設(shè)計語言。這也符合從特殊到一般,再從一般到特殊的認(rèn)知規(guī)律。

3 課程改革設(shè)想:

3.1 課程內(nèi)容的改革

把“C語言程序設(shè)計”置換為“單片機C語言程序設(shè)計”,放在“單片機原理與應(yīng)用”課程之后開設(shè),將“計算機基礎(chǔ)教育”課程變成“單片機開發(fā)技能”課程。課程內(nèi)容適用于C高級語言的初學(xué)者,包括數(shù)據(jù)類型、運算符和表達式、數(shù)組、指針和函數(shù)、程序的順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)、程序設(shè)計基本知識和單片機的C編程等內(nèi)容。對C語言中較難或單片機程序不常使用的內(nèi)容,比如多維數(shù)組、指向指針的指針、鏈表等進行刪減。相關(guān)例題應(yīng)本著“深入淺出,突出實用”的指導(dǎo)思想,難度應(yīng)與高職高專學(xué)生的基礎(chǔ)相適應(yīng),算法不要過于復(fù)雜。單片機的C語言編程部分主要應(yīng)包括中斷、定時器/計數(shù)器、串行口、鍵盤和顯示等相關(guān)應(yīng)用,適當(dāng)包含少量可編程芯片的應(yīng)用。所選內(nèi)容應(yīng)體現(xiàn)先進性、實用性和技能培養(yǎng)的特點,拋棄一些過時或不實用的內(nèi)容,把提高學(xué)生的職業(yè)技能放在突出的重要位置。整門課程應(yīng)將單片機和C語言有機結(jié)合起來,強調(diào)知識點在單片機程序設(shè)計中的應(yīng)用,體現(xiàn)“單片機C語言”的特色,避免把課程內(nèi)容分為“C語言程序設(shè)計”和“單片機C編程”兩部分。

3.2 編譯開發(fā)環(huán)境

以80C51系列為基礎(chǔ),開發(fā)環(huán)境選擇德國KeilSoftware公司的Keil uVision集成開發(fā)環(huán)境(當(dāng)前版本是uVision3)。這是一個基于Windows的開發(fā)平臺,集成了編輯器、項目管理器、Cx51編譯器、Ax51宏匯編器、BL51/Lx51連接定位器和調(diào)試器,用戶群極為龐大,符合教學(xué)特點的典型性。其中Cx51是專為80C51單片機設(shè)計的C語言編譯器,生成的程序代碼運行速度高,存儲空間小。KeiluVision還提供了強大的項目管理功能,可以十分方便地進行結(jié)構(gòu)化多模塊程序設(shè)計,特別是Keil提供的純軟件模擬仿真功能(也支持硬件目標(biāo)板在線仿真),非常適合教學(xué)使用。Keil調(diào)試器支持?jǐn)帱c管理和程序代碼的多種 執(zhí)行方式(全速、單步、執(zhí)行到指定行等)。在調(diào)試狀態(tài)下有寄存器窗口、存儲器窗口、觀察窗口和命令窗口,用于程序執(zhí)調(diào)試過程中顯示單片機寄存器、存儲器、局部變量和觀察點的狀態(tài)和輸入各種調(diào)試命令。Keil uVision的集成功能(Peripherals)菜單可以打開中斷系統(tǒng)、I/O接口、串行口、定時器計數(shù)器等狀態(tài)窗口,通過這些狀態(tài)窗口可以觀察軟件仿真結(jié)果。

Keil uVision可以與PROTEUS整合構(gòu)建單片機虛擬實驗室。PROTEUS是目前世界上最先進最完善的嵌入式系統(tǒng)設(shè)計與仿真平臺,可以實現(xiàn)數(shù)字電路、模擬電路及微控制器與外設(shè)組成的混合電路系統(tǒng)仿真、軟件仿真、系統(tǒng)協(xié)同仿真和PCB設(shè)計等全部功能。由于PROTEUS軟件包逼真、真實的協(xié)同仿真功能,得到了包括劍橋在內(nèi)的眾多大學(xué)用戶的認(rèn)可,作為電子學(xué)或嵌入式系統(tǒng)的課程教學(xué)、實驗和水平考試平臺。Keil uVision與PROTEUS通過設(shè)置聯(lián)機調(diào)試單片機系統(tǒng),在PROTEUS中完成單片機系統(tǒng)的電路原理圖繪制后,在Keil uVision集成開發(fā)環(huán)境中進行程序設(shè)計、項目的創(chuàng)建、編譯鏈接和調(diào)試,同時可在PROTEUS查看直觀的結(jié)果(如鍵盤輸入和LCD顯示等)。

3.3 教學(xué)方式的改革

高職教學(xué)應(yīng)該是基礎(chǔ)和技能的教學(xué)同步進行,甚至先教技能再教理論,在不斷實踐中掌握技能,在技能學(xué)習(xí)中提高基礎(chǔ)理論。在高級語言程序設(shè)計教學(xué)中,不能期望高職學(xué)生對每一個算法都理解。一些太復(fù)雜的算法、單片機應(yīng)用系統(tǒng)中常用芯片的驅(qū)動程序,可以以函數(shù)庫或軟件包的形式直接提供給學(xué)生,供學(xué)生在程序設(shè)計中調(diào)用,降低理論教學(xué)難度。

確立以學(xué)生為中心的教學(xué)理念。從學(xué)生實際出發(fā),以學(xué)生為本,采用多樣化、層次化的教學(xué)方法,貫徹循序漸進、深入淺出的原則。學(xué)生沒有高級語言程序設(shè)計的基礎(chǔ),在“單片機C語言程序設(shè)計”教學(xué)中要注意分散難點,縮小臺階。在內(nèi)容體例的設(shè)計上以實用為主,拋棄過多的語法細節(jié)和非通用的或?qū)嶋H用途很少的語言特性,理出重點和教學(xué)主線;采用一體化教學(xué)方法,以程序樣例為主實施教學(xué)。淡化語法教學(xué),以程序設(shè)計帶動基本語法的學(xué)習(xí)。

上機實驗是掌握單片機C語言程序設(shè)計的必要手段。不能簡單地認(rèn)為上機實驗只是輔的教學(xué)。程序設(shè)計的能力是在實際動手實踐中練就的,通過上機操作和驗證可進一步加深各種語句的理解,提高學(xué)生的編程能力。通過Keilu Vision與PROTEUS組成的聯(lián)機調(diào)試環(huán)境,熟練使用Keilu Vision和PROTEUS軟件對學(xué)生的深入學(xué)習(xí)有巨大的幫助。

第4篇

關(guān)鍵詞:單片機;編程

中圖分類號:TP312文獻標(biāo)識碼:A文章編號:1009-3044(2007)03-10765-01

1 引言

隨著單片機技術(shù)日新月益的發(fā)展,學(xué)習(xí)它的人可是越來越多了。對于初學(xué)者來說,好多人一開始總會被單片機的各種各樣的編程語言搞糊涂了。因為單片機目前的編程語言常見的有四種,即匯編語言、C語言、PL/M和BASIC。究竟要學(xué)哪一種編程語言好呢?我們先來做個比較吧。

2 單片機的BASIC編程語言

BASIC是一種高級語言,它的英文含義是“初學(xué)者通用符號指令代碼”,是在1965年5月,由美國科學(xué)家托馬斯?庫爾茲研制出來的。10多年后,微軟公司把它移植到微型機上。幾十多年來,BASIC語言一直被認(rèn)為是初學(xué)編程的語言。它已經(jīng)由QBASIC發(fā)展到VB#版本,具備了很多結(jié)構(gòu)化思想和編程方式,如函數(shù)、模塊、局部變量、全局變量、數(shù)據(jù)傳遞等。早期的BASIC語言由于生成的代碼不是最終目標(biāo)機器的代碼,而是經(jīng)過一個RUNTIME程序解釋后運行的,所以執(zhí)行效率低。而單片機的BASIC編譯器是直接將程序代碼編譯成相應(yīng)芯片的機器碼,不需要在單片機的內(nèi)存中駐留RUNTIME程序,執(zhí)行效率與其他編譯器編譯出來的一樣。

我們現(xiàn)在以MCS-Electronics公司開發(fā)出來的BASCOM-8051開發(fā)環(huán)境為例,簡要介紹一下以BASIC語言為基礎(chǔ)的單片機編程系統(tǒng)。

它和一般BASIC語言一樣具有如:For、To、Step、If、Else、End 、Select Case等等命令,其用法及功能是沒有什么區(qū)別的,因此初學(xué)者比較容易入門。

另外,它還有針對單片機硬件所設(shè)計的命令如:LCD命令可以用一條命令來實現(xiàn)LCD的顯示操作。

Cls '清LCD屏

Lcd"Hello world." '向LCD輸入字符串

類似于這樣的命令主要是提供了直接對單片機及其外部硬件的操作,特別是提供了對單片機端口的直接操作,如:P1、P2、P2.1、P0.3等等,簡化了整個開發(fā)過程,是開發(fā)人員重點學(xué)習(xí)的部分。

例如有硬件電路如圖(1)所示,編程使發(fā)光二極管間隔兩秒鐘閃爍一次的程序如下:

While I = 2

P1.0 = Not P1.0

Wait I

Wend

End

3 單片機的PL/M編程語言

PL/M 語言是Intel公司從8080微處理器開始為其系列產(chǎn)品開發(fā)的編程語言,其特點是:

3.1 簡單易學(xué)

PL/M-51語言只有兩類語句:一類是說明語句,用于說明變量和過程;另一類是可執(zhí)行語句,如賦值語句、條件語句和循環(huán)語句等。這些語句的功能和BASIC語言中相應(yīng)的語句相似,如:

P1=02H;/*賦值語句*/

IF M>2 THEN N=P1;/*條件語句*/

DO I=0 TO 10;/*循環(huán)語句 */

3.2 可讀性好

PL/M-51是一種結(jié)構(gòu)化語言,其程序是塊式結(jié)構(gòu),可采用縮進式方法書寫源程序,使程序?qū)哟吻宄阌诶斫夂烷喿x。一個完整的程序可由多個模塊組成,而每個模塊又是由多個程序塊構(gòu)成。

3.3 可靠性高

PL/M-51編譯軟件檢查用戶程序?qū)纹瑱C的各種資源使用情況,對沖突使用情況或不合理使用情況能提出警告,并能自動為用戶程序合理分配內(nèi)存。

3.4 隔離性好

PL/M-51中,既可有全局的靜態(tài)變量,也可有局部的動態(tài)變量,對于全局性的靜態(tài)變量,其性質(zhì)和BASIC中的變量一樣,該變量在整個程序中均有效。對于局部的動態(tài)變量,它只有在其所說明的程序塊中或過程中有效,在該程序塊或過程之外則無效。局部動態(tài)變量的特點是,當(dāng)由多個人共同編制一個程序中的不同模塊時,而不必?fù)?dān)心是否使用了相同的標(biāo)識符而發(fā)生沖突。模塊化的程序設(shè)計增加了程序設(shè)計的靈活性的方便性。

3.5 兼容性好

PL/M-51可同匯編語言或其他語言的目標(biāo)模塊連接起來,生成可執(zhí)行代碼如果用戶必須使用匯編語言編制一段程序,或是想利用已調(diào)好的匯編語言程序塊,那么該段匯編可以很方便地連接到PL/M-51程序目標(biāo)塊中。

3.6 具有良好的算法庫和庫管理能力

PL/M-51語言具有INTEL公司所提供的算法庫和庫管理功能用戶能利用現(xiàn)成的算法庫完成加、減、乘、除等運算,并能建立自己的特定算法庫,使得編程一勞永逸,提高軟件的開發(fā)效率。

由上面幾點可見,PL/M語言是類似于Pascal一種語言,是一種結(jié)構(gòu)化語言。PL/M編譯器好像匯編器一樣可產(chǎn)生緊湊代碼,可以說它是一種"高級匯編語言",可詳細控制著代碼的生成。但對51系列的單片機來說,PL/M不支持復(fù)雜的

算術(shù)運算、浮點變量而無豐富的庫函數(shù)支持。學(xué)習(xí)PL/M無異于學(xué)習(xí)一種新語言。

4 單片機的匯編語言

匯編語言是一種用文字助記符來表示機器指令的符號語言,是最接近機器碼的一種語言。其主要優(yōu)點是占用資源少,程序執(zhí)行效率高,由于它一條指令就對應(yīng)一條機器碼,每一步的執(zhí)行動作都很清楚,并且程序大小和堆棧調(diào)用情況都容易控制,調(diào)試起來也比較方便。但是不同的類型的單片機,其匯編語言可能有點差異,所以不易移植。比如你在PIC12CE518單片機上用匯編語言編了一個程序,到了STC89C51單片機上那可就運行不了,因為他們的指令系統(tǒng)是有區(qū)別的。

單片機的匯編語言非常像其他匯編語言。指令系統(tǒng)比第一代微處理器要強一些。但單片機擁有不同存儲區(qū)域使得其編程變得復(fù)雜一些,可是作為一位電子工程師,懂得匯編語言就可幫助你了解影響任何語言效率的特殊規(guī)定。例如,懂得匯編語言指令就可以使用在片內(nèi)RAM作變量的優(yōu)勢,因為片外變量需要幾條指令才能設(shè)置累加器和數(shù)據(jù)指針進行存取。同樣的,當(dāng)要求使用浮點數(shù)和啟用函數(shù)時也只有具備匯編編程經(jīng)驗才能避免生成龐大的、效率低的程序,對于這方面的編程,沒有匯編語言是做不到的。

5 單片機的C語言

單片機的C語言是一種編譯型程序設(shè)計語言,它兼顧了多種高級語言的特點,并具備匯編語言的功能。C語言具有功能豐富的庫函數(shù),運算速度快,編譯效率高,有良好的可移植性,而且可以實現(xiàn)直接對系統(tǒng)硬件的控制。此外,C語言程序具有完整的程序模塊結(jié)構(gòu),從而為軟件開發(fā)中采用模塊化程序設(shè)計方法提供了有力的保障。與匯編相比,有如下優(yōu)點:

(1)對單片機的指令系統(tǒng)不要求了解,僅要求對51的存儲器結(jié)構(gòu)有初步了解,至于寄存器分配、不同存儲器的尋址及數(shù)據(jù)類型等細節(jié)均由編譯器管理。

(2)程序有規(guī)范的結(jié)構(gòu),可分為不同的函數(shù)。這種方式可使程序結(jié)構(gòu)化,將可變的選擇與特殊操作組合在一起,改善了程序的可讀性。

(3)編程及程序調(diào)試時間顯著縮短,從而提高效率。 提供的庫包含許多標(biāo)準(zhǔn)子程序,具有較強的數(shù)據(jù)處理能將已編好程序可容易的植入新程序,因為它具有方便的模塊化編程技術(shù)。

單片機C語言作為一種非常方便的語言而得到廣泛的支持,C語言程序本身并不依賴于機器硬件系統(tǒng),基本上不做修改就可根據(jù)單片機的不同較快地移植過來。

綜上所述,單片機的四種編程語言各有各的優(yōu)缺點,作為單片機初學(xué)者,筆者認(rèn)為還是應(yīng)該先學(xué)習(xí)匯編語言,不一定要學(xué)得很精很熟悉,但要有一定的了解。因為匯編語言程序除了具有簡潔明快、跳躍性強、占ROM資源少等優(yōu)點以外,還因它和單片機底層硬件緊密聯(lián)系,可以讓初學(xué)者更加了解單片機硬件系統(tǒng)各種資源,熟悉各個功能模塊的作用,從而為編出更高效率的程序打好扎實的基礎(chǔ)。

用單片機匯編語言編寫的程序代碼效率高,但學(xué)習(xí)起來相對難度較大,而且對于一個大型項目,如果完全采用匯編語言來編程,就顯得很繁瑣,尤其是遇到算法方面的問題時,匯編語言根本就應(yīng)付不了。況且現(xiàn)在單片機的主頻在不斷的提高,在高頻率時鐘的作用下,我們完全不需要那么高效率的代碼;另外,單片機的ROM和RAM空間也在不斷的增加,足夠裝得下你用C語言寫的任何程序代碼,單片機C語言相關(guān)的資料又多又好找,可移植性非常好,比如只需要改變一個IO口寫個溫度傳感器的程序在任何一個單片機上都能使用。由此可見用單片機C語言進行程序設(shè)計,已成為單片機軟件開發(fā)的一個主流,作為一個技術(shù)全面并涉足較大規(guī)模的軟件系統(tǒng)開發(fā)的單片機開發(fā)人員最好能夠掌握基本的C語言編程。

當(dāng)然,有時候用單片機C語言也不能夠?qū)崿F(xiàn)所有要編寫程序的功能,比如當(dāng)想編寫一個精確控制的定時程序時,用起匯編語言來還是比較方便的。因此想成為一個優(yōu)秀的單片機編程技術(shù)員,最好就是能懂得單片機C語言和匯編語言的混合編程。

參考文獻:

[1]藍點方舟科技網(wǎng). . 8051系列單片機BASIC語言開發(fā)環(huán)境簡介[Z].

[2]/. PL/M-51高級語言特點[Z].

[3]王杰潔,耿英杰. 單片機C語言和匯編語言的簡單比較[Z].

第5篇

【關(guān)鍵詞】項目化教學(xué);電子仿真軟件MULTISIM10;單片機仿真軟件PROTEUS;單片機匯編語言和C語言源程序編輯編譯軟件KEIL;單片機匯編語言和C語言

電子教學(xué)采用項目化管理的核心內(nèi)容是:電子教學(xué)采用課題化,以課題項目為單位采用項目化管理;一條龍實現(xiàn)從原理圖繪制,仿真到PCB印刷電路板的制作;從電子電路的搭建到PCB板的焊接調(diào)試;

下面以節(jié)日彩燈制作為例講解:

課題名稱:制作即日彩燈。

項目要求:用彩色發(fā)光二極管設(shè)計制作節(jié)日彩燈;要求節(jié)日彩燈能起到一定的宣傳效果,具備一定的功能;比如流水燈;逐次點亮燈;閃爍燈等。

課題項目的實現(xiàn):用電子仿真軟件MULTISIM10設(shè)計制作節(jié)日彩燈并實現(xiàn)電子仿真。

儀器設(shè)備:555和電阻電容組成多諧振蕩器;CD4017為十個二進制計數(shù)器組成的串行十進制移位計數(shù)器。

用555做振蕩器產(chǎn)生振蕩脈沖輸入到CD4017的時鐘脈沖輸入端;由于CD4017是帶進位位的十進制串行移位輸出計數(shù)器;方波(高電平)會依時間順序依次從O0~O9移位輸出,方波到來時發(fā)光二極管LED正向偏置導(dǎo)通發(fā)光。毎十個方波Q5~9上產(chǎn)生一個進位方波。(即接在Q5~9上的紅綠黃發(fā)光LED亮一次。同時蜂鳴器響一聲。用虛擬示波器測試電路各點波形;圖1是功能為流水燈節(jié)日彩燈的仿真圖。

選擇好節(jié)日彩燈的電子元器件,在制作好的PCB板上安裝并焊接調(diào)試節(jié)日彩燈產(chǎn)品。用雙綜示波器測試555和CD4017的輸入、輸出波形、調(diào)試,使其達到設(shè)計要求。

采用多樣化的教學(xué)手段完成同一個課題;讓我們做的更精彩些:

用單片機仿真軟件設(shè)計制作的節(jié)日彩燈電路原理圖如圖3:

圖4為PROTEUS制作的即日彩燈單片機仿真圖:

80C51單片機;CRYSTAL為頻率為12MHZ的晶振;CAP為電容器;LED-BARGRAPH-RED為紅色發(fā)光條;RX8為二乘十的電阻排;

用匯編語言按照項目設(shè)計要求編制節(jié)日彩燈的匯編語言源程序;并用KEIL編輯編譯程序產(chǎn)生十六進制代碼文件(后綴為.HEX文件);雙擊80C51單片機把。HEX代碼灌入單片機。

功能說明:單片機P1端口接8只LED,每次點亮兩只,先從右邊向左邊移動點亮;再從左邊向右邊移動點亮,然后閃爍兩次,重復(fù)循環(huán)。

在ISIS界面下運行PROTEUS單片機仿真文件。觀察功能為雙燈左移然后右移然后閃爍兩次并循環(huán)的節(jié)日彩燈。

圖3為用匯編語言編制的節(jié)日彩燈源程序:

用C語言設(shè)計編輯功能為:逐次點亮節(jié)日彩燈的C語言源程序:

圖5為用C語言設(shè)計編輯功能為:逐次點亮節(jié)日彩燈的C語言源程序:

用KEIL編輯編譯C語言源程序;并生成十六進制代碼(*.HEX)文件;雙擊80C51單片機,把*。HEX代碼灌入單片機。運行觀察LED閃亮順序,判斷是否符合設(shè)計要求:逐次點亮。

在單片機試驗臺上搭建節(jié)日彩燈電路。用擦寫器和下載線把。HEX代碼下載到89S51單片機中。安裝并調(diào)試單片機節(jié)日彩燈電路,觀察LED閃亮情況直到符合課題項目設(shè)計要求。

第6篇

關(guān)鍵詞:單片機教學(xué)改革;機器人;項目式教學(xué)

中圖分類號:G642.0 文獻標(biāo)志碼:A 文章編號:1674-9324(2014)29-0051-02

一、引言

《單片機技術(shù)》是高等學(xué)校電子通信專業(yè)的一門重要的專業(yè)課。單片機具有結(jié)構(gòu)簡單、抗干擾能力強、功耗低等特點,被廣泛應(yīng)用于數(shù)字控制、智能傳感器、遙感技術(shù)等領(lǐng)域,是現(xiàn)代科技不可缺少的關(guān)鍵技術(shù)。在家電、通信行業(yè)中,尤其需要單片機方面的人才,調(diào)查表明,掌握單片機技術(shù)的高等學(xué)校學(xué)生在畢業(yè)后,不管是在就業(yè)率方面還是滿意度方面都是相當(dāng)高的。

然而,要學(xué)習(xí)好單片機這一技術(shù)需要較好的模電與數(shù)電的基礎(chǔ),還需要一定的編程能力,傳統(tǒng)的教學(xué)模式在組織內(nèi)容上讓學(xué)生感覺到非常難學(xué),學(xué)生通常是一開始抱著極高的興趣,但覺得無從入手,到后來漸漸地失去興趣這樣的惡性循環(huán)。因此,單片機課程的改革成為各個高校重點改革的課程之一。

二、單片機技術(shù)教學(xué)存在的問題

目前幾乎每個工科院校都設(shè)有《單片機技術(shù)》課程,按照用傳統(tǒng)的教學(xué)模式是:先基礎(chǔ)后應(yīng)用。從單片機硬件結(jié)構(gòu)開始到匯編指令系統(tǒng),接著是系統(tǒng)擴展與接口技術(shù),還有的高校會增加課程設(shè)計。學(xué)生一開始接觸單片機就從最抽象、最枯燥的硬件結(jié)構(gòu)與匯編語言,如果學(xué)生的基礎(chǔ)與理解能力不夠的話,學(xué)習(xí)起來就會非常吃力,這也是很多學(xué)生對《單片機技術(shù)》這門課程不感興趣的原因之一。

另外,在傳統(tǒng)的教學(xué)中,理論教學(xué)部分遠遠多于實踐教學(xué),而實踐部分往往也是教材規(guī)定的幾個實驗項目,學(xué)生照著接線輸入程序就完成了,學(xué)生完成的更多是一種驗證性的工作,導(dǎo)致學(xué)生缺少主觀能動性,在學(xué)習(xí)的積極性與自主創(chuàng)新上大打折扣。

以上單片機課程在教學(xué)過程中存在的問題必須得以改革才能更好地讓我們的學(xué)生學(xué)習(xí)和掌握單片機技術(shù)。

三、基于機器人工程對象的單片機教學(xué)改革

1.利用輪式機器人平臺項目式教學(xué)。機器人的控制核心是單片機,控制對象直觀,也極具趣味性,因此很適合作為單片機的學(xué)習(xí)載體。在各種機器人中,輪式機器人結(jié)構(gòu)簡單清晰,控制難度不高,可搭載多種傳感器實現(xiàn)多種智能控制,擴展性很強,充滿了趣味性,非常適合單片機初學(xué)者學(xué)習(xí)使用。

輪式機器人可根據(jù)控制輪子的數(shù)量分為四輪、六輪等輪式機器人,輪子數(shù)量直接關(guān)系到機器人的復(fù)雜程度,比如六輪的玉兔月球探測車相當(dāng)復(fù)雜。作為學(xué)生學(xué)習(xí)的輪式機器人,力求結(jié)構(gòu)簡單、容易理解,因此底盤可采用三輪結(jié)構(gòu),其中兩輪作為驅(qū)動輪和一個隨動輪作為支撐。驅(qū)動電機采用舵機控制,控制方式是脈沖寬度控制正轉(zhuǎn)、反轉(zhuǎn)與靜止,主控制板采用PCBA形式組裝好單片機、通信模塊燒錄接口等,擴展使用排針與面包板外接傳感器或擴展模塊。

輪式機器人的硬件上,除了底盤舵機的接線已經(jīng)固定外,各種類型的傳感器需要學(xué)生使用面包板,自己進行設(shè)計安裝,也可以通過擴展模塊進行傳感器的拓展。擴展內(nèi)容包括有簡單的開關(guān)信號、光電管的使用到復(fù)雜的顏色傳感器等,改變了傳統(tǒng)教學(xué)的純理論學(xué)習(xí)+實驗的模式,學(xué)生在動手調(diào)試程序與硬件的過程中,即做即得,這樣不僅加強了學(xué)生的動手能力,也大大提高了學(xué)生的學(xué)習(xí)積極性。

2.C語言代替匯編語言。傳統(tǒng)的單片機教學(xué)通常以匯編語言進行講解,使用匯編語言的優(yōu)點是結(jié)合硬件,使得學(xué)習(xí)者能徹底地掌握單片機的運行原理,打好良好的基礎(chǔ)。正因為匯編語言有這樣的顯著優(yōu)點,現(xiàn)在仍有不少高校以匯編語言進行單片機教學(xué),但是匯編語言抽象難懂,要求學(xué)習(xí)者有較強的硬件基礎(chǔ)與邏輯思維,不少初學(xué)者在接觸單片機就遇到如此難懂的匯編語言使得他們的學(xué)習(xí)積極性大打折扣,從而影響后續(xù)的學(xué)習(xí)。

C語言是高級編程語言,是最普遍的編程語言之一,它具有良好的移植性,可以在不同平臺上實現(xiàn)移植,例如51單片機可以使用Keil C進行單片機的程序編寫,C語言的程序易讀易懂,極具結(jié)構(gòu)化,在程序的編寫上比匯編語言要簡易很多。目前,絕大部分的電子工程師在使用單片機時都采用C語言編程,而且單片機廠家也提倡工程師使用C語言編程,也提供了大量的源代碼,使得開發(fā)速度大大地提高。正因為如此,不少高校開始采用C語言進行單片機教學(xué)。

由于C語言移植性非常強,即平臺的依賴性不高,使得程序員不需要十分熟悉單片機的硬件結(jié)構(gòu)就能進行程序的編寫,但作為學(xué)生的單片機學(xué)習(xí),對硬件結(jié)構(gòu)的掌握是十分必要的,因此,通過輪式機器人平臺的使用,加強了對單片機結(jié)構(gòu)的認(rèn)識,可以彌補學(xué)生在硬件結(jié)構(gòu)學(xué)習(xí)上的不足。

在輪式機器人的使用過程中,除了與匯編語言相近的I/O使用、延時、條件判斷、循環(huán)、中斷等內(nèi)容,還有C語言的函數(shù)、數(shù)組、指針等內(nèi)容,通過機器人的控制結(jié)合單片機CPU的結(jié)構(gòu)特點進行學(xué)習(xí)與設(shè)計。例如:使用數(shù)組對輪式機器人的行走進行控制,在數(shù)組數(shù)據(jù)類型的選擇、數(shù)組成員的多少等,都與單片機的RAM結(jié)構(gòu)有直接的關(guān)系,學(xué)生通過修改這些參數(shù)查看程序狀態(tài)來認(rèn)識單片機的內(nèi)部結(jié)構(gòu)。

相比匯編語言,C語言在編程效率上有明顯的優(yōu)勢,可以快速的完成程序的編寫,在教學(xué)實踐中,不少學(xué)生積極發(fā)揮主觀能動性,自己編寫函數(shù)、修改例程、完成不同的任務(wù),而在以往的匯編語言的教學(xué)中,只有少部分學(xué)生能完成類似的任務(wù),由此可見單片機C語言是現(xiàn)代單片機教學(xué)改革的一個重要部分。

3.過程考核。在傳統(tǒng)的單片機教學(xué)上基本都采用試卷考核的方式,或者采用課程設(shè)計的方式,在考核方式上比較單一、片面,也很難對學(xué)生階段性的學(xué)習(xí)進行總結(jié)評價,考核方式務(wù)必進行改革。

在輪式機器人的單片機教學(xué)中采用過程考核與期末考核相結(jié)合的方式,過程考核中以具體項目的完成情況進行考核。考核過程包括:(1)學(xué)生自評,根據(jù)設(shè)計的項目,學(xué)生對自己的表現(xiàn)做一個總結(jié);(2)小組互評,學(xué)生以評委的角度對其他學(xué)生評分,可以使得學(xué)生培養(yǎng)團隊合作精神并且可以取長補短;(3)教師評價,教師進行總結(jié)評價,對個別表現(xiàn)突出,有創(chuàng)新性設(shè)計的同學(xué)進行點評,帶動其他同學(xué)的積極性。

期末考核從課程中的項目選取具有代表性的任務(wù)作為考核內(nèi)容,采用抽簽的方式,學(xué)生抽到隨機的任務(wù)后,選取相應(yīng)的傳感器在面包板搭建電路,編寫程序,最終實現(xiàn)任務(wù)的要求,完成工程文件(畫電路圖、元件清單、程序流程圖)。教師對學(xué)生考核的過程打分,實現(xiàn)考核。

在教學(xué)過程中采用過程考核與期末考核結(jié)合的方式,使得學(xué)生的積極性大大地提高了,無論從學(xué)生的理論和實踐上都能取得良好的效果。

四、總結(jié)

傳統(tǒng)的單片機教學(xué)模式存在不少缺點,本文使用輪式機器人與C語言作為單片機的學(xué)習(xí)平臺,采用項目式教學(xué),考核上采取過程考核與期末考核相結(jié)合的方式對單片機課程進行改革,在進行了一年的單片機教學(xué)改革后,明顯發(fā)現(xiàn)了學(xué)生在學(xué)習(xí)積極性上得以明顯的改善,學(xué)生的創(chuàng)新能力與實踐動手能力都得以提高。實踐證明,基于機器人工程對象的單片機教學(xué)模式是單片機教學(xué)改革的一種嘗試,而且有一定的效果。

參考文獻:

[1]宋錦.單片機教學(xué)中培養(yǎng)學(xué)生創(chuàng)新能力探討[J].中國成人教育,2006,(05).

[2]葉愛芬,王旺迪.論工學(xué)結(jié)合模式下的單片機教學(xué)改革[J].科技信息,2011,(11).

第7篇

關(guān)鍵詞:單片機 應(yīng)用原理 開發(fā)技巧 作用

二十一世紀(jì),微電子、IC集成電路行業(yè)發(fā)展迅速,其中單片機行業(yè)的發(fā)展最引人注目。單片機以其高性價比和靈活性已成為當(dāng)今電子信息領(lǐng)域應(yīng)用最廣泛的技術(shù)之一。單片機是最普及、最實用的嵌入式微控制器,單片機應(yīng)用技術(shù)也可以說是智能化電子產(chǎn)品設(shè)計的核心技術(shù)。單片機的應(yīng)用技術(shù)夜是現(xiàn)代電子設(shè)計的核心技術(shù),學(xué)習(xí)單片機知識就是要將單片機應(yīng)用到電子產(chǎn)品中,以單片機為控制核心實現(xiàn)電子系統(tǒng)所需實現(xiàn)的功能。目前單片機滲透到我們生活的各個領(lǐng)域,導(dǎo)彈的導(dǎo)航裝置,飛機上各種儀表的控制,的網(wǎng)絡(luò)通訊與數(shù)據(jù)傳輸,廣泛使用的各種智能IC卡等等,這些都離不開單片機。可見單片機的應(yīng)用與開發(fā)技巧的掌握對于我們來說至關(guān)重要。

1、單片機的特點應(yīng)用以及應(yīng)用技術(shù)的發(fā)展

單片機的特點主要有:高集成度,體積小,高可靠性;控制功能強;低電壓,低功耗,便于生產(chǎn)便攜式產(chǎn)品;易擴展;優(yōu)異的性能價格比。目前,單片機的應(yīng)用領(lǐng)域主要包括:辦公自動化設(shè)備;單片機在機電一體化中的應(yīng)用;在實時過程控制中的應(yīng)用;單片機在日常生活及家用電器領(lǐng)域的應(yīng)用;在各類儀器儀表中引入單片機,使儀器儀表智能化,提高測試的自動化程度和精度,簡化儀器儀表的硬件結(jié)構(gòu),提高其性能價格比;在和領(lǐng)域中的應(yīng)用;商業(yè)設(shè)備;單片機在醫(yī)用設(shè)備領(lǐng)域中的應(yīng)用;汽車產(chǎn)品;航空航天系統(tǒng)和國防軍事、尖端武器等領(lǐng)域,單片機的應(yīng)用更是不言而喻。

一個單片機系統(tǒng)的可靠性是其自身軟硬件與其所處工作環(huán)境綜合作用的結(jié)果。對于系統(tǒng)自身而言,能不能在保證系統(tǒng)各項功能實現(xiàn)的同時,對系統(tǒng)自身運行過程中出現(xiàn)的各種干擾信號及直接來自于系統(tǒng)外部的干擾信號進行有效的抑制,是決定系統(tǒng)可靠性的關(guān)鍵。有缺陷的系統(tǒng)往往只從邏輯上去保證系統(tǒng)功能的實現(xiàn),而對于系統(tǒng)運行過程中可能出現(xiàn)的潛在的問題考慮欠缺,采取的措施不足,在干擾信號真正襲來的時候,系統(tǒng)就可能會陷入困境。

2、單片機開發(fā)中的幾個基本技巧

在單片機應(yīng)用開發(fā)中,代碼的使用效率問題、單片機抗干擾性和可靠性等問題仍困擾著。在傳統(tǒng)的單片機中,電源及地線是在集成電路外殼的對稱引腳上,一般是在左上、右下或右上、左下的兩對對稱點上。這樣,就使電源噪聲穿過整塊芯片,對單片機的內(nèi)部電路造成干擾。現(xiàn)在,很多單片機都把地和電源引腳安排在兩條相鄰的引腳上。這樣,不僅降低了穿過整個芯片的電流,而且在印制電路板上容易布置去耦電容,從而降低系統(tǒng)的噪聲。在應(yīng)用過程中對于如何減少程序的bug,應(yīng)該先考慮系統(tǒng)運行中應(yīng)考慮的超范圍參數(shù),包括參數(shù)中的激勵參數(shù)、采集處理中的運行參數(shù)和處理結(jié)束的結(jié)果參數(shù)等;還有在系統(tǒng)中的電路、器件、功能單元的資源,如記憶體容量、存儲單元長度、堆疊深度的資源參數(shù),應(yīng)用參數(shù):這些應(yīng)用參數(shù)以及常表現(xiàn)為一些單片機、功能單元的應(yīng)用條件的應(yīng)用參數(shù)和指系統(tǒng)運行中的有序變化的過程參數(shù),對于參數(shù)的正確處理,能更好、合理的使用單片機的功能,帶來有利的成效。其次,用C語言進行單片機程序設(shè)計是單片機開發(fā)與應(yīng)用的必然趨勢。如果使用C編程時,要達到最高的效率,最好熟悉所使用的C編譯器。先試驗一下每條C語言編譯以后對應(yīng)的匯編語言的語句行數(shù),這樣就可以很明確的知道效率。對于復(fù)雜而開發(fā)時間緊的項目時,可以采用C語言,在運用過程別要注意C編譯系統(tǒng)所能支持的數(shù)據(jù)類型和算法。雖然C語言是最普遍的一種高級語言,但由于不同的MCU廠家其C語言編譯系統(tǒng)是有所差別的,特別是在一些特殊功能模塊的操作上。所以如果對這些特性不了解,那么調(diào)試起來問題就會很多,反而導(dǎo)致執(zhí)行效率低于匯編語言。

在單片機的應(yīng)用過程中實現(xiàn)其抗干擾性能也是必要的技巧之一。單片機干擾最常見的現(xiàn)象就是復(fù)位;至于程序跑飛,其實也可以用軟件陷阱和看門狗將程序拉回到復(fù)位狀態(tài);所以單片機軟件抗干擾最重要的是處理好復(fù)位狀態(tài)。一般來說防止干擾最有效的方法是去除干擾源、隔斷干擾路徑,但往往很難做到,所以只能看單片機抗干擾能力夠不夠強了。因此,在提高硬件系統(tǒng)抗干擾能力的同時,軟件抗干擾以其設(shè)計靈活、節(jié)省硬件資源、可靠性好越來越受到重視。另外你也可以自己在RAM中埋一些標(biāo)志。在每次程序復(fù)位時,通過判斷這些標(biāo)志,可以判斷出不同的復(fù)位原因等。

另外,當(dāng)一個單片機系統(tǒng)設(shè)計完成,對于不同的單片機系統(tǒng)產(chǎn)品會有不同的測試項目和方法,但是有一些是必須測試的:測試單片機軟件功能的完善性;上電、掉電測試;老化測試;ESD和EFT等測試。我們還可以模擬人為使用中,可能發(fā)生的破壞情況,由此測試抗靜電的能力。用大功率電鉆靠近單片機系統(tǒng)工作,由此測試抗電磁干擾能力等。

3、結(jié)語

必須由模擬電路或數(shù)字電路實現(xiàn)的大部分功能,現(xiàn)在可以利用單片機通過軟件方法來實現(xiàn),這種軟件代替硬件的控制技術(shù)也稱為微控制技術(shù),是傳統(tǒng)控制技術(shù)的一次革命。單片機已成為計算機發(fā)展和應(yīng)用的一個重要方面,單片機應(yīng)用的重要意義還在于,它從根本上改變了傳統(tǒng)的控制系統(tǒng)設(shè)計思想和設(shè)計方法,發(fā)揮它更加廣闊的用途。

第8篇

摘要:本文以AT89C51單片機為核心,設(shè)計一個基于單片機的數(shù)據(jù)采集系統(tǒng)。系統(tǒng)可以采集16路模擬量,精度為12位,16路開關(guān)量和2路脈沖量,并將采集到的數(shù)據(jù)每隔一分鐘通過串口發(fā)送到PC機。關(guān)鍵字:AT89C51;數(shù)據(jù)采集;串口通訊作者簡介:嚴(yán)懷龍(1972-),江蘇省靖江人,內(nèi)蒙古烏海市永紅機電成套設(shè)備有限責(zé)任公司電子工程師。1概述在工業(yè)控制系統(tǒng)中,除了控制單元和執(zhí)行單元外,還必須有反饋環(huán)節(jié)。在反饋環(huán)節(jié)中,最重要的就是對數(shù)據(jù)的采集。一般的工業(yè)控制中,數(shù)據(jù)有很多種形式,最常見的有電流電壓的模擬量、以二進制形式輸入的開關(guān)量以及以脈沖形式輸入的脈沖信號。本文設(shè)計一數(shù)據(jù)采集系統(tǒng)系統(tǒng),系統(tǒng)以AT89C51單片機為核心,AT89C51是一個低電壓,高性能CMOS8位單片機,片內(nèi)含4kbytes的可反復(fù)擦寫的Flash只讀程序存儲器和128bytes的隨機存取數(shù)據(jù)存儲器(RAM),器件采用ATMEL公司的高密度、非易失性存儲技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng),片內(nèi)置通用8位中央處理器和Flash存儲單元。AT89C51是一個低功耗高性能單片機,40個引腳,32個外部雙向輸入/輸出(I/O)端口,同時內(nèi)含2個外中斷口,2個16位可編程定時計數(shù)器,1個全雙工串行通信口[1],AT89C51可以按照常規(guī)方法進行編程,也可以在線編程,這給開發(fā)帶來方便。如圖1所示為設(shè)計的系統(tǒng)原理框圖。系統(tǒng)選擇一個串行的A/D轉(zhuǎn)換芯片,用模擬開關(guān)作擴展,兩個模擬開關(guān)即可擴展成16路的模擬量輸入。開關(guān)量的采集可以直接用單片機的I/O,用兩個并口即可完成16路的開關(guān)量采集。如圖所示,AT89C51單片機還有兩個外部中斷接口,即可用來測量脈沖量的輸入,采集其輸入頻率。單片機可以通過串口與上位PC機進行通訊,把采集到的數(shù)據(jù)發(fā)送到上位機上。圖1系統(tǒng)原理圖2硬件電路設(shè)計系統(tǒng)硬件可以分成四個部分,分別為模擬量采集電路、開關(guān)量采集電路、脈沖量采集電路以及單片機與PC的串口通訊電路。下面分別作簡單的介紹。2.1模擬量采集電路模擬量的采集要用到A/D轉(zhuǎn)換芯片,而且精度為12位,這里選擇MAX1241 A/D轉(zhuǎn)換器。MAX1241是一種低功耗、低電壓的12位逐次逼近型ADC,最大非線性誤差小于1LSB,轉(zhuǎn)換時間9ms,內(nèi)置快速采樣/保持電路。MAX1241采用三線式串行接口,與單片機的接線簡單,如圖2所示[3]。圖中兩個電容是去藕電容,用以對電源進行濾波。Vi是采集電壓的輸入端,Vref是A/D轉(zhuǎn)換器的參考電壓。一般情況下可以接單片機的電源。圖2 MAX1241與單片機的接線圖系統(tǒng)要求對16路的模擬量進行采集,因此,只有一個A/D轉(zhuǎn)換器就不夠的,但如果用多個A/D轉(zhuǎn)換器一方面會造成資源浪費,成本加大,另一方面單片機的I/O也不夠,因此這里用兩個8路模擬開關(guān)進行擴展,擴展成16路。如圖1的原理圖所示,系統(tǒng)選用兩個CD4051模擬開關(guān)[3],并用單片機的四個I/O口控制兩個模擬開關(guān)的通道選擇端,在采集過程中,選擇不同的通道進行數(shù)據(jù)采集。2.2開關(guān)量采集電路對開關(guān)量的采集電路相對比較簡單,因為開關(guān)量的狀態(tài)只有0和1兩種,所以只要用兩個單片機的并口就可以了,這里用的是P0口和P2口。但是有一點需要說明的是:由于AT89C51單片機的P0口內(nèi)部沒有上拉電阻,所以在電路中必須加入外部上拉電阻,阻值可以是4.7K~10K。而P2口內(nèi)部自帶上拉電阻,所以不需外加上拉電阻。采集輸入電路如圖1系統(tǒng)原理圖所示。2.3脈沖量采集電路脈沖量信號是周期變化的信號,AT89C51單片機有兩個外部中斷INT0和INT1接口,利用這兩個外部中斷輸入接口,可以對脈沖量信號進行測量,脈沖信號可以直接送到單片機的外部中斷接口,也可以進行適當(dāng)?shù)恼魏笤偎偷絾纹瑱C的外部中斷接口,如加入帶施密特功能的反向器74LS14。也可以用比較器進行整形,這樣使單片機的采集測量更加可靠,更加精確。2.4通訊電路該系統(tǒng)沒有設(shè)計數(shù)據(jù)的顯示系統(tǒng),所以把采集到的數(shù)據(jù)發(fā)送到上位PC機上,與PC進行通訊。因為單片機與PC機的電平是不一樣的,因此兩者要進行數(shù)據(jù)交換,必須采用相應(yīng)的電平轉(zhuǎn)換電路。用得最多的就是RS232通訊方式,采用MAX232芯片即可完成。簡單的電路如圖3所示。圖3 通訊電路3軟件設(shè)計根據(jù)設(shè)計要求,按照實現(xiàn)功能的分類,軟件部分主要完成四項任務(wù):系統(tǒng)初始化、數(shù)據(jù)采集、數(shù)據(jù)處理、向PC機發(fā)送數(shù)據(jù)。在數(shù)據(jù)處理中,需要進行大量浮點數(shù)的乘除法和正弦、余弦運算,因此數(shù)據(jù)處理部分采用C語言編寫,在Keil環(huán)境中模塊化編程,充分利用C語言強大的計算能力。在數(shù)據(jù)采集部分中,MAX1241對時序要求比較嚴(yán)格,采用匯編語言實現(xiàn),所有功能模塊均為獨立的C文件或ASM文件。而實現(xiàn)C語言和匯編語言的混合編程[2]是軟件設(shè)計中的難點和關(guān)鍵之一。在設(shè)計中,匯編語言采用單獨的文件,通過寄存器傳遞函數(shù)參數(shù)。程序流程圖如圖4所示。這里給出MAX1214的控制程序,是用匯編語言編寫,控制子程序完成一次A/D轉(zhuǎn)換和輸入,輸入數(shù)據(jù)存放于R0,R1寄存器。;寄存器及端口定義:CS:BITP1.0;片選信號位DOUT:BITP1.2

;串行數(shù)據(jù)輸入位SCLK:BITP1.1;驅(qū)動時鐘位DATA_BH:EQUR0;高字節(jié)數(shù)據(jù)存儲單元DATA_BL:EQUR1;低字節(jié)數(shù)據(jù)存儲單元CONT_H:EQUR0;高位取數(shù)計數(shù)器CONT_L:EQUR1;低8位取數(shù)計數(shù)器SADC_R:XRLA,A;清AMOVCONT_H,#04H;高8位計數(shù)MOVCONT_L,#08H;低8位計數(shù)CLRSCLK;SCLK置“0”CLRCS;選中1241,啟動轉(zhuǎn)換SADCEND:JNBDOUT,SADC_END;檢測A/D轉(zhuǎn)換結(jié)束READ_H:SETBSCLK;CLRSCLK;產(chǎn)生一個驅(qū)動時鐘MOVC,DOUT;輸入一位數(shù)據(jù)RLCA;數(shù)據(jù)移位至ACC.0DJNZCONT_H,READ_H;高4位輸入結(jié)束判別MOVDATA_BH,A;高4位數(shù)據(jù)送寄存器READ_L:SETBSCLKCLRSCLK;產(chǎn)生一個驅(qū)動時鐘MOVC,DOUT;輸入一位數(shù)據(jù)RLCA;數(shù)據(jù)移位置ACC.0DJNZCONT_L,READ_L;低8位輸入結(jié)束判別MOVDATA_BL,A;低8位數(shù)據(jù)送寄存器SETBSCLKCLRSCLK;清DOUT輸出SETBCS;撤消片選RET

圖4 軟件程序流程圖4結(jié)束語該系統(tǒng)以AT89C51單片機為核心,可以對16路模擬量、16路數(shù)字開 關(guān)量和兩路脈沖量進行采集,模擬量采集精度達到12位,在實際應(yīng)用中,可以對電壓信號進行直接采集,如果要對傳感器的標(biāo)準(zhǔn)電流量進行采集時,還需加入采樣電阻,把電流轉(zhuǎn)換成電壓后進行采集。對采集的脈沖量的頻率取決于單片機的時鐘頻率,一般不能高于單片機的運行時鐘,如單片機用12MHz的晶振,則采集的脈沖頻率只能低于12MHz。本系統(tǒng)在實際應(yīng)用中已調(diào)試通過,采集的數(shù)據(jù)精度高,速度快。參考文獻[1]孫涵芳.單片機原理及應(yīng)用(修訂版)北.京航空航天大學(xué)出版社,1996年.[2]馬忠梅.單片的C語言應(yīng)用程序設(shè)計(第三版).北京航空航天大學(xué)出版社,20__年.[3]于海生.微型計算機控制技術(shù).北京:清華大學(xué)出版社,1999年.

第9篇

在單片機課程教學(xué)過程中,學(xué)生普遍反應(yīng)不容易入門,針對各個教學(xué)難點很多一線教師采用了多種教學(xué)方法幫助學(xué)生理解抽象的問題,但是仍然沒有改變該門課程不易入門的特點,為了解決這一問題,本文結(jié)合目前前沿技術(shù)給出了一種采用圖形化語言編譯平臺降低單片機課程入門難度的課改方向。

關(guān)鍵詞:

單片機;流碼;課程改革;圖形化語言

0引言

“單片機技術(shù)與應(yīng)用”這門課程目前是電子信息、電氣類專業(yè)學(xué)生必修的課程之一,通過該課程的學(xué)習(xí),學(xué)生能夠理解智能儀器的原理及應(yīng)用方法、了解自動控制設(shè)備的控制方法,以及能夠完成一些簡單電子產(chǎn)品的開發(fā)設(shè)計工作。單片機可以看做屬于計算機硬件范疇的課程,該類課程比較抽象,學(xué)生不易入門,是學(xué)生比較難以掌握的課程。隨著技術(shù)的發(fā)展,目前市場上使用的單片機內(nèi)核種類很多,51、AVR、PIC、MSP430等都是比較常見的單片機類型,但是其中51內(nèi)核單片機一直是眾多高校或者職業(yè)院校教學(xué)一直采用的芯片類型。經(jīng)典51內(nèi)核單片機之所以被廣泛用于教學(xué)主要有以下幾方面原因:

(1)技術(shù)成熟,相關(guān)學(xué)習(xí)及應(yīng)用資料多。

51單片機相對于其他類型單片機起步較早,上世紀(jì)80年代就開始傳入我國進行研究應(yīng)用了。在30多年的教學(xué)、科研過程中積累了大量的學(xué)習(xí)和應(yīng)用材料,所以不論對于老師教學(xué)還是學(xué)生自學(xué)都有大量的參考學(xué)習(xí)資料,可以從書籍、網(wǎng)絡(luò)論壇、期刊論文數(shù)據(jù)庫等多途徑獲得。

(2)任課教師普遍熟悉51單片機的原理及應(yīng)用

很多任課教師自身在學(xué)習(xí)過程中接觸的就是51內(nèi)核單片機,所以教師教學(xué)過程中更傾向于選擇51單片機作為授課對象,就這樣一代傳一代,51單片機的應(yīng)用客戶群逐漸壯大起來。

(3)51單片機本身也在不斷完善發(fā)展

同為51內(nèi)核單片機,但是不同品牌廠商對自己的產(chǎn)品都在不同方面進行完善,宏晶科技有限公司的STC各系列單片機就是其中的代表,不論從運算速度、可靠性上還是片上資源上都不斷進行更新,另外在供電方面還有低功耗的類型。所以從技術(shù)應(yīng)用上,51單片機經(jīng)過多年的發(fā)展并沒有落后于其他MCU。

1單片機學(xué)習(xí)難點

在教學(xué)過程中發(fā)現(xiàn),不論是51還是其他內(nèi)核的單片機都存在入門難特點,這主要是由單片機硬件本身特性決定的。以51單片機為例,單片機學(xué)習(xí)的難點主要有這幾方面:

(1)硬件結(jié)構(gòu)理解比較抽象

(2)編程語言學(xué)習(xí)困難

很多學(xué)生在學(xué)習(xí)單片機硬件結(jié)構(gòu)時,對各部分結(jié)構(gòu)的理解停留在概念描述層面,不能很快轉(zhuǎn)變思維方式,對其功能,實際作用與實際工作和應(yīng)用聯(lián)系不起來。對于沒有編程基礎(chǔ)的同學(xué),不論是學(xué)習(xí)匯編語言還是C語言,在程序編寫上都需要有一個思維轉(zhuǎn)變適應(yīng)的過程,很多學(xué)生不適應(yīng),一直覺得單片機難學(xué)。

(3)知識點難理解

在單片機學(xué)習(xí)過程會涉及到很多新名詞和知識,例如中斷、定時計數(shù)器、串口等,這些功能的工作方式或者啟動流程也是學(xué)習(xí)過程中需要注意的難點。單片機課程教學(xué)可以看成以下三個部分:單片機及語言的選擇、教學(xué)實施過程、目標(biāo),如圖1所示。檢索很多文獻發(fā)現(xiàn),為了達成教學(xué)目標(biāo),教學(xué)中設(shè)計實施了各種教學(xué)方法、教學(xué)模式改革和創(chuàng)新,對學(xué)生學(xué)習(xí)應(yīng)該說有很大幫助,但沒有改變單片機學(xué)習(xí)困難和不易上手的本質(zhì)。

2高職學(xué)生學(xué)情分析

當(dāng)前高職生源存在以下幾個普遍問題:

(1)學(xué)生高考成績低,基礎(chǔ)不好;

大部分高職生的基礎(chǔ)就相對薄弱,有些甚至基本的高中物理電學(xué)基礎(chǔ)知識都不能很好掌握。

(2)自控性較差,習(xí)慣性不學(xué)習(xí)

高職生源部分學(xué)生自控能力差,上課經(jīng)常玩手機或者看小說等,從小沒有養(yǎng)成良好的學(xué)習(xí)習(xí)慣,所以在教學(xué)過程中教師采取各種教學(xué)方法吸引學(xué)生注意力,但對于一些純理論枯燥的較難知識點,教學(xué)效果還是不理想。

(3)對問題的理解能力相對較弱

高職學(xué)生與本科生相比,對問題的理解能力的平均水平相對弱,對較為抽象的問題學(xué)習(xí)起來也會相對吃力。

3新興開發(fā)平臺及語言降低單片機學(xué)習(xí)門檻

(1)Arduino平臺

Arduino是在AVR單片機基礎(chǔ)上開發(fā)的一款便捷靈活、方便上手的一款包括軟件和硬件的的開源電子原型平臺。硬件(各種型號的Arduino板)、軟件(ArduinoIDE)。后來隨著技術(shù)發(fā)展,以其他芯片為基礎(chǔ)的Arduino核心板也出現(xiàn)了,運算速度和硬件資源都相應(yīng)的得到了提高。軟件平臺ArduinoIDE是基于processingIDE開發(fā)。對于初學(xué)者來說,極易掌握,同時有著足夠的靈活性。Arduino語言基于wiring語言開發(fā),是對avr-gcc庫的二次封裝,不需要太多的單片機基礎(chǔ)、編程基礎(chǔ),學(xué)習(xí)起來相對于直接C語言或者匯編語言開發(fā)單片機應(yīng)用程序更為簡單,可以快速地進行產(chǎn)品開發(fā)。另外Arduino平臺在網(wǎng)絡(luò)上可以找到很多開源的軟件和硬件資源供初學(xué)者學(xué)習(xí)使用。

(2)圖形化語言開發(fā)平臺

圖形化語言開發(fā)平臺是近些年編程語言的一個發(fā)展方向。Arduino平臺也開發(fā)了相應(yīng)的圖形化程序開發(fā)環(huán)境,通過圖形化方式更直觀的表現(xiàn)出程序邏輯,直接避開了文本代碼方面的記憶,對于英語不好見英文就怕的學(xué)生來說這種圖形化程序更容易接受。最近幾年在圖形化編程環(huán)境領(lǐng)域出現(xiàn)了一個新平臺叫Flowcode,目前已經(jīng)更新到V6版本,該平臺支持PIC、AVR、ARM三種硬件芯片的程序編寫。這款平臺的編程語言也很有創(chuàng)意,類似于程序流程圖,簡稱“流碼”,同時還兼容C語言,對于已經(jīng)完善的C語言代碼可以直接嵌套到流碼程序中。此外該平臺還支持中文菜單,更容易被學(xué)生接受。由于流碼程序近似于程序流程圖,和其他圖形化語言相比,流碼對學(xué)生編程思維邏輯培養(yǎng)上更具優(yōu)勢。在該平臺中還集成了一些基礎(chǔ)功能的驅(qū)動宏,直接進行圖標(biāo)拖拽調(diào)用即可,不需要學(xué)生深入了解硬件結(jié)構(gòu)和具體寄存器工作原理及配置,這部分工作,F(xiàn)lowcode平臺已經(jīng)代勞。通過該平臺的學(xué)習(xí)可以讓學(xué)生更快更好理解單片機的用途,并能很快上手應(yīng)用。

4結(jié)語

職業(yè)教育教學(xué)應(yīng)該隨著行業(yè)技術(shù)的發(fā)展與時俱進,跟上技術(shù)前沿,這樣職業(yè)教育才更有意義,培養(yǎng)出的人才能更適應(yīng)社會需求,圖形化語言對于單片機技術(shù)人才培養(yǎng)上縮短了培訓(xùn)周期,這也意味著單片機行業(yè)程序開發(fā)人才的供給更快捷,可以為縮短企業(yè)產(chǎn)品研發(fā)周期和后備技術(shù)人才的供給周期,同時也是單片機技術(shù)與應(yīng)用課程授課內(nèi)容改革的一個重要方向。

參考文獻:

[1]張江城,胡橙.基于Arduino的高職高專單片機相關(guān)課程改革設(shè)計[J].中小企業(yè)管理與科技旬刊,2016(10).

[2]李華洲.基于Arduino的高職物聯(lián)網(wǎng)相關(guān)課程改革設(shè)計[J].大眾科技,2015(01).

第10篇

單片機是利用大規(guī)模集成電路技術(shù)把中央處理單元(Center Processing Unit,也即常稱的CPU)和RAM、ROM及其他I/O接口集成在一塊芯片上,構(gòu)成一個最小的計算機系統(tǒng),而現(xiàn)代的單片機則加上了中斷、定時及A/D等更復(fù)雜、更完善的電路,使得單片機的功能越來越強大,應(yīng)用更廣泛。因此單片機教學(xué)在電氣信息類相關(guān)專業(yè)中越來越重要,“單片機原理及應(yīng)用”課程必須理論結(jié)合實踐,才能取得較好的教學(xué)效果。根據(jù)本課程的特點,結(jié)合應(yīng)用型本科院校以培養(yǎng)應(yīng)用性人才的宗旨,課題組對該課程的教學(xué)內(nèi)容、教學(xué)模式和實踐訓(xùn)練三個方面進行了探索與研究。

1 單片機原理及應(yīng)用教學(xué)現(xiàn)狀

目前大多數(shù)高校的理論教學(xué)過程都是采用先基礎(chǔ)后應(yīng)用的模式,即單片機硬件結(jié)構(gòu)、指令系統(tǒng)、匯編語言設(shè)計、外部系統(tǒng)擴展、接口技術(shù)和應(yīng)用系統(tǒng)設(shè)計,這種方法雖然思路清晰,但是存在著過于機械性的弊端,缺乏生動、直觀的實物等輔助教學(xué)手段,這樣便使學(xué)生覺得學(xué)習(xí)單片機枯燥乏味,沒有現(xiàn)實意義,缺乏興趣,嚴(yán)重影響了教學(xué)效果。主要體現(xiàn)有以下兩個方面的問題。

(1)理論教學(xué)中主要講述51單片機的硬件結(jié)構(gòu)和相關(guān)組成部分的工作原理及外圍接口設(shè)計,軟件編程多是以匯編語言為主。匯編語言語句不直觀,為完成一個非常簡單的操作,匯編語言需要寫許多條命令,理解起來很有難度,很容易讓學(xué)生失去學(xué)習(xí)單片機的興趣。

(2)實驗教學(xué)中多以驗證性實驗為主,學(xué)生編程后進行編譯,將程序下載到單片機實驗箱上演示。實驗指導(dǎo)書上已經(jīng)寫好了連線方式和程序資料,學(xué)生很少獨立分析程序及其編寫代碼。大多數(shù)學(xué)生只追求實驗結(jié)果,對于整個硬件系統(tǒng)設(shè)計和軟件調(diào)試過程模糊。

2 單片機原理及應(yīng)用教學(xué)改革初探

針對單片機教學(xué)和實驗中存在的問題,以培養(yǎng)應(yīng)用型本科學(xué)生為目標(biāo),結(jié)合工程與應(yīng)用實際需求,從教學(xué)內(nèi)容、教學(xué)模式和實踐訓(xùn)練3個教學(xué)環(huán)節(jié)進行改革。

2.1 教學(xué)內(nèi)容的改革

在單片機原理及應(yīng)用課程第一次授課時,給學(xué)生展示單片機行業(yè)的發(fā)展情況、單片機產(chǎn)品以及單片機開發(fā)公司的招聘信息。讓學(xué)生真正體會到單片機技術(shù)的實用性,激發(fā)他們學(xué)習(xí)的興趣和求知欲。學(xué)生在看到企業(yè)招聘信息后,能夠明確本門課程的學(xué)習(xí)目標(biāo)。

隨著時間的推移和科學(xué)技術(shù)的進步,51單片機已經(jīng)有了很大的發(fā)展和變化,已經(jīng)派生出來很多51系列產(chǎn)品,其內(nèi)部資源也變得非常豐富,如看門狗、PWM、SPI、A/D等。因此,更新單片機教學(xué)內(nèi)容勢在必行。在教學(xué)中增加新產(chǎn)品、新技術(shù)的知識,使得學(xué)生能夠滿足企業(yè)人才的技術(shù)需求。如可以增加I2C總線、SPI總線、CAN總線等內(nèi)容。

為了讓學(xué)生與企業(yè)開發(fā)接軌,在講授完匯編語言程序設(shè)計之后,加入C51語言的相關(guān)知識。由于學(xué)生已經(jīng)在大一時期學(xué)習(xí)過C語言程序設(shè)計的課程,只需要在課堂上加以引導(dǎo),如:C51庫函數(shù)、C51的存儲結(jié)構(gòu)、C51擴展關(guān)鍵字等強調(diào)介紹。同時,在介紹過程中采用匯編語言與C51語言對照的方式講授,學(xué)生就能夠很快掌握單片機編程。

2.2 教學(xué)模式的改革

采用項目驅(qū)動教學(xué)法,先簡單后復(fù)雜,將各個知識點的學(xué)習(xí)融入到各個實際工程模塊中,讓學(xué)生在每一個項目中學(xué)會各個模塊的使用。如:單片機的并行接口技術(shù)可以通過舞臺燈光系統(tǒng)、國際交通燈、搶答器項目來介紹;定時器和中斷系統(tǒng)可以通過電子琴、音樂盒、萬年歷項目來介紹;串行通信接口可以通過GPRS通信來介紹;單片機與A/D、D/A轉(zhuǎn)換器接口可以通過農(nóng)業(yè)大棚溫濕度采集系統(tǒng),電子壓力秤來介紹。這種教學(xué)將“老師講,學(xué)生聽”的被動教學(xué)模式轉(zhuǎn)變?yōu)椤皩W(xué)生主動參與,教師指導(dǎo)”的主動教學(xué)模式。教師的教學(xué)和學(xué)生的學(xué)習(xí)都圍繞這些項目來完成,強調(diào)學(xué)生“學(xué)中做、做中學(xué)”的新型學(xué)習(xí)過程,極大地激發(fā)了學(xué)生的學(xué)習(xí)興趣,創(chuàng)新了教學(xué)模式。

2.3 實踐訓(xùn)練的改革

通過課內(nèi)實驗教學(xué)、課程設(shè)計、大學(xué)生電子設(shè)計競賽等多種渠道實現(xiàn)真正的創(chuàng)新型實踐教學(xué)。課堂上引入Proteus和keil軟件的使用,使學(xué)生在課堂上可以對相關(guān)的軟硬件有一個直觀的了解,課內(nèi)實驗要求學(xué)生將理論授課中的項目通過Proteus設(shè)計出仿真的電路圖、用keil軟件編寫實驗程序、最終能實際仿真到效果圖。

課程設(shè)計周期為2周,在課程設(shè)計中,學(xué)生選擇教師所給的題目,根據(jù)題目目的和要求查閱相關(guān)資料,學(xué)生從元器件選擇、電路設(shè)計、PCB板繪制、電路焊接、程序編寫到調(diào)試都需要獨立完成。對于學(xué)生在實驗中出現(xiàn)的問題教師給予指導(dǎo),在解決問題的過程中加深了學(xué)生對單片機應(yīng)用系統(tǒng)軟硬件設(shè)計的理解。

鼓勵學(xué)生參加大學(xué)生電子設(shè)計競賽、全國大學(xué)生“飛思卡爾”杯智能汽車競賽、“畢?杯”全國電子創(chuàng)新設(shè)計及物聯(lián)網(wǎng)應(yīng)用系統(tǒng)設(shè)計競賽等面向大學(xué)生的群眾性科技活動,提高學(xué)生創(chuàng)新能力、協(xié)作精神、理論聯(lián)系實際、動手能力和工程素質(zhì)的培養(yǎng)。

第11篇

關(guān)鍵詞:STC89C52;單片機;溫度測量

中圖分類號:TP319 文獻標(biāo)識碼:A 文章編號:16727800(2013)003010402

0 引言

溫度對于生活、科研、工業(yè)、醫(yī)藥等各個領(lǐng)域都是一個非常重要的參數(shù)。在工業(yè)生產(chǎn)中,溫度的控制直接影響到生產(chǎn)工藝、產(chǎn)品質(zhì)量。大量有關(guān)化學(xué)反應(yīng)的工藝過程也必需在適當(dāng)?shù)臏囟认虏拍苷_M行。醫(yī)藥食品的生產(chǎn)運輸、農(nóng)業(yè)生產(chǎn)和家禽畜牧也都需要對溫度進行嚴(yán)格檢測、控制和記錄。

早期的溫度記錄通常采用人工記錄的管理方法,由工作人員讀取溫度計溫度后手工記錄。現(xiàn)在雖然使用溫度記錄儀,但普通記錄儀體積龐大、精度低、功能不夠完善、穩(wěn)定性較差。

鑒于上述技術(shù)上的不足,研究了一種基于單片機的低功耗、微型化、可以連續(xù)記錄的溫度記錄儀。該溫度記錄儀提供PC機通信接口,使PC機軟件實現(xiàn)對溫度數(shù)據(jù)的存儲記錄、分析和處理。

1 系統(tǒng)總體設(shè)計

溫度記錄儀在硬件上主要由STC89C52單片機、DS18B20溫度傳感器、1602液晶、報警指示燈、存儲器構(gòu)成,系統(tǒng)原理如圖1所示。

1.1 系統(tǒng)硬件設(shè)計

本系統(tǒng)用STC89C52單片機作為控制核心,利用AT89C52單片機強大的功能和優(yōu)異的擴展性,液晶、報警燈和按鍵等少量電路構(gòu)建系統(tǒng)。

(1)STC89C52單片機。 STC89C52單片機是一種高性能、低電壓,帶8K字節(jié)閃爍可編程、可擦除、只讀存儲器的微處理器。STC單片機完全兼容AT89C51,無需用昂貴的軟件編輯器來燒寫程序,支持串口直接下載程序。

(2)測溫電路采用DALLAS公司的DS18B20。 DS18B20是美國DALLAS公司生產(chǎn)的數(shù)字溫度傳感器芯片,可直接輸出溫度值,通過簡單接口就能與單片機實現(xiàn)通信,結(jié)構(gòu)簡單、體積小、功耗小、抗干擾能力強、使用方便。采用3腳PR35封裝,其引腳排列及測溫原理如圖2所示。

(3)顯示電路。 本設(shè)計采用1602液晶屏顯示。液晶顯示器的主要原理是以電流刺激液晶分子產(chǎn)生點、線、面并配合背部燈管構(gòu)成畫面。1602通用型液晶一共可以顯示兩行,每行16個字符,具有體積小、功耗低、顯示操作簡單等特點。顯示電路結(jié)構(gòu)如圖3所示。

(4)MAX232串口電路。為了實現(xiàn)PC與單片機之間的串口通信,本設(shè)計采用MAX232串口電路。MAX232芯片把電腦串行口rs232信號電平(-10,+10V)轉(zhuǎn)換為單片機所用到的TTL電平(0,+5V)芯片,從MAX232芯片中的發(fā)送和接收中任意選擇一路作為接收,接線時一定要注意引腳的對應(yīng),否則會造成計算機串口和對應(yīng)元器件永久損壞。

1.2 系統(tǒng)軟件設(shè)計

(1)單片機程序由主程序和中斷子程序組成。主程序負(fù)責(zé)對來自上位機的命令進行解析并執(zhí)行讀溫度值、存儲溫度值、輸出控制等,如圖4所示。

終端服務(wù)程序只負(fù)責(zé)單片機和上位機之間數(shù)據(jù)的發(fā)送和接收。

(2)上位機軟件用VISUAL C++語言設(shè)計完成。其界面簡潔、功能全面。

軟件啟動后首先連接設(shè)備,然后讀取設(shè)備狀態(tài),下載數(shù)據(jù),并在數(shù)據(jù)下載完成后進行分析處理,繪制出溫度變化曲線。

2 結(jié)語

利用STC89C52單片機為核心的溫度記錄儀具有系統(tǒng)成本低廉、操作簡單、可擴展性強、易維護、開發(fā)周期短等優(yōu)點。實驗表明:該系統(tǒng)適合用于食品儲藏、醫(yī)藥工業(yè)、畜牧業(yè)等多個領(lǐng)域。

參考文獻:

\[1\] 潘琢金.C8051F高速SOC單片機原理及應(yīng)用\[M\].北京:北京航空航天大學(xué)出版社,2002.

\[2\] 蘇家健.單片機原理及應(yīng)用技術(shù)\[M\].北京:高等教育出版社,2004.

第12篇

關(guān)鍵詞:單片機;仿真軟件;實驗系統(tǒng)

DOI:10.16640/ki.37-1222/t.2017.08.178

1 引言

單片機應(yīng)用是大學(xué)本科及專科信息類、電子類、機電類專業(yè)的一門核心課程,該課程的前導(dǎo)課程主要有計算機文化基礎(chǔ)、C語言及應(yīng)用、電路與電子學(xué)、數(shù)字電路等課程,后續(xù)課程按照不同的專業(yè)劃分,主要有RFID技術(shù)與應(yīng)用、無線傳感器網(wǎng)絡(luò)技術(shù)和工業(yè)機器人等課程,由于該課程涉及到的知識點多且較難,因此,歷來該課程是工科類大學(xué)生的難點和重點課程之一。

2 傳統(tǒng)單片機教學(xué)的方式

傳統(tǒng)的單片機教學(xué)方式,一般是在專門的單片機實驗室里使用單片機實驗臺和電腦等設(shè)備教學(xué)[1]。學(xué)生首先進行單片機線路的連接,如單片機引腳和LED燈、七段數(shù)碼管、8*8點陣等互聯(lián),之后使用電腦進行軟件程序設(shè)計,在代碼編譯成功后通過數(shù)據(jù)線將編譯成功的目標(biāo)代碼hex文件寫入單片機中,最后系統(tǒng)上電,查看單片機系統(tǒng)的執(zhí)行效果。

但是傳統(tǒng)的教學(xué)方式,有很大的不足之處,主要有以下幾方面:

(1)一般的實驗室的面積有限,單片機實驗綜合系統(tǒng)(包括一臺電腦)只能放8到10套,而一個班的學(xué)生一般在35到50人,每個人操作的時間有限;

(2)由于單片機的前導(dǎo)課程之一是電路與電子學(xué),而在單片機實驗室連接線路時,需要使用該前導(dǎo)課程的相關(guān)知識,但有些學(xué)生的相關(guān)知識儲備不充分,因此連接線路易出錯;

(3)物理連線和目標(biāo)程序?qū)懭氲冗^程,占用了大量的課堂時間。

3 在單片機教學(xué)中使用仿真軟件

由于傳統(tǒng)的單片機教學(xué)方式存在諸多不足之處,因此我院信息工程學(xué)院、機電工程學(xué)院等開設(shè)單片機應(yīng)用課程的院系使用了新的教W方式,即使用仿真軟件來進行單片機應(yīng)用課程的教學(xué)。

在實際的教學(xué)中,對于硬件系統(tǒng),使用Proteus進行仿真,而對于軟件部分,則使用傳統(tǒng)的Keil軟件來進行編程[2]。

這樣則可以把該課程的教學(xué)從單片機實驗室移到計算機機房中進行,一個標(biāo)準(zhǔn)的計算機機房一般擁有計算機的數(shù)量都在50臺以上,因此一個班的學(xué)生可以每人一臺計算機進行操作,避免了單片機實驗室人多實驗臺少的情況[3]。同時,減少了連線時間,提高了學(xué)習(xí)的效率。

4 使用仿真軟件在單片機應(yīng)用課程中的教學(xué)實例

在實際的教學(xué)中,采用的教材是電子工業(yè)出版社出版的《單片機應(yīng)用技術(shù)(C語言版)》,該教材是任務(wù)驅(qū)動教學(xué)模式,每一個章節(jié)即為一個具體的任務(wù),授課時首先由老師講解演示具體的實驗,之后學(xué)生做實驗,然后講解相關(guān)的理論,這樣的教法,學(xué)生普遍反映比先理論后實驗的方式學(xué)習(xí)效率要高很多。

本文以一個LED燈亮的單片機實驗流程來闡述仿真軟件的應(yīng)用。

首先由教師演示LED燈亮的效果,引起學(xué)生的興趣,接著教師帶領(lǐng)學(xué)生一起使用Proteus軟件來進行硬件部分的仿真,涉及到的主要硬件有51單片機,LED燈,電源,電阻等元件。

接著對于通用的元件,如單片機,LED燈等,可以直接告訴學(xué)生在Proteus中這些元件的名稱,然后直接畫出,而對于電阻,以及后續(xù)章節(jié)的諸如七段數(shù)碼管,8*8點陣等元件,則可以讓學(xué)生自行到百度上搜索具體的名稱,一方面可以培養(yǎng)學(xué)生的搜索能力,另一方面可以增加學(xué)生學(xué)習(xí)的興趣。

在Proteus中的硬件電路畫好后,接著學(xué)生便可以在Keil中進行軟件系統(tǒng)的設(shè)計,該設(shè)計流程與傳統(tǒng)的單片機實驗流程相同。

在Keil中編寫好軟件后,學(xué)生進行編譯,產(chǎn)生最終的目標(biāo)代碼hex,然后在Proteus中將此hex文件導(dǎo)入到單片機中,最后點擊Proteus左下角的開始按鈕,即可觀看仿真效果。

5 結(jié)論

本文探討了使用仿真軟件在單片機教學(xué)中的應(yīng)用,近年來,我院在單片機的教學(xué)、比賽、學(xué)生的畢業(yè)設(shè)計等方面均使用仿真軟件來進行,提高了學(xué)生的學(xué)習(xí)效率和學(xué)習(xí)興趣,增強了學(xué)生在單片機系統(tǒng)的實際開發(fā)中的能力,因此,使用仿真軟件來進行單片機的教學(xué),是一個值得推廣的教學(xué)方式。

參考文獻:

[1]王靜霞.單片機應(yīng)用技術(shù)(C 語言版)[M].電子工業(yè)出版社,2009.