周嵐
摘 要:C語言作為一種高級編程語言,具有良好的結(jié)構(gòu)性和移植性,在單片機(jī)中引入C語言,可以極大地方便單片機(jī)的編程和開發(fā)。本文首先介紹了單片機(jī)的定義、系統(tǒng)組成及功能特點(diǎn),分析了單片機(jī)的用途。然后結(jié)合C語言的優(yōu)越性,分析基于C語言的單片機(jī)技術(shù)及其應(yīng)用范圍。由于C語言具有強(qiáng)大的編程功能,也使得利用C語言進(jìn)行編程的單片機(jī)技術(shù)的運(yùn)用越來越廣泛。
關(guān)鍵詞:C語言;編程;單片機(jī)
中圖分類號:TP311.51 文獻(xiàn)標(biāo)識碼:A
Abstract:As a high-level programming language,C Language has good structuredness and portability.Application of C language on microcontroller systems can greatly facilitate the programming and development.This paper starts with the definition,the system composition and the functionality of microcontrollers,and analyzes the application of microcontrollers.Then,combined with the advantages of C Language,the paper analyzes the technology and application scope of microcontrollers based on C Language.Because of C Language's formidable programming functions,the microcontroller technology adopting C Language in programming is being put into more and more extensive application.
Keywords:C language;programming;microcontroller
1 引言(Introduction)
雖然單片機(jī)有自己的編程語言,如果,我們用單片機(jī)的編程語言要做出實(shí)際的東西,那是非常不容易的。比如,你做一個(gè)除法,十六位的,你要編幾十條語句,如果沒有專門的研究單片機(jī)的經(jīng)歷,相信很難勝任。但你用C語言,一句就行了,而且編寫的程序精簡,容易查出錯(cuò)來,調(diào)試比較簡單。只要你對單片機(jī)有一些硬件的了解,你就可以用C編些比較復(fù)雜的程序?,F(xiàn)在單片機(jī)的執(zhí)行速度很快了,時(shí)針頻率有的可以達(dá)到40MHz,不存在C語言的效率不高而影響你的程序運(yùn)行。另外,C語言作為一種高級編程語言,具有良好的結(jié)構(gòu)性和移植性,在單片機(jī)中引入C語言,可以極大地方便單片機(jī)的編程和開發(fā)。
2 單片機(jī)系統(tǒng)(Single chip microcomputer system)
2.1 單片機(jī)的定義
單片機(jī)的英文全稱為single chip microcomputer,翻譯為單片微型計(jì)算機(jī),主要將CPU、半導(dǎo)體存儲器、I/O接口、中斷系統(tǒng)和定時(shí)器等各種元器件集成到一塊半導(dǎo)體芯片上,由此軟硬件構(gòu)成的整個(gè)數(shù)字電子計(jì)算機(jī)就叫做單片機(jī),也稱為MCU(Microcontroller Unit)[1]。
2.2 單片機(jī)的系統(tǒng)組成
單片機(jī)系統(tǒng)通常包括硬件系統(tǒng)和軟件系統(tǒng)兩部分。硬件系統(tǒng)主要是指單片機(jī)芯片上集成的各種元器件以及被控對象。軟件系統(tǒng)通常有很多主程序或者子程序組成,利用匯編語言或者C語言編寫完成,具有對系統(tǒng)監(jiān)控等功能。
2.3 單片機(jī)的功能特點(diǎn)
單片機(jī)作為一種微型電子計(jì)算機(jī),具有許多功能特點(diǎn)。第一,單片機(jī)的元器件集成度高,適合制作大規(guī)模或超大規(guī)模集成電路,可靠性和抗干擾能力都較強(qiáng)。第二,由于集成度高,單片機(jī)的價(jià)格相對較低廉,性價(jià)比較高。第三,單片機(jī)的指令較為豐富,擁有強(qiáng)大的控制功能。第四,很多單片機(jī)只需要2.2V甚至更低的電壓就可以運(yùn)行,所以其工作電壓低,功耗低。第五,單片機(jī)的體積小,攜帶方便。
2.4 單片機(jī)的應(yīng)用范圍
單片機(jī)強(qiáng)大的功能特點(diǎn)決定了具有廣泛的應(yīng)用范圍。在國防、軍農(nóng)、工業(yè)、農(nóng)業(yè)等方面,單片機(jī)都有所發(fā)揮它的用處。概括起來,主要是在家用電器、機(jī)電一體化中、智能儀器儀表、實(shí)時(shí)過程控制、分布式多機(jī)系統(tǒng)等方面較多。
3 C語言在單片機(jī)開發(fā)中的特點(diǎn)(C language in the development of the characteristics of SCM)
C語言作為一種結(jié)構(gòu)化的程序設(shè)計(jì)語言,具有很強(qiáng)大的功能性、結(jié)構(gòu)性、可移植性。使用C語言開發(fā)單片機(jī)系統(tǒng),可以讓編程人員在不懂得單片機(jī)指令集的情況下,也能夠?qū)懗鐾昝赖膯纬绦?。在基于C語言的單機(jī)片系統(tǒng),可以對數(shù)據(jù)進(jìn)行專業(yè)化處理,能夠避免運(yùn)行中非異步的破壞。在所有的計(jì)算機(jī)語言中,C語言的運(yùn)用最為廣泛。在單片機(jī)的開發(fā)中,使用C語言會表現(xiàn)出以下優(yōu)勢。
3.1 庫函數(shù)豐富,移植性好
C語言是一種編譯型程序設(shè)計(jì)語言,它的運(yùn)算速度快、編譯效率高,擁有齊全的函數(shù)庫,比匯編語言更加具有可讀性。由于它是面向?qū)ο蟮恼Z言,所以其可移植性好[2]。
3.2 應(yīng)用廣泛,方便開發(fā)
相比于匯編語言,C語言更加符合人類的思維方式。很多編程人員都習(xí)慣C語言,使用C語言進(jìn)行編程可以減少他們在硬件匹配上所花的精力,從而有更多的時(shí)間去調(diào)試程序和優(yōu)化算法。
3.3 程序結(jié)構(gòu)完善,兼容性好
C語言編譯的程序往往具有較為完善的模塊化結(jié)構(gòu),在后續(xù)的開發(fā)中可以隨時(shí)修改和補(bǔ)充。正是由于C語言的程序結(jié)構(gòu)較為完善,也使得它在模塊化設(shè)計(jì)方面運(yùn)用較為廣泛。使用C語言編寫的單片機(jī)程序,采用的是自頂向下的結(jié)構(gòu)化程序。對應(yīng)不同的模塊,設(shè)計(jì)不同的功能,使整個(gè)程序功能模塊化,實(shí)現(xiàn)不同的兼容性。這種結(jié)構(gòu)化模塊可以使整個(gè)程序結(jié)構(gòu)清楚,方便后續(xù)的調(diào)試和修改。
4 基于C語言的單片機(jī)開發(fā)技術(shù)(Development technology of single chip microcomputer based on C language)
4.1 基于C語言的單片機(jī)開發(fā)環(huán)境
在眾多的單片機(jī)程序開發(fā)軟件中,KEIL C51是運(yùn)用最為廣泛的一個(gè)軟件,集合了編輯、編譯、仿真等功能,可以支持不同公司生產(chǎn)的MCS51芯片。同時(shí),KEIL C51軟件具有友好的操作界面,而且已經(jīng)將C語言集成進(jìn)去,另外還支持匯編語言,所以具有強(qiáng)大的編程和調(diào)試功能[3]。KEIL C51的開發(fā)環(huán)境包括了編譯器、匯編器、實(shí)時(shí)操作系統(tǒng)、項(xiàng)目管理器、調(diào)試器等部分。而編寫的目標(biāo)程序的源文件可以構(gòu)成不同的組,利用項(xiàng)目管理器,可以方便地對應(yīng)目標(biāo)、組或單個(gè)文件。利用KEIL C51中集成的瀏覽器包含了全局索索的功能,可以幫助用戶快速搜索文件和查找信息。KEIL C51軟件中集成了源代碼編輯器,它的操作界面友好,許多特性都為用戶所熟悉[4]。利用源代碼編輯器自然而又方便的編程環(huán)境,編譯人員可以在編輯器內(nèi)隨時(shí)編輯和調(diào)試代碼,更能對所寫程序進(jìn)行快速的檢查錯(cuò)誤和優(yōu)化代碼。
4.2 基于C語言的單片機(jī)開發(fā)步驟
在使用C語言開發(fā)單片機(jī)程序時(shí),通常分為:程序代碼的編寫和編譯、目標(biāo)代碼的連接和轉(zhuǎn)換等過程。在編寫完程序代碼和調(diào)試完程序后,還應(yīng)當(dāng)將程序編譯為HEX文件,使其能夠移植到單片機(jī)上,并能執(zhí)行所編譯的代碼[5]?;贑語言的單片機(jī)開發(fā)步驟,主要包括四個(gè)過程。
第一步,安裝軟件。登錄KEIL的官方網(wǎng)站,下載所需的商業(yè)軟件安裝包到電腦上。下載完成后解壓安裝包,然后雙擊SETUP.EXE文件,同意其協(xié)議條款,根據(jù)提示信息輸入序列號,一步一步完成安裝過程。可以進(jìn)行完整安裝,并進(jìn)行對應(yīng)的設(shè)置。
第二步,創(chuàng)建源文件。首先,打開軟件建立一個(gè)新的項(xiàng)目,或者添加原有的項(xiàng)目,然后建立一個(gè)新的空白程序。在新程序的文字編輯窗口,編寫所需代碼,即可生產(chǎn)C語言程序的源文件。
第三步,編譯并調(diào)試。這也是單片機(jī)開發(fā)過程中的中間階段,開發(fā)人員將軟件轉(zhuǎn)換到調(diào)試模式,然后利用軟件的仿真功能,對源程序代碼進(jìn)行逐個(gè)調(diào)試。檢查并發(fā)現(xiàn)錯(cuò)誤的代碼,及時(shí)改正和完善。利用C51編譯器調(diào)試和編譯源程序,生成目標(biāo)代碼或模塊[6]。最后,將各模塊連接在一起,最終生成文件。
第四步,生成HEX文件。采用Intel公司提出的十六進(jìn)制字節(jié)寬度來保存HEX文件,然后將所編譯的目標(biāo)程序生成HEX文件,最后將該文件通過編譯器燒寫進(jìn)單片機(jī)的芯片中,用于后續(xù)的仿真調(diào)試。
5 結(jié)論(Conclusion)
綜上所述,基于C語言的單片機(jī)技術(shù)具有強(qiáng)大的功能,可以實(shí)現(xiàn)硬件指定的作用。單片機(jī)的出現(xiàn)極大地推動了計(jì)算機(jī)技術(shù)的快速發(fā)展,目前已經(jīng)運(yùn)用到了家用電器、汽車電子等生產(chǎn)生活的各個(gè)方面。C語言逐漸代替匯編語言,成為了單片機(jī)開發(fā)中最合適的語言,在未來的運(yùn)用中,基于C語言的單片機(jī)技術(shù)將會有更大的發(fā)展空間。
參考文獻(xiàn)(References)
[1] 董蘊(yùn)寶,潘旭君.淺談C語言在單片機(jī)中的程序設(shè)計(jì)[J].通信學(xué)報(bào),2015(13):58-59.
[2] 余小燕.C語言程序設(shè)計(jì)教學(xué)方法探討[J].計(jì)算機(jī)學(xué)報(bào),2014(8):47-50.
[3] 肖輝輝,段艷明.基于DE算法改進(jìn)的蝙蝠算法的研究及應(yīng)用[J].計(jì)算機(jī)仿真,2014(1):62-65.
[4] 劉宇鵬,馬春光,張亞楠.深度遞歸的層次化機(jī)器翻譯模型[J].計(jì)算機(jī)學(xué)報(bào),2016(39):71-74.
[5] 王穎.C語言在單片機(jī)技術(shù)中的應(yīng)用[J].電子制作,2015(1):26-27.
[6] 王志宏.單片機(jī)C語言程序設(shè)計(jì)的關(guān)鍵技術(shù)[J].科技信息,2009(36):523-524.
作者簡介:
周 嵐(1977-),女,碩士,副教授.研究領(lǐng)域:程序設(shè)計(jì)與數(shù)據(jù)庫.