C語言在單片機(jī)開發(fā)中的應(yīng)用分析_第1頁
C語言在單片機(jī)開發(fā)中的應(yīng)用分析_第2頁
C語言在單片機(jī)開發(fā)中的應(yīng)用分析_第3頁
C語言在單片機(jī)開發(fā)中的應(yīng)用分析_第4頁
C語言在單片機(jī)開發(fā)中的應(yīng)用分析_第5頁
免費(fèi)預(yù)覽已結(jié)束,剩余1頁可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、    c語言在單片機(jī)開發(fā)中的應(yīng)用分析    嚴(yán)均 周煌輝摘要:本文簡要闡述了c語言在單片機(jī)程序開發(fā)中的應(yīng)用優(yōu)勢,就c語言在單片機(jī)開發(fā)中的具體步驟進(jìn)行了分析探討,包括開發(fā)工具的選擇與安裝、建立源文件、調(diào)試編譯程序以及生成hex文件,并在此基礎(chǔ)上提出了c語言在單片機(jī)開發(fā)應(yīng)用過程中應(yīng)注意的一些事項。關(guān)鍵詞:c語言;單片機(jī)開發(fā);c語言編程:tp393 :a:1009-3044(2020)03-0265-02c語言是一門面向過程的高級計算機(jī)編程語言,與匯編語言相較,利用c語言進(jìn)行編程工作量少,可讀性好,易于修改、移植和調(diào)試,且可以保證代碼質(zhì)量。由于c語言兼顧了高

2、級語言與匯編語言的優(yōu)點(diǎn),且不需要任何環(huán)境支持便可以運(yùn)行,普適性強(qiáng),因此在編程領(lǐng)域得到了廣泛的運(yùn)用。運(yùn)用c語言進(jìn)行單片機(jī)程序的開發(fā),開發(fā)者無須對單片機(jī)硬件結(jié)構(gòu)進(jìn)行全面了解也可以進(jìn)行高效編程,這為單片機(jī)程序開發(fā)提供了很大的便利,使得單片機(jī)程序開發(fā)變得簡單且可靠。本文基于單片機(jī)程序開發(fā)實(shí)踐,就c語言在單片機(jī)開發(fā)中的應(yīng)用進(jìn)行分析探討,以期能夠?yàn)閺V大單片機(jī)程序開發(fā)者提供一些參考與借鑒。1 c語言在單片機(jī)程序開發(fā)中的應(yīng)用優(yōu)勢單片機(jī)屬于一種微型計算機(jī),具有體積小、功耗小、功能強(qiáng)大等特點(diǎn),在工業(yè)控制領(lǐng)域及現(xiàn)代電子產(chǎn)品設(shè)計中具有廣泛的應(yīng)用。單片機(jī)除對體積、功耗等具有嚴(yán)格要求外,還依賴于應(yīng)用程序的開發(fā)。由于單片機(jī)

3、內(nèi)部存儲器的存儲空間較小且對運(yùn)行效率要求較高,因此,對于應(yīng)用程序開發(fā)來說,必須要考慮編譯代碼所占的空間大小問題及運(yùn)行效率問題。匯編語言屬于第二代編程語言,是面向機(jī)器的程序設(shè)計語言,其特點(diǎn)是保持了機(jī)器語言優(yōu)秀的執(zhí)行效率,能夠直接控制硬件,同時具有可讀性及簡便性,且程序占用存儲空間少,這些特點(diǎn)十分契合單片機(jī)程序的開發(fā)要求,因此,單片機(jī)程序開發(fā)中匯編語言的應(yīng)用十分廣泛。但匯編語言作為一種面向機(jī)器的語言,對于開發(fā)者來說并不是十分友好,主要表現(xiàn)為程序代碼的可讀性較差、編寫和調(diào)試復(fù)雜、移植困難等。c語言兼顧了高級語言與匯編語言的優(yōu)點(diǎn),相較于匯編語言,具有更高的可閱讀性,便于理解,調(diào)試、修改更為容易簡便;更

4、為重要的是,其具有良好的可移植性,大大提高了程序的重復(fù)利用率,有助于程序開發(fā)人員提高程序編寫效率。c語言的跨平臺特性是其最為顯著的特征,這使得用c語言編寫的程序可以在不同的計算機(jī)平臺穩(wěn)定運(yùn)行,大大提高了程序開發(fā)者的工作效率,減少了成本。c語言擁有34種運(yùn)算符,數(shù)組、指針等多種表達(dá)方式,庫函數(shù)豐富,運(yùn)算結(jié)構(gòu)簡單易懂。由于c語言包含了單片機(jī)的指令集,因此,對于一些簡單的單片機(jī)程序開發(fā),即使程序開發(fā)者不了解單片機(jī)的硬件結(jié)構(gòu),也可以用c語言編寫出高質(zhì)量的程序代碼。c語言將程序開發(fā)分解為多個互不影響的功能模塊,這使得后期優(yōu)化變得更為便利1。隨著單片機(jī)的應(yīng)用范圍不斷拓展,c語言憑借其強(qiáng)大的功能及特性,在單

5、片機(jī)程序開發(fā)中的應(yīng)用優(yōu)勢日益明顯,得到了單片機(jī)開發(fā)者的廣泛應(yīng)用。2 c語言在單片機(jī)開發(fā)中的具體應(yīng)用步驟2.1 開發(fā)工具的選擇與安裝c語言開發(fā)工具的選擇與安裝是運(yùn)用c語言進(jìn)行單片機(jī)開發(fā)的首要環(huán)節(jié)。c語言開發(fā)工具又叫c語言編譯器或集成開發(fā)環(huán)境,c語言的編譯器有很多種,不同的平臺下有不同的編譯器,如windows下常用的是微軟編譯器cl.exr,linux下常用的是cun組織開發(fā)的gcc,mac下常用的是llvm/clang。安裝編譯器或者ide(集成開發(fā)環(huán)境),也叫搭建開發(fā)環(huán)境。windows下的c語言ide眾多,常用的包括visual studio、dev c+、visualc+6.0等。vis

6、ual studio(簡稱vs),它是windows下的標(biāo)準(zhǔn)ide,但是vs安裝包有點(diǎn)龐大,下載不方便,安裝時間較長,而且會安裝很多暫時用不到的工具。dev c+是一款免費(fèi)開源的c/c+ide,內(nèi)嵌ccc編譯器(linux gcc編譯器的windows移植版),優(yōu)點(diǎn)是體積小(只有幾十兆)、安裝卸載方便、學(xué)習(xí)成本低,缺點(diǎn)是調(diào)試功能弱。visual c+ 6.0(簡稱vc 6.0)是微軟開發(fā)的一款經(jīng)典的ide,但vc 6.0是1998年的產(chǎn)品,在win7、win8、winl0t會有各種各樣的兼容性問題,甚至根本不能運(yùn)行,目前基本只作為教學(xué)工具來使用。除上述開發(fā)工具外,windows平臺下還有很多其

7、他的ide,如code:blocks是一款開源、跨平臺、免費(fèi)的c/c+ ide,它和dev c+非常類似,小巧靈活,易于安裝和卸載,不過它的界面要比dev c+復(fù)雜一些;turbo c是一款dos年代的c語言開發(fā)工具,程序員只能使用鍵盤來操作turbo c,不能使用鼠標(biāo),所以非常不方便。但是turbo c集成了一套圖形庫,可以在控制臺程序中畫圖,所以至今仍然有人在使用;c-free是一款國產(chǎn)windows下的c/c+ ide,整個軟件只有14m,非常輕巧,安裝也簡單,界面也比dev c+漂亮,缺點(diǎn)也是調(diào)試功能弱。這些工具在功能、難易度等方面各異,實(shí)際應(yīng)用中可以根據(jù)具體的單片機(jī)設(shè)計來合理選擇。2

8、.2 建立c源文件搭建好開發(fā)環(huán)境后,在開始編程前,首先需要創(chuàng)建一個新的項目,可以用項目特征來進(jìn)行命名,選擇好存儲路徑即可完成新項目的建立。這里需要注意的是,項目名稱和存儲路徑最好不要包含中文。接下來就是在所創(chuàng)建項目中添加源文件,可以是新建文件也可以將以往程序文件內(nèi)容添加到項目當(dāng)中;之后需要再創(chuàng)建一個全新的語言程序文件,并在文字編輯窗口中利用void、signed、intint、void、restrict、return、continue等c語言基本語言結(jié)構(gòu)對所需要的單片機(jī)程序進(jìn)行逐步編寫,并在編寫任務(wù)完成后保存文件并生成最終的c語言文件2。2.3 調(diào)試編譯程序在程序代碼編寫完成之后,后續(xù)一項重要

9、的工作就是進(jìn)行調(diào)試編譯。調(diào)試編譯屬于c語言在單片機(jī)程序開發(fā)中的一個至關(guān)重要的中間環(huán)節(jié),目的是對編寫好的程序進(jìn)行檢查與完善,找出源文件中存在的buc并進(jìn)行及時的修正。在此階段,程序開發(fā)人員可以借助編譯器提供的調(diào)試模式對源程序進(jìn)行仿真調(diào)試,調(diào)試過程中程序開發(fā)人員要悉心觀察程序仿真運(yùn)行過程,完成對源程序的完善。編譯是將c語言編程文件轉(zhuǎn)換成機(jī)器可以識讀的文件,編輯器自動完成編譯工作并生成目標(biāo)文件。生成的目標(biāo)文件需要進(jìn)行整合并鏈接,如果代碼沒有錯誤,則編譯器會顯示鏈接成功,并生成一個完整的可執(zhí)行文件。2.4 生成hex文件生成hex文件可視為單片機(jī)c語言程序開發(fā)的最后一個環(huán)節(jié),借助編譯器,c語言程序在完

10、成編譯后可以生成格式文件hex,以便被單片機(jī)獲取和執(zhí)行。能夠順利生成hex格式文件,基本可以表明單片機(jī)c語言程序開發(fā)任務(wù)已經(jīng)完成,在此基礎(chǔ)上,借助編譯器可以將單片機(jī)hex格式文件寫入到存儲器中,并通過仿真器對所設(shè)計的單片機(jī)程序的性能進(jìn)行測試、調(diào)整。3 c語言在單片機(jī)開發(fā)中應(yīng)用的注意事項3.1 關(guān)注編程代碼效率的提升目前,c語言已經(jīng)在單片機(jī)程序開發(fā)中被廣泛應(yīng)用,但作為一種高級語言,c語言程序代碼執(zhí)行效率是程序開發(fā)者應(yīng)重點(diǎn)關(guān)注的問題。首先,應(yīng)合理選擇數(shù)據(jù)類型,若可以使用字符型(char)變量,就不要使用整型變量;其次,在c語言實(shí)際應(yīng)用中,執(zhí)行浮點(diǎn)數(shù)運(yùn)算時常選用double型,因?yàn)閒loat型的精度

11、偏低,且雙精度浮點(diǎn)數(shù)和單精度浮點(diǎn)數(shù)的計算代價相差無幾。事實(shí)上,對51單片機(jī)來說,雙精度運(yùn)算比單精度運(yùn)算的速度快。第三,應(yīng)對各類c語言編譯器進(jìn)行充分的了解,結(jié)合編程實(shí)際合理選擇編譯器。同時,還應(yīng)將單片機(jī)c語言編程中出現(xiàn)的高頻率程序與對應(yīng)的匯編語言行數(shù)進(jìn)行比較匯總,對編譯效率形成一個清晰的認(rèn)識,進(jìn)而提高單片機(jī)c語言編程代碼的編譯、執(zhí)行效率3。3.2 變量類型的定義要明確一些程序開發(fā)者受程序編寫習(xí)慣的影響,程序編寫過程中往往不考慮函數(shù)內(nèi)外情況,在程序初始位置直接定義新的變量,雖然原則上并不會構(gòu)成程序編寫錯誤,但一定程度上會對程序的執(zhí)行產(chǎn)生不利影響。因此,在c語言程序編寫過程中,要注重變量類型定義的明確化,并依據(jù)編譯器版本的不同,對變量放置位置進(jìn)行合理選擇。如:一般來講在c90版本的編譯器中,全局變量屬于函數(shù)外,只可以放置于引用之前,而在最新

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論