版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、9.2 C51的數(shù)據(jù)類型與運(yùn)算,9.1 單片機(jī)的C語言,9.3 C51流程控制語句,9.4 C51的指針類型,9.5 C51的函數(shù),9.6 C51編程實例,第9章 80C51的C語言程序設(shè)計,本章內(nèi)容:,9.1.1 C51程序開發(fā)概述,,一、采用C51的優(yōu)點(diǎn),編譯器自動完成變量的存儲分配 常用接口芯片編制通用驅(qū)動函數(shù) 常用功能模塊和算法編制相應(yīng)的函數(shù),方便地進(jìn)行算法和程序的移植。 當(dāng)代碼長度超
2、過4KB以上時,C51比匯編語言更具有明顯的優(yōu)勢。,9.1 單片機(jī)的C語言,,,二、C51程序開發(fā)過程,,9.1.2 C51程序結(jié)構(gòu),,預(yù)處理命令全局變量說明;函數(shù)1說明;…… ……函數(shù)n說明;main(){ 局部變量說明; 執(zhí)行語句; 函數(shù)調(diào)用(實參表);},函數(shù)1(形式參數(shù)說明){ 局部變量說明; 執(zhí)行語句; 函數(shù)調(diào)用(實際參數(shù)表);}…… ……函數(shù)n(形式參數(shù)說明){
3、局部變量說明; 執(zhí)行語句; 函數(shù)調(diào)用(實際參數(shù)表);},,,,9.2 C51的數(shù)據(jù)類型與運(yùn)算,9.2.1 C51的數(shù)據(jù)類型,,,,9.2.2 C51的數(shù)據(jù)的存儲器類型,變量和常量必須以一定的存儲器類型定位于單片機(jī)的存儲區(qū)域中。,經(jīng)常使用的變量應(yīng)置于片內(nèi)RAM中,即用bdata、data、idata來定義; 不經(jīng)常使用的變量或規(guī)模較大的變量應(yīng)該置于片外RAM中,即用pdata、xdata來定義。例如:,,,,bit
4、 bdata flags; /* 位變量flags定位在片內(nèi)RAM的位尋址區(qū) */char data var; /* 字符變量var定位在片內(nèi)RAM區(qū) */float idata x,y,z; /* 實型變量x,y,z定位在片內(nèi)間址RAM區(qū) */sfr P1=0x90; /* 定義P1口地址為90H */,如果用戶不對變量的存儲器類型進(jìn)行定義,C51編譯器采用默認(rèn)的存儲器類型。由編譯控制命令中的存儲模式指令限制。
5、例如:char var;/* 在SMALL模式時,var定位data存儲區(qū) */ /* 在COMPACT模式時,var定位pdata存儲區(qū) */ /* 在LARGE模式時,var定位xdata存儲區(qū) */,,,9.2.3 80C51硬件結(jié)構(gòu)的C51定義,,,,一、特殊功能寄存器的定義 21個SFR,為能直接訪問,C51用擴(kuò)充的關(guān)鍵字sfr和sfr
6、16進(jìn)行定義。方法為: sfr 特殊功能寄存器名 = 地址常數(shù);,例如:sfr SCON = 0x98;sfr P0 = 0x80; sfr16 T2 = 0xCC;,,,,,二、sfr特定位的定義 sbit定義可獨(dú)立尋址訪問的位變量,如定義SFR中的一些特定位。方法為:,1、sbit 位變量名 = sfr名^位的位置(0~7),如: sfr PSW=0xD0; /* 定義
7、PSW地址為0xD0 */ sbit OV=PSW^2; /* 定義OV位為PSW.2 */ sbit CY=PSW^7; /* 定義CY位為PSW.7 */,,,,,2、sbit 位變量名 = 字節(jié)地址^位的位置(0~7),如: sbit OV=0xD0^2; /* 定義OV位地址為0xD2 */ sbit CY=0xD0^7; /* 定義CY位地址為0xD7 */ 注:字節(jié)
8、地址作基地址,必須在0x80~0xFF之間。,3、sbit 位變量名 = 位地址,如: sbit OV=0xD2; /* 定義OV位地址為0xD2 */ sbit CY=0xD7; /* 定義CY位地址為0xD7 */ 注:位地址必須位于0x80~0xFF之間。,三、內(nèi)部RAM中可位尋址對象的定義 RAM的20H~2FH單元可用bdata存儲器類型訪問,帶有bdata類型的變量可以進(jìn)行字
9、或字節(jié)尋址,用sbit指定bdata變量的相應(yīng)位后就可以進(jìn)行位尋址。,,,,例如,先定義變量數(shù)據(jù)類型和存儲類型為:int bdata ibase; /* 定義整形變量ibase */char bdata array[4]; /* 定義字符數(shù)組array[4] */,定義可獨(dú)立尋址訪問的位:sbit mybit0 = ibase^0; sbit mybit15 = ibase^15;sbit ary0
10、7 = array[0]^7;sbit ary37 = array[3]^7;,,,,訪問示例:ibase = -1; /* 字尋址 */array[2] = ‘a(chǎn)’;/* 字節(jié)尋址 */ary07 = 0; /* 位尋址 */用bit定義普通位變量時C51編譯器會自行安排該位變量于可位尋址的bdata區(qū)。例如,bit mybit。應(yīng)注意的是,不能定義bit類型指針,也不能定義bit類型數(shù)組。,,,,,,,一、算術(shù)
11、運(yùn)算符和算術(shù)表達(dá)式1、基本算術(shù)運(yùn)算符+ 加法運(yùn)算符;- 減法(取負(fù))運(yùn)算符;* 乘法運(yùn)算符;/ 除法運(yùn)算符;% 取余(模)運(yùn)算符。,9.2.4 C51的運(yùn)算符和表達(dá)式,,,加、減和乘法符合一般的算術(shù)運(yùn)算規(guī)則。 除法時,若是兩個整數(shù)相除,其結(jié)果為整數(shù),舍去小數(shù)部分;如果是兩個浮點(diǎn)數(shù)相除,其結(jié)果為浮點(diǎn)數(shù)。 取余運(yùn)算,則要求運(yùn)算對象為整形。,求值要依運(yùn)算符的優(yōu)先級進(jìn)行。算術(shù)運(yùn)算符中取負(fù)運(yùn)算優(yōu)先級最高,其次為
12、乘法、除法和取余。加法和減法優(yōu)先級最低。 可根據(jù)需要采用括號來改變運(yùn)算符的優(yōu)先級。,2、自增、自減運(yùn)算符++ 自增運(yùn)算符;-- 自減運(yùn)算符。,,,++和--運(yùn)算符只能用于變量,不能用于常量和表達(dá)式。 如,++j表示先加1,再取值;j++表示先取值,再加1。自減運(yùn)算類同。,3、類型轉(zhuǎn)換運(yùn)算符兩側(cè)的數(shù)據(jù)類型不同時,要轉(zhuǎn)換成同種類型。方式有兩種:,,,,,一是自動轉(zhuǎn)換,是指編譯器在編譯時自動進(jìn)行的類型轉(zhuǎn)換。順序為
13、:bit→char→int→long→float,signed→unsigned。 二是強(qiáng)制類型轉(zhuǎn)換,如:(double)a ,將a 強(qiáng)制轉(zhuǎn)換為double類型。,,,二、關(guān)系運(yùn)算符和關(guān)系表達(dá)式,1、關(guān)系運(yùn)算符 大于;>= 大于等于;,,= = 等于;!= 不等于。,,高優(yōu)先級,低優(yōu)先級,,,關(guān)系運(yùn)算優(yōu)先級低于算術(shù)運(yùn)算,高于賦值運(yùn)算。,2、關(guān)系表達(dá)式關(guān)系表達(dá)式的值為邏輯值:真和假
14、。C51中用0表示假,用1表示真。,三、邏輯運(yùn)算符和邏輯表達(dá)式,,,1、邏輯運(yùn)算符&& 邏輯與;| | 邏輯或;! 邏輯非。 在三種邏輯運(yùn)算中,邏輯非的優(yōu)先級最高,且高于算術(shù)運(yùn)算符;邏輯或的優(yōu)先級最低,低于關(guān)系運(yùn)算符,但高于賦值運(yùn)算符。,2、邏輯表達(dá)式邏輯表達(dá)式的值也為邏輯值:真和假。,四、位運(yùn)算符C51提供6種位運(yùn)算符:,,,~ 位取反;> 右移;&
15、 位與; ^ 位異或;| 位或。,優(yōu)先級順序為:位取反、左移和右移、位與、位異或、位或。,五、賦值和復(fù)合賦值運(yùn)算符 “=”稱為賦值運(yùn)算符,作用是將一個數(shù)據(jù)的值賦給一個變量。 復(fù)合運(yùn)算符如下:,,,+= 加法賦值;-= 減法賦值;*= 乘法賦值;/= 除法賦值;%= 取模賦值;,>= 右移位賦值;&= 邏輯與賦值;|= 邏輯或賦值;^= 邏輯異或賦值
16、;~= 邏輯非賦值。,,,一、條件語句由關(guān)鍵字if構(gòu)成。有3種條件語句:1、if(條件表達(dá)式)語句若條件表達(dá)式的結(jié)果為真(非0值),則執(zhí)行后面的語句;反之若條件表達(dá)式的結(jié)果為假(0值),則不執(zhí)行后面的語句。例如:if(p1!= 0){ c=20;},,,,9.3 C51流程控制語句,9.3.1 C51選擇語句,,,2、if(條件表達(dá)式)語句1 else 語句2若條件表達(dá)式的結(jié)果為真(非0值),則執(zhí)行語句1;反之
17、若條件表達(dá)式的結(jié)果為假(0值),則執(zhí)行語句2。,,,,,,例如:if(p1!= 0){ c=20;}else { c=0;},,,,,,3、if(條件表達(dá)式1) 語句1 else if (條件表達(dá)式2)語句2else if (條件表達(dá)式3)語句3… …else if (條件表達(dá)式n)語句nelse 語句n+1,此種形式的條件語句常用于實現(xiàn)多方向條件分支。,,,例如:if(a>= 4){ c=40;}else
18、if { a>= 3){ c=30;}else if { a>= 2){ c=20;}else if { a>= 1){ c=10;}else { c=0;},,,二、開關(guān)語句開關(guān)語句主要用于多分支的場合。一般形式為:switch (表達(dá)式){ case 常量表達(dá)式1:語句1;break; case 常量表達(dá)式2:語句2;break; … … case 常量表達(dá)式n:語句n;break;
19、 default :語句n+1;},,,,,,,,一、while語句一般形式為:while(條件表達(dá)式)語句;,,9.3.2 C51循環(huán)語句,先檢查條件,再決定是否執(zhí)行后面的語句。如的結(jié)果一開始就為假,則后面的語句一次也不能執(zhí)行。,二、do-while語句一般形式為:do語句while(條件表達(dá)式);,先執(zhí)行循環(huán)語句,再檢查條件表達(dá)式的結(jié)果。,三、for語句一般形式為: for([初值表達(dá)式];[條件表達(dá)
20、式];[更新表達(dá)式])語句,先計算初值表達(dá)式,再檢查條件表達(dá)式的結(jié)果。當(dāng)滿足條件時就執(zhí)行循環(huán)體語句并計算更新表達(dá)式,然后再根據(jù)更新表達(dá)式的計算結(jié)果來判斷循環(huán)條件是否滿足,一直進(jìn)行到循環(huán)條件表達(dá)式的結(jié)果為假(0值)時退出循環(huán)體。,,,四、if語句與goto語句結(jié)合 利用if語句與goto語句的結(jié)合,可以構(gòu)成循環(huán)結(jié)構(gòu)??梢杂袃煞N形式:,,1、當(dāng)型循環(huán)形式為:loop:if(表達(dá)式) {語句 go
21、to loop; },2、直到型循環(huán)形式為:loop:{語句 if(表達(dá)式) goto loop; },,,變量的指針就是該變量的地址。為了表示指針變量和它所指向的變量地址間的關(guān)系,可以利用運(yùn)算符:*(取內(nèi)容)和&(取地址)。,,,9.4 C51的指針類型,一般定義形式為:變量 = * 指針變量指針變量 = & 目標(biāo)變量 取內(nèi)容運(yùn)算是將指針變量所指向的目標(biāo)變
22、量的值賦給左側(cè)的變量;取地址運(yùn)算是將目標(biāo)變量的地址賦給左側(cè)的變量。,,,指針變量中只能存放指針型數(shù)據(jù)(即地址),不要將一個非指針型的數(shù)據(jù)賦給一個指針變量。正確的賦值,例如:char data *p /* 定義指針變量 */p = 30H /* 為指針變量賦值 */,,,C51編譯器支持兩種指針類型:一般指針和基于存儲器的指針。,,,,,,,定義指針變量時,若未指定它所指向的對象的存儲器類型時,該指針變量就被認(rèn)
23、為是一般指針。 一般指針占用3個字節(jié):第一個字節(jié)存放該指針的存儲器類型編碼(由編譯模式的默認(rèn)值確定),第二和第三個字節(jié)分別存放該指針的高位和低位地址偏移量。編碼為:,9.4.1 一般指針,,,,,例如:xdata 類型,地址為0x1234的指針表示為:第一字節(jié)為0x01,第二字節(jié)為0x12,第三字節(jié)為0x34。,,一般指針?biāo)赶驅(qū)ο蟮拇鎯臻g位置在運(yùn)行期間才能確定,在編譯時無法優(yōu)化存儲方式,必須生成一般代碼以保證對任意空間的對象進(jìn)行
24、存取。因此一般指針?biāo)a(chǎn)生的代碼速度較慢。,一般指針可用于存取任何變量而不必考慮變量在80C51單片機(jī)存儲空間的位置,許多C51庫函數(shù)采用了一般指針。例如:char *xdata strptr; /* 位于xdata 空間的一般指針 */int *data number;/* 位于data 空間的一般指針 */,,定義指針變量時,若指定了它所指向的對象的存儲類型時,該指針變量就被認(rèn)為是基于存儲器的指針。 基于存儲器的指針可以高
25、效訪問對象,類型由C51源代碼中存儲器類型決定,且在編譯時確定。由于不必為指針選擇存儲器,這些指針的長度可以為1個字節(jié)(idata *,data *,pdata *)或2個字節(jié)(code *,xdata *)。,,,9.4.2 基于存儲器的指針,例如:char data * str; /* 定義指向data 空間char型數(shù)據(jù)的指針 */int xdata * num; /* 定義指向xdata 空間int型數(shù)據(jù)的指針 */
26、long code * pow; /* 定義指向code 空間long型數(shù)據(jù)的指針 */,,,,,還可以在定義時指定指針本身的存儲器空間位置。,,例如:char data *xdata str; /* 指針本身在xdata空間 */int xdata * data num; /* 指針本身在data空間 */long code * idata pow; /* 指針本身在idata空間 */,基于存儲器的指
27、針長度比一般指針短,可以節(jié)省存儲器空間,運(yùn)行速度快,但它所指對象具有確定的存儲器空間,兼容性不好。,與普通的C語言程序類似,C51程序是有若干模塊化的函數(shù)構(gòu)成。函數(shù)是C51程序的基本模塊,常說的子程序就是由函數(shù)來實現(xiàn)的。,9.5 C51的函數(shù),用戶可以根據(jù)需要定義自己的功能函數(shù),也可以調(diào)用C51編譯器提供的標(biāo)準(zhǔn)函數(shù)(庫函數(shù))來完成某種特定的功能。,9.5.1 C51函數(shù)的定義,函數(shù)的一般定義形式為:返回值類型 函數(shù)名(形式參數(shù)
28、列表)[編譯模式][reentrant][interrupt n][using n]{ 函數(shù)體},當(dāng)函數(shù)沒有返回值時,應(yīng)用關(guān)鍵字void明確說明。,形式參數(shù)的類型要明確說明,對于無形參的函數(shù),括號也要保留。,編譯模式為SMALL、COPACT或LARGE,用來指定函數(shù)中局部變量和參數(shù)的存儲器空間。,reentrant用于定義可重入函數(shù)。interrupt n 用于定義中斷函數(shù),n為中斷號,可以為0~31,通過中斷號可以決定中斷
29、服務(wù)程序的入口地址。,using n 用于確定中斷服務(wù)函數(shù)所使用的工作寄存器組,n為工作寄存器組號,取值為0~3。,9.5.2 C51函數(shù)的調(diào)用與參數(shù)傳遞,若被調(diào)函數(shù)是有參函數(shù),則主調(diào)函數(shù)必須把被調(diào)函數(shù)所需的參數(shù)傳遞給被調(diào)函數(shù)。 傳遞給被調(diào)函數(shù)的數(shù)據(jù)稱為實際參數(shù),即實參。實參對形參的傳遞是單向的。 參數(shù)傳遞可采用寄存器、固定存儲器位置方式。,寄存器參數(shù)傳遞使用的寄存器如表:,寄存器傳遞方式最多可以傳遞3個參數(shù)。這種參數(shù)傳遞可以產(chǎn)生
30、高效的代碼。可以用REGPARMS和NOREGPARMS編譯命令來控制。,當(dāng)無寄存器可用時,或說明了“pragma NOREGPARMS”時,參數(shù)可以采用固定的存儲器位置傳遞。在固定的存儲器位置進(jìn)行參數(shù)傳遞是C51的一個重要特征。在SMALL模式下,參數(shù)傳遞在內(nèi)部RAM中完成。在COMPACT和LARGER模式下,參數(shù)的傳遞要在外部RAM中完成。由于80C51單片機(jī)片內(nèi)RAM空間非常有限,所以C51編譯器僅將函數(shù)的返回地址保存到堆棧中
31、,不采用堆棧傳遞參數(shù)。但應(yīng)注意,C51提供一種模擬堆棧,從而支持可重入函數(shù)的遞歸調(diào)用。,9.5.3 C51的庫函數(shù),C51編譯器提供了豐富的庫函數(shù),使用這些庫函數(shù)可以大大提高編程的效率。 每個庫函數(shù)都在相應(yīng)的頭文件中給出了函數(shù)的原形,使用時只需在源程序的開始用編譯命令 #include 將頭文件包含進(jìn)來即可。 常用的C51庫函數(shù)參見附錄C.2。,9.6 C51編程實例,9.6.1 80C51內(nèi)部資源的編程一、中斷服務(wù)函數(shù)示
32、例C51利用中斷函數(shù),控制中斷系統(tǒng)的相關(guān)資源,中斷函數(shù)的定義形式為:void 函數(shù)名(void)interrupt n [using m]{ 函數(shù)體} n 表示中斷源的編號,范圍是0~31,常用的中斷源對應(yīng)的中斷號,using 用于指定使用的工作寄存器組,m的范圍是0~3。不設(shè)定工作寄存器組時,編譯系統(tǒng)會將當(dāng)前工作寄存器組的寄存器壓入堆棧。在應(yīng)用程序中任何函數(shù)都不能調(diào)用中斷服務(wù)函數(shù),因為它是由系統(tǒng)調(diào)用的。,例 :在單片機(jī)
33、應(yīng)用系統(tǒng)中,外中斷0引腳接一個開關(guān),P1.0接一發(fā)光二級管。要求開關(guān)閉合一次,發(fā)光二極管的狀態(tài)改變一次。程序為:,#include “reg51.h”#include “intrins.h”Sbit P10=P1^0;void delay(void){ int a = 5000; while(a - - )_nop_( );},void main(){ P10 = 0; EA = 1; EX0 = 1; wh
34、ile(1);},void delay(void){ int a = 5000; while(a - - )_nop_( );}void int_srv(void)interrupt 0 { delay( ); if(INT0 = =0){ P10 = ! P10;while(INT0 = =0);}},二、定時計數(shù)器編程示例 例 用T0方式1,產(chǎn)生10ms的定時,使P1.0引腳上輸出周期為20ms方波
35、,采用中斷方式,設(shè)系統(tǒng)時鐘頻率為12 MHz。,解:1、計算計數(shù)初值: N=t/ Tcy =10×10-3/1×10-3=10000 將 -(10000/256)送入TH0中,-(10000%256)送入TL0。 2、T0方式控制字: M1M0=01,GATE=0,C/ T =0,可取方式控制字為01H; 3、程序清單如下:,#inclu
36、de “reg51.h”sbit P10 = P1^0;void timer0(void)interrupt 1{ P10 = ! P10; TH0 = -(10000/256); TL0 = -(10000%256);},void main(void){ TMOD = 0x01; P10 = 0; TH0 = -(10000/256); TL0 = -(10000%256); EA = 1; ET0 =
37、 1; TR0 = 1;while(1);},9.6.2 80C51擴(kuò)展資源的編程,例 :微型打印機(jī)接口電路如圖,一、通用并行口編程示例,,實現(xiàn)程序為:# include “reg51.h”# include “absacc.h”# define uchar unsigned char# define COMD8155 XBYTE[0x7f00]# define PA8155 XBYTE[0x7f01]# defi
38、ne PB8155 XBYTE[0x7f02]# define PC8155 XBYTE[0x7f03],sbit BUSY = P3^3;uchar code tab[17] = {0xc7,0xe5,0xbb,0xaa,0x20,0xb3,0xf6,0xb0,0xe6,0xc9,0xe7,0x20,0x32,0x30,0x30,0x35,0x0a};/*清華 出版社 2005*/uchar t1 = 17;void pt
39、r(uchar d) /*打印字符函數(shù)*/{ PA8155 = d; PC8155 = 0x00; /*產(chǎn)生選通脈沖*/ PC8155 = 0x01; while(BUSY);},void main(void){ COMD8155 = 0x0f;/*送命令字*/ prt(0x1c); /*送中文打印方式命令字高字節(jié)*/prt(0x26); /*送中文打印方式命令字低字節(jié)
40、*/EA = 1;EX1 = 1; while(1);}void int1(void)interrupt 2 using 1{ uchar i; EA = 0; for(i = 0;i < t1;i ++)prt(tab[i]);EA = 1;EX1 = 0;},二、A/D轉(zhuǎn)換接口編程示例,例 ADC0809與單片機(jī)的接口電路如圖,,查詢方式采集數(shù)據(jù)的應(yīng)用程序為:# include “reg51.h
41、”# include “absacc.h”# define uchar unsigned char# define IN0 XBYTE[0x7ff8]sbit ad_busy = P3^3;,void main(void){ static uchar idata ad[10] ; ad0809(ad);},void ad0809(uchar idata *x){ uchar i; uchar xdata * ad
42、_adr; ad_adr = & IN0; for(i = 0;i < 8;i ++) { * ad_adr = 0; /*啟動轉(zhuǎn)換*/ i = i; /*延時等待*/ i = i; while(ad_busy !=0); x[i] = * ad_adr; /*存轉(zhuǎn)換結(jié)果*/ ad_adr ++; /*下一通道*/ }
43、},,,,,,,,思考題及習(xí)題,1、C51應(yīng)用程序具有怎樣的結(jié)構(gòu)?2、C51支持的數(shù)據(jù)類型有哪些?3、C51支持的存儲器類型有哪些?與單片機(jī)存儲器有何對應(yīng)關(guān)系?4、C51有哪幾種編譯模式?每種編譯模式的特點(diǎn)如何?5、中斷函數(shù)是如何定義的?各種選項的意義如何?6、C51應(yīng)用程序的參數(shù)傳遞有哪些方式?特點(diǎn)如何?7、一般指針與基于存儲器的指針有何區(qū)別?8、關(guān)鍵字bit與sbit的意義有何不同?9、匯編程序與C51程序在應(yīng)用系
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于80c51單片機(jī)的交通燈c語言源程序
- 80c51單片機(jī)的功能單元
- 51單片機(jī)c語言程序設(shè)計源代碼
- 單片機(jī)的c語言程序設(shè)計
- 80c51單片機(jī)時鐘電路設(shè)計
- 80c51單片機(jī)交通燈課程設(shè)計報告
- 80c51單片機(jī)并行io口的擴(kuò)展畢業(yè)設(shè)計
- 基于80c51單片機(jī)控制的步進(jìn)電機(jī)畢業(yè)設(shè)計
- 畢業(yè)設(shè)計---基于80c51單片機(jī)水箱控制系統(tǒng)
- 外文翻譯---采用高性能的靜態(tài)80c51設(shè)計的單片機(jī)
- 畢業(yè)論文---基于80c51單片機(jī)的電子體溫計設(shè)計
- 畢業(yè)論文-基于80c51單片機(jī)的電子密碼鎖設(shè)計
- 基于51單片機(jī)的頻率計設(shè)計,c語言程序
- 基于80c51單片機(jī)噴油泵量油檢測系統(tǒng)的研究
- 矩陣鍵盤程序c程序,51單片機(jī).
- 單片機(jī)原理與c51程序設(shè)計--chap07
- 單片機(jī)原理與c51程序設(shè)計--chap03
- avr單片機(jī)c語言程序設(shè)計實驗指導(dǎo)書
- 單片機(jī)原理與c51程序設(shè)計--chap11
- 基于80c51的八路搶答器的單片機(jī)課程設(shè)計
評論
0/150
提交評論