單片機(jī)的c語言編程

單片機(jī)的c語言編程

ID:27236318

大?。?77.01 KB

頁數(shù):119頁

時(shí)間:2018-12-01

單片機(jī)的c語言編程_第1頁
單片機(jī)的c語言編程_第2頁
單片機(jī)的c語言編程_第3頁
單片機(jī)的c語言編程_第4頁
單片機(jī)的c語言編程_第5頁
資源描述:

《單片機(jī)的c語言編程》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。

1、第4章單片機(jī)的C語言編程單片機(jī)應(yīng)用系統(tǒng)是由硬件和軟件組成的,這是與一般的數(shù)字邏輯電路系統(tǒng)的不同之處。匯編語言是能夠利用單片機(jī)所有特性直接控制硬件的唯一語言,對(duì)于一些需要直接控制硬件的場(chǎng)合,匯編語言是必不可少的。但匯編語言不是一種結(jié)構(gòu)化的程序設(shè)計(jì)語言,對(duì)于較復(fù)雜的單片機(jī)應(yīng)用系統(tǒng),它的編寫效率很低。為了提高軟件的開發(fā)效率,許多軟件公司致力于單片機(jī)高級(jí)語言的開發(fā)研究,許多型號(hào)的單片機(jī)內(nèi)部ROM已經(jīng)達(dá)到64KB甚至更大,且具備在系統(tǒng)編程(ISP,InSystemProgrammable)功能,進(jìn)一步推動(dòng)了

2、高級(jí)語言在單片機(jī)應(yīng)用系統(tǒng)開發(fā)中的應(yīng)用。51系列單片機(jī)支持三種高級(jí)語言:PL/M、C、BASICBASIC語言適用于簡(jiǎn)單編程而對(duì)編程效率、運(yùn)行速度要求不高的場(chǎng)合,8052單片機(jī)內(nèi)固化有BASIC語言解釋器。PL/M是一種結(jié)構(gòu)化的語言,很象PASCAL,PL/M編譯器好象匯編器一樣產(chǎn)生緊湊的機(jī)器代碼,可以說是高級(jí)匯編語言,但它不支持復(fù)雜的算術(shù)運(yùn)算,無豐富庫函數(shù)支持,學(xué)習(xí)PL/M無異于學(xué)習(xí)一種新的語言。C語言是一種通用的程序設(shè)計(jì)語言,其代碼率高,數(shù)據(jù)類型及運(yùn)算符豐富,并具有良好的程序結(jié)構(gòu),適用于各種應(yīng)用

3、的程序設(shè)計(jì),是目前使用最廣的單片機(jī)編程語言。C語言作為一種非常方便的語言而得到廣泛的支持,很多硬件開發(fā)都用C語言編程,如:各種單片機(jī)、DSP、ARM等。C語言程序本身不依賴于機(jī)器硬件系統(tǒng),基本上不作修改或僅做簡(jiǎn)單修改就可將程序從不同的單片機(jī)中移植過來直接使用。C語言提供了很多數(shù)學(xué)函數(shù)并支持浮點(diǎn)運(yùn)算,開發(fā)效率高,故可縮短開發(fā)時(shí)間,增加程序可讀性和可維護(hù)性。單片機(jī)的C語言編程稱為C51編程,應(yīng)用C51編程具有以下優(yōu)點(diǎn):(1)C51編譯器管理內(nèi)部寄存器和存貯器的分配,編程時(shí),無需考慮不同存儲(chǔ)器的尋址和數(shù)

4、據(jù)類型等細(xì)節(jié)問題;(2)程序有規(guī)范的結(jié)構(gòu),可分成不同的函數(shù),這種方式具有良好的模塊化結(jié)構(gòu),使已編好程序容易移植;(3)有豐富的子程序庫可直接引用,具有較強(qiáng)的數(shù)據(jù)處理能力,從而大大減少用戶編程的工作量;(4)C語言和匯編語言可以交叉使用。匯編語言程序代碼短、運(yùn)行速度快、但復(fù)雜運(yùn)算編程耗時(shí)。用匯編語言編寫與硬件有關(guān)的部分程序,用C語言編寫與硬件無關(guān)的運(yùn)算部分程序,充分發(fā)揮兩種語言的長(zhǎng)處,提高開發(fā)效率。C51編譯器(KeilC)與標(biāo)準(zhǔn)ANSIC編譯器的主要區(qū)別單片機(jī)C編譯器之所以與ANSIC有所不同,主

5、要是由于它們所針對(duì)的硬件系統(tǒng)有其各自不同的特點(diǎn)。C51的特點(diǎn)和功能主要是80C51單片機(jī)自身特點(diǎn)引起的。(1)頭文件:51單片機(jī)有不同的廠家和系列,不同單片機(jī)的主要區(qū)別在于內(nèi)部資源,為了實(shí)現(xiàn)內(nèi)部資源功能,只需將相應(yīng)的功能寄存器的頭文件加載在程序中,就可實(shí)現(xiàn)指定的功能。因此,C51系列頭文件集中體現(xiàn)了各系列芯片的不同功能。(2)數(shù)據(jù)類型:由于51系列器件包含了位操作空間和豐富的位操作指令,因此C51比ANSIC多一種位類型。(3)數(shù)據(jù)存儲(chǔ)類型:51系列單片機(jī)有程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器。數(shù)據(jù)存儲(chǔ)器又分片

6、內(nèi)和片外數(shù)據(jù)存儲(chǔ)器。片內(nèi)數(shù)據(jù)存儲(chǔ)器還分直接尋址區(qū)和間接尋址區(qū),分別對(duì)應(yīng)code、data、idata、xdata以及根據(jù)80C51系列特點(diǎn)而設(shè)定的pdata類型。(4)數(shù)據(jù)運(yùn)算操作和程序控制:從數(shù)據(jù)運(yùn)算操作和程序控制語句以及函數(shù)的使用上來講,它們幾乎沒有什么明顯的區(qū)別。只是在函數(shù)的使用上,由于單片機(jī)系統(tǒng)的資源有限,它的編譯系統(tǒng)不允許太多的程序嵌套。由于51系列單片機(jī)是8位機(jī),所以擴(kuò)展16位字符Unicode不被C51支持。ANSIC所具備的遞歸特性不被C51支持,所以在C51中如果要使用遞歸特性,

7、必須用REETRANT關(guān)鍵字聲明。(5)C51與標(biāo)準(zhǔn)ANSIC庫函數(shù):部分庫函數(shù)不適合單片機(jī)處理系統(tǒng),因此被排除在外,如字符屏幕和圖形函數(shù)。也有一些庫函數(shù)繼續(xù)使用,但這些庫函數(shù)是廠家針對(duì)硬件特點(diǎn)相應(yīng)開發(fā)的,與ANSIC的構(gòu)成和用法有很大的區(qū)別,如printf和scanf。在ANSIC中,這兩個(gè)函數(shù)通常用作屏幕打印和接收字符,而在C51中,主要用于串口數(shù)據(jù)的發(fā)送和接收。4.1C51程序結(jié)構(gòu)特點(diǎn)同標(biāo)準(zhǔn)C一樣,C51的程序是由函數(shù)組成。C語言的函數(shù)以“{”開始,以“}”結(jié)束。其中必須有一個(gè)主函數(shù)main

8、(),程序的執(zhí)行從主函數(shù)main()開始,調(diào)用其他函數(shù)后返回主函數(shù)main(),最后在主函數(shù)中結(jié)束整個(gè)程序,而不管函數(shù)的排列順序如何。C語言的語句規(guī)則:1.每個(gè)變量必須先說明后引用。2.C語言程序一行可以書寫多條語句,但每個(gè)語句必須以“;”結(jié)尾,一個(gè)語句也可以多行書寫。3.C語言的注釋用/*……*/表示。4.“{”花括號(hào)必須成對(duì),位置隨意,多個(gè)花括號(hào)可同行書寫,也可逐行書寫。為層次分明,增加可讀性,同一層的“{”花括對(duì)齊,采用逐層縮進(jìn)方式書寫。C語言程序的組成結(jié)構(gòu):全局變量說明/*

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無此問題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。