新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > PIC單片機(jī)C語(yǔ)言程序設(shè)計(jì)(2)

PIC單片機(jī)C語(yǔ)言程序設(shè)計(jì)(2)

作者: 時(shí)間:2012-07-10 來源:網(wǎng)絡(luò) 收藏

 五、C的標(biāo)識(shí)符和關(guān)鍵字

本文引用地址:http://butianyuan.cn/article/171168.htm

  一個(gè)完整的C程序,通常由包含文件(即頭文件1,變量定義、變量說明、函數(shù)定義、函數(shù)體和注釋等六部分等組成。

  1.C的標(biāo)識(shí)符

  所謂標(biāo)識(shí)符,實(shí)際上是一些由程序編寫者自定義的名稱,類似于匯編語(yǔ)言中給寄存器(RAM)的命名。C語(yǔ)言中所用到的變量名、函數(shù)名、數(shù)組名、文件名等都是由標(biāo)識(shí)符組成的。

  標(biāo)識(shí)符是由一串字母(常指英語(yǔ)字母)、數(shù)字和下線符(或稱下劃線)組成的字符串。標(biāo)識(shí)符的第一個(gè)字符必須是字母或下線符。按照慣例,以下線符開頭的標(biāo)識(shí)符是系統(tǒng)程序?qū)S玫?,程序員最好不用。程序員可將下線符作為分段符使用,如SUM_1。

  同一字母的大小寫被視為不同的標(biāo)識(shí)符。即同一字母的大小寫是不同的標(biāo)識(shí)符。

  不同的C編譯器對(duì)標(biāo)識(shí)符的長(zhǎng)度有不同的限制。為了避免所編寫的源文件能被所有C編譯器認(rèn)可,可將標(biāo)識(shí)符的長(zhǎng)度限定在8個(gè)字符以內(nèi)(即1個(gè)字節(jié))。

  標(biāo)識(shí)符的命名(即自定義),最好簡(jiǎn)捷、含意清晰、便于閱讀,如用deIay表示延時(shí);用sum表示求和;用loop表示循環(huán)等。

  2.C語(yǔ)言的關(guān)鍵字

  關(guān)鍵字,又稱保留字,是指那些已由系統(tǒng)作了特殊定義、具有特定含義的標(biāo)識(shí)符。,程序員編寫C程序時(shí),可用關(guān)鍵字來對(duì)所用函數(shù)參數(shù)進(jìn)行說明、定義一些物理量,它們是C語(yǔ)言語(yǔ)句的重要組成部分,有的還直接組成簡(jiǎn)單語(yǔ)句。因此,用戶是不能將此類標(biāo)識(shí)符(關(guān)鍵字)作為自定義標(biāo)識(shí)符使用的。

  C語(yǔ)言的關(guān)鍵字分為三類,即數(shù)據(jù)類、程序控制類和預(yù)處理類,如表1所示。

表1

  表1中所列關(guān)鍵字,讀者在編寫C程序時(shí),將逐步學(xué)會(huì)其使用。

  六、C語(yǔ)言的數(shù)據(jù)類型

  在編寫C語(yǔ)言程序時(shí),首先要涉及的是數(shù)據(jù)描述和功能描述。數(shù)據(jù)是實(shí)現(xiàn)功能的過程,功能是數(shù)據(jù)運(yùn)算(或處理)的結(jié)果,沒有數(shù)據(jù),C程序就無(wú)法實(shí)現(xiàn)規(guī)定的功能,可見數(shù)據(jù)在C語(yǔ)言程序中的重要性。

  C語(yǔ)言的數(shù)據(jù)類型,有基本型、構(gòu)造型、指針型三類。對(duì)此,筆者將在使用時(shí)逐一介紹。

  1.標(biāo)準(zhǔn)型

  標(biāo)準(zhǔn)型數(shù)據(jù)屬于基本型數(shù)據(jù),是由C語(yǔ)言本身提供的基本數(shù)據(jù)類型,結(jié)構(gòu)簡(jiǎn)單、使用頻率高。下面以實(shí)例對(duì)C語(yǔ)言程序中的標(biāo)準(zhǔn)型數(shù)據(jù)予以說明。

  標(biāo)準(zhǔn)型數(shù)據(jù)又分為整型數(shù)據(jù)、實(shí)型數(shù)據(jù)和字符型數(shù)據(jù)三種,每種數(shù)據(jù)又有常量和變量之分。筆者將其分類以表格形式列出,既可供初學(xué)者編寫C語(yǔ)言程序時(shí)查找,亦可與本文中實(shí)例程序的注釋進(jìn)行對(duì)比學(xué)習(xí),以加深對(duì)標(biāo)準(zhǔn)型數(shù)據(jù)的理解。

(1)整型常量。

1.while語(yǔ)句

  (1)格式:while(條件表達(dá)式)

 ?。?)功能:程序運(yùn)行時(shí),先判斷條件表達(dá)式,當(dāng)條件表達(dá)式的值為非零(即為“真”)時(shí),執(zhí)行while語(yǔ)句中的內(nèi)嵌語(yǔ)句,即先判斷條件表達(dá)式,再執(zhí)行語(yǔ)句。當(dāng)條件表達(dá)式為零時(shí),退出循環(huán);若表達(dá)式一開始就為0,其while語(yǔ)句一次也不執(zhí)行;若條件表達(dá)式恒為1,則程序在while體內(nèi)一直循環(huán)。

 ?。?)程序?qū)嵗?

  1)硬件電路和功能硬件電路同《單片機(jī)C語(yǔ)言(1)》一文的圖1(見《電子制作》2009年第10期)。圖中的RA0口外接的微動(dòng)開關(guān)KO,作為程序的起動(dòng)開關(guān)。KO未按下時(shí)。單片機(jī)系統(tǒng)處于等待狀態(tài),按一次KO,系統(tǒng)依次進(jìn)行以下工作:RBO口外接的LEDO點(diǎn)亮→延時(shí)→LEDO熄滅→RB2外接的LED2點(diǎn)亮→延時(shí)→LED2滅→RB4外接LED4點(diǎn)亮→延時(shí)→LED4滅→執(zhí)行間斷語(yǔ)句break終止循環(huán)→點(diǎn)亮RB6外接的LED6→回到等待狀態(tài),直到RA0外接的微動(dòng)開關(guān)KO再次按下,再重復(fù)上述過程。

  2)源文件清單。

  本實(shí)例2的程序清單如下(源文件名PIC02.C):

  說明:

 ?、?上述程序中,關(guān)鍵字break、continue和return等組成的簡(jiǎn)單語(yǔ)句的使用是略有區(qū)別的。具體區(qū)別如下:

  間斷語(yǔ)句break:程序運(yùn)行到此就終止循環(huán),跳出while(1)的循環(huán)體,執(zhí)行該循環(huán)體緊接在后面的語(yǔ)句:

  · 繼續(xù)語(yǔ)句continue:如果把該程序中的break語(yǔ)句換成繼續(xù)語(yǔ)句continue。程序運(yùn)行到此便立即執(zhí)行由while(1)開始功能的程序,即程序在該循環(huán)體內(nèi)不斷地運(yùn)行,等效于不用continue;語(yǔ)句;·return語(yǔ)句:當(dāng)把該程序中的break換成return語(yǔ)句時(shí),程序運(yùn)行到此就會(huì)立即返回主程序運(yùn)行。

  讀者學(xué)習(xí)C語(yǔ)言時(shí),一定要將實(shí)例2源程序中的關(guān)鍵字“break”分別用“coutinue”和“return”代換并運(yùn)行程序,同時(shí)觀察使用三種不同的關(guān)鍵字時(shí)LED指示燈的不同狀態(tài),方能體會(huì)出三者的差異。

 ?、?關(guān)于帶形式參數(shù)(簡(jiǎn)稱形參)的延時(shí)函數(shù)。

  實(shí)例2所用的延時(shí)函數(shù)與實(shí)例1不同。實(shí)例1(見《電子制作》2009年第10期)用的是無(wú)參數(shù)函數(shù),功能簡(jiǎn)單,一個(gè)函數(shù)完成一定的延時(shí)。實(shí)例2用的是有參數(shù)延時(shí)函數(shù),一個(gè)函數(shù)可完成不同的延時(shí)(如上述實(shí)例2 中的延時(shí)1、延時(shí)2、延時(shí)3、延時(shí)4)。這是因?yàn)?,帶形參函?shù)(如實(shí)例2中的延時(shí)函數(shù)v0id delay(K))可以借助參數(shù)的傳遞功能來完成不同時(shí)間的設(shè)置,這是匯編語(yǔ)言所無(wú)法做到的。由此可見,采用C語(yǔ)言可大大簡(jiǎn)化程序的編寫工作。

  鑒于形參對(duì)熟悉匯編語(yǔ)言的設(shè)計(jì)人員來說是一個(gè)全新的概念,有關(guān)C語(yǔ)言的函數(shù)參數(shù)傳遞功能,我們?cè)诤罄m(xù)的文章中還將進(jìn)一步介紹,以加深大家對(duì)其的理解。

  整型常量,是指在程序運(yùn)行過程中數(shù)值保持不變的量,在編寫C程序時(shí),整型常量用關(guān)鍵字cONST進(jìn)行定義。表2給出了各種常量的類型、表示方法及示例說明。

表2

 ?。?)整型變量。

  整型變量。是指在程序運(yùn)行過程中數(shù)值會(huì)改變的量。整型(即整數(shù)類型)變量的基本型是lnt。

  Int可以保存一個(gè)整數(shù),并允許在_nl前加上基本型、短整型、長(zhǎng)整型,以及無(wú)符號(hào)型等四種整型類型。下面分別加以說明1)基本型:標(biāo)志是int。

  2)短整型:標(biāo)志是short int。

  3)長(zhǎng)整型:標(biāo)志是long int。

  4)無(wú)符號(hào)型:存儲(chǔ)單元中,全部二進(jìn)制位均用來存放整數(shù)自身。而不包括符號(hào)位。無(wú)符號(hào)型又分為無(wú)符號(hào)整型、無(wú)符號(hào)短整型、無(wú)符號(hào)長(zhǎng)整型三種。

 ?、贌o(wú)符號(hào)整型:標(biāo)志是unsigned int:

 ?、跓o(wú)符號(hào)短整型:標(biāo)志是unsigned short int;

  ③無(wú)符號(hào)長(zhǎng)整型:標(biāo)志是unsigned Iong int。

  以上C語(yǔ)言變量的要點(diǎn),是相關(guān)的關(guān)鍵字,以及每個(gè)整型變量的取值范圍,即長(zhǎng)度(二進(jìn)制位個(gè)數(shù))。

  PlC單片機(jī)C語(yǔ)言的整型變量、數(shù)據(jù)名稱、取值范圍如表3所示。表中的內(nèi)容,在編寫C程序時(shí)經(jīng)常使用,初學(xué)者應(yīng)熟練掌握。

表3

  說明:1.表3列出了整型變量的取值范圍。例如,從表3中可以看出,無(wú)符號(hào)長(zhǎng)整型變量unsigned long int的最大取值可達(dá)10位數(shù),將其用于延時(shí)函數(shù),僅用一條循環(huán)語(yǔ)句,延時(shí)便可達(dá)20小時(shí)以上(參看下文中的實(shí)例2)。2.對(duì)于表3中的字符型(char)、浮點(diǎn)型(float)和雙精度型doable等整型變量,將在本連載后續(xù)文章的程序使用到時(shí)進(jìn)行說明。

  七、C語(yǔ)言的控制循環(huán)語(yǔ)句

  在C語(yǔ)言程序中,會(huì)用到多種功能語(yǔ)句??刂蒲h(huán)語(yǔ)句(下稱循環(huán)語(yǔ)句)便是其中之一。

  C語(yǔ)言的循環(huán)語(yǔ)句有三種,即while語(yǔ)句、do while語(yǔ)句和for語(yǔ)句。循環(huán)語(yǔ)句一般由循環(huán)控制條件來控制循環(huán)的重復(fù)次數(shù)。如果控制條件沒有完成,要想終止循環(huán),可在循環(huán)體中用間斷語(yǔ)句break、返回語(yǔ)句retum,或者用繼續(xù)語(yǔ)句continue來終止當(dāng)前循環(huán)周期中的操作,使控制進(jìn)入其他程序段。下面逐一進(jìn)行介紹,并通過程序?qū)嵗齺碚f明其應(yīng)用,以利大家加深理解。

c語(yǔ)言相關(guān)文章:c語(yǔ)言教程




評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉