




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1、2020/8/18,1,第4章 80C51的匯編語言程序設計,程序編制的方法和技巧,4.1,源程序的編輯和匯編,4.2,基本程序結(jié)構(gòu),4.3,子程序及其調(diào)用,4.4,簡單I/O設備的并口直接驅(qū)動示例,4.5,2020/8/18,2,單片機應用系統(tǒng)由硬件系統(tǒng)和應用程序構(gòu)成,匯編語言 高級語言,應用程序設計方法,匯編語言,生成的目標程序占內(nèi)存空間少、運行速度快,具有效率高、實時性強。,高級語言,對系統(tǒng)的功能描述與實現(xiàn)簡單,程序閱讀、修改和移植方便,適合于編寫復雜的程序。,2020/8/18,3,4.1 程序編制的方法和技巧,4.1.1 程序編制的步驟,明確任務:功能要求、技術(shù)指標 運行環(huán)境調(diào)研,任
2、務分析,將實際問題轉(zhuǎn)化為計算機處理的程序算法 算法比較與優(yōu)化(內(nèi)存需求與運行速度),算法設計,2020/8/18,4,流程描述,流程圖符號,“超級循環(huán)”框架,2020/8/18,5,強化模塊觀念,使程序占用空間減少、結(jié)構(gòu)清晰 循環(huán)初值和結(jié)束條件,避免“死機”現(xiàn)象 子程序的現(xiàn)場保護(注意棧平衡、寄存器內(nèi)容),程序模塊(主程序模塊、各種子程序模塊) 模塊化優(yōu)點:分塊設計、便于閱讀、調(diào)試方便,4.1.2 程序編制的方法和技巧,采用循環(huán)和子程序,對中斷子程序還有注意保護PSW的內(nèi)容,2020/8/18,6,4.1.3 匯編語言的語句格式,非數(shù)字字符開頭,后跟字母、數(shù)字、“-”、“?”等 不能用已定義的
3、保留字(指令助記符、偽指令等) 后跟英文冒號“:”,Keil的匯編器A51可以識別的語句形式為:,標號(即符號地址),標號: 指令助記符 操作數(shù)1, 操作數(shù)2, 操作數(shù)3, ;注釋,指令助記符,是指令功能的英文縮寫。,2020/8/18,7,數(shù)據(jù):二進制(B) 十進制(D或省略D) 十六進制(H),注意AF開頭時要加“0” ASCII碼,如 A,1245 符號:符號名、標號或“$”(PC的當前值) 表達式:由運算符和數(shù)據(jù)構(gòu)成(見表4.1),操作數(shù),注釋,英文分號“;”開頭,2020/8/18,8,表4.1,2020/8/18,9,4.2 源程序的編輯和匯編,目標程序的產(chǎn)生過程如下圖:,2020
4、/8/18,10,源程序的匯編,匯編源程序轉(zhuǎn)為目標程序的過程叫匯編 匯編通常在Windows下的集成開發(fā)環(huán)境完成 用A51.EXE匯編生成.OBJ、.LIB及.LST,目標程序的連接,.OBJ、.LIB經(jīng)BL51.EXE生成無擴展名的絕對地址目標文件 絕對地址目標文件可以用于仿真器調(diào)試 調(diào)試無誤的目標文件用OH51.EXE轉(zhuǎn)換為.HEX文件 .HEX文件經(jīng)編程器寫入單片機存儲器,2020/8/18,11,4.2.1 源程序的編輯和匯編,源程序的編輯,ORG 0000H LJMP MAIN ORG 0003H LJMP INT0 ORG 0030H MAIN:MOV SP,#60H Mlop:.
5、 SJMP MLOP INT0:.;中斷服務程序 RETI SUBP1: ;子程序 ret END,依據(jù)匯編語言規(guī)則 用好偽指令 符號不用中文 SJMP $ 用于調(diào)試 以 .ASM存盤,2020/8/18,12,上頁,下頁,回目錄,評價程序質(zhì)量的標準:, 程序的執(zhí)行時間, 程序所占用的內(nèi)存字節(jié)數(shù)目, 程序的邏輯性、可讀性, 程序的兼容性、可擴展性, 程序的可靠性,時 間 空 間,2020/8/18,13,4.2.2 偽指令,偽指令,也叫匯編命令。僅對匯編過程進行指示 偽指令無對應的單片機可執(zhí)行代碼,起始地址設定偽指令ORG,ORG 表達式,表達式通常為十六進制地址,例:,ORG 8000H S
6、TART:MOV A,#30H ,ORG可多次使用,但地址值的順序要由小到大,結(jié)束匯編偽指令END,END,該偽指令位于源程序的最后一行。,2020/8/18,14,定義字節(jié)數(shù)據(jù)表偽指令DB,定義字數(shù)據(jù)表偽指令DW,1000H,標號: DB 字節(jié)數(shù)據(jù)表,如: ORG 1000H DB -2,-4,-6,8,10,18,1001H,標號: DW 字數(shù)據(jù)表,ORG 1400H DATA1:DW 324AH,3CH ,1400H,1401H,1402H,1403H,大端模式,2020/8/18,15,定義常值為符號名偽指令EQU,符號名 EQU 常值表達式,LEN EQU 10 SUM EQU 21
7、H BLOCK EQU 22H CLR A MOV R7,LEN MOV R0,BLOCK LOOP:ADD A,R0 INC R0 DJNZ R7,LOOP MOV SUM,A,符號名為: 地址 常數(shù) 段名 字符串 寄存器名 位名,比較:標號只能是地址,2020/8/18,16,定義位地址為符號名偽指令BIT,符號名 BIT 位地址表達式,如: ST BIT P1.0 ;將P1.0的位地址賦給符號名ST CF BIT 0D7H ;將位地址為D7H的位定義為符號名,用BIT定義的“符號名”一經(jīng)定義便不能重新定義和改變 其它一些偽指令參見教材表4.2,2020/8/18,17,ORG 0040H
8、 START:MOV A,21H ;取十位ASCII碼 ANL A,#0FH ;保留低半字節(jié) SWAP A ;移至高半字節(jié) MOV 20H,A ;存于20H單元 MOV A,22H ;取個位ASCII碼 ANL A,#0FH ;保留低半字節(jié) ORL 20H,A ;合并到結(jié)果單元 SJMP $ END,【例4-1】片內(nèi)RAM的21H單元存放一個十進制數(shù)據(jù)十位的ASCII碼,22H單元存放該數(shù)據(jù)個位的ASCII碼。編寫程序?qū)⒃摂?shù)據(jù)轉(zhuǎn)換成壓縮BCD碼存放在20H單元。,4.3.1 順序程序,(無分支、無循環(huán)),基本程序結(jié)構(gòu),4.3,2020/8/18,18,4.3.2 分支程序,(單分支、雙分支、多
9、分支),【例4-2】設變量x以補碼的形式存放在片內(nèi)RAM的30H單元,變量y與x的關(guān)系是:當x大于0時,y=x;當x=0時,y=20H;當x小于0時,y=x+5。編制程序,根據(jù)x的大小求y并送回原單元。,ORG 0040H START:MOV A,30H ;取x至累加器 JZ NEXT ;x = 0,轉(zhuǎn)NEXT ANL A,#80H ;否,保留符號位 JZ DONE ;x 0,轉(zhuǎn)結(jié)束 MOV A,#05H ;x 0處理 ADD A,30H MOV 30H,A ;X+05H送Y SJMP DONE NEXT:MOV 30H,#20H ;x = 0,20H送Y DONE:SJMP DONE END
10、,JNB ACC.7,DONE,ADD A,#5,2020/8/18,19,【例4-3】根據(jù)R7的內(nèi)容x(轉(zhuǎn)移序號)轉(zhuǎn)向相應的處理程序。 設R7內(nèi)容為04,對應的處理程序入口地址分別為PP0PP4。,2020/8/18,20,START:MOV R7,#3 ;以轉(zhuǎn)移序號3為例 ACALL JPNUM AJMP START,【例4-3】根據(jù)R7的內(nèi)容x(轉(zhuǎn)移序號)轉(zhuǎn)向相應的處理程序。 設R7內(nèi)容為04,對應的處理程序入口地址分別為PP0PP4。,JPNUM:MOV DPTR,#TAB MOV A,R7 ADD A,R7 MOV R3,A MOVC A,A+DPTR XCH A,R3 INC A
11、MOVC A,A+DPTR MOV DPL,A MOV DPH,R3 CLR A JMP A+DPTR TAB:DW PP0 DW PP1 DW PPN,PUSH ACC MOV A,R3 PUSH ACC RET,PP0:. RET PP1: RET PP2:. RET PP3: RET PP4: RET,2020/8/18,21,JPNUM:MOV DPTR,TAB MOV A,R7 ADD A,R7 JNC NOAD INC DPH NOAD: JMP A+DPTR TAB: AJMP PP0 AJMP PP1 AJMP PPN,PP0:. RET PP1: RET PP2:. RET
12、PP3: RET PPN: RET,2020/8/18,22,4.3.3 循環(huán)程序,(2種:先執(zhí)行,后判斷;先判斷,后執(zhí)行),【例4-4】將內(nèi)部RAM的30H至3FH單元初始化為00H。,MAIN:MOV R0,#30H ;置初值 MOV A,#00H ; MOV R7,#16 ; LOOP:MOV R0,A ;循環(huán)處理 INC R0 ; DJNZ R7,LOOP ;循環(huán)修改,判結(jié)束 SJMP $ ;結(jié)束處理,2020/8/18,23,【例4-5】將內(nèi)部RAM起始地址為60H的數(shù)據(jù)串傳送到外部RAM中起始地址為1000H的存儲區(qū)域,直到發(fā)現(xiàn)$ 字符停止傳送。,MAIN:MOV R0,#60H
13、;置初值 MOV DPTR,#1000H LOOP0:MOV A,R0 ;取數(shù)據(jù) CJNE A,#24H,LOOP1 ;循環(huán)結(jié)束? SJMP DONE ;是 LOOP1:MOVX DPTR,A ;循環(huán)處理 INC R0 ;循環(huán)修改 INC DPTR SJMP LOOP0 ;繼續(xù)循環(huán) DONE:SJMP DONE ;結(jié)束處理,2020/8/18,24,例:50ms延時程序。fosc=12MHz.Tc=1s,DEL2:DJNZ R6,DEL2,;2s,DEL1:MOV R6,#123,(2123)=246s,;1s,DJNZ R7,DEL1,;1s,NOP,;1s,246s+1+1+2,DEL:M
14、OV R7,#200,(246s+1+1+2)200,(246s+1+1+2)200+1+2=500003s,;1s,;2s,RET,P110有其他的延時子程序,2020/8/18,25,4.4 子程序及其調(diào)用,完成通用功能、反復使用的程序設計成子程序。使應用程序結(jié)構(gòu)清晰緊湊,便于閱讀和調(diào)試,執(zhí)行要由其它程序來調(diào)用,執(zhí)行完后要返回到調(diào)用程序,結(jié)構(gòu)上仍然采用一般程序的3種結(jié)構(gòu),調(diào)用時注意: 一是現(xiàn)場的保護和恢復; 二是主程序與子程序間的參數(shù)傳遞。,2020/8/18,26,4.4.1 現(xiàn)場保護與恢復,在主程序中實現(xiàn)(結(jié)構(gòu)靈活),PUSH PSW ;保護現(xiàn)場( 含當前工作寄存器組號) PUSH A
15、CC ; PUSH B ; MOV PSW,#10H ;切換當前工作寄存器組 LCALL addr16 ;子程序調(diào)用, POP B ;恢復現(xiàn)場 POP ACC ; POP PSW ;含當前工作寄存器組切換,2020/8/18,27,在子程序中實現(xiàn)(程序規(guī)范、清晰),SUB1:PUSH PSW ;保護現(xiàn)場( 含當前工作寄存器組號) PUSH ACC ; PUSH B ; MOV PSW,#10H ;切換當前工作寄存器組 POP B ;恢復現(xiàn)場 POP ACC ; POP PSW ;內(nèi)含當前工作寄存器組切換 RET,2020/8/18,28,4.4.2 參數(shù)傳遞,利用累加器或寄存器(簡單、快速,但
16、參數(shù)個數(shù)不多),【例4-6】實現(xiàn)兩個8位的十六進制無符號數(shù)求和的子程序。,SADD:MOV A,R3 ;取加數(shù)(在R3中) CLR C ADD A,R4 ;被加數(shù)(在R4中)加A JC PP1 MOV R3,#00H ;結(jié)果小于255時,高字節(jié)R3內(nèi)容為00H SJMP PP2 PP1:MOV R3,#01H ;結(jié)果大于255時,高字節(jié)R3內(nèi)容為01H PP2:MOV R4,A ;結(jié)果的低字節(jié)在R4中 RET,入口:(R3)=加數(shù); (R4)=被加數(shù)。,出口:(R3)=和的高字節(jié); (R4)=和的低字節(jié)。,2020/8/18,29,利用存儲器(個數(shù)多,用R0或R1及DPTR為參數(shù)表指針),【例
17、4-7】將內(nèi)部RAM 中兩個4字節(jié)無符號整數(shù)相加,和的高字節(jié)由R0指向。數(shù)據(jù)采用大端模式存儲。,入口:(R0)=加數(shù)低字節(jié)地址; (R1)=被加數(shù)低字節(jié)地址。,出口:(R0)=和的高字節(jié)起始地址。,NADD:MOV R7,#4 ;字節(jié)數(shù)4送計數(shù)器 CLR C ; NADD1:MOV A,R0 ;利用指針,取加數(shù)低字節(jié) ADDC A,R1 ;利用指針,被加數(shù)低字節(jié)加A MOV R0,A ; DEC R0 DEC R1 DJNZ R7,NADD1 INC R0 ;調(diào)整指針,指向出口 RET,2020/8/18,30, 通過堆棧傳遞參數(shù),解: 由于要進行兩次轉(zhuǎn)換,故可調(diào)用查表子程序完成,主程序,*P
18、CH,*PCL,HEX,棧底,斷點地址,上頁,下頁,回目錄,2020/8/18,31,子程序,上頁,下頁,回目錄,HEX,Result,Result,PC,2020/8/18,32,HEX,HEX,*PCL,*PCH,斷點,ASC,主程序,子程序,上頁,下頁,回目錄,2020/8/18,33,利用堆棧,【例4-8】 將內(nèi)部RAM中20H單元中的1個字節(jié)十六進制數(shù)轉(zhuǎn)換為2位ASCII碼,存放在R0指示的兩個單元中。,入口:預轉(zhuǎn)換數(shù)據(jù)(低半字節(jié))在棧頂,出口:轉(zhuǎn)換結(jié)果(ASCII碼)在棧頂,HEASC:MOV R1,SP ;借用R1為堆棧指針 DEC R1 DEC R1 ;R1指向被轉(zhuǎn)換數(shù)據(jù) XC
19、H A,R1 ;取被轉(zhuǎn)換數(shù)據(jù) ANL A,#0FH ;取一位十六進制數(shù) ADD A,#2 ;偏移調(diào)整,所加值為MOVC與DB間總字節(jié)數(shù) MOVC A,A+PC ;查表 XCH A,R1 ;1字節(jié)指令,存結(jié)果于堆棧中 RET ;1字節(jié)指令 ASCTAB:DB 30H,31H,32H,33H,34H,35H,36H,37H DB 38H,39H,41H,42H,43H,44H,45H,46H,2020/8/18,34,驗證程序段,MAIN:MOV A,20H ; SWAP A PUSH ACC ;預轉(zhuǎn)換的數(shù)據(jù)(在低半字節(jié))入棧 ACALL HEASC POP ACC ;彈出棧頂結(jié)果于ACC中 MO
20、V R0,A ;存轉(zhuǎn)換結(jié)果高字節(jié) INC R0 ;修改指針 PUSH 20H ;預轉(zhuǎn)換的數(shù)據(jù)(在低半字節(jié))入棧 ACALL HEASC POP ACC ;彈出棧頂結(jié)果于ACC中 MOV R0,A ;存轉(zhuǎn)換結(jié)果低字節(jié) SJMP $,2020/8/18,35,4.4.3 常用子程序示例,一算術(shù)運算程序 例:多字節(jié)數(shù) 的加、減運算,;入口參數(shù)(R0)=被減數(shù)低字節(jié)地址 ; (R1)=減數(shù)低字節(jié)地址 ; (R7)=字節(jié)數(shù) ;出口參數(shù)(R1)=差的高字節(jié)地址(起始地址),NSUBCLR C NSUB1:MOV A,R0 SUBB A,R1 MOV R1,A DEC R0 DEC R1 DJNZ R7,
21、LOOP INC R1 RET,MOV R7,#16 MOV R0,#3FH MOV R1,#4FH ACALL NUSB ,2020/8/18,36,例4-10 雙字節(jié)無符號數(shù)快速乘法子程序MULD,功能: 雙字節(jié)無符號數(shù)乘法,積為32位,編程思路與手乘法相似:,bdH,bdL,adH,adL,bcL,bcH,acL,acH,bdL,adH,出口:(R0)= 積的高字節(jié)地址,2020/8/18,37,BMUL:MOV A,R3 ; MOV B,R5 ; MUL AB ;低位乘 ACALL RADD; MOV A,R3; MOV B,R4; MUL AB ;交叉乘 DEC R0 ; ACALL
22、 RADD; MOV A,R8; MOV B,R5; MUL AB ;交叉乘 DEC R0 ; DEC R0 ; ACALL RADD; MOV A,R2; MOV B,R4; MUL AB ;高字節(jié)乘 DEC R0 ; ACALL RADD; DEC R0 RET,ADD A,R0 MOV R0,A MOV A,B INC R0 ADDC A,R0 MOV R0,A INC R0 MOV A,R0 ADDC A,#00H MOV R0,A RET,RADD:,2020/8/18,38,例:16位8位無符號數(shù)除法。被除數(shù)存放在R6、R5(R6高8位,R5低8位)中,除數(shù)存放在R2中,商存放在R
23、5中,余數(shù)存放在R6中。,商 數(shù) 除 數(shù)被除數(shù) -除數(shù);試做減法,夠減商上1 余數(shù) - 除數(shù) 不夠減,商上0,并恢復減法前的余數(shù) 余數(shù) - 除數(shù) ;再做減法 ,2020/8/18,39,(2);程序名:DDIV ;功能:16位8位無符號數(shù)除法 ;入口參數(shù):被除數(shù)R6、R5,除數(shù)在R2中 ;出口參數(shù):商R5,余數(shù)R6 ;占用資源:F0作為標志位暫存單元,DDIV:PUSHPSW MOVR7,#08H;R7次數(shù) DDIV1:CLRC;清CY MOVA,R5;余數(shù)左移1位(第1次為被除數(shù)) RLCA;CYR5R60 MOVR5,A MOVA,R6 RLCA MOVF0,C; CLRC SUBBA,R
24、2;高位余數(shù)-除數(shù) JBF0,NEXT;若標志位為1,則夠減 JNCNEXT;沒有借位,也說明夠減 ADDA,R2;否則,不夠減,恢復余數(shù) SJMPNEXT1 NEXT:INCR5;夠減,商上1 NEXT1:MOVR6,A;保存余數(shù) DJNZR7,DDIV1 POPPSW RET,2020/8/18,40,例4-11利用子程序c=a2+b2,;入口參數(shù)(A)=預平方數(shù) ;出口參數(shù)(A)=平方值 SQR:MOV DPTR,#TAB MOVC A,A+DPTR RET TAB:DB 1,4,9,16,25,36,49,64,81,09H,2020/8/18,41,;入口參數(shù)(A)=預平方數(shù) ;出口
25、參數(shù)(A)=平方值 SQR:MOV DPTR,#TAB MOVC A,A+DPTR RET TAB:DB 1,4,9,16,25,36,49,64,81,MAIN:MOV 30H,#4 MOV 31H,#5 MOV A,30H ACALL SQR MOV R1,A MOV A,31H ACALL SQR ADD A,R1 MOV 32H,A SJMP $,例4-11利用子程序(32H)=(30H)2+(31H)2,2020/8/18,42,三、碼型轉(zhuǎn)換,1、十六進制數(shù)與ASCII碼間的轉(zhuǎn)換,HASC:MOV A,R0;取4位二進制數(shù) ANL A,#0FH;屏蔽掉高4位 PUSH ACC;4位二
26、進制數(shù)入棧 CLR C ;清進(借)位位 SUBB A,#0AH POP ACC ;彈出原4位二進制數(shù) JC LOOP ;借位位為1,跳轉(zhuǎn)至LOOP ADD A,#07H;借位位為0,該數(shù)在AF之間,加37H LOOP:ADD A,#30H;該數(shù)在09之間,加30H MOV R2,A;ASCII碼存于R2 RET,入口參數(shù)(R0)=16進制 出口參數(shù)(R2)=ASCII,MAIN:MOV R0,#0BH ACALL HASC SJMP $,2020/8/18,43,2、二進制數(shù)與十進制轉(zhuǎn)換,將某8位二進制數(shù)轉(zhuǎn)換為BCD碼。,HTBCD:MOV A,R2 MOV B,#100 DIV AB;除1
27、00 MOV R2,A XCH A,B MOV B,#10 DIV AB;除10 MOV R3,A MOV R4,B RET,入口參數(shù):R2 出口參數(shù):R2R3R4,253=2*100+5*10+3,2020/8/18,44,將某8位二進制數(shù) 轉(zhuǎn)換為BCD碼。,DCDTH:CLR A ; MOV R2,A ;R4清0 MOV R3,A ;R5清0 MOV R7,#8;計數(shù)初值 LOOP: CLR C ; MOV A,R2; RLC A ; MOV R2,A;R2左移一位并送回 MOV A,R4; ADDC A,R4; DA A ; MOV R4,A;R3乘2并調(diào)整后送回 MOV A,R3; A
28、DDC A,R3; DA A ; MOV R3,A;R4乘2并調(diào)整后送回 DJNZ R7,LOOP ; RET,入口參數(shù):R2 出口參數(shù):R3R4,B727B626B525B424B323B222B121B020 =(B72B6)26B525B424B323B222B121B020,(02+B7)2B6)2B5)2B4)2B3)2B2)2B1)2B0,(02+B7),(02+B7)2B6,(02+B7)2B6)2B5,(02+B7)2B6)2B5)2B4,(02+B7)2B6)2B5)2B4)2B3,(02+B7)2B6)2B5)2B4)2B3)2B2,(02+B7)2B6)2B5)2B4)2
29、B3)2B2)2B1,=,2020/8/18,45,4.5 簡單I/O設備的并口直接驅(qū)動示例,4.5.1 獨立式鍵盤與LED顯示示例,【例4-17】數(shù)據(jù)端與P0口正序連接。編寫程序,分別實現(xiàn)功能:上電后數(shù)碼管顯示“P”,按下任何鍵后,顯示從“0”開始每隔1秒加1,加至“F”后,數(shù)碼管顯示“P”,進入等待按鍵狀態(tài)。,2020/8/18,46,TEMP EQU 30H ORG 0000H JMP START ORG 0100H START:MOV SP,#5FH MOV P0,#8CH ;顯示P MOV P3,#0FFH NOKEY:MOV A,P3 CPL A JZ NOKEY ;無鍵按下 MOV TEMP,P3 ;有鍵按下 CALL D10ms MOV A,P3 CJNE A,TEMP,NOKEY;去抖 MOV R7,#16 MOV R
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 茶樓與茶藝表演團隊合作演出合同
- 農(nóng)村集體土地征收拆遷補償合同
- 水務企業(yè)水資源利用與財務管理制度
- 環(huán)保項目場地調(diào)研合同協(xié)議書范本
- 老人營養(yǎng)健康課件
- 美術(shù)課件彩虹
- 美術(shù)素描兒童課件下載
- 美術(shù)版畫介紹課件
- 美術(shù)政策解讀課件下載
- 安全工作總結(jié)幼兒園中班
- 潘祖仁版高分子化學(第五版)課后習題答案.24401
- 2023年廣東廣州市越秀區(qū)流花街招聘兩名專職統(tǒng)計員筆試備考題庫及答案解析
- 吉林省房屋修繕及抗震加固工程計價定額說明
- 預制箱梁施工監(jiān)理重點檢查內(nèi)容標準版
- 干部人事檔案目錄(樣表)
- 幼兒園中班語言教案《頑皮的小雨滴》含反思
- 2023年北京理工附中小升初英語分班考試復習題
- 《沙盤游戲與大學生心理治療》課程教學大綱
- FZ/T 12001-2006氣流紡棉本色紗
- 丁類(D類)功率放大器
- 論湖湘?zhèn)鹘y(tǒng)文化與大學生思政教育之間的融合優(yōu)秀獲獎科研論文-1
評論
0/150
提交評論