單片機(jī)C語言-第2章51單片機(jī)硬件及C51編程基礎(chǔ)-6課件_第1頁
單片機(jī)C語言-第2章51單片機(jī)硬件及C51編程基礎(chǔ)-6課件_第2頁
單片機(jī)C語言-第2章51單片機(jī)硬件及C51編程基礎(chǔ)-6課件_第3頁
單片機(jī)C語言-第2章51單片機(jī)硬件及C51編程基礎(chǔ)-6課件_第4頁
單片機(jī)C語言-第2章51單片機(jī)硬件及C51編程基礎(chǔ)-6課件_第5頁
已閱讀5頁,還剩25頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

2.6數(shù)組、指針、函數(shù)2.6.1數(shù)組1、一維數(shù)組:具有一個(gè)下標(biāo)的數(shù)組元素組成的數(shù)組類型說明符數(shù)組名[元素個(gè)數(shù)];intdemol[10];inta[5]={1,2,3,4,5};2、二維數(shù)組或多維數(shù)組:具有兩個(gè)或兩個(gè)以上下標(biāo)的數(shù)組元素組成的數(shù)組floatdemo2[3][4];inta[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};2.6數(shù)組、指針、函數(shù)2.6.1數(shù)組3、字符數(shù)組:若一個(gè)數(shù)組的元素是字符型的,則該數(shù)組是字符數(shù)組chara[12]={“ChongQing”};4、查表:數(shù)組的一個(gè)有用功能是查表unsignedcharcodetab[5]={1,2,3,4,5};3、字符數(shù)組:若一個(gè)數(shù)組的元素是字符型的,則該數(shù)組是字符數(shù)組例題:將攝氏溫度轉(zhuǎn)換成華氏溫度#defineucharunsignedcharucharcodetempt[]={32,34,36,37,39,41};ucharftoc(uchardegc){ returntempt[degc]; }

voidmain(){ ucharx; x=ftoc(5); }例題:將攝氏溫度轉(zhuǎn)換成華氏溫度#defineuchar2.6.2指針1、指針是用來存放數(shù)組或變量的存儲(chǔ)區(qū)地址。程序的指令、常量、變量和特殊寄存器都存放在內(nèi)存單元或相應(yīng)的存儲(chǔ)區(qū)中,這些存儲(chǔ)區(qū)是按字節(jié)劃分的,每個(gè)存儲(chǔ)單元都可以用唯一的編號(hào)去讀或?qū)憯?shù)據(jù),這個(gè)編號(hào)就是常說的存儲(chǔ)單元的地址。而讀寫這個(gè)單元的動(dòng)作稱為尋址。2、指針變量:用一變量存放另一個(gè)變量的地址,那么用來存放變量地址的變量稱為指針變量。2.6.2指針1、指針是用來存放數(shù)組或變量的存儲(chǔ)區(qū)地址。3、基于存儲(chǔ)器的指針:

定義一個(gè)指針時(shí),若給出了它所指對(duì)象的存儲(chǔ)類型,則該指針是基于存儲(chǔ)器的指針。

charxdata*px;charxdata*datapdx;4、一般指針一般指針聲明格式如下:

數(shù)據(jù)類型*指針變量;

char*pz;3、基于存儲(chǔ)器的指針:

1、一般函數(shù)

函數(shù)定義的一般形式為:

函數(shù)類型函數(shù)名(形式參數(shù)表)

{

局部變量定義函數(shù)體語句

}“函數(shù)類型”說明了自定義函數(shù)返回值的類型?!昂瘮?shù)名”是用標(biāo)識(shí)符表示的自定義函數(shù)名字?!靶问絽?shù)表”中列出的是在主調(diào)用函數(shù)與被調(diào)用函數(shù)之間傳遞數(shù)據(jù)的形式參數(shù),形式參數(shù)的類型必須要加以說明。如果定義的是無參函數(shù),可以沒有形式參數(shù)表,但圓括號(hào)不能省略。“局部變量定義”是對(duì)在函數(shù)內(nèi)部使用的局部變量進(jìn)行定義。“函數(shù)體語句”是為完成該函數(shù)的特定功能而設(shè)置的各種語句。2.6.3函數(shù)1、一般函數(shù)2.6.3函數(shù)

C51程序中函數(shù)是可以互相調(diào)用的。所謂函數(shù)調(diào)用就是在一個(gè)函數(shù)體中引用另外一個(gè)已經(jīng)定義了的函數(shù),前者稱為主調(diào)函數(shù),后者稱為被調(diào)用函數(shù)。函數(shù)調(diào)用的一般形式為:

函數(shù)名(實(shí)際參數(shù)表)“函數(shù)名”指出被調(diào)用的函數(shù)?!皩?shí)際參數(shù)表”中可以包含多個(gè)實(shí)際參數(shù),各個(gè)參數(shù)之間用逗號(hào)隔開。實(shí)際參數(shù)的作用是將它的值傳遞給被調(diào)用函數(shù)中的形式參數(shù)。

函數(shù)調(diào)用中的實(shí)際參數(shù)與函數(shù)定義中的形式參數(shù)必須在個(gè)數(shù)、類型及順序上嚴(yán)格保持一致,以便將實(shí)際參數(shù)的值正確地傳遞給形式參數(shù)。否則在函數(shù)調(diào)用時(shí)會(huì)產(chǎn)生意想不到的錯(cuò)誤結(jié)果。

如果調(diào)用的是無參函數(shù),則可以沒有實(shí)際參數(shù)表,但圓括號(hào)不能省略。C51程序中函數(shù)是可以互相調(diào)用的。所謂函數(shù)調(diào)用就是在C51中可采用以下三種方式調(diào)用函數(shù):

(1)函數(shù)語句在主調(diào)函數(shù)中將函數(shù)調(diào)用作為一條語句。這是無參調(diào)用,它不要求被調(diào)函數(shù)返回一個(gè)確定的值,只要求它完成一定的操作。

(2)函數(shù)表達(dá)式在主調(diào)函數(shù)中將函數(shù)調(diào)用作為一個(gè)運(yùn)算對(duì)象直接出現(xiàn)在表達(dá)式中,這種表達(dá)式稱為函數(shù)表達(dá)式。這種函數(shù)調(diào)用方式通常要求被調(diào)函數(shù)返回一個(gè)確定的值。

(3)函數(shù)參數(shù)在主調(diào)函數(shù)中將函數(shù)調(diào)用作為另一個(gè)函數(shù)調(diào)用的實(shí)際參數(shù)。這種在調(diào)用一個(gè)函數(shù)的過程中又調(diào)用了另外一個(gè)函數(shù)的方式,稱為嵌套函數(shù)調(diào)用。C51中可采用以下三種方式調(diào)用函數(shù):函數(shù)說明的一般形式為:

類型標(biāo)識(shí)符被調(diào)用的函數(shù)名(形式參數(shù)表);其中,“類型標(biāo)識(shí)符”說明了函數(shù)返回值的類型?!靶问絽?shù)表”中說明各個(gè)形式參數(shù)的類型。函數(shù)的定義與函數(shù)的說明是完全不同的,二者在書寫形式上也不一樣。

函數(shù)定義時(shí),被定義函數(shù)名的圓括號(hào)后面沒有分號(hào)“;”,即函數(shù)定義還未結(jié)束,后面應(yīng)接著寫被定義的函數(shù)體部分。

函數(shù)說明結(jié)束時(shí)在圓括號(hào)的后面需要有一個(gè)分號(hào)“;”作為結(jié)束標(biāo)志。函數(shù)說明的一般形式為:(3)函數(shù)注意事項(xiàng)如下:1)函數(shù)實(shí)際參數(shù)的類型必須與形式參數(shù)的形式一致,否則會(huì)發(fā)生類型不匹配錯(cuò)誤。2)形式參數(shù)是調(diào)用函數(shù)時(shí)要傳入函數(shù)體內(nèi)參與運(yùn)算的變量,它可以有一個(gè)、幾個(gè)或沒有。當(dāng)不需要形式參數(shù)時(shí),括號(hào)內(nèi)可以為空或?qū)懭搿皏oid”,但括號(hào)不能少。3)函數(shù)類型:說明所定義函數(shù)返回值的類型。函數(shù)不需要返回值時(shí),函數(shù)類型為“void”,表示該函數(shù)沒有返回值。(3)函數(shù)注意事項(xiàng)如下:4)實(shí)際參數(shù)可以是常數(shù),也可以是變量或表達(dá)式,但要求它們具有確定的值。實(shí)際參數(shù)可以有零個(gè)或多個(gè)參數(shù),多個(gè)參數(shù)要用逗號(hào)分開,每個(gè)參數(shù)的類型、位置應(yīng)與函數(shù)定義時(shí)的形式參數(shù)一一對(duì)應(yīng)。如果類型不對(duì)應(yīng),就會(huì)出現(xiàn)錯(cuò)誤。調(diào)用的函數(shù)是無參函數(shù)時(shí),可以不寫參數(shù),但不能省略后面的括號(hào)。4)實(shí)際參數(shù)可以是常數(shù),也可以是變量或表達(dá)式,但要求它們具有2、中斷函數(shù)函數(shù)類型函數(shù)名interruptnusingninterrupt和using為關(guān)鍵字,interrupt后面的n為中斷源的編號(hào),中斷號(hào)n的取值范圍為0~31。編譯器從8n+3處產(chǎn)生中斷向量,該向量包含一個(gè)到中斷函數(shù)入口地址的絕對(duì)跳轉(zhuǎn)。using后面的n為所選擇寄存器組,取值范圍為0~3。2、中斷函數(shù)3、函數(shù)庫(kù)#include<>(1)SFR庫(kù):reg51.h(2)I/O函數(shù)庫(kù)stdio.hI/O函數(shù)庫(kù)主要用于數(shù)據(jù)通過串口的輸入和輸出等操作。串口初始化:SCON=0x50; TMOD|=0x20;PCON|=0x80; TL1=0xF4; TH1=0xF4;IE|=0x90; TR1=1;

3、函數(shù)庫(kù)#include<>(1)SFR庫(kù):(3)內(nèi)部函數(shù)庫(kù)intrins.h(3)內(nèi)部函數(shù)庫(kù)intrins.h(4)絕對(duì)地址訪問庫(kù)absacc.h(4)絕對(duì)地址訪問庫(kù)absacc.h2.6數(shù)組、指針、函數(shù)2.6.1數(shù)組1、一維數(shù)組:具有一個(gè)下標(biāo)的數(shù)組元素組成的數(shù)組類型說明符數(shù)組名[元素個(gè)數(shù)];intdemol[10];inta[5]={1,2,3,4,5};2、二維數(shù)組或多維數(shù)組:具有兩個(gè)或兩個(gè)以上下標(biāo)的數(shù)組元素組成的數(shù)組floatdemo2[3][4];inta[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};2.6數(shù)組、指針、函數(shù)2.6.1數(shù)組3、字符數(shù)組:若一個(gè)數(shù)組的元素是字符型的,則該數(shù)組是字符數(shù)組chara[12]={“ChongQing”};4、查表:數(shù)組的一個(gè)有用功能是查表unsignedcharcodetab[5]={1,2,3,4,5};3、字符數(shù)組:若一個(gè)數(shù)組的元素是字符型的,則該數(shù)組是字符數(shù)組例題:將攝氏溫度轉(zhuǎn)換成華氏溫度#defineucharunsignedcharucharcodetempt[]={32,34,36,37,39,41};ucharftoc(uchardegc){ returntempt[degc]; }

voidmain(){ ucharx; x=ftoc(5); }例題:將攝氏溫度轉(zhuǎn)換成華氏溫度#defineuchar2.6.2指針1、指針是用來存放數(shù)組或變量的存儲(chǔ)區(qū)地址。程序的指令、常量、變量和特殊寄存器都存放在內(nèi)存單元或相應(yīng)的存儲(chǔ)區(qū)中,這些存儲(chǔ)區(qū)是按字節(jié)劃分的,每個(gè)存儲(chǔ)單元都可以用唯一的編號(hào)去讀或?qū)憯?shù)據(jù),這個(gè)編號(hào)就是常說的存儲(chǔ)單元的地址。而讀寫這個(gè)單元的動(dòng)作稱為尋址。2、指針變量:用一變量存放另一個(gè)變量的地址,那么用來存放變量地址的變量稱為指針變量。2.6.2指針1、指針是用來存放數(shù)組或變量的存儲(chǔ)區(qū)地址。3、基于存儲(chǔ)器的指針:

定義一個(gè)指針時(shí),若給出了它所指對(duì)象的存儲(chǔ)類型,則該指針是基于存儲(chǔ)器的指針。

charxdata*px;charxdata*datapdx;4、一般指針一般指針聲明格式如下:

數(shù)據(jù)類型*指針變量;

char*pz;3、基于存儲(chǔ)器的指針:

1、一般函數(shù)

函數(shù)定義的一般形式為:

函數(shù)類型函數(shù)名(形式參數(shù)表)

{

局部變量定義函數(shù)體語句

}“函數(shù)類型”說明了自定義函數(shù)返回值的類型?!昂瘮?shù)名”是用標(biāo)識(shí)符表示的自定義函數(shù)名字?!靶问絽?shù)表”中列出的是在主調(diào)用函數(shù)與被調(diào)用函數(shù)之間傳遞數(shù)據(jù)的形式參數(shù),形式參數(shù)的類型必須要加以說明。如果定義的是無參函數(shù),可以沒有形式參數(shù)表,但圓括號(hào)不能省略?!熬植孔兞慷x”是對(duì)在函數(shù)內(nèi)部使用的局部變量進(jìn)行定義?!昂瘮?shù)體語句”是為完成該函數(shù)的特定功能而設(shè)置的各種語句。2.6.3函數(shù)1、一般函數(shù)2.6.3函數(shù)

C51程序中函數(shù)是可以互相調(diào)用的。所謂函數(shù)調(diào)用就是在一個(gè)函數(shù)體中引用另外一個(gè)已經(jīng)定義了的函數(shù),前者稱為主調(diào)函數(shù),后者稱為被調(diào)用函數(shù)。函數(shù)調(diào)用的一般形式為:

函數(shù)名(實(shí)際參數(shù)表)“函數(shù)名”指出被調(diào)用的函數(shù)。“實(shí)際參數(shù)表”中可以包含多個(gè)實(shí)際參數(shù),各個(gè)參數(shù)之間用逗號(hào)隔開。實(shí)際參數(shù)的作用是將它的值傳遞給被調(diào)用函數(shù)中的形式參數(shù)。

函數(shù)調(diào)用中的實(shí)際參數(shù)與函數(shù)定義中的形式參數(shù)必須在個(gè)數(shù)、類型及順序上嚴(yán)格保持一致,以便將實(shí)際參數(shù)的值正確地傳遞給形式參數(shù)。否則在函數(shù)調(diào)用時(shí)會(huì)產(chǎn)生意想不到的錯(cuò)誤結(jié)果。

如果調(diào)用的是無參函數(shù),則可以沒有實(shí)際參數(shù)表,但圓括號(hào)不能省略。C51程序中函數(shù)是可以互相調(diào)用的。所謂函數(shù)調(diào)用就是在C51中可采用以下三種方式調(diào)用函數(shù):

(1)函數(shù)語句在主調(diào)函數(shù)中將函數(shù)調(diào)用作為一條語句。這是無參調(diào)用,它不要求被調(diào)函數(shù)返回一個(gè)確定的值,只要求它完成一定的操作。

(2)函數(shù)表達(dá)式在主調(diào)函數(shù)中將函數(shù)調(diào)用作為一個(gè)運(yùn)算對(duì)象直接出現(xiàn)在表達(dá)式中,這種表達(dá)式稱為函數(shù)表達(dá)式。這種函數(shù)調(diào)用方式通常要求被調(diào)函數(shù)返回一個(gè)確定的值。

(3)函數(shù)參數(shù)在主調(diào)函數(shù)中將函數(shù)調(diào)用作為另一個(gè)函數(shù)調(diào)用的實(shí)際參數(shù)。這種在調(diào)用一個(gè)函數(shù)的過程中又調(diào)用了另外一個(gè)函數(shù)的方式,稱為嵌套函數(shù)調(diào)用。C51中可采用以下三種方式調(diào)用函數(shù):函數(shù)說明的一般形式為:

類型標(biāo)識(shí)符被調(diào)用的函數(shù)名(形式參數(shù)表);其中,“類型標(biāo)識(shí)符”說明了函數(shù)返回值的類型?!靶问絽?shù)表”中說明各個(gè)形式參數(shù)的類型。函數(shù)的定義與函數(shù)的說明是完全不同的,二者在書寫形式上也不一樣。

函數(shù)定義時(shí),被定義函數(shù)名的圓括號(hào)后面沒有分號(hào)“;”,即函數(shù)定義還未結(jié)束,后面應(yīng)接著寫被定義的函數(shù)體部分。

函數(shù)說明結(jié)束時(shí)在圓括號(hào)的后面需要有一個(gè)分號(hào)“;”作為結(jié)束標(biāo)志。函數(shù)說明的一般形式為:(3)函數(shù)注意事項(xiàng)如下:1)函數(shù)實(shí)際參數(shù)的類型必須與形式參數(shù)的形式一致,否則會(huì)發(fā)生類型不匹配錯(cuò)誤。2)形式參數(shù)是調(diào)用函數(shù)時(shí)要傳入函數(shù)體內(nèi)參與運(yùn)算的變量,它可以有一個(gè)、幾個(gè)或沒有。當(dāng)不需要形式參數(shù)時(shí),括號(hào)內(nèi)可以為空或?qū)懭搿皏oid”,但括號(hào)不能少。3)函數(shù)類型:說明所定義函數(shù)返回值的類型。函數(shù)不需要返回值時(shí),函數(shù)類型為“void”,表示該函數(shù)沒有返回值。(3)函數(shù)注意事項(xiàng)如下:4)實(shí)際參數(shù)可以是常數(shù),也可以是變量或表達(dá)式,但要求它們具有確定的值。實(shí)際參數(shù)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論