第三章C51語(yǔ)言程序設(shè)計(jì)基礎(chǔ)_第1頁(yè)
第三章C51語(yǔ)言程序設(shè)計(jì)基礎(chǔ)_第2頁(yè)
第三章C51語(yǔ)言程序設(shè)計(jì)基礎(chǔ)_第3頁(yè)
第三章C51語(yǔ)言程序設(shè)計(jì)基礎(chǔ)_第4頁(yè)
第三章C51語(yǔ)言程序設(shè)計(jì)基礎(chǔ)_第5頁(yè)
已閱讀5頁(yè),還剩52頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第三章C51語(yǔ)言程序設(shè)計(jì)基礎(chǔ) 不同的嵌入式C語(yǔ)言與ANSI C語(yǔ)言(標(biāo)準(zhǔn)C)都有不同的地方,主要是由于它們所針對(duì)的硬件系統(tǒng)不同,對(duì)于MCS-51系列單片機(jī),其所用C稱為C51語(yǔ)言,其不同點(diǎn)主要體現(xiàn)在以下幾方面: C51語(yǔ)言中新增少量的有針對(duì)性的庫(kù)函數(shù) 比如:reg51.h(reg52.h), reg51.h中包含了所有51子系列單片機(jī)的SFR及其位定義,reg52.h中包含了所有52子系列單片機(jī)的SFR及其位定義。一般系統(tǒng)中都必須包含reg51.h或reg52.h。 在C51語(yǔ)言中增加了幾種針對(duì)MCS-51單片機(jī)特有的數(shù)據(jù)類型。例如: bit:聲明位變量,值為0或1; sbit:聲明特殊功能寄

2、存器中的特殊功能位,值為0或1; sfr:聲明特殊功能寄存器,sfr的字節(jié)地址為0255; sfrl6:聲明16位特殊功能寄存器,字地址為065535。C51語(yǔ)言中的存儲(chǔ)模式與MCS-51單片機(jī)的存儲(chǔ)器結(jié)構(gòu)密切相關(guān)。code、data、xdata、idata,以及根據(jù)51單片機(jī)特點(diǎn)而設(shè)定的pdata類型等。存儲(chǔ)區(qū)描 述DATA片內(nèi)RAM的低128單元BDATA片內(nèi)RAM的位空間,20H2FH共16個(gè)字節(jié)IDATA片內(nèi)RAM的256單元,必須采用間接尋址XDATA外部數(shù)據(jù)存儲(chǔ)器,使用DPTR間接尋址PDATA外部數(shù)據(jù)存儲(chǔ)器的前256字節(jié),只要通過(guò) P0口的地址進(jìn)行尋址CODE程序存儲(chǔ)器,使用DP

3、TR尋址存儲(chǔ)區(qū)存儲(chǔ)區(qū)地址范圍地址范圍功能說(shuō)明功能說(shuō)明內(nèi)部?jī)?nèi)部RAM(256Byte)00H-1FH內(nèi)部使用DATA區(qū),四個(gè)工作寄存器組(4*8=32Byte),用于內(nèi)部參數(shù)傳遞20H-2FHBDATA區(qū),DATA 區(qū)的16 個(gè)字節(jié)的可位尋址區(qū)30H-7FH用戶可用非位尋址DATA區(qū),可在一個(gè)周期內(nèi)直接尋址80H-FFHIDATA區(qū),用戶可用的內(nèi)部RAM 區(qū)的高128 個(gè)字節(jié),必須采用間接尋址80H-FFH可以進(jìn)行位尋址的特殊功能寄存器(SFR)外部擴(kuò)展外部擴(kuò)展RAM(最大(最大64KByte)00H-FFHPDATA區(qū),外部存儲(chǔ)區(qū)的256 個(gè)字節(jié)通過(guò)P0 口的地址對(duì)其尋址,需要兩個(gè)指令周期00

4、H-FFFFHXDATA區(qū)(外部存儲(chǔ)區(qū)),使用DPTR 尋址ROM(最大最大64KByte)00H-FFFFHCODE區(qū)(程序存儲(chǔ)區(qū)),使用DPTR 尋址51單片機(jī)存儲(chǔ)區(qū)分配如下:在定義變量時(shí),如果省略存儲(chǔ)類型,編譯程序會(huì)自動(dòng)選擇默認(rèn)存儲(chǔ)類型。默認(rèn)存儲(chǔ)類型有小模式(Small)、緊縮模式 (Compact)、巨模式(Large)。 三種存儲(chǔ)模式及相關(guān)說(shuō)明存儲(chǔ)模式存儲(chǔ)模式參數(shù)及局部變量分配參數(shù)及局部變量分配默認(rèn)存儲(chǔ)類型默認(rèn)存儲(chǔ)類型/ /空間大小空間大小Small放入可直接尋址的片內(nèi)數(shù)據(jù)存儲(chǔ)區(qū)data/ 128BCompact放入片外數(shù)據(jù)分頁(yè)存儲(chǔ)區(qū)pdata/256BLarge放入片外數(shù)據(jù)存儲(chǔ)區(qū)x

5、data/64kC51語(yǔ)言與標(biāo)準(zhǔn)C語(yǔ)言的輸入/輸出處理不一樣。C51語(yǔ)言的輸入/輸出是通過(guò)MCS-51單片機(jī)的串行口來(lái)完成的。因此輸入/輸出指令執(zhí)行前必須對(duì)串行口進(jìn)行初始化。C51語(yǔ)言中有專門的中斷函數(shù)。 返回值類型返回值類型 函數(shù)名(形參表)函數(shù)名(形參表) interrupt n using m interrupt n using m三、C51語(yǔ)言對(duì)單片機(jī)內(nèi)部資源的控制51單片機(jī)提供了21個(gè)SFR。除了程序計(jì)數(shù)器PC和4組通用寄存器組之外,其他所有的寄存器均為SFR,并位于片內(nèi)數(shù)據(jù)存儲(chǔ)器的高128字節(jié)、地址為80H-FFH的區(qū)域內(nèi)。在C51語(yǔ)言中,除了可以直接引用編譯器提供的頭文件來(lái)實(shí)現(xiàn)對(duì)

6、SFR的訪問(wèn)以外,特殊功能寄存器可通過(guò)以下幾種關(guān)鍵字訪問(wèn):1. 使用關(guān)鍵字sfr定義SFR語(yǔ)法如下:sfr 特殊功能寄存器名字 = 特殊功能寄存器地址例如:sfr TMOD = 0 x89;sfr SCON = 0 x98;sfr P0 = 0 x80;C51語(yǔ)言的關(guān)系運(yùn)算 兩個(gè)表達(dá)式用關(guān)系運(yùn)算符連接起來(lái)的式子稱為關(guān)系表達(dá)式,例如,ab、a=3等,又稱比較運(yùn)算。關(guān)系表達(dá)式的值為邏輯值,其結(jié)果只能取真(用1表示)和假(用0表示)兩種。小于:小于等于:大于等于:=等于:=不等于:!= 三、三、C51C51循環(huán)結(jié)構(gòu)控制語(yǔ)句循環(huán)結(jié)構(gòu)控制語(yǔ)句 循環(huán)結(jié)構(gòu)是程序設(shè)計(jì)的3種基本結(jié)構(gòu)之一。當(dāng)需要程序進(jìn)行有規(guī)律性

7、的重復(fù)操作時(shí),就需要使用循環(huán)結(jié)構(gòu)。C51語(yǔ)言提供了3種循環(huán)結(jié)構(gòu)的實(shí)現(xiàn)方法:while語(yǔ)句、do-while語(yǔ)句和for語(yǔ)句。while語(yǔ)句 while循環(huán)語(yǔ)句的一般形式如下: while(表達(dá)式) 語(yǔ)句; 使用while循環(huán)語(yǔ)句時(shí),要注意以下幾點(diǎn)。p while語(yǔ)句的特點(diǎn)是先判斷表達(dá)式即條件,后執(zhí)行語(yǔ)句。這樣可能不執(zhí)行任何語(yǔ)句就退出。p 如果循環(huán)體內(nèi)的語(yǔ)句只有一個(gè),則可以省略“”。如果循環(huán)體內(nèi)的語(yǔ)句由多行構(gòu)成,即語(yǔ)句是 語(yǔ)句體時(shí),必須括起來(lái),表示成復(fù)合語(yǔ)句的形式。 p while語(yǔ)句“”后面無(wú)分號(hào)。p while語(yǔ)句循環(huán)體內(nèi)允許空語(yǔ)句,此時(shí)while語(yǔ)句結(jié)尾需要添加分號(hào)。示例如下。 while

8、 (ch=getchar()!=X0D); 本例中等待鍵盤輸入字符,直到鍵入回車時(shí),循環(huán)才結(jié)束。循環(huán)語(yǔ)句只有表達(dá)式,作為判定條件,而沒(méi)有執(zhí)行語(yǔ)句。使用dowhile循環(huán)語(yǔ)句時(shí),要注意以下幾點(diǎn)。n do-while語(yǔ)句的特點(diǎn)是先執(zhí)行一次語(yǔ)句,然后再判斷條件。因此,do-while語(yǔ)句至少執(zhí)行一次do 后面的語(yǔ)句。n 如果do-while循環(huán)體內(nèi)的語(yǔ)句只有一條,可以省略“”。如果dowhile循環(huán)體內(nèi)由多個(gè)語(yǔ)句構(gòu) 成語(yǔ)句體時(shí),必須用“”括起來(lái),表示成復(fù)合語(yǔ) 句的形式。n Do-while語(yǔ)句中的“”后面無(wú)分號(hào)。n 使用do-while語(yǔ)句循環(huán)時(shí),while(表達(dá)式)后的“;”不能遺漏。n 使用do-while語(yǔ)句循環(huán)時(shí),需要注意避免構(gòu)成死循環(huán)。使用for循環(huán)語(yǔ)句時(shí),需要注意以下幾點(diǎn)。n for語(yǔ)句中的3個(gè)表達(dá)式都是可選擇項(xiàng),可以任意缺省,但“;”不能省。例如例如for(;)for(;),表示一個(gè)無(wú)限循環(huán),表示一個(gè)無(wú)限循環(huán)。省略表達(dá)式1,即不對(duì)循環(huán)控制變量進(jìn)行初始化賦值。省略表達(dá)式2,即不判斷循環(huán)條件的真假。省略表達(dá)式3,即不對(duì)循環(huán)控制變量進(jìn)行操作。n 如果for語(yǔ)句中省略表達(dá)式3,則可以在循環(huán)語(yǔ)句體內(nèi)加入控制循環(huán)變量的語(yǔ)句,從而避免構(gòu)成一個(gè)死循環(huán)。n for循環(huán)語(yǔ)句循環(huán)允許多層循環(huán)嵌套。n for語(yǔ)句循環(huán)體中如果只有一條語(yǔ)句,則可以省略“”。如果循環(huán)體內(nèi)的語(yǔ)句是多個(gè)

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論