




免费预览已结束,剩余27页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2011秋季学期“dsp原理与应用”实验教学资料实验一 ccs集成环境的熟悉 -2学时实验二 算术运算与数据操作的汇编语言程序设计-2学时实验三 信号发生器设计 -2学时实验四 iir滤波器的dsp实现 -2学时实验五 fir滤波器的dsp实现 -2学时实验六 fft的dsp实现 -2学时实验七 综合实验暨实验考查 -4学时实验报告内容:用每个实验要求的思考题代替实验报告,提交电子版,在实验结束时一起交。实验一ccs集成开发环境的熟悉一、实验内容及步骤通过编写程序计算y=x1+x2+x3+x4+x5练习ccs 2 (c5000)的使用。1在d盘或e盘建立一个自己的文件夹, 如e:05136101,该文件夹用英文或数字命名。后面所有与实验内容有关的工程与程序都在此文件夹下保存或操作。2运行ccs 2(c5000)进入ccs集成开发环境。以下操作如无特殊声明一般都在此环境下操作。3新建工程。点击主菜单project-new,会出现图1-1所示的project creation对话框。图1-1参照图1-1按如下顺序进行设置或操作: location:e:05136101 project:example2 点击完成按钮即可。4新建并保存主程序文件、链接命令文件和中断向量表文件。本次实验三个文件的参考名称为:主程序文件example2.asm、链接命令文件example2.cmd、中断向量表文件vectors.asm。点击菜单file-new-source file打开文本编辑窗口untitled1,如图1-2。用菜单file-save功能将其保存到e:05136101example2中,其中文件名称为example2,保存类型为*.asm,如图1-3。用同样的方法新建并保存文件example2.cmd和vectors.asm。图1-3图1-25为新建工程添加主程序文件、中断向量表文件和链接命令文件。在工程管理器中(图1-2中的红色方框处)右键单击example2.pjt,选择add files to project,在出现的如图1-4所示的add files to project对话框中查找并选中刚才建立的三个文件example2.asm,example2.cmd,vectors.asm,点击打开按钮将它们一起添加到该工程中去。图1-46编写主程序文件。单击工程管理器中的工程example2.pjt左边的+号展开example2.pjt工程,再单击文件夹source左边的+号,如图1-5。找到并双击example2.asm ,在界面右边出现的example2.asm文本编辑窗口中输入或复制主程序(注释部分可不输入)。文件内容如下:图1-5*计算y=x1+x2+x3+x4+x5的程序*.title example2.asm ;伪指令。用于格式化输出清单文件,声明在每页的顶部打印文件标题.mmregs ;伪指令。声明cpu寄存器名称stack .usect stack,10h ;伪指令。自定义未初始化段stack及大小(10h个字),最左边的stack是标号.bss x,5 ;伪指令。声明数组x,5个字.bss y,1 ;伪指令。声明变量y,1个字.def start ;伪指令。声明本文件中的标号start能被别的文件(程序)引用.data ;伪指令,指示下面的代码为数据段,通常包含初始化的数据(常数)。 table: .word 10,20,3,4,5 ;伪指令。声明5个16位整数类型的常数。table是标号。.text ;伪指令,指示下面的代码为文本段,通常包含可执行的代码。 start:stm #0,swwsr ; swwsr=0,插入0个等待状态。start是标号。stm #stack+10h,sp ;sp=#stack+10h,设置堆栈指针指向堆栈段的底部stm #x,ar1 ;ar1=#x或ar1指向数组xrpt #4 ;下一条指令重复执行4+1=5次mvpd table,*ar1+ ;数据传送。程序存储器中的table数据表ar1+指向的数据存储器ld #0,a;累加器a清零call sum;调用求和子程序sumend: b end ;无条件转移到标号end所在地方执行程序sum: ;标号,指示求和子程序sum从这里开始stm #x,ar3;ar3指向数组xstm #4,ar2;ar2=4loop: add *ar3+,a ;*ar3+aa,然后ar3= ar3+1。 loop是标号。banz loop,*ar2-;如果ar2的值不为0, ar2= ar2-1,跳转到loop处执行;否则执行下一条指令stl a,*(y) ; y=alret ;子程序返回.end ;伪指令。指示汇编结束7)编写链接命令文件。在工程管理器中双击example2.pjt工程中的example2.cmd ,将出现example2.cmd文本编辑窗口。在该文本编辑窗口中输入或复制文件内容。文件内容如下:vectors.obj/*声明要链接的文件-中断向量表文件的目标文件*/ example2.obj/*声明要链接的文件-主程序文件的目标文件*/ -o example2.out/*声明链接产生的可执行文件名称,默认为a.out */ -m example2.map/*声明链接产生的存储器映射文件*/ -estart/*声明主程序入口*/memory /*关键字加一对,存储器配置*/page 0: /*程序存储区*/ eprom:org=0090h len=0f70h/*定义eprom区,起始地址0090h,长度0f70h*/ vecs: org=0080h len=0010h/*定义vecs区,起始地址0080h,长度0010h*/page 1: /*数据存储区*/ spram:org=1000h len=1000h /*定义spram区,起始地址1000h,长度1000h*/ daram:org=2000h len=2000h /*定义daram区,起始地址2000h,长度2000h*/sections /*关键字加一对,定位段*/.text :eprom page 0/*将.text段映射或定位到page0的eprom区*/.data :eprom page 0/*将.text段映射或定位到page0的eprom区*/.bss :spram page 1/*将.text段映射或定位到page1的spram区*/stack :daram page 1/*将.text段映射或定位到page1的daram区*/.vectors :vecs page 0 /*将.vectors段映射或定位到page0的vecs区*/8编写中断向量表文件。在工程管理器中双击example2.pjt工程中的vectors.asm ,将出现vectors.asm文本编辑窗口。在该文本编辑窗口中输入或复制文件内容。文件内容如下:.title vectors.asm.refstart ;伪指令。声明要引用其他程序中定义的标号start.sect .vectors ;伪指令。定义初始化的段名.vectors,这一种伪指令声明的段与.data和.text功能一致bstart ;无条件转移到标号start所在的地方执行程序.end9对工程中的文件进行编译和链接。点击菜单projectrebuild all,对工程中的所有文件进行编译、链接。工程中的文件如果编译链接成功,会生成example2.out文件;如果不成功,会出现出错信息,这时应按照提示的出错信息对文件进行修改,然后再rebuild all。10装载可执行文件。要让程序代码在dsp内部运行必需将生成的*.out文件装载到dsp内部。点击菜单file-load programe,选择并双击刚才生成的example2.out文件将程序装载到dsp的内部存储器中。11运行程序,查看并记录相关结果。点击菜单debug-run或按功能键f5运行程序。查看数据的保存情况。点击菜单view-memory,会出现图1-6 (a)所示的“memory window options”对话框,按图1-6 (a)设置address=0x1000(为什么要设置成address=0x1000?),page=data。点击ok按钮,观察出现的如图1-6 (b)所示的“memory ”对话框,这个对话框显示的是变量在数据存储器中的地址与值。请思考:为什么.bss的地址是0x1000,变量y的地址是0x1005,变量x的地址又是多少呢? 图1-6 (a) ( b)查看程序的保存情况。点击菜单viewmemory,按图1-7 (a)设置address=0x0090(为什么要设置成address=0x0090?),page=program。点击ok按钮,观察出现的如图1-7 (b)所示的“memory ”对话框,这个对话框显示的是可执行程序在程序存储器中的地址与指令代码。请思考:为什么.text段的地址是0x0090?标号end的地址是0x009c?标号sum的地址是0x009e?标号loop的地址是0x00a2?.data段的地址是0x00a8? 图1-7 (a) (b)查看寄存器的状况。第一步:点击菜单view-registers-cpu registers。基本界面如图1-8。 图1-8第二步:点击菜单file-load program重新装载可执行程序*.out。 第三步:点击菜单debug-step into或按f8,观察程序在单步运行时(单步运行指的是按一次f8程序执行一步,再按一次f8程序再执行一步),cpu registers的变化。单步运行有助于进一步了解程序运行机理及用于程序调试。查看指令代码。再一次装载并运行程序,点击菜单view-disassembly, 查看并记录指令及其对应的指令代码并进行理解。图1-912改变主程序example2.asm中x1x5的值(自定),重新执行911。记录x1x5、y的值并验算。13修改example2.cmd(自定义存储器配置及段的定位),重新执行911。记录程序、数据、标号、中断矢量的地址空间。二、思考题-见实验步骤11、12、13的要求。实验二 算术运算与数据操作的汇编语言程序设计实验一、实验内容与步骤(2、3、4、5、7选做,6、8必做)1、运行ccs。2、编写程序,计算y=x1+x2+x10 (xi的值自己定义 )。3、编写程序,计算z=x+y-w、y=mx+bx、y=x1a2-x2a2 (自变量的值自己定义 )。4、编写程序,计算y= a1x1 + a2x2 + a40x40 (aixi的值自己定义 )。5、编写程序,用长字运算指令实现z32=x32+y32,用并行运算指令实现z=x+y和f=e+d。6、编制程序,计算y= a1x1 + a2x2 + a10x10,其中数据均为小数(aixi的值自己定义 )。7、分别编写程序,计算(-0.24)0.48和1024128。8、编写浮点乘法程序,计算x1x2x3 =0.2(-0.4) 0.25。 上述每个实验内容基本操作步骤与要求同实验一的步骤311。二、实验习题-编写浮点乘法程序,用调用子程序的方法计算x1x2x3 x4 =0.2(-0.4)0.250.66。三、参考程序1)用单操作数指令计算y=(a1*x1+a2*x2+a19*x19+a20*x20)- 54-.titlesy21.asm.mmregsstack.usect stack,30h.bssa,20.bssx,20.bssy,2.datatable: .word1,2,3,4,5,6,7,8,9,10,11 .word12,13,14,15,16,17,18,19,20 .word21,22,23,24,25,26,27,28 .word29,30,1,2,3,4,5,6,7,8,9,10.def start.textstart:stm #a,ar1rpt #39mvpdtable,*ar1+ld #0,bstm #a,ar2stm #x,ar3stm #19,brcrptbdone-1ld *ar2+,t;单操作数指令mpy *ar3+,a;单操作数指令add a,bdone: sth b,*(y)stl b,*(y+1)end:b end.end2)用长字运算实现32位加法运算z=x+y.titlesy22.asm.mmregsstack.usect stack,10h.bssxhi,2,1,1.bssyhi,2,1,1.bsszhi,2,1,1.defstart.datatable: .long16782345h,10200345h.textstart:stm #0,swwsrstm #stack+10h,spstm #xhi,ar1rpt#3mvpdtable,*ar1+dld *(xhi),adadd*(yhi),adsta,*(zhi)end:bend.end3)用并行指令计算z=x+y,f=e+d.titlesy23.asm.mmregsstack.usect stack,10h.bssx,3.bssd,3.defstart.datatable: .word 0123h,1027h,0,1020h,0345h,0.textstart:stm #0,swwsrstm #stack+10h,spstm #x,ar1rpt#5mvpdtable,*ar1+stm #x,ar5stm #d,ar2ld#0,asmld*ar5+,16,aadd *ar5+,16,asta,*ar5;并行指令|ld*ar2+,badd *ar2+,16,bsthb,*ar2end:bend.end4)小数运算。计算y=a1*x1+a2*x2+a3*x3+a4*x4*a1=0.1,a2=0.2,a3=-0.3,a4=0.2, x1=0.8,x2=0.6,x3=-0.4,x4=-0.2*.titlesy24.asm.mmregsstack.usect stack,10h.bssa,4.bssx,4.bssy,1.defstart.datatable: .word1*32768/10 ;0.1 .word2*32768/10 ;0.2 .word-3*32768/10 ;-0.3 .word4*32768/10 ;0.4 .word8*32768/10 ;0.8 .word6*32768/10 ;0.6 .word-4*32768/10 ;-0.4 .word-2*32768/10 ;-0.2.textstart:ssbxfrctstm #a,ar1rpt#7mvpdtable,*ar1+stm #x,ar2stm #a,ar3rptza,#3mac *ar2+,*ar3+,astha,*(y)end:bend.end5)除法运算。|被除数|b,获取商的符号;(在累加器b中)absa;分母取绝对值stha,den;分母取绝对值存回原处ldnum,16,a;将分子移到累加器a(3216)absa;分子取绝对值rpt#14;15次减法循环,完成除法subcden,axc1,blt;如果b=|除数|,商为整数。计算16384512的值。.titlesy26.asm.mmregsstack .usectstack,10h.bssnum,1;分子.bssden,1;分母.bssquot,1;商.datatable: .word66*32768/100;16384 .word-33*32768/100;512.defstart.textstart:ld#0020h,dp;指定数据页指针stm #num,ar1rpt#1mvpdtable,*ar1+;传送2个数据至分子、分母ldden,16,a ;将分母移到累加器a(3116)mpyanum;(num)*(a(3116)-b,获取商的符号;(在累加器b中)absa;分母取绝对值stha,den;分母取绝对值存回原处ldnum,a;将分子移到累加器a(3216)absa;分子取绝对值rpt#15;16次减法循环,完成除法subcden,axc1,blt;如果bepldm1,t;尾数相乘mpy m2,a;乘积尾数在累加器a中expa ;对尾数乘积规格化stt,temp ;规格化时产生的指数-tempnormastha,mp;保存乘积尾数在mp中ldtemp,a;修正乘积指数add ep,a ;(ep)+(temp)-epstla,ep;保存乘积指数在ep中neg a ;将浮点乘积转换成定点数stla,temp ;乘积指数反号,并且加载到t寄存器ldtemp,t;再将尾数按t移位ldmp,16,anormastha,product;保存定点乘积ret.end8) 链接配置文件参照实验一中的example2.cmd,但要作简单修改。中断向量表文件参照实验一中的vectors.asm,可不作修改。实验三 信号发生器设计一、实验原理采用查找表的方法产生周期信号。在dsp的内部ram中放上一个周期的正弦波数据表,通过程序按一定时间间隔将表中的数据写到d/a端口,在d/a输出端就可以得到周期性的正弦波信号。更改查找表的数据,就可以在d/a输出端得到不同的周期信号。二、实验内容与步骤1、运行ccs。2、采用查找表的方式产生正弦波、方波、三角波等常见波形。1)在ccs环境下新建da工程和五个文件main.asm、c54init.asm、c54.inc、memory.cmd、vectors.asm。2)分别编辑五个文件并将他们添加到da工程中。参考程序如下。主程序main.asm.mmregs.def _c_int00.include c54.inc.ref c54initda_addr .set 0x0002 ; 定义符号da_addr表示d/a 端口地址.datasin_table: ;在这里放置一个周期的正弦波的64个离散值.word 255,254,252,249,245,239,233,225.word 217,207,197,186,174,162,150,137.word 124,112,99,87,75,64,53,43.word 34,26,19,13,8,4,1,0.word 0,1,4,8,13,19,26,34.word 43,53,64,75,87,99,112,124.word 137,150,162,174,186,197,207,217.word 225,233,239,245,249,252,254,255 .bss da_data,1 ;声明变量da_data作d/a缓冲区 .bss da_num,1 ; 声明变量da_num作d/a计数器 .sect progsys ;自定义初始化段progsys .align 0x10 ;调整spc,下面的程序代码放置在存储器中时,起始地址对准16字的边界_c_int00: stm #0x0f80,sp ;设置堆栈指针 callc54init ;调整dsp初始化程序,硬件仿真时必须的部分ld #sin_table ,dp ;设置数据页指针,dp指向sin_table所在的数据存储器页loop: ;周期循环标号st #0,da_num ;计数变量清零stm #sin_table,ar1 ; ar1指向查找表首地址sinloop: ;一个周期内的d/a循环标号mvdk *ar1+,da_data ;读查找表中的值放入到数据缓冲区da_data中,软件仿真时在此处设置断点portwda_data,da_addr ; 数据缓冲区da_data中的值写到d/a端口,软件仿真时不起作用rpt#1000 ;下面的一条指令执行1001次nop ;空操作,在这里起延时作用addm #1,da_num ; da_num循环计数cmpmda_num,#63; da_num与63比较 bc sinloop,ntc ;一个周期内的64个点还没d/a完继续 b loop ;一个周期内的64个点已经d/a完,进入周期循环.end 初始化程序c54init.asm.mmregs.include c54.inc.def c54init.sect progsysc54init:stm #0x7208,swwsr ;0 111 001 000 001 000stm #0,swcr ;等待周期不变,(stm #1,swcr 等待周期加倍)stm #0xf800,bscr ;1111 1000 0000 0000stm #0,st0 ;数据页指针指向第0页stm #0x2b00,st1 ;0010 1011 0000 0000, intm=1 将全局中断禁止;sxm=1 数据进入alu之前进行符号位扩展;ovm=1 溢出控制位(参考st1资料)stm #0x2fe4,pmst;0010 1111 1110 0100,将中断向量表映射到2f80h=0010 1111 1000 0000bstm #0xffff,ifr ;清除挂起的中断stm #0x0000,imr ;关闭所有中断, stm #0,clkmd ;利用软件对clkmd进行加载clkcon:ldm clkmd,aand #0x01,abc clkcon,aneqstm #0x43ff,clkmd;0100 0011 1111 1111 ;pll=4 mul=5 100mhz; pll=3 mul=4 80mhzstm #0x0010,tcr1; tcr1为定时器1的定时控制寄存器。timer1 stopstm #0x0010,tcr; tcr为定时器0的定时控制寄存器。tss=1 timer stopstm #12800,prd ; prd为定时器0的周期寄存器stm #0x0020,tcr ;定时中断周期clkout*(tddr+1)*(prd+1)rsbx intm ;将全局中断使能nopnopret.end中断向量表程序vectors.asm.include c54.inc.sect .vectors.ref _c_int00 .align 0x80 reset: ; reset vector b _c_int00 nop nopnmi: rete nop nop nop ; software interruptssint17 .space 4*16 sint18 .space 4*16sint19 .space 4*16sint20 .space 4*16sint21 .space 4*16sint22 .space 4*16sint23 .space 4*16sint24 .space 4*16sint25 .space 4*16sint26 .space 4*16sint27 .space 4*16sint28 .space 4*16sint29 .space 4*16sint30 .space 4*16int0: rete nop nop nopint1: rete nop nop nop int2: rete nop nop noptint: rete nop nop noprint0: rete nop nop nopxint0: rete nop nop nopdmac0:rete nop nop nopdmac1:rete ;tint1 nop nop nopint3: rete nop nop nophpint:rete nop nop nopdmac2:rete ;rint1 nop nop nopxint1: rete nop nop nopdmac4:rete nop nop nopdmac5:rete nop nop nop .end链接配置文件memory.cmd/*-e _c_int00-m sensor.mapmemory page 0: prog: origin = 0x2000, len = 0x0f80 vect: origin = 0x2f80, len = 0x80/*128word*/ page 1: dram: origin = 0x3000, len = 0xf80sections .progsys: load = prog page 0 .vectors: load = vect page 0 .data : load = drampage 1align 16 .bss : load = drampage 1外设寄存器名称说明文件c54.inc* c54.inc *swcr .set 0x2b*time1:tim1 .set 0x30prd1 .set 0x31tcr1 .set 0x32*mcbsp0:drr10 .set 0x21dxr10 .set 0x23spsa0 .set 0x38spsd0 .set 0x39spcr10.set 0x00spcr20.set 0x01rcr10 .set 0x02rcr20 .set 0x03xcr10 .set 0x04xcr20 .set 0x05srgr10.set 0x06srgr20.set 0x07mcr10.set 0x08mcr20.set 0x09rcera0.set 0x0arcerb0.set 0x0bxcera0.set 0x0cxcerb0.set 0x0dpcr0 .set 0x0e*mcbsp1:drr11 .set 0x41dxr11 .set 0x43spsa1 .set 0x48spsd1 .set 0x49spcr11.set 0x00spcr21.set 0x01rcr11 .set 0x02rcr21 .set 0x03xcr11 .set 0x04xcr21 .set 0x05srgr11.set 0x06srgr21.set 0x07mcr11.set 0x08mcr21.set 0x09rcera1.set 0x0arcerb1.set 0x0bxcera1.set 0x0cxcerb1.set 0x0dpcr1 .set 0x0e*dma:dmprec.set 0x54dmsa .set 0x55dmsdi.set 0x56dmsdn.set 0x57*channe0:dmsrc0.set 0x00dmdst0.set 0x01dmctr0.set 0x02dmsfc0.set 0x03dmmcr0.set 0x04*channel:dmsrc1.set 0x05dmdst1.set 0x06dmctr1.set 0x07dmsfc1.set 0x08dmmcr1.set 0x09*channe2:dmsrc2.set 0x0admdst2.set 0x0bdmctr2.set 0x0cdmsfc2.set 0x0ddmmcr2.set 0x0e*channe3:dmsrc3.set 0x0fdmdst3.set 0x10dmctr3.set 0x11dmsfc3.set 0x12dmmcr3.set 0x13*channe4:dmsrc4.set 0x14dmdst4.set 0x15dmctr4.set 0x16dmsfc4.set 0x17dmmcr4.set 0x18*channe5:dmsrc5.set 0x19dmdst5.set 0x1admctr5.set 0x1bdmsfc5.set 0x1cdmmcr5.set 0x1d*dmsrcp.set 0x1edmdstp.set 0x1fdmidx0.set 0x20dmidx1.set 0x21dmfri0.set 0x22dmfri1.set 0x23dmgsa.set 0x24dmgda.set 0x25dmgcr.set 0x26dmgfr.set 0x27*3)编译、链接、装载程序。4)设置ccs集成环境下的图形查看窗口查看产生的信号波形。第一步,在指令“mvdk *ar1+, da_data”行设置断点;第二步,点击菜单view-graph-time/frequency.得到graph property dialog对话框,如图3-1。按图3-2所示进行相关设置;第三步,按f12以animate方式运行程序,运行结果如下图3-3。 图3-1 图3-2图3-35)读懂并修改程序,重复上3)、4)两步产生方波、三角波等常见信号。三、思考题1设dsp的cpu主时钟频率为100mhz,指令周期为10ns,请说明产生频率为100khz的周期三角波信号时,应该如何修改主程序。2如果在查找表中放置正弦波一个周期内的360个离散值(在matlab中产生),请重写产生正弦波的主程序并仿真。实验四 iir滤波器的dsp实现一、实验原理:参考教材 iir的dsp实现方法。二、实验内容与步骤1运行ccs。2、iir滤波器的dsp实现(软件仿真)。1)在ccs环境下新建iir2工程和三个文件:iir2.asm、iir2.cmd、vectors.asm。2)分别编辑三个文件并将他们添加到iir2工程中。参考程序如下。iir2.asm*用双操作数指令实现二阶低通iir滤波器 *反馈通道:x0=w(n)=x(n)+a1*x1+a2*x2 前向通道:y(n)=b0*x0+b1*x1+b2*x2 *.titleiir2.asm.mmregs.defstartx2.usectx,1x1.usectx,1x0.usectx,1coef.usectcoef,5indata.usectbuffer,1outdata.usectbuffer,1*pa0.set10*pa1.set1.datatable .word0 ;x(n-1).word 0 ;x(n-2).word 676*32768/10000 ;分子系数b2=0.0676.word 1352*32768/10000;分子系数b1=0.1352.word 676*32768/10000 ;分子系数b0=0.0676.word -4142*32768/10000;分母系数a2=-0.4142.word 707*32768/10000 ;分母系数a1=0.0707.textstart:ssbxfrctstm#x2,ar1rpt#1mvpd#table,*ar1+stm#indata,ar5stm#outdata,ar2stm#coef,ar1rpt#4mvpd#table+2,*ar1+stm#x2,ar3stm#coef+4,ar4;ar4-a1mvmmar4,ar1;保存地址值在ar1中stm#3,bk;设置循环缓冲区
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工业模具制造工艺改进与保密及售后服务协议
- 抖音内容创作者法律顾问服务协议
- 国际科研合作外籍专家工作合同
- 高端国际旅游房车营地租赁及景区门票合作合同
- 定制化私人飞机机组人员劳动合同范本
- 跨境电商分销渠道合作协议
- 专属定制海外旅游方案合同
- 室内空气质量检测与室内空气质量改善实施合同
- 虚拟商品交易及佣金抽成费用协议
- 影视动画动作数据服务器租赁与数据安全审计服务合同
- GB/T 19277.1-2011受控堆肥条件下材料最终需氧生物分解能力的测定采用测定释放的二氧化碳的方法第1部分:通用方法
- 2023年甘肃省特岗教师理科综合真题
- 2023年芜湖融创投资发展有限公司招聘笔试题库及答案解析
- 酒店VI设计清单
- (食品经营许可-范本)申请人经营条件未发生变化的声明
- 高频变压器作业指导书
- 事业单位招聘人员体检表
- 公司钥匙移交单
- Visio图标-visio素材-网络拓扑图库
- 轨道交通建设工程施工现场消防安全管理课件
- 腾讯微博VS新浪微博
评论
0/150
提交评论