




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、C51的概要、c語(yǔ)言是通用的編程語(yǔ)言,碼率高,數(shù)據(jù)類型和運(yùn)算符豐富,位操作能力高,適合各種應(yīng)用程序的編程。 用c語(yǔ)言進(jìn)行單片機(jī)的應(yīng)用系統(tǒng)開(kāi)發(fā),具有編程靈活、調(diào)試容易、目標(biāo)代碼編譯效率高的特點(diǎn)。 c語(yǔ)言也是目前使用最廣泛的單片機(jī)應(yīng)用程序編程語(yǔ)言。 用c語(yǔ)言編程的單片機(jī)應(yīng)用程序被稱為單片機(jī)程序。 MCS-51系列單片機(jī)開(kāi)發(fā)系統(tǒng)的編譯軟件能編譯51單片機(jī)c語(yǔ)言源程序,被稱為C51編譯器。 C51編譯軟件可以調(diào)試51單片機(jī)c語(yǔ)言程序。擴(kuò)展了訪問(wèn)MCS-51單片機(jī)硬件的數(shù)據(jù)類型2 )存儲(chǔ)類型按MCS-51單片機(jī)的存儲(chǔ)空間分類3 )存儲(chǔ)模式遵循存儲(chǔ)空間中選擇的編譯器模式4 ) poi C51的特點(diǎn),C51
2、編譯器對(duì)MCS-51單片機(jī)硬件在以下方面進(jìn)行了ANSI C擴(kuò)展。 C51編程具有以下特征。 1 )可以管理內(nèi)部寄存器和存儲(chǔ)器的分配,編程時(shí)不需要考慮不同存儲(chǔ)器的地址和數(shù)據(jù)類型等詳細(xì)問(wèn)題2 )程序由幾個(gè)函數(shù)構(gòu)成,具有良好的模塊結(jié)構(gòu),移植性好,項(xiàng)目的維護(hù)管理容易可以直接引用豐富的子程序庫(kù),大大減少了用戶的編程工作量,提高了編程效率4 )與匯編語(yǔ)言的交叉編程。 用匯編語(yǔ)言編制與硬件相關(guān)的程序,用C51編制與硬件不相關(guān)的運(yùn)算程序,充分發(fā)揮兩種語(yǔ)言的優(yōu)點(diǎn),提高開(kāi)發(fā)效率。 C51的特征,C51編程與匯編語(yǔ)言編程相同。 單片機(jī)c語(yǔ)言源程序可以通過(guò)編輯、編譯和連接,生成并執(zhí)行目標(biāo)程序(.BIN和. HEX )
3、文件。 調(diào)試51單片機(jī)c語(yǔ)言程序可以利用Keil C51編譯器。 注意:使用C51編程可以代替復(fù)雜的匯編語(yǔ)言編程,但是需要理解MCS-51單片機(jī)的硬件配置。 在單片機(jī)系統(tǒng)的開(kāi)發(fā)中,組合匯編語(yǔ)言和C51編程的方法很有效。 C51的特征、C51與匯編器的比較、由匯編器作成的流水燈程序占有的存儲(chǔ)空間為00H18H,由C51作成的流水燈程序占有的存儲(chǔ)空間為00H48H,是匯編器的3倍。 標(biāo)識(shí)符是標(biāo)識(shí)源程序中對(duì)象的名稱,包括語(yǔ)句、數(shù)據(jù)類型、函數(shù)、變量、數(shù)組等。 標(biāo)識(shí)符由字符串、數(shù)字、下劃線等組成。 第一個(gè)字母必須是字母或下劃線,不能以數(shù)字開(kāi)頭。 如果“1_a”錯(cuò)誤,則在編譯時(shí)會(huì)顯示錯(cuò)誤信息。 在C51編
4、譯器中,僅支持標(biāo)識(shí)符的前32位是有效的標(biāo)識(shí)符。 C51語(yǔ)言是區(qū)分大小寫(xiě)的高級(jí)語(yǔ)言,“a_1”和“a_1”是完全不同的標(biāo)識(shí)符。標(biāo)識(shí)符和關(guān)鍵字以及C51中某些庫(kù)函數(shù)的標(biāo)識(shí)符以下劃線開(kāi)始,因此用戶定義的標(biāo)識(shí)符通常不使用以下劃線開(kāi)始的名稱。 標(biāo)識(shí)符在命名時(shí)必須簡(jiǎn)單,意思清楚。 這個(gè)有助于理解程序。 關(guān)鍵字是編程語(yǔ)言保存的特殊標(biāo)識(shí)符,具有固定的名稱和意義,在程序創(chuàng)建過(guò)程中不能將關(guān)鍵字用于其他用途。 C51的關(guān)鍵字除了根據(jù)ANSI C標(biāo)準(zhǔn)的32個(gè)關(guān)鍵字外,還根據(jù)MCS-51單片機(jī)的特征擴(kuò)展了關(guān)鍵字。 C51關(guān)鍵字如表5-1所示。 在C51的文本編輯器中創(chuàng)建c程序時(shí),int關(guān)鍵字的默認(rèn)顏色可以用不同的顏色顯
5、示保留關(guān)鍵字,如天藍(lán)色。 標(biāo)識(shí)符和關(guān)鍵字、標(biāo)識(shí)符和關(guān)鍵字、標(biāo)識(shí)符和關(guān)鍵字、標(biāo)識(shí)符和關(guān)鍵字、C51的數(shù)據(jù)類型,C51具有ANSI C的所有標(biāo)準(zhǔn)數(shù)據(jù)類型。 基本數(shù)據(jù)類型為char、int、短、長(zhǎng)、浮、雙精度。 在C51編譯器中,短型和int型相同,雙型和浮點(diǎn)型相同。 C51的數(shù)據(jù)類型、C51添加的特殊數(shù)據(jù)類型和指針類型本身是一個(gè)變量,該變量包含指向其他數(shù)據(jù)的地址。這個(gè)指針變量必須占用處理器的長(zhǎng)度,但在C51中其長(zhǎng)度通常為13字節(jié)。 C51的數(shù)據(jù)類型、sfr特殊功能寄存器,利用它可以訪問(wèn)MCS-51單片機(jī)內(nèi)部的所有特殊功能寄存器。 如果在sfr P1=0 x90中定義特殊功能寄存器變量“P1”,則變
6、量P1指的是51單片機(jī)的P1端口。 sbit訪問(wèn)芯片內(nèi)部RAM的可尋址位或特殊功能寄存器的可尋址位。 定義方法有以下3種: (1)sbit比特變量名=比特地址必須在80HFFH之間。 (2)sbit位變量名=特殊功能寄存器名位位置可尋址位在特殊功能寄存器中時(shí),可采用該方法。 比特位置是07之間的常數(shù)。 (3)sbit比特變量名=字節(jié)地址比特位置、sbit可地址比特、C51的數(shù)據(jù)類型、sbit和比特的差異: sbit定義特殊功能寄存器的可地址比特定義通常的比特變量,在一個(gè)函數(shù)中可以包含bit型的參數(shù)另外,MCS-51單片機(jī)的特殊功能寄存器及其可尋址位在文件reg51.h報(bào)頭文件中預(yù)先定義,只需要
7、在程序的開(kāi)頭加#include或#include就可以了。 C51的數(shù)據(jù)類型,耦合性:從左到右。 優(yōu)先級(jí):先除乘法,然后加減,先在括號(hào)內(nèi),然后在括號(hào)外。 模擬運(yùn)算如7%3那樣求出馀數(shù),結(jié)果是7除以3得到馀數(shù)1。 可以在變量之前或之后使用自增減運(yùn)算符。 例如,I或-i表示在使用I之前,將I的值加1或減1。 例如,使用I或i-,變量I后,將I的值增加1或1。 C51的算術(shù)運(yùn)算符、C51的算術(shù)運(yùn)算符有7種,C51的關(guān)系運(yùn)算符有6種。 優(yōu)先級(jí):上位4位、下位2位“=”和“!=等級(jí)低。 結(jié)合性:從左向右。 關(guān)系式的結(jié)果是邏輯值“真”或“假”,在C51中用“1”表示真,用“0”表示假。 有六種類型的C51
8、關(guān)系運(yùn)算符和C51位運(yùn)算符。 注:換檔操作對(duì)零換檔進(jìn)行補(bǔ)充。 比特運(yùn)算符只能進(jìn)行整形和字符型的運(yùn)算,不能運(yùn)算實(shí)數(shù)型的數(shù)據(jù)。 示例: char a=0 x0f; 公式a=a的值為0 xf0。 示例: char a=0 x22; 公式a2的值是0x8。 也就是說(shuō),a的值向左移動(dòng)2位,移動(dòng)的空位加0。 位運(yùn)算符、Reg52.h報(bào)頭文件,該報(bào)頭文件定義了52內(nèi)核的單片機(jī)內(nèi)部的所有功能寄存器。 右鍵單擊#include并單擊打開(kāi)文檔時(shí),頭文件:Reg52.h頭文件,右圖為頭文件的宏定義:例如“Sfr P0=0 x80; ”可以打開(kāi)句子的意思是將單片機(jī)內(nèi)部的80H地址寄存器改名為P0。 有兩種方法可以添加
9、頭文件. 和“reg52.h”有點(diǎn)不同,被普遍采用。 今后要?jiǎng)?chuàng)建單片機(jī)的程序時(shí),在程序的第一行中包含頭文件。define宏定義,第02句“#define uint unsigned int”將uint unsigned更名為int。 定義int后,以下語(yǔ)句在int:12句中顯示“uint i; ”出現(xiàn)的Main ()主函數(shù)的寫(xiě)法,Void main ()形式的注意:沒(méi)有分號(hào),沒(méi)有返回值和參數(shù)。 Void表示“空”,沒(méi)有返回值。 我們可以只用()寫(xiě),也可以寫(xiě)voidmain(voidmain )。 接下來(lái)是兩個(gè)括號(hào),主程序從這里執(zhí)行。 所有代碼都寫(xiě)在這個(gè)括號(hào)里,每個(gè)句子結(jié)束時(shí)都用分號(hào)(; 的雙曲
10、馀弦值。 例如,包括視頻主() P1=0xaa; 把/1010發(fā)送到P0 I/O端口,評(píng)論的寫(xiě)法,在c語(yǔ)言中,評(píng)論有兩種寫(xiě)法:1/這個(gè)評(píng)論只能寫(xiě)一行。 2/* */此注釋可以注釋多行。 格式: for (式1; 式2; 公式3) for循環(huán)語(yǔ)句執(zhí)行如下。 1 )首先解式1。 2 )求式2,如果該值為真(非零),則執(zhí)行for語(yǔ)句中指定的嵌入語(yǔ)句,執(zhí)行下一步驟3。如果值為假(0),則結(jié)束循環(huán)。 求解for循環(huán)文,3 )式3。 4 )返回上述步驟2繼續(xù)執(zhí)行。 5 )循環(huán)結(jié)束,執(zhí)行跟在for文體之后的句子。例如:無(wú)符號(hào)char I; for(i=2; i0; i -) for (; )/*無(wú)循環(huán)條件、
11、無(wú)限循環(huán)*/、for循環(huán)語(yǔ)句、無(wú)參數(shù)函數(shù)的標(biāo)記,多次使用幾個(gè)語(yǔ)句,如果這些語(yǔ)句相同,就可以將這些語(yǔ)句記述為無(wú)參數(shù)的子函數(shù)。 設(shè)計(jì)通過(guò)、for使P1.1端口的LED閃爍的程序。 #包含re g51.h# defineuintunsignediintsbitp1_1=P1; uint i,j; void main() while(1) led1=0; for (i=1000; i0; i- ) for (j=110; j0; j- ); /點(diǎn)亮LED 1s led1=1; for (i=1000; i0; i- ) for (j=110; j0; j- ); 關(guān)閉LED 1s,在這里“; ”,編譯
12、器缺省情況下將第二個(gè)for作為第一個(gè)for的內(nèi)部語(yǔ)句,I減1,j減110。 調(diào)用沒(méi)有參數(shù)函數(shù)的標(biāo)記,void delay() uint i; for(i=0; i34530; I ),呼叫:寫(xiě)法:while(1) led1=0; delay (); 另外,在上述子函數(shù)中,當(dāng)i=500時(shí),如果延遲500ms,則需要用子函數(shù)重新代入I,難以使用。 可以使用參數(shù)函數(shù)來(lái)解決這個(gè)問(wèn)題。 vioddelayms (unsignedintxms ) uniti,j; for(i=xms; i0; i-) /i=xms即約xms毫秒for(j=110; j0; j- );帶參數(shù)函數(shù)的書(shū)寫(xiě)方法、帶參數(shù)函數(shù)的調(diào)用、調(diào)用:while(1) led1=0; 點(diǎn)亮/led delay ms (1000 )/延遲1s led1=1; 關(guān)閉LED delayms(500 )延遲500ms,在for語(yǔ)句中延遲了實(shí)例516,# include“re g 51.h”void main () chara; for (; 沒(méi)有循環(huán)條件,無(wú)限循環(huán)*/a=P1
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年青霉素類藥項(xiàng)目發(fā)展計(jì)劃
- 常用商標(biāo)轉(zhuǎn)讓合同范本
- 2025年新材料產(chǎn)業(yè)園區(qū)合作協(xié)議書(shū)
- 鋼筋顆粒銷售合同范本
- 鋼結(jié)構(gòu)施工中的質(zhì)量控制措施探討
- 醫(yī)院消防安全保障協(xié)調(diào)措施
- 電力行業(yè)質(zhì)量保障措施與管理
- 酒店客戶滿意度提升保障措施
- 建筑工程標(biāo)書(shū)制作流程
- 醫(yī)生下鄉(xiāng)扶貧工作總結(jié)范文
- 2024年助產(chǎn)??谱o(hù)士理論考核試題及答案
- 江西省南昌二十八中教育集團(tuán)2023-2024學(xué)年八年級(jí)下學(xué)期期中考試數(shù)學(xué)試卷
- 項(xiàng)目工作分解結(jié)構(gòu)(EPC項(xiàng)目)
- APQP各階段資料清單
- 離心式壓縮機(jī)設(shè)計(jì)-離心壓縮機(jī)氣動(dòng)及結(jié)構(gòu)設(shè)計(jì)含6張CAD圖
- 醫(yī)院感染防控月度考核檢查表(稿)
- 綿竹事業(yè)單位筆試試題2024
- 信息管理課件
- 中信證券公司招聘考試題庫(kù)
- 2024臨床免疫學(xué)定性檢驗(yàn)程序性能驗(yàn)證指南
- 排列組合中的涂色問(wèn)題課件
評(píng)論
0/150
提交評(píng)論