




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第9章 單片機(jī)C語言程序設(shè)計(jì)4.1 Keil C簡介與環(huán)境設(shè)置4.2 C51簡介4.3 C51基礎(chǔ)知識及表達(dá)式4.4 C51控制語句4.5 數(shù)組4.6 指針4.7 函數(shù)4.8 C51開發(fā)工具使用4.9 常用Keil C調(diào)試方法一般情況下單片機(jī)常用的程序設(shè)計(jì)語言有兩種: 匯編語言: 匯編語言具有執(zhí)行速度快、占存儲空間少、對硬件可直接編程等特點(diǎn),因而特別適合在對實(shí)時(shí)性能要求比較高的情況下使用。 C語言: C語言克服了匯編語言的不足之處,同時(shí)又增加了代碼的可讀性,語言大多數(shù)代碼被翻譯成目標(biāo)代碼后,其效率和匯編語言相當(dāng)。特別是C語言的內(nèi)嵌匯編功能,使C語言對硬件操作更加方便。Keil C Vision
2、2工作窗口4.1 Keil C簡介 Keil C Vision2 開發(fā)環(huán)境是德國Keil Software,Inc.and Keil Elektro nik GmbH開發(fā)的微處理器開發(fā)平臺,可以開發(fā)多種8051兼容單片機(jī)程序。 Keil Software-Cx51編譯器兼容ANSI C語言標(biāo)準(zhǔn)。4.2 Cx51簡介4.2.1 Cx51的擴(kuò)展 Cx51編譯器兼容ANSI C標(biāo)準(zhǔn),又?jǐn)U展支持了8051微處理器,其擴(kuò)展內(nèi)容如下: 存儲區(qū); 存儲區(qū)類型; 存儲模型; 存儲類型說明符; 變量數(shù)據(jù)類型說明符; 位變量和位可尋址數(shù)據(jù); SFR; 指針; 函數(shù)屬性。4.2.2 存儲區(qū) 8051單片機(jī)支持程序存
3、儲器和數(shù)據(jù)存儲器的分離,存儲器根據(jù)讀寫情況可以分為:程序存儲區(qū)(ROM)、快速讀寫存儲器(內(nèi)部RAM)、隨機(jī)讀寫存儲器(外部RAM)。 1. 程序存儲器(code)在8051中程序存儲器是只讀存儲器,其空間為64K ,在C51中用code關(guān)鍵字來聲明訪問程序存儲區(qū)中的變量。 。 2. 內(nèi)部數(shù)據(jù)存儲器在8051單片機(jī)中,內(nèi)部數(shù)據(jù)存儲器屬于快速可讀寫存儲器,與51兼容的擴(kuò)展型單片機(jī)最多有256字節(jié)內(nèi)部數(shù)據(jù)存儲區(qū)。 (1)datadata存儲類型聲明的變量可以對內(nèi)部RAM直接尋址128B (0 x000 x7F)。 (3)bdatabdata存儲類型聲明的變量可以對內(nèi)部RAM 16B(0 x200
4、x2F)的128位進(jìn)行位尋址 (2)idataidata存儲類型聲明的變量可以對內(nèi)部RAM間接尋址256B(0 x000 xFF),3. 外部數(shù)據(jù)存儲器 外部數(shù)據(jù)存儲器又稱隨機(jī)讀寫存儲器,訪問存儲空間為64KB。其訪問速度要比內(nèi)部RAM慢。訪問外部RAM的數(shù)據(jù)要使用指針進(jìn)行間接訪問。 在C51中使用關(guān)鍵字xdata和pdata存儲類型聲明的變量來訪問外部存儲空間中的數(shù)據(jù)。(1)xdataxdata存儲類型聲明的變量可以訪問外部存儲器64KB的任何單元(0 x00000 xFFFF)。(2)pdatapdata存儲類型聲明的變量可以訪問外部存儲器(一頁)低256B(不建議用)。 4.2.3 存儲
5、模式 在Cx51中,存儲器模式可以確定一些變量在缺省情況下的存儲器類型。程序中可用編譯器控制命令SMALL、COMPACT、LARGE指定存儲器模式。1. SMALL模式 SMALL模式中所有的變量在缺省的情況下位于單片機(jī)的內(nèi)部數(shù)據(jù)區(qū),這和用data存儲類型標(biāo)識符聲明的變量是相同的。在本模式中變量訪問非常有效,然而所有對象和堆棧必須適和內(nèi)部RAM。2. COMPACT模式 COMPACT模式中所有變量在缺省的情況下都存放在外部數(shù)據(jù)區(qū)的一頁(256B)中,這和用pdata存儲類型標(biāo)識符聲明的變量是相同的。 3. Large模式 LARGE模式下所有變量在缺省情況下存放在外部數(shù)據(jù)存儲區(qū)(范圍為64
6、k字節(jié)),這和用xdata存儲類型標(biāo)識符聲明的變量是一致的,該模式使用數(shù)據(jù)指針DPTR尋址。4.2.4 數(shù)據(jù)類型 在Cx51中不僅支持所有的C語言標(biāo)準(zhǔn)數(shù)據(jù)類型,而且還對其進(jìn)行了擴(kuò)展,增加了專用于訪問8051硬件的數(shù)據(jù)類型,使其對單片機(jī)的操作更加靈活。 1. bit類型 bit用于聲明位變量,其值為1或0。 2. sbit類型 sbit類型用于聲明可位尋址變量中的某個(gè)位變量,其值為1或0。 3. sfr類型 sfr類型用于聲明特殊功能寄存器(8位),位于內(nèi)部RAM地址為0 x80-0 xFF的128字節(jié)存儲單元,這些存儲器一般用作計(jì)時(shí)器、計(jì)數(shù)器、串口、并口和外圍使用。 4. sfr16類型 sf
7、r16類型用于聲明兩個(gè)連續(xù)地址的特殊功能寄存器(地址范圍為065 535)。 5.其它類型 C51程序中常用的數(shù)據(jù)類型還有: char(字符型) unsigned char(無符號字符型) int(整型) unsigned int(無符號整型)等類型。例如: char bdata c1 ; /*聲明一個(gè)字符變量 char bdata bobject ;/*聲明可位尋址變量 bobject*/ sbit bobj3=bobject3 ;/*聲明位變量bobj3為 bobject的第三位*/ sfr TMOD=0 x89H;/*聲明TMOD(定時(shí)器/計(jì)數(shù)器工作 模式寄存器)其地址為89H*/ sf
8、r P0=0 x80;/*聲明P0為特殊功能寄存器,地址為80H*/4.3 C51基礎(chǔ)知識及表達(dá)式4.3.1 C語言的標(biāo)識符和關(guān)鍵字 標(biāo)識符是用來標(biāo)識源程序中某個(gè)對象的名字的,這些對象可以是語句、數(shù)據(jù)類型、函數(shù)、變量、常量、數(shù)組等。一個(gè)標(biāo)識符有字符串、數(shù)字和下劃線等組成,第一個(gè)字符必須是字母或者下劃線。 關(guān)鍵字則是編程語言保留的特殊標(biāo)識符,它們具有固定名稱和含義。在C語言程序中不允許使用與關(guān)鍵字完全相同標(biāo)識符4.3.2 算術(shù)運(yùn)算符與表達(dá)式 C51語言運(yùn)算符非常豐富,除了控制語句及輸入、輸出,其他所有的基本操作幾乎都作為運(yùn)算符來處理。 C51算術(shù)運(yùn)算符與表達(dá)式如下: + 加運(yùn)或取正算符,例如,2
9、+3。 - 減運(yùn)或取負(fù)算符,例如,5-3。 * 乘運(yùn)算符,例如,2*3。 / 除運(yùn)算符,例如,6/3。 % 模運(yùn)算符,或叫取余運(yùn)算符,如7%3,結(jié)果為1。4.3.3 關(guān)系運(yùn)算符與表達(dá)式 關(guān)系表達(dá)式是由關(guān)系運(yùn)算符連接表達(dá)式構(gòu)成的。 1. 關(guān)系運(yùn)算符 關(guān)系運(yùn)算符都是雙目運(yùn)算符,共有如下6種: ,=,y、(x=5)=y等。 關(guān)系表達(dá)式的值是整數(shù)0或1,其中0代表邏輯假;1代表邏輯真。在C語言中不存在專門的“邏輯值”。4.3.4 邏輯運(yùn)算符與表達(dá)式邏輯表達(dá)式是由邏輯運(yùn)算符連接表達(dá)式構(gòu)成的。1. 邏輯運(yùn)算符 C語言中提供了3種邏輯運(yùn)算符: 1)單目邏輯運(yùn)算符:!(邏輯“非”)。 2)雙目邏輯運(yùn)算符:&(
10、邏輯“與”)。 3)雙目邏輯運(yùn)算符:|(邏輯“或”)。 其中邏輯“與”&的優(yōu)先級大于邏輯“或”|,它們的優(yōu)先級都小于邏輯“非”!。邏輯運(yùn)算符具有自左至右的結(jié)合性。 邏輯運(yùn)算符、賦值運(yùn)算符、算術(shù)運(yùn)算符、關(guān)系運(yùn)算符之間優(yōu)先級的次序?yàn)椋?(邏輯非)、算術(shù)運(yùn)算符、關(guān)系運(yùn)算符、&(邏輯與)、|(邏輯或)、賦值運(yùn)算符。2. 邏輯表達(dá)式 由邏輯運(yùn)算符組成的表達(dá)式稱為邏輯表達(dá)式。邏輯運(yùn)算符兩邊的運(yùn)算對象可以是C語言中任意合法的表達(dá)式。邏輯表達(dá)式的結(jié)果為1(結(jié)果為“真”時(shí))或0(結(jié)果為“假“時(shí))。4.3.5 賦值運(yùn)算符與表達(dá)式 1. 賦值運(yùn)算符 “=”符就是賦值運(yùn)算符,賦值運(yùn)算符構(gòu)成的表達(dá)式格式如下: 變量名=
11、表達(dá)式 說明: 1)賦值表達(dá)式的功能是把表達(dá)式的值賦給變量。如a=3,表示把3賦給變量a。 2)賦值運(yùn)算符為雙目運(yùn)算符,即“=”兩邊的變量名和表達(dá)式均為操作數(shù),一般情況下變量與表達(dá)式的值類型應(yīng)一致。 3)運(yùn)算符左邊只能是變量名,而不能是表達(dá)式。 2. 復(fù)合賦值運(yùn)算符 在“=”前面加上雙目運(yùn)算符,如“”、“+”、“- ”、“*”、“%”、“/”等即構(gòu)成復(fù)合賦值運(yùn)算符。 所有復(fù)合賦值運(yùn)算符級別相同,且與賦值運(yùn)算符同一優(yōu)先級,都具有右結(jié)合性。 例如, b+=4等價(jià)于b=b+4 a=4等價(jià)于a=a4 4.3.6 自增和自減運(yùn)算符與表達(dá)式 1. 自增和自減運(yùn)算符格式與表達(dá)式 格式: i+ i- 功能:先
12、使用i的值,然后,變量i的值增加(減少)1,即i=i1。 格式: +i -i 功能:變量i先增加(減少)1,即i=i1,然后,再使用i的值。 例如: int a=3, b ;b=a+ ; 執(zhí)行后,則b的值為3,a的值為4。 int a=3 , b ;b=+a ; 執(zhí)行后,則b的值為4,a的值為4。4.3.7 位運(yùn)算符與表達(dá)式 1位運(yùn)算符 位運(yùn)算符共有6種,即、&、 和 |,分別表示按位取反、左移位、右移位、按位與、按位異或、按位或。 2. 位邏輯運(yùn)算符及表達(dá)式 邏輯運(yùn)算符包括取反、按位與、按位異或、按位或,其按位操作的情況,見表4-6,其中a和b分別表示一個(gè)二進(jìn)制位。 3.移位運(yùn)算符 移位運(yùn)算
13、符是將一個(gè)數(shù)的二進(jìn)制位向左或向右移若干位。 移位運(yùn)算符有左移運(yùn)算符和右移運(yùn)算符。 1)左移運(yùn)算符的一般書寫格式為: 表達(dá)式1 表達(dá)式2 其中“表達(dá)式1”是被移對象,“表達(dá)式2”給出移動位數(shù)。例如,按位取反示例,求 15的值。 unsigned char x =15 ; /* x為00001111 */ P0=x ; /* P0=00001111 */ x = x ; /* x取反后結(jié)果為11110000 */ P0=x ; /* P0=11110000 */ 例如,將變量a的內(nèi)容按位左移2位: unsigned char a =0 x0f ; a =ab)?a:b 當(dāng)ab成立時(shí),max=a;
14、當(dāng)ab不成立時(shí),max=b;4.4 C51控制語句4.4.1 條件語句 條件語句又稱為分支語句,由關(guān)鍵字if構(gòu)成,有以下三種基本形式: 1)單分支條件語句格式: if(條件表達(dá)式) 語句 執(zhí)行過程:如果括號里條件表達(dá)式結(jié)果為真,則執(zhí)行括號后的語句。 2)兩分支條件語句格式: if(條件表達(dá)式) 語句1 else 語句2 執(zhí)行過程:如果括號里條件表達(dá)式結(jié)果為真,則執(zhí)行語句1,否則(也就是括號里的表達(dá)式為假)執(zhí)行語句2。 3)多分支條件語句格式: if(條件表達(dá)式1)語句1 else if (條件表達(dá)式2) 語句2 else if (條件表達(dá)式3) 語句3 else if (條件表達(dá)式n) 語句m
15、 else 語句n 這種條件語句常用來實(shí)現(xiàn)多方向條件分支,其實(shí),它是由if-else語句嵌套而成的,在此種結(jié)構(gòu)中,else總是與最鄰近的if相配對。 4)條件語句嵌套 在進(jìn)行程序設(shè)計(jì)時(shí),經(jīng)常要用到條件分支嵌套。所謂條件分支嵌套就是在選擇語句的任一個(gè)分支中可以嵌套一個(gè)選擇結(jié)構(gòu)子語句。 完整的嵌套格式為: if(表達(dá)式1) if(表達(dá)式2) 語句序列1 ; else 語句序列2 ; else if(表達(dá)式3) 語句序列3 ; else 語句序列4 ; 在編程時(shí),可以根據(jù)實(shí)際情況使用上面格式中的一部分。例如,需要注意: else總是與最鄰近的if相配對。 以上if-else嵌套了兩個(gè)子語句,但整個(gè)語
16、句仍然是一條C語句。一條語句4.4.2 switch/case 語句 switch/case 語句是一種多分支選擇語句。 其格式如下: switch(表達(dá)式) case 常量表達(dá)式1:語句1; break; case 常量表達(dá)式2:語句2; break; case 常量表達(dá)式n:語句n; break; default: 語句m; break; 執(zhí)行過程: 當(dāng)switch后的表達(dá)式中的值與case后邊的常量表達(dá)式中的值相等時(shí),就執(zhí)行case后相應(yīng)的語句; 每一個(gè)case后的常量表達(dá)式的值必須不同; 當(dāng)switch后的表達(dá)式的值不符合每個(gè)case后的值時(shí),則執(zhí)行default后的語句。 注意,ca
17、se后的語句必須加break,否則,程序則順移到下一個(gè)case繼續(xù)執(zhí)行。4.4.3 循環(huán)結(jié)構(gòu) 1. while語句 一般形式如下: while(條件表達(dá)式) 語句 執(zhí)行過程:當(dāng)條件表達(dá)式中的值為真,即非0時(shí),執(zhí)行后邊的語句,如此循環(huán),直到括號中的條件表達(dá)式為假時(shí)為止。 2. do-while語句 一般形式如下: do 語句; while(條件表達(dá)式); 執(zhí)行過程:先執(zhí)行給定的循環(huán)體語句,然后再檢查條件表達(dá)式的結(jié)果。當(dāng)條件表達(dá)式的值為真時(shí),則重復(fù)執(zhí)行循環(huán)體語句,直到條件表達(dá)式的值變?yōu)榧贂r(shí)為止。 因此,用do-while語句構(gòu)成的循環(huán)結(jié)構(gòu)在任何條件下,循環(huán)體語句至少會被執(zhí)行一次。 3. for語句
18、 一般形式如下: for (表達(dá)式1; 表達(dá)式2; 表達(dá)式3) 語句 for語句的執(zhí)行過程為: 1)先求解表達(dá)式1,表達(dá)式1只執(zhí)行一次, 一般是賦值 語句,用于初始化變量; 2)求解表達(dá)式2,若為假(0),則結(jié)束循 環(huán); 3)當(dāng)表達(dá)式2為真(非0)時(shí),執(zhí)行循環(huán)體; 4)執(zhí)行表達(dá)式3; 5)轉(zhuǎn)回2)重復(fù)執(zhí)行。 使用時(shí)注意:表達(dá)式1,表達(dá)式2,表達(dá)式3和循環(huán)體均可以缺省。 例如: int i=1,sum=0 ; for( ;i=100;) /*表達(dá)式1和表達(dá)式3均缺省*/ sum+=i+ ; 例如:程序中常通過for語句實(shí)現(xiàn)延時(shí) int i ; for ( ; i=10000 ; i+ ) ; /
19、*表達(dá)式1缺省,循環(huán)體為空語句”;”*/ 4 循環(huán)結(jié)構(gòu)嵌套 一個(gè)循環(huán)體內(nèi)包含另一個(gè)完整的循環(huán)結(jié)構(gòu),稱為循環(huán)的嵌套。循環(huán)之中還可以套循環(huán),稱為多層循環(huán)。三種循環(huán)(while循環(huán)、do while循環(huán)和for循環(huán))可以互相嵌套。 例如,下列函數(shù)通過循環(huán)嵌套程序?qū)崿F(xiàn)延時(shí)。 void msec(unsigned int x) unsigned char i; while(x-)/*外循環(huán)*/ foe(i=0;i125;i+)/*嵌套內(nèi)循環(huán)*/ ; 4.5 數(shù)組 數(shù)組是一種簡單實(shí)用的數(shù)據(jù)結(jié)構(gòu)。 所謂數(shù)據(jù)結(jié)構(gòu),就是將多個(gè)變量(數(shù)據(jù))人為地組成一定的結(jié)構(gòu),以便于處理大批量、相對有一定內(nèi)在聯(lián)系的數(shù)據(jù)。4.5.
20、1 一維數(shù)組的定義、引用、初始化 1. 一維數(shù)組的定義 定義一維數(shù)組的格式為: 類型標(biāo)識符 數(shù)組名常量表達(dá)式 , ; 例如:char ch10 ; 說明: 1)它表示定義了一個(gè)字符型一維數(shù)組ch。 2) 數(shù)組名為ch,它含有10個(gè)元素。即10個(gè)帶下標(biāo)的變量,下標(biāo)從0開始,分別是ch0、ch1、ch9。注意,不能使用ch10。 3)類型標(biāo)識符char規(guī)定數(shù)組中的每個(gè)元素都是字符型數(shù)據(jù)。 2. 一維數(shù)組的引用 使用數(shù)組必須先定義,后引用。 引用時(shí)只能對數(shù)組元素引用,如ch0,chi,chi+1等,而不能引用整個(gè)數(shù)組。 3. 一維數(shù)組的初始化C語言允許在定義數(shù)組時(shí)對各數(shù)組元素指定初始值稱為數(shù)組初始化
21、。 int idata a5=0, 1, 2, 3, 4 ; /*聲明片內(nèi)RAM(256B)區(qū)的整型數(shù)組a,同時(shí)初始化數(shù)組元素,括號內(nèi)整型數(shù)據(jù)0,1,2,3,4分別賦給整型數(shù)組元素a0,a1,a2,a3,a4 */4.6 指針4.6.1 指針和指針變量 指針就是地址,是一種數(shù)據(jù)類型。 變量的指針就是變量的地址,存放地址的變量,就是指針變量。經(jīng)C51編譯后,變量的地址是不變的量。而指針變量可根據(jù)需要存放不同變量的地址,它的值是可以改變的。4.6.2 指針變量的定義、賦值及引用 1. 定義指針變量 定義指針變量的一般格式為: 類型標(biāo)識符 * 指針變量名 例如, unsigned char *ch1
22、,*ch2; /*定義無符號字符型指針變量ch1,ch2*/ 2. 指針變量的賦值 例如: int i=2,j=3,*p1,*p1; p1=&i ; p2=&j ; 表示將變量i的地址賦給指針變量p1,將變量j的地址賦給指針變量p2。也就是說,p1、p2分別指向了變量i、j 。 3. 指針變量的引用 可以通過指針運(yùn)算符“*”引用指針變量。在C51編譯器中指針可以分為兩種類型:通用指針(以上所述均為通用指針)和指定存儲區(qū)地址指針。 通用指針是指在定義指針變量時(shí)未說明其所在的存儲空間。通用指針可以訪問8051存儲空間中與位置無關(guān)的任何變量。 存儲區(qū)域指針是指在定義指針變量的同時(shí)說明其存儲器類型。例
23、如:# include void main(void ) int a , b ; int *p1,*p2 ; /* 定義指針變量p1、p2 */ a=10 , b=20 ; p1=&a,p2=&b ;/*變量a、b的地址分別賦給p1、p2 */ (*p1)+, (*p2)+ ;/*p1、p2指向的變量a、b的數(shù)據(jù) 自增1*/ 例如,下列程序定義了字符型存儲區(qū)域指針,并使其指向相應(yīng)存儲區(qū)域的數(shù)組。void main (void)char data *pd_c;/*定義指向字符變量(內(nèi)部RAM)的指針 變量pd_c*/char xdata *px_c;/*定義指向字符變量(外部RAM)的指針 變量
24、px_c*/char data a10;char xdata b10;pd_c=&a0;px_c=&b0;4.7 函數(shù) 1.庫函數(shù)及文件包含 1)C語言提供了豐富的標(biāo)準(zhǔn)函數(shù),即庫函數(shù)。這類函數(shù)是由系統(tǒng)提供并定義好的,不必用戶再去編寫。用戶只需要了解函數(shù)的功能,并學(xué)會在程序中正確地調(diào)用庫函數(shù)。 2)對每一類庫函數(shù),在調(diào)用該類庫函數(shù)前,用戶在源程序的include命令中應(yīng)該包含該類庫函數(shù)的頭文件名(一般安排在程序的開始)。 文件包含通常還包括程序中使用的一些定義和聲明。, 3)函數(shù)一般調(diào)用格式為: 函數(shù)名【實(shí)際參數(shù)表】對于有返回值的函數(shù),函數(shù)調(diào)用必須在需要返回值的 地方使用;對于無返回值的函數(shù),應(yīng)
25、該直接調(diào)用。常用的頭文件包含有: #include /*調(diào)用字符串處理函數(shù)需要包含的頭文件*/ #include /*調(diào)用本征函數(shù)(如移位函數(shù))需要包含的頭文件*/ #include stdio.h /*調(diào)用調(diào)用輸入輸出函數(shù)需要包含的頭文件*/ #include /*定義51單片機(jī)內(nèi)部資源在程序中的符號表示*/ #include /*定義52單片機(jī)內(nèi)部資源在程序中的符號表示*/ #include math.h /*調(diào)用數(shù)學(xué)庫函數(shù)前需要包含的頭文件*/2. C51自定義函數(shù) 1)C51具有自定義函數(shù)的功能,其自定義函數(shù)語法格式如下: 返回值類型 函數(shù)名(形式參數(shù)表)編譯模式 reentrant
26、using n 函數(shù)體 2)當(dāng)函數(shù)無返回值時(shí),應(yīng)使用關(guān)鍵字void說明; 形式參數(shù)要分別說明類型,對于無形式參數(shù)的函數(shù),則可在括號內(nèi)填入void。 編譯模式指存儲模式,缺省時(shí)默認(rèn)為SMALL(單片機(jī)內(nèi)部存儲區(qū))。 reentrant(可缺?。汉瘮?shù)是否可重入。 using(可缺?。褐付ê瘮?shù)所使用的寄存器組,n取值03。 3)自定義函數(shù)調(diào)用格式同庫函數(shù) 注意:調(diào)用時(shí)的實(shí)際參數(shù)必須與函數(shù)的形式參數(shù)在數(shù)據(jù)類型、個(gè)數(shù)及順序完全一致。 3. 中斷函數(shù) 中斷函數(shù)定義語法格式如下: void 函數(shù)名(void) interrupt n using n 函數(shù)體 關(guān)鍵字interrupt定義該函數(shù)為中斷服務(wù)函數(shù),n為中斷號。 中斷號0外部中斷0 0 x0003(地址) 中斷號1定時(shí)/計(jì)數(shù)器0 0 x000b (地址) 中斷號2 外部中斷1 0 x0013 (地址) 中斷號3 定時(shí)/計(jì)數(shù)器1 0 x001b (地址) 中斷號 4串口中斷 0 x0023 (地址) 4. 再入函數(shù) 再入函數(shù)可以被遞歸調(diào)用,也可以被多個(gè)程序調(diào)用。【例】編程實(shí)現(xiàn)中斷函數(shù)對P3.2引腳按鈕開關(guān)次數(shù)的統(tǒng)計(jì)。 #include /*IE0、EA、EX0在reg51.h中已被定義*/ unsigned int num; /*聲明全局變量num*/ void main(void) IT0=1; /*中斷觸發(fā)方式邊沿出發(fā)*
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 大語言模型在數(shù)據(jù)新聞報(bào)道中的應(yīng)用與賦能機(jī)制研究
- 二零二五年企業(yè)并購合同中的資產(chǎn)評估與擔(dān)保條款
- 2025版鋁單板批發(fā)市場采購合同范本
- 二零二五年度咖啡甜品店廚房承包與甜品創(chuàng)新合同
- 二零二五年度光伏工程勞務(wù)承包清包合同范本
- 2025版環(huán)保設(shè)備制造與技術(shù)共享合同
- 少代會組織籌備方案與工作總結(jié)
- 澆筑施工基礎(chǔ)知識培訓(xùn)課件
- 背影教學(xué)活動方案與說課講稿
- (2025年標(biāo)準(zhǔn))電信和解協(xié)議書
- 養(yǎng)老院老人權(quán)益保護(hù)制度
- 高空作業(yè)車安全知識培訓(xùn)
- 航天科技集團(tuán)招聘 筆試題
- 安踏集團(tuán)零售管理培訓(xùn)手冊
- 吉林大學(xué)《計(jì)算機(jī)網(wǎng)絡(luò)(雙語)》2021-2022學(xué)年期末試卷
- 《解除保護(hù)性止付申請書模板》
- 2024年云網(wǎng)安全應(yīng)知應(yīng)會考試題庫
- 高層建筑火災(zāi)撲救
- 南京大學(xué)介紹
- DL-T-255-2012燃煤電廠能耗狀況評價(jià)技術(shù)規(guī)范
- 【視頻號運(yùn)營】視頻號運(yùn)營108招
評論
0/150
提交評論