




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第二節(jié)數(shù)碼管顯示第1頁(yè),共30頁(yè)。3.2.1 數(shù)碼管的顯示原理數(shù)碼管的顯示原理一、數(shù)碼管的字形編碼一、數(shù)碼管的字形編碼 單片機(jī)系統(tǒng)常用的數(shù)碼管有共陽(yáng)型和共陰型兩種類單片機(jī)系統(tǒng)常用的數(shù)碼管有共陽(yáng)型和共陰型兩種類型,它是單片機(jī)常用的外圍顯示器件。兩種類型的數(shù)碼型,它是單片機(jī)常用的外圍顯示器件。兩種類型的數(shù)碼管外形和結(jié)構(gòu)類似,只是數(shù)碼管內(nèi)部組成數(shù)碼段和標(biāo)點(diǎn)管外形和結(jié)構(gòu)類似,只是數(shù)碼管內(nèi)部組成數(shù)碼段和標(biāo)點(diǎn)的的LEDLED接法有區(qū)別,共陽(yáng)型數(shù)碼管的內(nèi)部所有接法有區(qū)別,共陽(yáng)型數(shù)碼管的內(nèi)部所有LEDLED的正極的正極接在一起為公共極引腳,負(fù)極分別引出,依次命名為接在一起為公共極引腳,負(fù)極分別引出,依次命名為
2、a a、b b、c c、d d、e e、f f、g g、dotdot,使用時(shí)共陽(yáng)型數(shù)碼管的公共,使用時(shí)共陽(yáng)型數(shù)碼管的公共極接正極,其他引腳分別接驅(qū)動(dòng)電路,數(shù)碼管顯示時(shí)低極接正極,其他引腳分別接驅(qū)動(dòng)電路,數(shù)碼管顯示時(shí)低電平有效。數(shù)碼管可以顯示電平有效。數(shù)碼管可以顯示0 0到到9 9共十個(gè)數(shù)字,如果加上共十個(gè)數(shù)字,如果加上小數(shù)點(diǎn)的顯示,驅(qū)動(dòng)一個(gè)數(shù)碼管顯示至小數(shù)點(diǎn)的顯示,驅(qū)動(dòng)一個(gè)數(shù)碼管顯示至第2頁(yè),共30頁(yè)。 少需要少需要8 8位有效數(shù)據(jù)。數(shù)碼管顯示數(shù)字的位有效數(shù)據(jù)。數(shù)碼管顯示數(shù)字的8 8位數(shù)據(jù)位數(shù)據(jù)編碼見(jiàn)表編碼見(jiàn)表3-2-13-2-1和和3-2-23-2-2所示,其中表所示,其中表3-2-13-2
3、-1為共陽(yáng)型為共陽(yáng)型數(shù)碼管編碼,表數(shù)碼管編碼,表3-2-23-2-2為共陰型編碼。由于共陰型數(shù)為共陰型編碼。由于共陰型數(shù)碼管內(nèi)部所有碼管內(nèi)部所有LEDLED的負(fù)極接在一起,所以數(shù)碼管顯示的負(fù)極接在一起,所以數(shù)碼管顯示時(shí)驅(qū)動(dòng)數(shù)據(jù)高電平有效。時(shí)驅(qū)動(dòng)數(shù)據(jù)高電平有效。 第3頁(yè),共30頁(yè)。顯示數(shù)字dotgfedcba16進(jìn)制0110000000 xc01111110010 xf92101001000 xa43101100000 xb04100110010 x995100100100 x926100000100 x827111110000 xf88100000000 x809100100000 x90 表
4、表3-2-1 共陽(yáng)數(shù)碼管顯示編碼共陽(yáng)數(shù)碼管顯示編碼第4頁(yè),共30頁(yè)。顯示數(shù)字dotgfedcba16進(jìn)制進(jìn)制0001111110 x3f1000001100 x062010110110 x5b3010011110 x4f4011001100 x665011011010 x6d6011111010 x7d7000001110 x078011111110 x7f9011011110 x6f 表表3-2-2共陰數(shù)碼管顯示編碼共陰數(shù)碼管顯示編碼第5頁(yè),共30頁(yè)。二、數(shù)碼管的驅(qū)動(dòng)電路二、數(shù)碼管的驅(qū)動(dòng)電路 本節(jié)任務(wù)所需的電路只需在單片機(jī)的最小系統(tǒng)基本節(jié)任務(wù)所需的電路只需在單片機(jī)的最小系統(tǒng)基礎(chǔ)增加一個(gè)數(shù)碼管
5、即可。在圖礎(chǔ)增加一個(gè)數(shù)碼管即可。在圖3-2-1中,單片機(jī)的中,單片機(jī)的P0口接口接一只共陽(yáng)數(shù)碼管,其中一只共陽(yáng)數(shù)碼管,其中P0.0P0.7口分別接數(shù)碼管的口分別接數(shù)碼管的adot引腳,引腳,P0的每個(gè)端口只要有低電平輸出,對(duì)應(yīng)的數(shù)碼管的每個(gè)端口只要有低電平輸出,對(duì)應(yīng)的數(shù)碼管的那個(gè)段就顯示。如讓數(shù)碼管顯示的那個(gè)段就顯示。如讓數(shù)碼管顯示1,數(shù)碼管數(shù)碼管b、c段亮,段亮,程序控制程序控制P0P0輸出輸出0 xbe十六進(jìn)制編碼即可,因此共陽(yáng)數(shù)碼十六進(jìn)制編碼即可,因此共陽(yáng)數(shù)碼管顯示管顯示09十進(jìn)制數(shù)字,需要利用十進(jìn)制數(shù)字,需要利用10個(gè)顯示碼組成的數(shù)組。個(gè)顯示碼組成的數(shù)組。小數(shù)點(diǎn)在不用時(shí)一般不讓顯示,高
6、位端口小數(shù)點(diǎn)在不用時(shí)一般不讓顯示,高位端口P0.7輸出高電輸出高電平即可。平即可。 第6頁(yè),共30頁(yè)。圖圖3-2-1 單片機(jī)驅(qū)動(dòng)共陽(yáng)數(shù)碼管電路單片機(jī)驅(qū)動(dòng)共陽(yáng)數(shù)碼管電路第7頁(yè),共30頁(yè)。 由于由于P0每個(gè)端口的灌電流達(dá)每個(gè)端口的灌電流達(dá)20mA,數(shù)碼管每段,數(shù)碼管每段LED正正常顯示常顯示5mA即可,因此電路中需要即可,因此電路中需要R29八個(gè)電阻用來(lái)限八個(gè)電阻用來(lái)限制數(shù)碼管每一段電流,以防止驅(qū)動(dòng)電流過(guò)大而燒毀器件。在利制數(shù)碼管每一段電流,以防止驅(qū)動(dòng)電流過(guò)大而燒毀器件。在利用用Proteus軟件仿真時(shí),數(shù)碼管采用軟件仿真時(shí),數(shù)碼管采用Optoelectronics元件庫(kù)元件庫(kù)中中7-Segmen
7、t Displays下的下的7-SEG-COM-ANODE元件,可以不元件,可以不接限流電阻。接限流電阻。 數(shù)碼管是單片機(jī)常用的顯示器件,在實(shí)際應(yīng)用中,為了保數(shù)碼管是單片機(jī)常用的顯示器件,在實(shí)際應(yīng)用中,為了保證數(shù)碼管使用安全,一般在證數(shù)碼管使用安全,一般在P0口和數(shù)碼管之間加有限流電阻。口和數(shù)碼管之間加有限流電阻。第8頁(yè),共30頁(yè)。 另外,很多器件如三極管、繼電器、蜂鳴器、步進(jìn)另外,很多器件如三極管、繼電器、蜂鳴器、步進(jìn)電機(jī)等都要用到單片機(jī)的電機(jī)等都要用到單片機(jī)的I/O口驅(qū)動(dòng)。單片機(jī)的口驅(qū)動(dòng)。單片機(jī)的P0口口在不加上拉電阻的情況下只能驅(qū)動(dòng)低電平有的負(fù)載,在不加上拉電阻的情況下只能驅(qū)動(dòng)低電平有的
8、負(fù)載, P1、P2和和P3由于采用場(chǎng)效應(yīng)管互補(bǔ)對(duì)稱輸出方式,高由于采用場(chǎng)效應(yīng)管互補(bǔ)對(duì)稱輸出方式,高電平和低電平都有電流出,除電平和低電平都有電流出,除P0口以外的其他口以外的其他I/O口口作驅(qū)動(dòng)輸出應(yīng)用時(shí)可以把上拉電阻省去。作驅(qū)動(dòng)輸出應(yīng)用時(shí)可以把上拉電阻省去。第9頁(yè),共30頁(yè)。三、程序設(shè)計(jì)三、程序設(shè)計(jì) 數(shù)碼管顯示數(shù)碼管顯示0到到9數(shù)字過(guò)程中,數(shù)字的變化需要有一定的數(shù)字過(guò)程中,數(shù)字的變化需要有一定的時(shí)間間隔,因此程序還要用到時(shí)間間隔,因此程序還要用到delay()函數(shù)。在程序設(shè)計(jì)過(guò)()函數(shù)。在程序設(shè)計(jì)過(guò)程中,可以把數(shù)碼管的字形編碼做在一個(gè)數(shù)組里面,為了讓程中,可以把數(shù)碼管的字形編碼做在一個(gè)數(shù)組里
9、面,為了讓P0口依次輸出口依次輸出09數(shù)字,讓數(shù)字,讓P0口的內(nèi)容依次在數(shù)組中取值即口的內(nèi)容依次在數(shù)組中取值即可。程序流程見(jiàn)程序清單如下:可。程序流程見(jiàn)程序清單如下:/*/#includecode unsigned char seven_seg10 = 0 xc0,0 xf9,0 xa4,0 xb0,0 x99,0 x92,0 x82,0 xf8,0 x80,0 x90; /字形數(shù)組字形數(shù)組第10頁(yè),共30頁(yè)。void delay (unsigned int x) /* 時(shí)間延遲函數(shù)時(shí)間延遲函數(shù) */ unsigned int i;unsigned char j;for(i = 0;i x;i
10、+) for (j = 0;j = 200;j+);void main (void)unsigned char i; / 變量變量 i 作為數(shù)組的作為數(shù)組的09編號(hào)編號(hào) P2 = 0; /P2.0 = 0,通過(guò)反相器反相后,加在數(shù)碼管公共端上,通過(guò)反相器反相后,加在數(shù)碼管公共端上的電壓為正的電壓為正while (1) P0 = seven_segi; /輸出輸出09到共陽(yáng)七段顯示器到共陽(yáng)七段顯示器delay(1000); /調(diào)用時(shí)間延遲函數(shù)調(diào)用時(shí)間延遲函數(shù)delay()()第11頁(yè),共30頁(yè)。 i+;if(i = 10)i = 0;/*/第12頁(yè),共30頁(yè)。 本案例程序中,當(dāng)程序中使用常量數(shù)據(jù)
11、時(shí),如共陽(yáng)數(shù)碼管數(shù)本案例程序中,當(dāng)程序中使用常量數(shù)據(jù)時(shí),如共陽(yáng)數(shù)碼管數(shù)字顯示編碼、液晶顯示器的漢字編碼等,一般希望這些數(shù)據(jù)當(dāng)程字顯示編碼、液晶顯示器的漢字編碼等,一般希望這些數(shù)據(jù)當(dāng)程序下載到單片機(jī)時(shí)存放在單片機(jī)的序下載到單片機(jī)時(shí)存放在單片機(jī)的ROM區(qū),對(duì)此類數(shù)據(jù)聲明前區(qū),對(duì)此類數(shù)據(jù)聲明前面需要加上關(guān)鍵字面需要加上關(guān)鍵字code或或const,如數(shù)碼管的顯示編碼。另外,如數(shù)碼管的顯示編碼。另外,在本案例中用到了數(shù)組和函數(shù)調(diào)用以及文件包含等操作,這些操在本案例中用到了數(shù)組和函數(shù)調(diào)用以及文件包含等操作,這些操作在單片機(jī)作在單片機(jī)C語(yǔ)言程序中經(jīng)常用到,下面將簡(jiǎn)單介紹數(shù)組和函數(shù)語(yǔ)言程序中經(jīng)常用到,下面將
12、簡(jiǎn)單介紹數(shù)組和函數(shù)的基本概念。的基本概念。 第13頁(yè),共30頁(yè)。3.2.2 數(shù)組數(shù)組 在本案例中,數(shù)碼管的顯示碼是一組有規(guī)律的同類在本案例中,數(shù)碼管的顯示碼是一組有規(guī)律的同類型數(shù)據(jù),如果定義大量的簡(jiǎn)單變量,程序?qū)⒆兊梅浅7毙蛿?shù)據(jù),如果定義大量的簡(jiǎn)單變量,程序?qū)⒆兊梅浅7爆?。為了處理方便,瑣。為了處理方便,C C語(yǔ)言把具有相同類型的若干變量語(yǔ)言把具有相同類型的若干變量或常量,用一個(gè)帶下標(biāo)數(shù)組定義。對(duì)各個(gè)變量的相同操或常量,用一個(gè)帶下標(biāo)數(shù)組定義。對(duì)各個(gè)變量的相同操作可以利用循環(huán)改變下標(biāo)值來(lái)進(jìn)行重復(fù)的處理,使程序作可以利用循環(huán)改變下標(biāo)值來(lái)進(jìn)行重復(fù)的處理,使程序變得簡(jiǎn)明清晰。帶下標(biāo)的變量由數(shù)組名稱和用
13、方括號(hào)括變得簡(jiǎn)明清晰。帶下標(biāo)的變量由數(shù)組名稱和用方括號(hào)括起來(lái)的下標(biāo)共同表示,稱為數(shù)組元素。通過(guò)數(shù)組名和下起來(lái)的下標(biāo)共同表示,稱為數(shù)組元素。通過(guò)數(shù)組名和下標(biāo)可直接訪問(wèn)數(shù)組的每個(gè)元素。數(shù)組有兩個(gè)特點(diǎn):一是標(biāo)可直接訪問(wèn)數(shù)組的每個(gè)元素。數(shù)組有兩個(gè)特點(diǎn):一是其長(zhǎng)度是確定的,在定義的同時(shí)確定了其數(shù)組的大小,其長(zhǎng)度是確定的,在定義的同時(shí)確定了其數(shù)組的大小,在程序中不允許隨機(jī)變動(dòng);在程序中不允許隨機(jī)變動(dòng);第14頁(yè),共30頁(yè)。 二是其元素必須是相同類型,不允許出現(xiàn)混合類型。二是其元素必須是相同類型,不允許出現(xiàn)混合類型。 一、一維數(shù)組一、一維數(shù)組 在在C語(yǔ)言中使用數(shù)組必須先進(jìn)行定義或聲明,一旦定語(yǔ)言中使用數(shù)組必須
14、先進(jìn)行定義或聲明,一旦定義了一個(gè)數(shù)組,系統(tǒng)就將在內(nèi)存中為其分配一個(gè)所申請(qǐng)義了一個(gè)數(shù)組,系統(tǒng)就將在內(nèi)存中為其分配一個(gè)所申請(qǐng)大小的空間,該空間大小固定,以后不能改變。一維數(shù)大小的空間,該空間大小固定,以后不能改變。一維數(shù)組的定義格式為組的定義格式為 數(shù)據(jù)類型數(shù)據(jù)類型 數(shù)組名常量表達(dá)式;數(shù)組名常量表達(dá)式;第15頁(yè),共30頁(yè)。 在在C語(yǔ)方中規(guī)定,一個(gè)數(shù)組的名字表示該數(shù)組在內(nèi)存中語(yǔ)方中規(guī)定,一個(gè)數(shù)組的名字表示該數(shù)組在內(nèi)存中所分配的一塊存儲(chǔ)區(qū)域的首地址,因此,數(shù)組名是一個(gè)地址所分配的一塊存儲(chǔ)區(qū)域的首地址,因此,數(shù)組名是一個(gè)地址常量,不允許對(duì)其進(jìn)得修改。常量,不允許對(duì)其進(jìn)得修改?!俺A勘磉_(dá)式常量表達(dá)式”表示
15、該數(shù)組擁表示該數(shù)組擁有的元素個(gè)數(shù),即定義了數(shù)組的大小,必須是正整數(shù)。例如,有的元素個(gè)數(shù),即定義了數(shù)組的大小,必須是正整數(shù)。例如,以下語(yǔ)句定義了以下語(yǔ)句定義了int 型的長(zhǎng)度為型的長(zhǎng)度為10的一維數(shù)組的一維數(shù)組 unsigned char seven_seg10在定義了一個(gè)數(shù)組后,系統(tǒng)在內(nèi)存在分配一塊連續(xù)的存儲(chǔ)在定義了一個(gè)數(shù)組后,系統(tǒng)在內(nèi)存在分配一塊連續(xù)的存儲(chǔ)空間用于存儲(chǔ)數(shù)組。一個(gè)數(shù)組中的元素下標(biāo)必須從空間用于存儲(chǔ)數(shù)組。一個(gè)數(shù)組中的元素下標(biāo)必須從0開始。開始。所以,定義數(shù)組時(shí),若所以,定義數(shù)組時(shí),若“常量表達(dá)式常量表達(dá)式”指出數(shù)組長(zhǎng)度為指出數(shù)組長(zhǎng)度為N,數(shù)組元素下標(biāo)只能從數(shù)組元素下標(biāo)只能從0到到
16、n-1。“常量表達(dá)式常量表達(dá)式”能包含常量,能包含常量,但不能包含變量。但不能包含變量。 第16頁(yè),共30頁(yè)。二、一維數(shù)組元素的引用二、一維數(shù)組元素的引用 在程序中,一維數(shù)組元素可以直接作為變量或常量直接在程序中,一維數(shù)組元素可以直接作為變量或常量直接飲用,其的引用格式為飲用,其的引用格式為 數(shù)組名數(shù)組名 下標(biāo)下標(biāo)其中,其中,“下標(biāo)下標(biāo)”可以是整型常量或是整型表達(dá)式。下標(biāo)是數(shù)組可以是整型常量或是整型表達(dá)式。下標(biāo)是數(shù)組元素到數(shù)組開始的偏移量,第一個(gè)元素的偏移量是元素到數(shù)組開始的偏移量,第一個(gè)元素的偏移量是0(亦稱(亦稱0號(hào)號(hào)元素),第二個(gè)元素的偏移量是元素),第二個(gè)元素的偏移量是1(亦稱(亦稱1
17、號(hào)元素),依此類號(hào)元素),依此類推。例如,推。例如,seven_seg5表示引用數(shù)組表示引用數(shù)組seven_seg的下標(biāo)的下標(biāo)為為 5的元素,即的元素,即0 x99。第17頁(yè),共30頁(yè)。三、一維數(shù)組的初始化三、一維數(shù)組的初始化 每個(gè)數(shù)組元素可以表示一個(gè)變量,對(duì)數(shù)組的賦值也每個(gè)數(shù)組元素可以表示一個(gè)變量,對(duì)數(shù)組的賦值也就是對(duì)數(shù)組元素的賦值。在定義數(shù)組的語(yǔ)句中,可以直就是對(duì)數(shù)組元素的賦值。在定義數(shù)組的語(yǔ)句中,可以直接為數(shù)組賦值,這稱為數(shù)組的初始化。數(shù)組的初始化方接為數(shù)組賦值,這稱為數(shù)組的初始化。數(shù)組的初始化方法是將數(shù)組元素的初值信存放在由大括號(hào)括起來(lái)的初始法是將數(shù)組元素的初值信存放在由大括號(hào)括起來(lái)的
18、初始值表中,每個(gè)初值之間由逗號(hào)隔開。值表中,每個(gè)初值之間由逗號(hào)隔開。 第18頁(yè),共30頁(yè)。3.2.3 函數(shù)調(diào)用與文件包含函數(shù)調(diào)用與文件包含 按照一定順序把單片機(jī)的程序在一個(gè)函數(shù)或一按照一定順序把單片機(jī)的程序在一個(gè)函數(shù)或一個(gè)中全部完成,是簡(jiǎn)單的單片機(jī)系統(tǒng)程序設(shè)計(jì)常用個(gè)中全部完成,是簡(jiǎn)單的單片機(jī)系統(tǒng)程序設(shè)計(jì)常用的一種結(jié)構(gòu),當(dāng)程序只有幾十行或幾百行的時(shí)候,的一種結(jié)構(gòu),當(dāng)程序只有幾十行或幾百行的時(shí)候,采用順序結(jié)構(gòu)編程的方法很容易讓人看明白。如果采用順序結(jié)構(gòu)編程的方法很容易讓人看明白。如果一個(gè)程序超過(guò)幾千行的時(shí)候,分析就會(huì)變得很復(fù)雜。一個(gè)程序超過(guò)幾千行的時(shí)候,分析就會(huì)變得很復(fù)雜。單片機(jī)單片機(jī)C C語(yǔ)言程
19、序也支持模塊化設(shè)計(jì),在模塊化程語(yǔ)言程序也支持模塊化設(shè)計(jì),在模塊化程序設(shè)計(jì)過(guò)程,經(jīng)常會(huì)用到函數(shù)的調(diào)用、文件的包含序設(shè)計(jì)過(guò)程,經(jīng)常會(huì)用到函數(shù)的調(diào)用、文件的包含問(wèn)題。問(wèn)題。C C語(yǔ)言的模塊化程序設(shè)計(jì)給單片機(jī)編程帶來(lái)語(yǔ)言的模塊化程序設(shè)計(jì)給單片機(jī)編程帶來(lái)很大的方便,在這里以本節(jié)程序?yàn)槔?jiǎn)單介紹在很大的方便,在這里以本節(jié)程序?yàn)槔?,?jiǎn)單介紹在KeilKeil軟件中實(shí)現(xiàn)模塊化設(shè)計(jì)常用的技巧。軟件中實(shí)現(xiàn)模塊化設(shè)計(jì)常用的技巧。第19頁(yè),共30頁(yè)。一、自定義函數(shù)一、自定義函數(shù) 程序中經(jīng)常反復(fù)執(zhí)行的部分可以寫成一個(gè)函數(shù),然程序中經(jīng)常反復(fù)執(zhí)行的部分可以寫成一個(gè)函數(shù),然后就可以在程序中反復(fù)地調(diào)用。以下是函數(shù)的一般格式后
20、就可以在程序中反復(fù)地調(diào)用。以下是函數(shù)的一般格式 函數(shù)類型函數(shù)類型 函數(shù)名稱(參數(shù)序列);函數(shù)名稱(參數(shù)序列); 函數(shù)的主體函數(shù)的主體 其中函數(shù)類型用來(lái)設(shè)置一個(gè)函數(shù)被調(diào)用之后所返回?cái)?shù)值的類型,其中函數(shù)類型用來(lái)設(shè)置一個(gè)函數(shù)被調(diào)用之后所返回?cái)?shù)值的類型,如果用戶希望寫一個(gè)不返回任何數(shù)據(jù)的函數(shù)時(shí),可以將函數(shù)類如果用戶希望寫一個(gè)不返回任何數(shù)據(jù)的函數(shù)時(shí),可以將函數(shù)類型設(shè)為型設(shè)為void。第20頁(yè),共30頁(yè)。1. 無(wú)返回值函數(shù)無(wú)返回值函數(shù)本節(jié)案例中本節(jié)案例中delay()()函數(shù)聲明和調(diào)用情況為函數(shù)聲明和調(diào)用情況為/*/void delay (unsigned int x) /沒(méi)有返回值,有形參沒(méi)有返回值,有
21、形參 unsigned int i;unsigned char j;for(i = 0;i x;i+) for (j = 0;j = 200;j+);void main (void)while (1) 第21頁(yè),共30頁(yè)。 . delay(1000); /調(diào)用時(shí)間延遲函數(shù),有實(shí)參調(diào)用時(shí)間延遲函數(shù),有實(shí)參 /*/2. 有返回值函數(shù)有返回值函數(shù) 如果函數(shù)中要返回?cái)?shù)值時(shí),必須使用如果函數(shù)中要返回?cái)?shù)值時(shí),必須使用return命令。命令。并且返回值的類型必須與函數(shù)的類型一致,以下是有返回并且返回值的類型必須與函數(shù)的類型一致,以下是有返回值函數(shù)的例子值函數(shù)的例子第22頁(yè),共30頁(yè)。/*/unsigned
22、char sum(unsigned char a,unsigned char b)unsigned char x; check_GLCD_busyflag(); /函數(shù)中可以調(diào)用另一個(gè)函數(shù)函數(shù)中可以調(diào)用另一個(gè)函數(shù) x=a+b; return x; /return會(huì)返回會(huì)返回unsigned char 類型的數(shù)據(jù)類型的數(shù)據(jù)/*/第23頁(yè),共30頁(yè)。二、函數(shù)調(diào)用二、函數(shù)調(diào)用 我們可以把一些具有一定功能的程序打包為一個(gè)個(gè)獨(dú)立我們可以把一些具有一定功能的程序打包為一個(gè)個(gè)獨(dú)立的函數(shù),用到此功能時(shí)直接調(diào)用即可。如在本節(jié)的幾個(gè)程序的函數(shù),用到此功能時(shí)直接調(diào)用即可。如在本節(jié)的幾個(gè)程序中,主函數(shù)都調(diào)用了延時(shí)函數(shù)
23、。函數(shù)的調(diào)用是單片機(jī)程序模中,主函數(shù)都調(diào)用了延時(shí)函數(shù)。函數(shù)的調(diào)用是單片機(jī)程序模塊化設(shè)計(jì)的一個(gè)方法,函數(shù)的調(diào)用讓塊化設(shè)計(jì)的一個(gè)方法,函數(shù)的調(diào)用讓C語(yǔ)言的單片機(jī)程序具語(yǔ)言的單片機(jī)程序具有很強(qiáng)的可移植性,同時(shí)也大大簡(jiǎn)化了程序的結(jié)構(gòu)。有很強(qiáng)的可移植性,同時(shí)也大大簡(jiǎn)化了程序的結(jié)構(gòu)。 第24頁(yè),共30頁(yè)。 函數(shù)調(diào)用比較簡(jiǎn)單,如本例和上一節(jié)的程序中,主函數(shù)調(diào)用比較簡(jiǎn)單,如本例和上一節(jié)的程序中,主函數(shù)中的出現(xiàn)的函數(shù)中的出現(xiàn)的delay()()語(yǔ)句就是一種函數(shù)調(diào)用,當(dāng)語(yǔ)句就是一種函數(shù)調(diào)用,當(dāng)單片機(jī)運(yùn)行主函數(shù)的單片機(jī)運(yùn)行主函數(shù)的delay(1000)語(yǔ)句時(shí),調(diào)用延時(shí))語(yǔ)句時(shí),調(diào)用延時(shí)函數(shù)函數(shù)delay (unsi
24、gned int x),其中其中1000為延時(shí)函數(shù)的實(shí)為延時(shí)函數(shù)的實(shí)參,參,x為函數(shù)的形參,在還有形參函數(shù)中,實(shí)參必須與形為函數(shù)的形參,在還有形參函數(shù)中,實(shí)參必須與形參類型統(tǒng)一,本例中如果參類型統(tǒng)一,本例中如果x為為char變量,則程序運(yùn)行中變量,則程序運(yùn)行中會(huì)出錯(cuò)。另外,為了提高單片機(jī)程序的可靠性,會(huì)出錯(cuò)。另外,為了提高單片機(jī)程序的可靠性,在函數(shù)調(diào)用時(shí),無(wú)返回值的函數(shù)盡量用在函數(shù)調(diào)用時(shí),無(wú)返回值的函數(shù)盡量用void聲名,聲名,沒(méi)有形參的函數(shù)也要用沒(méi)有形參的函數(shù)也要用void聲名。聲名。第25頁(yè),共30頁(yè)。三、文件的包含三、文件的包含 函數(shù)調(diào)用只能使程序的結(jié)構(gòu)簡(jiǎn),并不能使程序設(shè)計(jì)簡(jiǎn)函數(shù)調(diào)用只能
25、使程序的結(jié)構(gòu)簡(jiǎn),并不能使程序設(shè)計(jì)簡(jiǎn)化。在復(fù)雜的單片機(jī)程序中也常常用到文件包含和文件關(guān)聯(lián)?;?。在復(fù)雜的單片機(jī)程序中也常常用到文件包含和文件關(guān)聯(lián)。本例中程序前面的本例中程序前面的#include語(yǔ)句是一種文件包含形語(yǔ)句是一種文件包含形式。所謂文件包含,是指一個(gè)文件將另外一個(gè)文件的內(nèi)容式。所謂文件包含,是指一個(gè)文件將另外一個(gè)文件的內(nèi)容全部包含進(jìn)來(lái)。全部包含進(jìn)來(lái)。reg51.h是是Kiel軟件中定義軟件中定義51系列單片系列單片機(jī)內(nèi)機(jī)內(nèi)部資源的頭文件,在編寫單片機(jī)程序時(shí),只要用到部資源的頭文件,在編寫單片機(jī)程序時(shí),只要用到51單片單片機(jī)內(nèi)部資源,程序前面必須把此文件包含進(jìn)來(lái)。機(jī)內(nèi)部資源,程序前面必須把此文件包含進(jìn)來(lái)。 第26頁(yè),共30頁(yè)。 復(fù)雜的單片機(jī)系統(tǒng),程序可以有主程序和若干子程序組復(fù)雜的單片機(jī)系統(tǒng),程序可以有主程序和若干子程序組成,子程序服務(wù)與主程序,并通過(guò)文件包含與主程序關(guān)聯(lián),成,子程序服務(wù)與主程序,并通過(guò)文件包含與主程序關(guān)聯(lián),文件包含最簡(jiǎn)單應(yīng)用是直接在主程序中包含子程序的文件包含最簡(jiǎn)單應(yīng)用是直接在主程序中包含子程序的C語(yǔ)語(yǔ)言文件,也可以把子程序做成頭文件形式被主程序包含。言文件,也可以把子程序做成頭文件形式被主程序包含。本例程序中,我們可以把延時(shí)函數(shù)在文檔中剪切保本例程序中,我們可以把延時(shí)函數(shù)在文檔中剪切保存為一個(gè)存為一個(gè)delay.c文件
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 交易合同履行情況統(tǒng)計(jì)表
- 消防施工方案怎么寫
- 鞋店設(shè)計(jì)施工方案
- 企業(yè)股權(quán)激勵(lì)方案及效果研究的國(guó)內(nèi)外文獻(xiàn)綜述6100字
- 亳州輕型木屋施工方案
- 玻璃展館設(shè)計(jì)施工方案
- 法院旁聽(tīng)審警示教育活動(dòng)方案
- 菱形吊頂快速施工方案
- DB3707T 136-2025 無(wú)籽西瓜秋延遲栽培技術(shù)規(guī)程
- 預(yù)制板墻保溫墻施工方案
- 2024年黑龍江公務(wù)員《行政職業(yè)能力測(cè)驗(yàn)》試題真題及答案
- 2025年鄂爾多斯職業(yè)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性測(cè)試題庫(kù)必考題
- 12J201平屋面建筑構(gòu)造圖集(完整版)
- 《湯姆索亞歷險(xiǎn)記》測(cè)試題(含答案)
- 2024年廣東公務(wù)員考試申論試題(省市卷)
- 山東省淄博市周村區(qū)(五四制)2023-2024學(xué)年七年級(jí)下學(xué)期期中考試英語(yǔ)試題
- 一例給藥錯(cuò)誤不良事件匯報(bào)
- 八年級(jí)下冊(cè)外研版Module3Unit1教案(含反思)
- 電石爐主體工程竣工驗(yàn)收?qǐng)?bào)告
- 薄膜開關(guān)FQC作業(yè)指導(dǎo)書QC-110
- 【課件】(第3課時(shí))元素第一電離能 的周期性變化
評(píng)論
0/150
提交評(píng)論