freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

[工學(xué)]單片機(jī)應(yīng)用技術(shù)第九章(已修改)

2024-10-28 18:27 本頁面
 

【正文】 第九章 C51程序設(shè)計(jì)入門 ? C51程序的基本構(gòu)成 ? C51的數(shù)據(jù)結(jié)構(gòu) ? C51的運(yùn)算符 ? C51的函數(shù) ? C51的編譯預(yù)處理 ? C51應(yīng)用舉例 ? 本章小結(jié) C51程序的基本構(gòu)成 ? C51源程序的結(jié)構(gòu)與一般的 C語言并沒有太大的差別。 C51的源程序文件擴(kuò)展名為 “ .C”,如: 。 ? 下面來看一個(gè)簡單的 C51源程序( ),該程序可以實(shí)現(xiàn) 。 ? include /*編譯器自帶的 h文 件,使用 */ ? sbit L1=P1^0。 /*定義位變量 L1為 ,全局變量說明 */ ? void delay02s(void) /*延時(shí) 明 */ 下一頁 返回 C51程序的基本構(gòu)成 ? { ? unsigned char i,j,k。 /*定義無符號(hào)字符型 變量 i,j,k ,局部變量說明 */ ? for(i=20。i0。i) ? for(j=20。j0。j) ? for(k=248。k0。k)。 ? } ? void main(void) /*主函數(shù) */ ? { ? while(1) 上一頁 下一頁 返回 C51程序的基本構(gòu)成 ? { ? L1=0。 ? delay02s()。 /*調(diào)用函數(shù)delay02s() */ ? L1=1。 ? delay02s()。 ? } ? } 上一頁 下一頁 返回 C51程序的基本構(gòu)成 ? 由上面的例子可以看出: ? 1. 一個(gè) C51源程序是一個(gè)函數(shù)的集合。在這個(gè)集合中,僅有一個(gè)主函數(shù) main(),它是程序的入口。不論主程序在什么位置,程序的執(zhí)行都是從 main()函數(shù)開始的,其余函數(shù)都可以被主函數(shù)調(diào)用,也可以相互調(diào)用,但 main()函數(shù)不能被其他函數(shù)調(diào)用。 ? 2. 在每個(gè)函數(shù)中所使用的變量都必須先說明后引用。若為全局變量,則可以被程序的任何一個(gè)函數(shù)引用;若為局部變量,則只能在本函數(shù)中被引用。如上例中的變量 L1可以被所有的函數(shù)引用,而變量 i,j,k只能被 delay02s()函數(shù)引用 。 上一頁 下一頁 返回 C51程序的基本構(gòu)成 ? 3. C51源程序書寫格式自由,一行可以書寫多條語句,一個(gè)語句也可以分多行書寫。但在每個(gè)語句和數(shù)據(jù)定義的最后必須有一個(gè)分號(hào),即使是程序中的最后一個(gè)語句也必須包含分號(hào)。 ? 4. 可以用 /*…… */ 對(duì) C51源程序中的任何部分作注釋,以增加程序的可讀性。 ? 5. 可以利用 include語句將比較常用的函數(shù)做成的頭文件(以 .h為后綴名)引入當(dāng)前文件。如上例中的 就是一個(gè)頭文件,語句 “ sbit L1=P1^0?!敝械?P1就是在頭文件中被定義了的變量,在本例中只需使用就可以了。 上一頁 返回 C51的數(shù)據(jù)結(jié)構(gòu) ? C51與 C語言相同,其數(shù)據(jù)有常量和變量之分。常量是在程序運(yùn)行中不能改變值的量,可以是字符、十進(jìn)制數(shù)或十六進(jìn)制數(shù)(用 0x表示)。變量是在程序運(yùn)行過程中不斷變化的量。無論是常量或變量,其數(shù)據(jù)結(jié)構(gòu)是以數(shù)據(jù)類型決定的。 ? C51的數(shù)據(jù)類型 ? C語言的數(shù)據(jù)類型可分為基本數(shù)據(jù)類型和復(fù)雜數(shù)據(jù)類型,其中復(fù)雜數(shù)據(jù)類型又是由基本數(shù)據(jù)類型構(gòu)造而成。 C51中的數(shù)據(jù)類型既包含與 C語言中相同的數(shù)據(jù)類型,也包含其特有的數(shù)據(jù)類型。 ? 1. Char:字符型 下一頁 返回 C51的數(shù)據(jù)結(jié)構(gòu) ? 其長度為一個(gè)字節(jié)。有 signed char(有符號(hào)數(shù))和unsigned char(無符號(hào)數(shù))兩種,默認(rèn)值為 signed char。 unsigned char類型數(shù)據(jù)可以表達(dá)的數(shù)值范圍是0~255, signed char類型數(shù)據(jù)的最高位表示符號(hào)位,“ 0”為正數(shù), “ 1”為負(fù)數(shù)。負(fù)數(shù)用補(bǔ)碼表示,其表達(dá)的數(shù)值范圍是 ?128~+127。 ? 2. Int:整型 ? 其長度為兩個(gè)字節(jié)。有 signed int和 unsigned int兩種,默認(rèn)值為 signed int。 unsigned int類型數(shù)據(jù)可以表達(dá)的數(shù)值范圍是 0~65535, signed int類型數(shù)據(jù)的最高位表示符號(hào)位, “ 0”為正數(shù), “ 1”為負(fù)數(shù)。其表達(dá)的數(shù)值范圍是?32768~+32767。 上一頁 下一頁 返回 C51的數(shù)據(jù)結(jié)構(gòu) ? 3. Long:長整型 ? 其長度為四個(gè)字節(jié)。有 signed long和 unsigned long兩種,默認(rèn)值為 signed long。 unsigned long類型數(shù)據(jù)可以表達(dá)的數(shù)值范圍是 0~4294967295, signed lomg類型數(shù)據(jù)的最高位表示符號(hào)位, “ 0”為正數(shù), “ 1”為負(fù)數(shù)。其表達(dá)的數(shù)值范圍是 ?2147483648~+2147483647。 ? 4. Float:浮點(diǎn)型 ? 它是符合 IEEE754標(biāo)準(zhǔn)的單精度浮點(diǎn)型數(shù)據(jù),其長度為四個(gè)字節(jié)。在內(nèi)存中的存放格式如下: 字節(jié)地址 +0 +1 +2 +3 浮點(diǎn)數(shù)內(nèi)容 S EEEEEEE E MMMMMMM MMMMMMM MMMMMMM 上一頁 下一頁 返回 C51的數(shù)據(jù)結(jié)構(gòu) ? 其中, S表示符號(hào)位, “ 0”為正數(shù), “ 1”為負(fù)數(shù)。 E為階碼,占 8位二進(jìn)制數(shù)。階碼的 E值是以 2為底的指數(shù)再加上偏移量127表示的,其取值范圍是 1~254。 M為尾數(shù)的小數(shù)部分,用 23位二進(jìn)制數(shù)表示,尾數(shù)的整數(shù)部分永遠(yuǎn)是 “ 1”,因此被省略,但實(shí)際是隱含存在的。一個(gè)浮點(diǎn)數(shù)的數(shù)值可表示為( ?1) S 2E—127 ( )。 ? 例如, ?=0xC0E00000,以下為該數(shù)在內(nèi)存中的格式: ? 除以上幾種基本數(shù)據(jù)類型外,還有以下一些數(shù)據(jù)類型。 字節(jié)地址 +0 +1 +2 +3 浮點(diǎn)數(shù)內(nèi)容 1 1000000 1 1110000 0000000 0000000 上一頁 下一頁 返回 C51的數(shù)據(jù)結(jié)構(gòu) ? 5. *:指針型 ? 它與前四種數(shù)據(jù)結(jié)構(gòu)不同的是,它本身就是一個(gè)變量,在這個(gè)變量中存放的不是數(shù)據(jù)而是指向另一個(gè)數(shù)據(jù)的地址。 C51中的指針變量的長度一般為 1~3字節(jié)。其變量類型的表示方法是在指針符號(hào) “ *” 的前面冠以數(shù)據(jù)類型的符號(hào),如 char * point1表示 point1是一個(gè)字符型的指針變量。 ? 指針型變量的用法與匯編語言中的間接尋址方式類似, 表 91表示兩種語言的對(duì)照用法。 ? 6. bit:位類型 ? 位類型是 C51編譯器的一種擴(kuò)充數(shù)據(jù)類型,利用它可以定義 上一頁 下一頁 返回 C51的數(shù)據(jù)結(jié)構(gòu) 一個(gè)位變量,但不能定義位指針,也不能定義位數(shù)組。它的值只可能為 0或 1。 ? 7. sfr:特殊功能寄存器類型 ? 它也是 C51編譯器的一種擴(kuò)充數(shù)據(jù)類型,利用它可以定義 51單片機(jī)的所有內(nèi)部 8位特殊功能寄存器。 Sfr型數(shù)據(jù)占用一個(gè)內(nèi)存單元,取值范圍為 0~255。例如: sfr P0=0x80,表示定義 P0為特殊功能寄存器型數(shù)據(jù),且為 P0口的內(nèi)部寄存器,在程序中就可以使用 P0=255對(duì) P0口的所有引腳置高電平。 ? 8. sfr16: 16位特殊功能寄存器類型 上一頁 下一頁 返回 C51的數(shù)據(jù)結(jié)構(gòu) ? 與 sfr一樣, sfr16也是用于定義 51單片機(jī)內(nèi)部的 16位特殊功能寄存器。它占用兩個(gè)內(nèi)存單元,取值范圍為 0~65535。 ? 9. sbit:可尋址位類型 ? 它也是 C51編譯器的一種擴(kuò)充數(shù)據(jù)類型,利用它可以訪問 51單片機(jī)內(nèi)部 RAM的可尋址位及特殊功能寄存器中的可尋址位。例如: ? sfr P1=0x90 ? sbit P1_1=P1^1 ? sbit OV=0xD0^2 ? 表 92列出了 C51的所有數(shù)據(jù)類型。 上一頁 下一頁 返回 C51的數(shù)據(jù)結(jié)構(gòu) ? 在 C51中,如果出現(xiàn)運(yùn)算對(duì)象的數(shù)據(jù)類型不一致的情況,按以下優(yōu)先級(jí)(由低到高)順序自動(dòng)進(jìn)行隱式轉(zhuǎn)換。 ? bit → char → int → long → float ? singed → unsigned ? 轉(zhuǎn)換時(shí)由低向高進(jìn)行。 ? C51編譯器除了能支持以上這些基本數(shù)據(jù)類型外,還能支持復(fù)雜的構(gòu)造類型,如結(jié)構(gòu)體、聯(lián)合體等,這里就不一一介紹了。 ? C51的常量 ? 常量就是在程序執(zhí)行過程中不能改變值的量。常量的數(shù)據(jù)類型有整型、浮點(diǎn)型、字符型及字符串型及位類型。 上一頁 下一頁 返回 C51的數(shù)據(jù)結(jié)構(gòu) ? C51的程序結(jié)構(gòu)及數(shù)據(jù)類型與 C語言類似,根據(jù) 89C51單片機(jī)的存儲(chǔ)特點(diǎn),增加了幾種新的數(shù)據(jù)類型: sfr、 sfr1bit、 sbit。 ? C51中的函數(shù)大多與 C相同,增加了兩個(gè)特殊函數(shù):再入函數(shù)和中斷服務(wù)函數(shù)。再入函數(shù)用于遞歸調(diào)用;中斷服務(wù)函數(shù)用于編寫中斷服務(wù)程序。 ? C51的編譯預(yù)處理命令的作用類似于匯編語言中的偽指令。與 C語言基本相同。 ? C語言編寫單片機(jī)應(yīng)用程序已成為單片機(jī)軟件設(shè)計(jì)的趨勢,應(yīng)多練習(xí)提高 C語言的應(yīng)用能力,特別是與匯編語言混合編程的能力。 上一頁 下一頁 返回 C51的數(shù)據(jù)結(jié)構(gòu) ? 1. 整型常量 ? 可用十進(jìn)制、十六進(jìn)制表示,如果是長整數(shù)則在數(shù)字后面加L。例如: ? 十進(jìn)制整數(shù): 1234, ?56 ? 十六進(jìn)制整數(shù): 0x123, ?0xFF ? 長整數(shù): 6789L、 0xAB12L ? 2. 浮點(diǎn)型常量 ? 可用十進(jìn)制和指數(shù)兩種形式表示。 ? 十進(jìn)制由數(shù)字和小數(shù)點(diǎn)組成,整數(shù)和小數(shù)部分為 0可以省略,但小數(shù)點(diǎn)不能省略。例如: , .1234, 1234.。 上一頁 下一頁 返回 C51的數(shù)據(jù)結(jié)構(gòu) ? 指數(shù)表示形式為: [177。 ]數(shù)字 [.數(shù)字 ]e[177。 ]數(shù)字。例如:, ?6e7等。 ? 3. 字符型常量 ? 為單引號(hào)內(nèi)的字符,如 ‘ e’、 ‘ k’等。對(duì)不可顯示的控制符,可在該字符前用反斜杠 “ \”構(gòu)成轉(zhuǎn)義字符表示。如 表 93為一些常用的轉(zhuǎn)義字符。 ? 4. 字符串型常量 ? 為雙引號(hào)內(nèi)的字符,如 “ ABCD”、 “ @%”等。當(dāng)雙引號(hào)內(nèi)沒有字符時(shí),表示空字符串。在 C51中字符串常量是作為字符型數(shù)組來處理,在存儲(chǔ)字符串時(shí)系統(tǒng)會(huì)在字符串的尾部加上 \0轉(zhuǎn)義字符作為該字符串的結(jié)束符。所以字符串常量“ A”與字符常量 ‘ A’是不同的。
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
公安備案圖鄂ICP備17016276號(hào)-1