版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
單片機(jī)的C語言編程稱為C51編程,應(yīng)用C51編程具有以下優(yōu)點(diǎn):
(1)C51編譯器管理內(nèi)部寄存器和存貯器的分配,編程時(shí),無需考慮不同存儲器的尋址和數(shù)據(jù)類型等細(xì)節(jié)問題;
(2)程序有規(guī)范的結(jié)構(gòu),可分成不同的函數(shù),這種方式具有良好的模塊化結(jié)構(gòu),使已編好程序容易移植;(3)有豐富的子程序庫可直接引用,具有較強(qiáng)的數(shù)據(jù)處理能力,從而大大減少用戶編程的工作量;(4)C語言和匯編語言可以交叉使用。
匯編語言程序代碼短、運(yùn)行速度快、但復(fù)雜運(yùn)算編程耗時(shí)。用匯編語言編寫與硬件有關(guān)的部分程序,用C語言編寫與硬件無關(guān)的運(yùn)算部分程序,充分發(fā)揮兩種語言的長處,提高開發(fā)效率。
第4章單片機(jī)的C語言編程4.1C51程序結(jié)構(gòu)特點(diǎn)
同標(biāo)準(zhǔn)C一樣,C51的程序是由函數(shù)組成。C語言的函數(shù)以“{”開始,以“}”結(jié)束。
其中必須有一個(gè)主函數(shù)main(),程序的執(zhí)行從主函數(shù)main()開始,調(diào)用其他函數(shù)后返回主函數(shù)main(),最后在主函數(shù)中結(jié)束整個(gè)程序,而不管函數(shù)的排列順序如何。
C語言的語句規(guī)則:
1.每個(gè)變量必須先說明后引用。
2.C語言程序一行可以書寫多條語句,但每個(gè)語句必須以“;”結(jié)尾,一個(gè)語句也可以多行書寫。
3.C語言的注釋用/*……*/表示。
4.“{”花括號必須成對,位置隨意,多個(gè)花括號可同行書寫,也可逐行書寫。
C語言程序的組成結(jié)構(gòu):
全局變量說明/*可被各函數(shù)引用*/
main()/*主函數(shù)*/ {
局部變量說明 /*只在本函數(shù)引用*/ 執(zhí)行語句(包括函數(shù)調(diào)用語句); }
fun1(形式參數(shù)表)/*函數(shù)1*/ 形式參數(shù)說明
{ 局部變量說明 執(zhí)行語句(包括調(diào)用其他函數(shù)語句) }
…
funn(形式參數(shù)表)/*函數(shù)n*/ 形式參數(shù)說明
{ 局部變量說明 執(zhí)行語句
}
標(biāo)識符用來標(biāo)識源程序中某個(gè)對象的名字,這些對象可以是語句、數(shù)據(jù)類型、函數(shù)、變量、數(shù)組等。標(biāo)識符區(qū)分大小寫,第一個(gè)字符必須是字母或下劃線。
C51中有些庫函數(shù)的標(biāo)識符是以下劃線開頭的,所以一般不要以下劃線開頭命名標(biāo)識符。
C51編譯器規(guī)定標(biāo)識符只有32個(gè)字符在編譯時(shí)有效,因此在編寫源程序時(shí)標(biāo)識符的長度不要超過32個(gè)字符。
關(guān)鍵字是編程語言保留的特殊標(biāo)識符,在C語言的程序編寫中不允許標(biāo)識符與關(guān)鍵字相同。KeilC51編譯器的關(guān)鍵字除了有ANSIC標(biāo)準(zhǔn)的32個(gè)關(guān)鍵字外還根據(jù)51單片機(jī)的特點(diǎn)擴(kuò)展了相關(guān)的關(guān)鍵字。4.2C51的標(biāo)識符和關(guān)鍵字關(guān)鍵字用途說明auto存儲種類說明用以說明局部變量,缺省值為此break程序語句退出最內(nèi)層循環(huán)體case程序語句switch語句中的選擇項(xiàng)char數(shù)據(jù)類型說明單字節(jié)整型數(shù)或字符型數(shù)據(jù)const存儲類型說明在程序執(zhí)行過程中不可更改的常量值continue程序語句轉(zhuǎn)向下一次循環(huán)default程序語句switch語句中的失敗選擇項(xiàng)do程序語句構(gòu)成do…while循環(huán)結(jié)構(gòu)double數(shù)據(jù)類型說明雙精度浮點(diǎn)數(shù)else程序語句構(gòu)成if…else選擇結(jié)構(gòu)enum數(shù)據(jù)類型說明枚舉extern存儲種類說明在其他程序模塊中說明了的全局變量float數(shù)據(jù)類型說明單精度浮點(diǎn)數(shù)for程序語句構(gòu)成for循環(huán)結(jié)構(gòu)goto程序語句構(gòu)成goto轉(zhuǎn)移結(jié)構(gòu)if程序語句構(gòu)成if…else選擇結(jié)構(gòu)ANSIC標(biāo)準(zhǔn)關(guān)鍵字(1)ANSIC標(biāo)準(zhǔn)關(guān)鍵字(2)關(guān)鍵字用途說明int數(shù)據(jù)類型說明基本整型數(shù)long數(shù)據(jù)類型說明長整型數(shù)register存儲種類說明使用CPU內(nèi)部寄存的變量return程序語句函數(shù)返回short數(shù)據(jù)類型說明短整型數(shù)signed數(shù)據(jù)類型說明有符號數(shù),二進(jìn)制數(shù)據(jù)的最高位為符號位sizeof運(yùn)算符計(jì)算表達(dá)式或數(shù)據(jù)類型的字節(jié)數(shù)static存儲種類說明靜態(tài)變量struct數(shù)據(jù)類型說明結(jié)構(gòu)類型數(shù)據(jù)switch程序語句構(gòu)成switch選擇結(jié)構(gòu)typedef數(shù)據(jù)類型說明重新進(jìn)行數(shù)據(jù)類型定義union數(shù)據(jù)類型說明聯(lián)合類型數(shù)據(jù)unsigned數(shù)據(jù)類型說明無符號數(shù)據(jù)void數(shù)據(jù)類型說明無類型數(shù)據(jù)volatile數(shù)據(jù)類型說明該變量在程序執(zhí)行中可被隱含地改變while程序語句構(gòu)成while和do…while循環(huán)結(jié)構(gòu)KeilC51編譯器擴(kuò)展的關(guān)鍵字(1)關(guān)鍵字用途說明_at_地址定位為變量定義存儲空間絕對地址alien函數(shù)特性說明聲明與PL/M51兼容的函數(shù)bdata存儲器類型說明可位尋址的內(nèi)部RAMbit位標(biāo)量聲明聲明一個(gè)位標(biāo)量或位類型的函數(shù)code存儲器類型說明程序存儲器空間compact存儲器模式使用外部分頁RAM的存儲模式data存儲器類型說明直接尋址的8051內(nèi)部數(shù)據(jù)存儲器idata存儲器類型說明間接尋址的8051內(nèi)部數(shù)據(jù)存儲器interrupt中斷函數(shù)聲明定義一個(gè)中斷函數(shù)large存儲器模式使用外部RAM的存儲模式pdata存儲器類型說明“分頁”尋址的8051外部數(shù)據(jù)存儲器_priority_多任務(wù)優(yōu)先聲明RTX51的任務(wù)優(yōu)先級reentrant再入函數(shù)聲明定義一個(gè)再入函數(shù)sbit位變量聲明聲明一個(gè)可位尋址變量sfr特殊功能寄存器聲明聲明一個(gè)特殊功能寄存器(8位)KeilC51編譯器擴(kuò)展的關(guān)鍵字(2)關(guān)鍵字用途說明sfr16特殊功能寄存器聲明聲明一個(gè)16位的特殊功能寄存器small存儲器模式內(nèi)部RAM的存儲模式_task_任務(wù)聲明定義實(shí)時(shí)多任務(wù)函數(shù)using寄存器組定義定義8051的工作寄存器組xdata存儲器類型說明8051外部數(shù)據(jù)存儲器4.3C51的數(shù)據(jù)類型
C51的數(shù)據(jù)有常量和變量之分。
常量
——在程序運(yùn)行中其值不變的量。變量
——在程序運(yùn)行中其值可以改變的量。
定義一個(gè)變量,編譯系統(tǒng)就會(huì)自動(dòng)為它安排一個(gè)存貯區(qū),具體的地址值,用戶不必在意。一個(gè)變量由變量名和變量值構(gòu)成.
變量名:存貯單元地址的符號表示。變量的值:變量所在地址單元存放的內(nèi)容。數(shù)據(jù)類型:數(shù)據(jù)的長度。
C51編譯器支持?jǐn)?shù)據(jù)類型
數(shù)
據(jù)
類
型長
度值
域位型bit1Bit0或1字符型signedchar1Byte-128~+127unsignedchar1Byte0~255
整形signedint2Byte-32768~+32767unsignedint2Byte0~65535signedlong4Byte-2147483648~+2147483647unsignedlong4Byte0~4294967295實(shí)型Float4Byte1.176E-38~3.40E+38指針型data/idata/pdata1Byte1字節(jié)地址code/xdata2Byte2字節(jié)地址通用指針3Byte其中1字節(jié)為儲存器類型編碼,2,3字節(jié)為地址偏移量訪問SFR的數(shù)據(jù)類型sbit1Bit0或1sfr1Byte0~255sfr162Byte0~65535*11C51增加的特殊的數(shù)據(jù)類型1.bit位標(biāo)量bit位標(biāo)量是C51編譯器的一種擴(kuò)充數(shù)據(jù)類型,利用它可定義一個(gè)位標(biāo)量。它的值是一個(gè)二進(jìn)制位,不是0,就是1。
bit位變量名例:bitlock;
/*將lock定義為位變量*/lock=1;*122.sfr特殊功能寄存器
MCS-51系列單片機(jī)片內(nèi)有21個(gè)特殊功能寄存器(SFR),分散在片內(nèi)RAM區(qū)的0x80~0xFF地址范圍內(nèi)。對SFR的操作只能用直接尋址方式。為了能直接訪問這些特殊功能寄存器,C51提供了定義sfr的方法。sfr是一種C51擴(kuò)充數(shù)據(jù)類型,占用一個(gè)內(nèi)存單元,值域?yàn)?~255。語法如下:
sfr特殊寄存器名=寄存器地址
*13例如:sfrP1=0x90P1=255
定義一個(gè)特殊功能寄存器變量“P1”,0x90是指51單片機(jī)的P1端口地址90H,變量P1即指51單片機(jī)的P1端口。在后面的語句中可以用P1=255(對P1端口的所有引腳置高電平)之類的語句操作特殊功能寄存器。*14例:sfrPSW=0xD0;
/*定義程序狀態(tài)字PSW,因MCS-51單片機(jī)的PSW地址為D0H*/sfrTMOD=0x89;/*定義定時(shí)/計(jì)數(shù)器方式控制寄存器TMOD,因MCS-51單片機(jī)的TMOD地址為89H*/sfrSCON=0x98;
/*定義串口控制寄存器SCON,因MCS-51單片機(jī)的SCON地址為8H*/*153.sfr1616位特殊功能寄存器sfr16也是一種C51擴(kuò)充數(shù)據(jù)類型,用于定義存在于MCS-51單片機(jī)內(nèi)部RAM的16位特殊功能寄存器,如定時(shí)器T0和T1。
sfr16型數(shù)據(jù)占用2個(gè)內(nèi)存單元,取值范圍為0~65535。
*16
sbit也是一種C51擴(kuò)充數(shù)據(jù)類型,利用sbit訪問芯片內(nèi)部可尋址的特殊功能寄存器中的位。定義方法有如下三種:(1)sbit特殊功能寄存器位名=位地址
將位的絕對地址賦給位變量,位地址必須位于80H~FFH(特殊功能寄存器的位地址)之間。4.sbit可尋址位*17(2)sbit特殊功能寄存器位名=特殊功能寄存器名^位位置當(dāng)可尋址位位于特殊功能寄存器中時(shí),可采用這種方法。位位置是一個(gè)0~7之間的常數(shù)。(3)sbitsbit特殊功能寄存器位名=字節(jié)地址^位位置這種方法是以一個(gè)常數(shù)(字節(jié)地址)作為基地址,該常數(shù)必須在80H~FFH(特殊功能寄存器的字節(jié)地址)之間。位位置是一個(gè)0~7之間的常數(shù)。*18例:sfr
PSW=0xD0; /*首先定義程序狀態(tài)字PSW,
因MCS-51單片機(jī)的PSW地址為D0H*/sbitOV=PSW^2;
/*在前面定義了PSW后,OV位于PSW的第2位*/sbitAC=0xD0^6;
/*D0H是程序狀態(tài)字PSW的字節(jié)地址,
輔助進(jìn)位標(biāo)志位AC位于PSW的第6位*/sbitRS0=0xD0^3;
/*工作寄存器組控制位RS0位于PSW的第3位*/sbitCY=0xD7;
/*進(jìn)位標(biāo)志位Cy的絕對位地址為D7H*/對位變量的定義C51對位變量的定義方法有三種:1.定義bit類型變量
如bitmn;mn為位變量,其值只能是“0”或“1”,其位地址C51自行安排在可位尋址區(qū)的bdata區(qū)。
2.采用字節(jié)尋址變量.位的方法如bdataintibase;
/*ibase定義為整型變量*/
sbitmybit=ibase^15;
/*mybit定義為ibase的D15位*/
這里位是運(yùn)算符“^”相當(dāng)于匯編中的“·”,其后的最大取值依賴于該位所在的變量的類型,如定義為char最大值只能為7。
3.對特殊功能寄存器的位的定義方法1:使用頭文件及sbit定義符;多用于無位名的可尋址位。如#include<reg51.h>
sbitP1_1=P1^1;
/*P1_1為P1口的第1位*/
sbitac=ACC^7;/*ac定義為累加器A的第7位*/方法2:使用頭文件reg51.h,再直接用位名稱。例如#include<reg51.h>RS1=1;
RS0=0;
方法3:用字節(jié)地址位表示如sbitOV=0xD0^2;方法4:用寄存器名.位定義
如sfrPSW=0xd0;/*定義PSW地址為d0H*/
sbitCY=PSW^7;/*CY為PSW·7*/*21例5-2
特殊功能寄存器的訪問。#include”reg51.h”sbitP10=P1^0; /*定義P10為P1口第0位,即P1.0口*/sbitP12=P1^2; /*定義P12為P1口第2位,即P1.2口*/
voidmain() { P10=1; /*置位P1.0口*/ P12=0; /*復(fù)位P1.2口*/ PSW=0x08; /*程序狀態(tài)字置0x08*/ …… }----應(yīng)用實(shí)例C5l編譯器除了能支持以上這些基本數(shù)據(jù)類型之外,還能支持一些復(fù)雜的組合型數(shù)據(jù)類型,如數(shù)組類型、指針類型、結(jié)構(gòu)類型、聯(lián)合類型等這些復(fù)雜的數(shù)據(jù)類型。
使用頭文件
C51建有頭文件reg51.h、reg52.h,在該頭文件中對51或52系列單片機(jī)所有的特殊功能寄存器的進(jìn)行了sfr定義,對特殊功能寄存器的有位名稱的可尋址位進(jìn)行了sbit定義,因此,只要用包含語句#include<reg51.h>就可以直接引用特殊功能寄存器名,或直接引用位名稱。要特別注意:在引用時(shí)特殊功能寄存器或者位名稱必須大寫。
4.4數(shù)據(jù)的存儲類型和存儲模式
同ANSIC一樣,C51規(guī)定變量必須先定義后使用。C51對變量的進(jìn)行定義的格式如下:
[存儲種類]數(shù)據(jù)類型[存儲器類型]變量名表其中,存儲種類和存儲器類型是可選項(xiàng)。存儲類型是C51中增加的。一、變量的存儲種類
按變量的有效作用范圍可以將其劃分為局部變量和全局變量;還可以按變量的的存儲方式為其劃分存儲種類。在C語言中變量有四種存儲種類,即自動(dòng)(auto)、外部(extern)、靜態(tài)(static)和寄存器(register)。二、數(shù)據(jù)的存儲類型
C51是面向8XX51系列單片機(jī)及硬件控制系統(tǒng)的開發(fā)語言,它定義的任何變量必須以一定的存儲類型的方式定位在8XX51的某一存儲區(qū)中,否則便沒有意義。因此在定義變量類型時(shí),還必須定義它的存儲類型,C51的變量有如下幾種存儲類型:存儲器類型
描述data直接尋址內(nèi)部數(shù)據(jù)存儲區(qū),00H-7FH(128Byte)bdata可為尋址內(nèi)部數(shù)據(jù)存儲區(qū),20H-2FH,允許位與字節(jié)混合訪問(16Byte)idata間接尋址內(nèi)部數(shù)據(jù)存儲區(qū),可訪問全部內(nèi)部地址空間00H-FFH(256Byte)pdata分頁(256Byte)外部數(shù)據(jù)存儲區(qū),由操作碼MOVX@Ri訪問xdata外部數(shù)據(jù)存儲區(qū)(64KB),由操作碼MOVX@DPTR訪問code程序存儲區(qū)(64KB),由操作碼MOVC@A+DPTR訪問如果在變量定義時(shí)省略了存儲器類型標(biāo)識符,C51編譯器會(huì)選擇默認(rèn)的存儲器類型。默認(rèn)的存儲器類型由SMALL、COMPACT和LARGE存儲模式指令決定。1)data區(qū)對data區(qū)的尋址是最快的,所以應(yīng)該把使用頻率高的變量放在data區(qū),由于空間有限,必須注意使用data區(qū),data區(qū)除了包含程序變量外,還包含了堆棧和寄存器組data區(qū)。在SMALL存儲模式下,未說明存儲器類型時(shí),變量默認(rèn)被定位在data區(qū)。2)bdata區(qū)當(dāng)在DATA區(qū)的位尋址區(qū)定義變量,這個(gè)變量就可進(jìn)行位尋址,并且聲明位變量。這對狀態(tài)寄存器來說十分有用,因?yàn)樗梢詥为?dú)使用變量的每一位,而不一定要用位變量名引用位變量。3)idata區(qū)idata區(qū)也可以存放使用比較頻繁的變量,使用寄存器作為指針進(jìn)行尋址。在寄存器中設(shè)置8位地址進(jìn)行間接尋址,與外部存儲器尋址比較,它的指令執(zhí)行周期和代碼長度都比較短。4)pdata和xdata區(qū)在這兩個(gè)區(qū)聲明變量和在其他區(qū)的語法是一樣的,pdata區(qū)只有256B,而xdata區(qū)可達(dá)65536B5)code區(qū)code區(qū)即80C51的程序代碼區(qū),所以代碼區(qū)的數(shù)據(jù)是不可改變的,80C51的代碼區(qū)不可重寫。一般代碼區(qū)中可存放數(shù)據(jù)表,跳轉(zhuǎn)向量和狀態(tài)表。如果用戶不對變量的存貯類型定義,則編譯器承認(rèn)默認(rèn)存貯類型,默認(rèn)的存貯類型由編譯控制命令的存貯的模式部分決定。例:
datacharvar;
/*字符變量var定位在片內(nèi)RAM區(qū)*/charcodeMSG[]=″ENTERPARAMETER:″
/*字符數(shù)組定位在程序存貯區(qū)*/
unsignedlongxdataarray[100];
/*無符號長型數(shù)組定位在片外RAM區(qū),每元素占4bytes*/
floatidatax,y,z;
/*實(shí)型變量x,y,z,定位在片內(nèi)用間址訪問的內(nèi)部RAM區(qū)*/
bitlock;
/*位變量Lock定位在片內(nèi)RAM可位尋址區(qū)*/unsignedintpdatadimension;
/*無符號整型變量
dimension定位在分頁的外部RAM區(qū)*/unsignedcharxdatavector[10][4][4];
/*無符號字符型三維數(shù)組,定位在片外RAM區(qū)*/三、數(shù)據(jù)的存儲模式在固定的存貯器地址進(jìn)行變量參數(shù)傳遞是C51的一個(gè)標(biāo)準(zhǔn)特征,定義了變量、參數(shù)傳遞區(qū)的存貯器模式,也就是默認(rèn)了變量和參數(shù)傳遞區(qū)存貯器類型、無需再對變量和參數(shù)傳遞區(qū)的存貯器類型進(jìn)行說明。存貯器模式?jīng)Q定了變量的默認(rèn)存貯器類型、參數(shù)傳遞區(qū)和無明確存貯區(qū)類型的說明。有三種存貯器模式:SMALL、LARGE和COMPACT存儲器模式
描述SMALL參數(shù)及局部變量放入可直接尋址的內(nèi)部數(shù)據(jù)存儲區(qū)(128Byte,默認(rèn)存儲器類型是DATA)COMPACT參數(shù)及局部變量放入分頁外部數(shù)據(jù)存儲區(qū)(最大256Byte,默認(rèn)存儲類型是PDATA)LARGE參數(shù)及局部變量直接放入外部數(shù)據(jù)存儲器(最大64KB,默認(rèn)存儲器類型為XDATA)1.小(SMALL)模式所有變量都默認(rèn)在8051的內(nèi)部數(shù)據(jù)存儲器中。這和用data顯式定義變量起到相同的作用。
2.緊湊(COMPACT)模式此模式中,所有變量都默認(rèn)在8051的外部數(shù)據(jù)存儲器的一頁中。3.大(LARGE)模式
在大模式下,所有的變量都默認(rèn)在外部存儲器中(xdata)。例如:設(shè)C語言源程序?yàn)镻ROR.C,若使程序中的變量類型和參數(shù)傳遞區(qū)限定在外部數(shù)據(jù)存貯區(qū),有兩種方法:方法1:在程序的第一句加預(yù)處理命令
#pragmacompact。方法2:用C51對PROR.C進(jìn)行編譯時(shí),使用編譯控制命令:C51PROR.CCOMPACT。
如果在變量說明時(shí)略去存貯器類型標(biāo)志符,編譯器會(huì)自動(dòng)選擇默認(rèn)的存貯器類型。默認(rèn)的存貯器類型進(jìn)一步由控制指令SMALL、COMPACT和LARGE限制。例:如果聲明charvar,則默認(rèn)的存貯器模式為SMALL,var放在data存貯區(qū);如果使用COMPACT模式,var放入idata存貯區(qū);使用LARGE模式,var被放入外部存貯區(qū)(xdata存貯區(qū))。
四、對存貯器和外接I/O口的絕對地址訪問
C51對存貯器和外接I/O口的絕對地址訪問可以通過指針訪問,也可以通過函數(shù)訪問。
1.對存貯器的絕對地址訪問
利用絕對地址訪問的頭文件absacc.h可對不同的存貯區(qū)進(jìn)行訪問。該頭文件的函數(shù)有:
CBYTE (訪問code區(qū)字符型)
DBYTE (訪問data區(qū)字符型)
PBYTE (訪問pdata或I/O)
XBYTE (訪問xdata或I/O)
還有CWORD、DWORD、PWORD和XWORD四個(gè)函數(shù),它們的訪問區(qū)域同上,只是訪問的類型為int型
例: #include<absacc.h>
#definecomXBYTE[0x07ff]
那么后面程序com變量出現(xiàn)的地方,就是對地址為07ffH外部RAM或I/O口進(jìn)行訪問。例:XWORD[0]=0x9988;
即將9988H(int類型)送入外部RAM的0號和1號單元。使用中要
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度企業(yè)項(xiàng)目管理顧問合同3篇
- 2025年度公司員工數(shù)字化轉(zhuǎn)型合伙協(xié)議2篇
- 2025年度電子商務(wù)平臺勞務(wù)合作合同
- 二零二五年度農(nóng)業(yè)勞務(wù)用工服務(wù)合同范本(含農(nóng)業(yè)綠色防控技術(shù))3篇
- 二零二五年度環(huán)保項(xiàng)目融資抵押合同3篇
- 二零二五年度農(nóng)村林地林業(yè)工程承包合同書
- 2025年度公司個(gè)人借款合同社會(huì)責(zé)任及可持續(xù)發(fā)展協(xié)議3篇
- 二零二五年度養(yǎng)老服務(wù)行業(yè)員工勞動(dòng)合同范本3篇
- 2025年度農(nóng)村自建房拆除與重建一體化服務(wù)協(xié)議合同書
- 二零二五年度文化場館租賃及活動(dòng)組織合同3篇
- 2024年廣東省廣州市黃埔區(qū)中考一模語文試題及答案
- 公路施工表格
- 飯?zhí)脪炜繀f(xié)議合同范本
- 2023-2024學(xué)年遼寧省重點(diǎn)高中沈陽市郊聯(lián)體高二上學(xué)期期末考試生物試題(解析版)
- 借款分期還款合同
- 醫(yī)學(xué)史第三版重點(diǎn)
- 2024版建行借款合同范本
- CQI-8分層過程審核指南(附全套表格)
- 教科版五年級上冊科學(xué)期末測試卷及參考答案(完整版)
- 江西省九江市一中2023-2024學(xué)年下學(xué)期八年級期中物理試卷
- 物理化學(xué)英語詞匯
評論
0/150
提交評論