鄭露萍
摘要:隨著計(jì)算機(jī)技術(shù)的飛速發(fā)展,單片機(jī)的開發(fā)愈發(fā)受到社會(huì)各界的廣泛關(guān)注,人們不斷加大對(duì)單片機(jī)的研發(fā)力度,使得單片機(jī)的發(fā)展已經(jīng)進(jìn)入到智能化發(fā)展階段。C語言因?yàn)榫哂休^強(qiáng)的可移植性,在單片機(jī)程序設(shè)計(jì)中得到了廣泛的應(yīng)用。該文全面地探索并介紹了單片機(jī)程序設(shè)計(jì)中C語言的具體應(yīng)用,僅供參考。
關(guān)鍵詞:?jiǎn)纹瑱C(jī)程序;C語言;應(yīng)用
中圖分類號(hào):TP311? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2021)15-0072-02
以往單片機(jī)程序的設(shè)計(jì)大多借助匯編語言完成,隨著社會(huì)各領(lǐng)域?qū)纹瑱C(jī)功能需求的不斷增多,匯編語言愈發(fā)滿足不了單片機(jī)程序的設(shè)計(jì)需求。作為一門高級(jí)編程語言,C語言的應(yīng)用范圍較為廣泛,在單片機(jī)程序設(shè)計(jì)中,合理地應(yīng)用C語言進(jìn)行程序設(shè)計(jì),對(duì)于單片機(jī)的開發(fā)的發(fā)展具有積極的意義。
1 單片機(jī)及其開發(fā)情況
從表面上看,單片機(jī)就是一個(gè)芯片,但是其功能卻相當(dāng)于一個(gè)微型的計(jì)算機(jī),和普通的計(jì)算機(jī)相比,單片機(jī)不具備輸入、輸出端口設(shè)備。單片機(jī)具有體積小、質(zhì)量輕、價(jià)格便宜、方便攜帶、應(yīng)用便捷等諸多優(yōu)勢(shì)。深入的探索單片機(jī)的開發(fā)和使用過程,有助于幫助人們更好的認(rèn)識(shí)計(jì)算機(jī)結(jié)構(gòu),了解計(jì)算機(jī)的運(yùn)行原理。就世界范圍來看,單片機(jī)在工業(yè)控制領(lǐng)域的應(yīng)用是最為廣泛的,主要用于智能儀表、通訊設(shè)備等的功能保證上。工業(yè)領(lǐng)域因?yàn)閱纹瑱C(jī)的應(yīng)用,生產(chǎn)效率得到明顯的提升,同時(shí)產(chǎn)品更新?lián)Q代的速度也越來越快。
和C語言相比,匯編語言應(yīng)用過程更加簡(jiǎn)單方面,控制效果更好,一直以來,單片機(jī)都應(yīng)用匯編語言進(jìn)行程序設(shè)計(jì)。但是隨著科技的發(fā)展,處理器對(duì)語言的需求越來越高,匯編語言已經(jīng)難以滿足這些需求,這樣的背景下,C語言在單片機(jī)開發(fā)中的應(yīng)用優(yōu)勢(shì)愈發(fā)明顯。C語言較匯編語言,可執(zhí)性更高,應(yīng)用過程更加方便,即使編程人員不了解單片機(jī)處理器的機(jī)構(gòu),也可以應(yīng)用C語言的編輯器完成程序設(shè)計(jì),可以說,C語言單片機(jī)的開發(fā)工作中具有十分廣闊的應(yīng)用前景。
2 程序設(shè)計(jì)中C語言的應(yīng)用
2.1 及時(shí)發(fā)現(xiàn)語法錯(cuò)誤,有效修復(fù)程序漏洞
作為最基礎(chǔ)的編程語言,C語言因?yàn)閼?yīng)用簡(jiǎn)便,同時(shí)具有很多特殊功能,深受程序設(shè)計(jì)人員的喜愛。但是程序設(shè)計(jì)對(duì)C語言的應(yīng)用具有較高的要求,不允許出現(xiàn)一點(diǎn)錯(cuò)誤。為了提高程序設(shè)計(jì)人員的編程能力,確保其可以更好地應(yīng)用C語言進(jìn)行編程,程序設(shè)計(jì)人員必須加強(qiáng)對(duì)《C語言程序設(shè)計(jì)》的學(xué)習(xí),并且在日常工組中多加實(shí)踐,積累更多的C語言應(yīng)用經(jīng)驗(yàn)。如果在設(shè)計(jì)程序的過程中,一旦發(fā)現(xiàn)語法出現(xiàn)錯(cuò)誤,設(shè)計(jì)師必須及時(shí)修正,在編程工作中,適當(dāng)縮短代碼程度,選擇合理的數(shù)據(jù)類型,防止出現(xiàn)數(shù)據(jù)和資源不匹配的問題。
2.2 加強(qiáng)編程能力
C語言是因?yàn)榫哂忻嫦蛴脩舻奶匦?,所以其?yīng)用過程更加符合人們的思考習(xí)慣,算法和功能也較匯編語言更具人性化。但是設(shè)計(jì)師應(yīng)用C語言編程的過程中,必須真實(shí)細(xì)節(jié)問題的處理,做好程序語句的及時(shí)擴(kuò)充、改進(jìn)和優(yōu)化,嚴(yán)格遵守精益求精的原則,讓整個(gè)程序結(jié)構(gòu)更加清晰,確保所設(shè)計(jì)的程序可以滿足單片機(jī)系統(tǒng)需求。尤其是控制系統(tǒng)一般對(duì)CPU和片內(nèi)結(jié)構(gòu)具有較高的要求,所以編程過程中所生成的代碼也較長,這就要求編程人員在實(shí)際工作中要時(shí)重視C語言的優(yōu)化,確??梢栽诟映渥愕目臻g中完成相應(yīng)的編譯工作。
目前,大多電子產(chǎn)品中都可能會(huì)應(yīng)用單片機(jī),所以各類企業(yè)也愈發(fā)重視單片機(jī)程序的設(shè)計(jì)工作。在設(shè)計(jì)程序的過程中,如何利用計(jì)算機(jī)的資源是一件非常重要的事情。和應(yīng)用匯編語言相比,應(yīng)用C語言進(jìn)行編程的時(shí)候,生成的代碼往往更長,編寫的過程更為復(fù)雜,編寫難度較大,設(shè)計(jì)人員稍不注意,就可能出現(xiàn)錯(cuò)誤。所以設(shè)計(jì)師必須高度集中注意力,完美地完成每一條語句的編寫,選擇合理的數(shù)據(jù)類型,做好程序的有效優(yōu)化。截至目前,單片機(jī)嵌入式系統(tǒng)已經(jīng)問世了二十余年,其數(shù)據(jù)存儲(chǔ)設(shè)備的空間越來越大,C語言不管是在可靠程度上,還是在開發(fā)應(yīng)用上,都可以和單片機(jī)相配合,可以說,隨著編程語言的不斷開發(fā)和應(yīng)用,編程中如何加強(qiáng)對(duì)單片機(jī)系統(tǒng)資源的應(yīng)用已經(jīng)成為熱門話題。
2.3 保證代碼的正確性
單片機(jī)程序設(shè)計(jì)中應(yīng)用C語言的過程,需要將C語言和單片機(jī)內(nèi)部所存儲(chǔ)的資源結(jié)合起來,通過系統(tǒng)完成各類數(shù)據(jù)的有效傳遞。二進(jìn)制位的計(jì)算機(jī)系統(tǒng)所包含的數(shù)據(jù)類型多種多樣,但是符合單片機(jī)系統(tǒng)的確少之又少。如果數(shù)據(jù)類型不確定,設(shè)計(jì)師可以應(yīng)用bit和char代替,并且根據(jù)實(shí)際工程需求,加強(qiáng)對(duì)程序結(jié)構(gòu)的優(yōu)化。利用C語言進(jìn)行程序設(shè)計(jì)的過程中,注意要充分發(fā)揮系統(tǒng)硬件資源的作用和優(yōu)勢(shì)。應(yīng)用C語言時(shí),一般長度越短,算法越簡(jiǎn)單越好,如果代碼長度過長,那么就很容易出現(xiàn)錯(cuò)誤,而一旦出現(xiàn)bug,將會(huì)給程序的應(yīng)用帶來巨大的影響。特別是單片機(jī)系統(tǒng)下的C語言,程序設(shè)計(jì)人員在應(yīng)用的過程中,要盡可能減少預(yù)算的種類,然后借助一些相似的計(jì)算傳輸數(shù)據(jù),達(dá)到優(yōu)化C程序設(shè)計(jì)結(jié)構(gòu)的目的。
單片機(jī)內(nèi)部存儲(chǔ)數(shù)據(jù)的為存儲(chǔ)器RAM,所有的存儲(chǔ)器RAM都具有一定的內(nèi)容,如果存儲(chǔ)的數(shù)據(jù)內(nèi)容過多,勢(shì)必會(huì)導(dǎo)致硬件成本的增加,進(jìn)而給系統(tǒng)的運(yùn)行速度帶來一定的影響。所以,對(duì)于程序設(shè)計(jì)人員來說,“如何提高存儲(chǔ)器空間的利用率”至關(guān)重要。應(yīng)用C語言進(jìn)行編程的時(shí)候,采用了存儲(chǔ)器的覆蓋技術(shù),系統(tǒng)運(yùn)行的過程中,一旦空間不足,存儲(chǔ)器就會(huì)自動(dòng)釋放空間,確保其他程序可以正常、穩(wěn)定的應(yīng)用。但是單片機(jī)系統(tǒng)中,可以適當(dāng)空間的動(dòng)態(tài)變量比較局限,僅限于局部釋放。程序設(shè)計(jì)人員在設(shè)計(jì)工作中,要根據(jù)實(shí)際情況,做好系統(tǒng)內(nèi)部環(huán)境的優(yōu)化,旨在有效提高存儲(chǔ)器的使用效率。
和其他計(jì)算機(jī)操作系統(tǒng)不同,單片機(jī)系統(tǒng)可用資源較為有限。因此,程序設(shè)計(jì)人員在設(shè)計(jì)程序的時(shí)候,應(yīng)該結(jié)合編程經(jīng)驗(yàn),利用好每一項(xiàng)資源,創(chuàng)新編程設(shè)計(jì)活動(dòng),嚴(yán)格檢查所有數(shù)據(jù)的類型,采取有效的方法解決各類編程問題,旨在有效縮短單片機(jī)控制系統(tǒng)的開發(fā)中期的同時(shí),避免漏洞問題的發(fā)生。
3 C語言在單片機(jī)程序設(shè)計(jì)的具體步驟
3.1 下載工具的開發(fā)
單片機(jī)開發(fā)中,C語言的開發(fā)工作是最為基礎(chǔ)的環(huán)節(jié)。在開發(fā)和使用C語言之前,需要在安全的平臺(tái)上,下載符合自身網(wǎng)絡(luò)環(huán)境的C語言開發(fā)軟件,常見的比如studio、VC++6.0等。不同的軟件,其功能、操作難易程度上也有一定的差異,程序設(shè)計(jì)人員要根據(jù)單片機(jī)的具體設(shè)計(jì)人員合理的選擇軟件。完成下載后,就可以解壓安裝包,然后根據(jù)軟件的指導(dǎo),完成軟件在計(jì)算機(jī)終端系統(tǒng)中的安裝。
3.2 C源文件的建立
下載軟件的時(shí)候,在計(jì)算機(jī)系統(tǒng)中,建立一個(gè)新的目錄,然后將所有的文件和程序都放置其中。再創(chuàng)建一個(gè)語言的程序類文件,利用C語言基本語言結(jié)構(gòu)單片機(jī)的程序內(nèi)容進(jìn)行逐條的編寫,這里程序設(shè)計(jì)人員可能會(huì)應(yīng)用到continue、 return、restrict等,編寫完成后,將其以文檔的形式加以保存,為后續(xù)生成C語言文件內(nèi)容打好基礎(chǔ)。
3.3 編譯程序的調(diào)整
在對(duì)C語言和單片機(jī)進(jìn)行開發(fā)的過程中,調(diào)試C語言的編譯程序是非常重要的步驟,通過調(diào)試,可以對(duì)所有編寫完成的內(nèi)容進(jìn)行檢查,然后根據(jù)檢查結(jié)果進(jìn)行完善和補(bǔ)充,這是因?yàn)檎{(diào)試的時(shí)候,可以快速找到與源文件中所存在的錯(cuò)誤代碼。這里需要注意的是,程序設(shè)計(jì)人員在編程設(shè)計(jì)的時(shí)候,要將軟件的工作模式調(diào)整為調(diào)試模式,然后發(fā)揮仿真器的作用,對(duì)編程代碼進(jìn)行檢查和調(diào)試。具體到操作,工作人員需要對(duì)源文件內(nèi)容和編程內(nèi)容進(jìn)行逐一的檢查和核實(shí),為后續(xù)的編輯、補(bǔ)充的優(yōu)化工作打好基礎(chǔ)。在編輯器上設(shè)置補(bǔ)充目標(biāo)模塊,做好該模塊內(nèi)容的連接和整合,進(jìn)一步提高編程文件的準(zhǔn)確性和完整性。
3.4 HEX文件的生成
C語言整體程序的編程工作完成后,借助編輯翻譯器對(duì)其進(jìn)行翻譯,生成H1X類型的文件,這時(shí)因?yàn)椋珻語言編程文件,計(jì)算機(jī)是讀取不了的,只有經(jīng)過翻譯的文件,計(jì)算機(jī)才能進(jìn)行讀取和錄入??梢哉f,在單片機(jī)程序設(shè)計(jì)工作中,生成HEX格式文件是最后的環(huán)節(jié)。該環(huán)節(jié)的進(jìn)行可以加強(qiáng)單片機(jī)和C語言的程序格式之間的融合效果,提高單片機(jī)開發(fā)水平。所以,完成C語言設(shè)計(jì)后,生成HEX文件,利用其寫入芯片的作用,將編程內(nèi)容以HEX格式存儲(chǔ)到單片機(jī)的存儲(chǔ)器中,然后利用仿真器的模式將其表達(dá)出來,保證計(jì)算機(jī)系統(tǒng)可以更好地讀取、測(cè)試、調(diào)試和完成。只有以這種模式生成的軟件內(nèi)容才更加準(zhǔn)確,同時(shí)軟件應(yīng)用智能化水平也才能有所提升。
4 C語言在單片機(jī)開發(fā)中應(yīng)用的注意事項(xiàng)
4.1 努力提升編程代碼利用效率
日前,在單片機(jī)程序設(shè)計(jì)工作中,C語言已經(jīng)成為一種不可替代的程序語言,其應(yīng)用對(duì)于單片機(jī)性性能的優(yōu)化,功能的創(chuàng)新具有重大的意義。但是就目前來說,C語言在單片機(jī)開發(fā)中的應(yīng)用時(shí)間尚短,所以應(yīng)用過程仍然存在一定的問題,這些問題如果得不到及時(shí)有效的解決,就會(huì)給單片機(jī)研發(fā)工作的開展帶來巨大的影響。因此,在單片機(jī)開發(fā)工作中應(yīng)用C語言,程序設(shè)計(jì)人員必須重點(diǎn)關(guān)注C語言編程代碼利用效率的有效提升。同時(shí)應(yīng)用C語言編寫程序之前,程序設(shè)計(jì)人員需要充分的了解各類C語言編輯器及其應(yīng)用方法,然后根據(jù)實(shí)際工作需求,選擇最適合自己的編輯器。日常工作中,對(duì)于編程過程中,應(yīng)用頻率較高的C語言,進(jìn)行積累和匯總,這樣在實(shí)際編程中,就可以更加清晰和靈活地進(jìn)行應(yīng)用,進(jìn)而提高C語言編程代碼的編譯、執(zhí)行效率。
4.2 明確變量類型
受傳統(tǒng)編程習(xí)慣的應(yīng)用,很多程序設(shè)計(jì)人員在編程的時(shí)候,不考慮實(shí)際情況,在程序的初始位置直接定義新的變量,這樣的編程過程,雖然不會(huì)導(dǎo)致嚴(yán)重的程序編寫錯(cuò)誤的發(fā)生,但是會(huì)給后續(xù)程序的執(zhí)行效果帶來巨大的影響,所以這種編程方法在實(shí)際編程工作中是不可取的。比如C90版本的編譯器和C99版本的編輯器,變量的設(shè)置位置是不一樣的,應(yīng)用前者的時(shí)候,需要放置在引用之前,應(yīng)用后者的時(shí)候,程序設(shè)計(jì)人員可以靈活地將其設(shè)置在任何位置。
5 結(jié)束語
綜上所述,隨著計(jì)算機(jī)技術(shù)的不斷發(fā)展,單片機(jī)的研發(fā)工作愈發(fā)受到重視,其應(yīng)用范圍也越來越廣泛,人們的生活和工作因?yàn)閱纹瑱C(jī)的應(yīng)用也更加方面和快捷。為了促進(jìn)單片機(jī)更好的開發(fā),程序設(shè)計(jì)人員需要合理的應(yīng)用C語言,確??梢栽O(shè)計(jì)出滿足單片機(jī)功能需求的程序,助力單片機(jī)在未來更好的發(fā)展和進(jìn)步。
參考文獻(xiàn):
[1] 王照.C語言在單片機(jī)程序設(shè)計(jì)中的應(yīng)用[J].電腦編程技巧與維護(hù),2020(9):34-35,68.
[2] 湯成曦.C語言在單片機(jī)中的程序設(shè)計(jì)及應(yīng)用[J].信息與電腦(理論版),2020,32(11):97-99.
[3] 張延梅.論C語言在單片機(jī)開發(fā)中的應(yīng)用[J].信息技術(shù)與信息化,2018(11):78-80.
[4] 王穎.C語言在單片機(jī)技術(shù)中的應(yīng)用[J].電子制作,2015(1):26-27.
[5] 方春華.單片機(jī)C語言編程的常見問題與分析[J].電腦知識(shí)與技術(shù),2019,15(30):237-238.
[6] 伍開宇.單片機(jī)程序的限時(shí)服務(wù)策略及設(shè)計(jì)分析[J].電腦迷,2018(8):4.
【通聯(lián)編輯:張薇】