首页 正弦信号发生器设计

正弦信号发生器设计

举报
开通vip

正弦信号发生器设计正弦信号发生器作者:程锟、晏婷婷、覃雄伟摘要:本设计以凌阳SPCE061A单片机为核心,基于直接数字频率合成(DDS)技术制作了一个频率值能任意调节的多功能信号源。该信号源在1KHZ~10MHZ范围能输出稳定可调的正弦波,并具有AM、ASK和PSK等调制功能。信号输出部分采用电流放大型宽带运放做电流放大,再用宽带电压运放做电压放大,很好地解决了带宽和带负载能力的要求。系统采用液晶显示模组CPCL501显示和键盘控制功能,在负载电阻下输出的电压峰-峰值≥1V可调。方案论证与选择单片机控制模块波形发生模块功放模块调制模...

正弦信号发生器设计
正弦信号发生器作者:程锟、晏婷婷、覃雄伟摘要:本设计以凌阳SPCE061A单片机为核心,基于直接数字频率合成(DDS)技术制作了一个频率值能任意调节的多功能信号源。该信号源在1KHZ~10MHZ范围能输出稳定可调的正弦波,并具有AM、ASK和PSK等调制功能。信号输出部分采用电流放大型宽带运放做电流放大,再用宽带电压运放做电压放大,很好地解决了带宽和带负载能力的要求。系统采用液晶显示模组CPCL501显示和键盘控制功能,在负载电阻下输出的电压峰-峰值≥1V可调。 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 论证与选择单片机控制模块波形发生模块功放模块调制模块键盘显示1.题目 分析 定性数据统计分析pdf销售业绩分析模板建筑结构震害分析销售进度分析表京东商城竞争战略分析 :本设计要求可以输出较宽频带且频率稳定度足够高的正弦信号,并且具有一定的负载能力,同时可输出指标满足要求的AM、ASK、PSK信号。综合题目指标要求及相关分析,得到该设计的功能框架图如图一所示。本设计可分为以下几个部分:频率合成模块、AGC(自动增益控制)模块、幅度控制模块、功率放大模块、调制模块及人机交流模块。图一功能模块框图2.方案比较(1)正弦信号发生模块方案一:采用反馈型LC振荡原理。选择合适的电容、电感就能产生相应的正弦信号。其中电容采用变容二极管,通过控制二极管的电压来改变电容,最终控制输出信号频率。此方案器件比较简单,但是难以达到高精度的程控调节,而且稳定度不高。方案二:采用FPGA器件。将某一 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 正弦信号经过高速采样后送到外部存储器中储存好,然后用一个计数器产生地址读出存储器中的数据后送到D/A转换器件中输出,可以通过改变计数器的参数,改变地址信号,实现,也可以通过处理数据改变信号的幅度。但是此方案的输出波形受时钟影响较大,且不易于控制步进和进行功能扩展。方案三:采用直接频率合成集成芯片AD9851。AD9851是AD公司生产的DDS芯片,带并行和串行加载方式,AD9851内含可编程DDS系统和高速比较器,能实现全数字编程控制的频率合成。综上:由于DDS集成芯片能达到要求,而且节省硬件电路,程控调节能够方便实现,故采用方案三,作为1KHZ~10MHZ正弦信号发生。(2)AGC(自动增益控制)模块方案一:选用场效应管和运算放大器来实现。此电路结构简单、元减少、易于实现,但其稳定性差、达不到要求。方案二:选用集成芯片AD603实现。信号经缓冲级后进入AD603,放大后进入有效值测量部分,得出有效值送入的那篇机,再由DAC输出给AD603控制放大倍数,实现自动增益控制。方案三:DAC控制增益。输入信号放大后作为基准电压送给DAC,相当于一个程控衰减器。在接一级放大,这两集放大可实现要求的放大倍数。输出接到有效值检测电路上,反馈给单片机。单片机根据反馈调节衰减器,实现自动调节增益。但增益动态范围有限。综上:采用方案二。(3)功率放大模块方案一:程控放大器AD603。AD603的电压控制端加上控制电压,即可控制该放大器的增益。采用此方案的放大倍数控制灵活,甚至可以通过AGC比较容易实现设计要求中的输出电压范围。但是使用该方案费用比较高,而且调试比较复杂。方案二:使用高带宽运放进行放大。使用AD811等高带宽放大器直接进行放大。综上:由于方案二能实现要求的功能,电路简单,操作方便,故采用方案二。(4)模拟幅度调制(AM)模块方案一:采用软件技术实现。先用A/D转换芯片对调制信号进行采样,将采样的结果经过相应的大小处理后D/A转换输出到外部的程控放大器的增益控制端。从而控制输出信号的幅度,也即实现了AM调制。由于程控放大器输入控制电压范围较小,A/D转换后的数据处理复杂而难以精确控制增益大小,且外围电路比较复杂难调试。方案二:采用模拟乘法器MC1496。MC1496实现将两个输入信号的相乘运算,通过相乘实现模拟调制,采用MC1496容易实现频谱搬移,且输出结果稳定性好,通过改变加给其调制信号的直流电平可以改变其调制深度。综上:采用方案二。(5)ASK、PSK调制模块方案一:直接采用软件方法实现。用程序直接控制DDS输出二进制PSK和ASK信号,根据码序列中的'0'或'1'直接控制DDS的相移,便可以实现PSK调制功能,而控制DDS的工作与否即可实现ASK调制。本方案直接用软件来实现产生二进制ASK,PSK信号,基本不用硬件电路,比较方便,但输出的信号不稳定。故不采用。方案二:采用模拟开关。将调制信号经过反向作一路输出,通过控制模拟开关选择输出原信号或反向信号从而实现PSK,而通过模拟开关选择输出信号的有无即实现ASK。使用此方法的原理简单,软件硬件都容易实现,且稳定性良好。综上:采用方案二。(6)控制系统的选择方案一:使用FPGA作为控制系统。对FPGA器件编程,使其实现对液晶,AD9851和模拟开关等的控制。但是由于本系统中对液晶的控制需要专业的模组工具才能更方便地使用,所以不采用此方案。方案二:使用凌阳单片机作为控制系统。由于凌阳单片机具有自己的液晶显示模组,可以方便地对其编程实现人机接口。且其系统板内部有10位的A/D和D/A转换器,方便使用,完全能实现本系统的要求。综上:采用方案二。二、硬件设计DDS信号源设计电路图如图二所示。AD9851是ADI公司的可编程控制的直接数字频率合成的芯片。它内部包含可编程DDS系统,高性能D/A和高速比较器。外接上精密时钟源后,对其进行编程可控制输出相应的频谱纯净的正弦波。A/D9851的数据接入可采用串行或者并行。图二DDS信号产生电路原理图根据DDS芯片AD9851的工作原理,若累加器时钟为,累加器位数为N,累加器值为,频率控制字,外部参考时钟频率为20MHZ,经内部6倍频后,可得到AD9851内部工作频率为120MHZ,最终合成信号的频率和相位由下式决定。2.低通滤波模块电路图如图三所示。由于AD9851的输出信号中带有120mV的直流偏置电压和高次谐波分量,本设计在AD9851输出端加上了隔直电容和低通滤波电路。图三低通滤波电路原理图3.AGC模块如下图所示,AGC电路有可控增益放大器AD603和三极管2N3906、2N3904构建。AD603采用双电源供电方式,其控制范围为80db(-20db~+60db),可满足题目要求设计要求。经试验调试,该AGC电路在输入信号峰峰值为情况下,可实现范围内稳定输出峰峰值为2.2V无失真正弦信号。图四AGC电路图4.功率放大模块功率放大部分采用电压反馈型宽带运放AD811。供电,增益为+10情况下,-3db带宽达100MHZ,完全满足题意,且输出电流达100mA以上,满足输出峰峰值为6V的要求。电路图如图五所示。图五功率放大原理图幅度调制(AM模块)幅度调制的核心器件选用模拟乘法器MC1496,将载波信号和被调制信号相乘即可得到AM调制波。通过改变被调制信号的直流偏置而达到改变调制度的效果。其电路图如六所示。图六幅度调制原理图ASK、PSK模块判断有无键按下输入要产生的频率控制字产生基带信号(10KHz)AM幅度的调制判断有无键按下M级别的输入K级别的输入步进值的加减(100Hz)步进值的加减(10%)结束开始基带信号可以自行产生,用AD9851产生100KHz的正弦信号作为载波,如果用两个单片机控制就用单片机产生基带信号,否则可以用信号发生器产生,使之产生固定频率10KHz,从而可以达到二进制基带序列码速率固定为10kbps的要求。可用AD7502模拟开关来实现选通产生ASK信号;将载波经过反相器后产生的反相信号与载波信号通过基带信号控制选通,形成PSK信号。三、系统软件设计程序 流程 快递问题件怎么处理流程河南自建厂房流程下载关于规范招聘需求审批流程制作流程表下载邮件下载流程设计 图如图七所示(程序见附录)。图七程序流程图四、测试数据及分析调试与使用仪器RIGOLDM3051的万用 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf ;RIGOLDS1062C数字示波器;EE1461DDS合成信号发生器。测试方法模块测试将系统各模块先分开测试,调试成功后在整机调试。将硬件模块和相应的软件进行整机测试。(示波器输出波形截图见附录)依据设计要求,分别对输出波形、输出电压峰峰值、输出频率和功率放大器输出测试。测试输出电压的峰峰值时,对放大电路和AGC电路参数适当调整,使输出频率在1KHz~13MHZ之间变化时能够满足=6V1V。测试数据(1)基本要求测试1)正弦波频率范围测试接50负载,对输出电压进行测试,测量结果如表一。表一:设置频率实测频率输出幅值功放后(V)100Hz100.0Hz1.00V6.04V(有微小失真)1KHz1.000KHz1.00V6.05V(有微小失真)10KHz10.00KHz1.00V6.06V20KHz20.00KHz1.00V6.08V50KHz50.00KHz1.00V6.0V100KHz100.00KHz1.00V6.0V500KHz500.00KHz1.00V5.88V1.0MHz1.000MHz1.00V5.60V1.5MHz1.500MHz1.00V5.2V5.0MHz5.000MHz999mV5.95V10.0MHz10.000MHz976mV5.96V13.0MHz13.02MHz960mV5.93V(2)发挥部分测试采用调制度测量仪对输出信号进行AM信号测试,测试结果如表三。表三(调制信号幅值为53mV):设置调制度直流输入电压实际调制度相对误差10%530mV10.1%1%20%263.7mV20.1%0.5%30%178.5mV29.7%1%40%133.7mV39.6%1%50%106.4mV49.8%0.4%60%88.1mV60.15%0.25%70%75.1mV70.57%0.81%80%66.0mV80.3%0.375%90%58.0mV91.37%1.5%100%53.0mV100%0%4.测试结果分析系统测试指标达到要求,部分指标超过题目要求:正弦波输出频率:100Hz~13MHz;输出信号频率稳定度:优于,满足题目要求;自行产生1KHz正弦调制信号;产生AM信号在1~10MHz内,调制度可在10%~100%程控,步进10%。附录一:示波器输出波形截图AM输出波形ASK输出波形PSK输出波形附录二:单片机程序#include"spce061a.h"#include"splc501user.h"#include"xhfsq.h"unsignedintdatax[4];unsignedintdataz[4];unsignedintdata1[5];unsignedintdatam[6];unsignedlongintdata;intkeyval;voidAD9851();unsignedlongintmplz();unsignedlongintkplz();voidaskpsk();voidpsk();voidAMchange();unsignedintkey_scan();voiddelay(unsignedintcount);voiddelay1(unsignedintcount);voiddelay2(unsignedintcount);unsignedinttable[]={encoding_00,encoding_01,encoding_02,encoding_03,encoding_04,encoding_05,encoding_06,encoding_07,encoding_08,encoding_09,encoding_0a,encoding_0b,encoding_0c,encoding_0d,encoding_0e,encoding_0f,encoding_10,encoding_11,encoding_12,encoding_13,encoding_14,encoding_15,encoding_16,encoding_17,encoding_18,encoding_19,encoding_1a};main(){*P_IOB_Dir|=0xffff;//B口(8-15位)作为向AD9851的输出数据端口*P_IOB_Attrib|=0xffff;//B口B0--RESET,B1--FQ_uD,B2--W_clk*P_IOB_Data|=0x0000;//B口B7产生10KHz的基带信号while(1){keyval=key_scan();*P_Watchdog_Clear=1;switch(keyval){case13:LCD501_Init(0x00);LCD501_Bitmap(0,32,(unsignedint*)table[21]);//幅LCD501_Bitmap(12,32,(unsignedint*)table[22]);//度LCD501_Bitmap(24,32,(unsignedint*)table[23]);//调LCD501_Bitmap(36,32,(unsignedint*)table[24]);//制AMchange();break;case14:LCD501_Init(0x00);LCD501_Bitmap(0,32,(unsignedint*)table[10]);//请LCD501_Bitmap(12,32,(unsignedint*)table[11]);//输LCD501_Bitmap(24,32,(unsignedint*)table[12]);//入LCD501_Bitmap(36,32,(unsignedint*)table[26]);//要LCD501_Bitmap(48,32,(unsignedint*)table[15]);//产LCD501_Bitmap(60,32,(unsignedint*)table[16]);//生LCD501_Bitmap(72,32,(unsignedint*)table[13]);//频LCD501_Bitmap(84,32,(unsignedint*)table[14]);//率AD9851();break;case15:LCD501_Init(0x00);LCD501_Bitmap(0,32,(unsignedint*)table[15]);//产LCD501_Bitmap(12,32,(unsignedint*)table[16]);//生LCD501_Bitmap(24,32,(unsignedint*)table[17]);//基LCD501_Bitmap(36,32,(unsignedint*)table[18]);//带LCD501_Bitmap(48,32,(unsignedint*)table[19]);//信LCD501_Bitmap(60,32,(unsignedint*)table[20]);//号LCD501_Bitmap(12,48,(unsignedint*)table[1]);//1LCD501_Bitmap(24,48,(unsignedint*)table[0]);//0LCD501_PutChar(36,48,'K');LCD501_PutChar(48,48,'H');LCD501_PutChar(60,48,'z');askpsk();break;default:break;}}}voidAD9851(){inti=5;doubletem;intkeyval;unsignedlongintpk;inth;data=1000;while(1){while(key_scan()==16){*P_Watchdog_Clear=1;}loop:*P_IOB_Dir=0xf0ff;*P_IOB_Attrib=0xf0ff;*P_IOB_Data=0;delay(1);while(key_scan()==16){*P_Watchdog_Clear=1;}keyval=key_scan();switch(keyval){case13:mplz();break;case12:kplz();break;case10:if(data<1000000){data=data+100;datax[0]=data/100000%10;datax[1]=data/10000%10;datax[2]=data/1000%10;datax[3]=data/100%10;LCD501_Init(0x00);LCD501_Bitmap(12,24,table[datax[0]]);LCD501_Bitmap(24,24,table[datax[1]]);LCD501_Bitmap(36,24,table[datax[2]]);LCD501_PutChar(48,21,'.');LCD501_Bitmap(60,24,table[datax[3]]);LCD501_PutChar(84,24,'K');LCD501_PutChar(96,24,'H');LCD501_PutChar(104,24,'z');}if(data>=1000000){data=data+100;datam[0]=data/10000000%10;datam[1]=data/1000000%10;datam[2]=data/100000%10;datam[3]=data/10000%10;datam[4]=data/1000%10;datam[5]=data/100%10;LCD501_Init(0x00);LCD501_Bitmap(12,24,table[datam[0]]);LCD501_Bitmap(24,24,table[datam[1]]);LCD501_PutChar(36,21,'.');LCD501_Bitmap(48,24,table[datam[2]]);LCD501_Bitmap(60,24,table[datam[3]]);LCD501_Bitmap(72,24,table[datam[4]]);LCD501_Bitmap(84,24,table[datam[5]]);LCD501_PutChar(84,36,'M');LCD501_PutChar(96,36,'H');LCD501_PutChar(104,36,'z');}break;case11:if(data<1000000){data=data-100;datax[0]=data/100000%10;datax[1]=data/10000%10;datax[2]=data/1000%10;datax[3]=data/100%10;LCD501_Init(0x00);LCD501_Bitmap(12,24,table[datax[0]]);LCD501_Bitmap(24,24,table[datax[1]]);LCD501_Bitmap(36,24,table[datax[2]]);LCD501_PutChar(48,21,'.');LCD501_Bitmap(60,24,table[datax[3]]);LCD501_PutChar(84,24,'K');LCD501_PutChar(96,24,'H');LCD501_PutChar(104,24,'z');}if(data>=1000000){data=data-100;datam[0]=data/10000000%10;datam[1]=data/1000000%10;datam[2]=data/100000%10;datam[3]=data/10000%10;datam[4]=data/1000%10;datam[5]=data/100%10;LCD501_Init(0x00);LCD501_Bitmap(12,24,table[datam[0]]);LCD501_Bitmap(24,24,table[datam[1]]);LCD501_PutChar(36,21,'.');LCD501_Bitmap(48,24,table[datam[2]]);LCD501_Bitmap(60,24,table[datam[3]]);LCD501_Bitmap(72,24,table[datam[4]]);LCD501_Bitmap(84,24,table[datam[5]]);LCD501_PutChar(84,36,'M');LCD501_PutChar(96,36,'H');LCD501_PutChar(104,36,'z');}break;default:break;}tem=(4294967296/120000000.0)*data;if((longint)(tem*10)%10>=5)tem++;pk=tem;while(i!=1){h=pk&0x00ff;pk=pk>>8;i--;data1[i]=h;}*P_IOB_Data=0x0001;delay(1);*P_IOB_Data=0x0000;//RESET置零i=0;data1[0]=1;while(i!=5){*P_IOB_Data=*P_IOB_Data&0x00ff;*P_IOB_Data=*P_IOB_Data|data1[i]<<8;delay(1);*P_IOB_Data|=0x0004;delay(1);*P_IOB_Data&=0xfffb;delay(1);i++;*P_Watchdog_Clear=1;}*P_IOB_Data=0;*P_Watchdog_Clear=1;delay(1);*P_IOB_Data=0x0002;delay(100);*P_IOB_Data=0;while(key_scan()!=16){*P_Watchdog_Clear=1;gotoloop;}}}unsignedlongintmplz(){intsum=0;intj=12;inti=0;LCD501_Init(0x00);LCD501_PutChar(36,21,'.');LCD501_PutChar(84,36,'M');LCD501_PutChar(96,36,'H');LCD501_PutChar(104,36,'z');for(i=0;i<=5;i++){while(key_scan()==16)*P_Watchdog_Clear=1;keyval=key_scan();while(keyval>9){delay(1000);while(key_scan()==16);keyval=key_scan();}dataz[i]=keyval;if(i==2){sum=sum+j;}sum=sum+j;LCD501_Bitmap(sum,24,table[dataz[i]]);delay(1000);}data=dataz[0]*10000000+dataz[1]*1000000+dataz[2]*100000+dataz[3]*10000+dataz[4]*1000+dataz[3]*100;}unsignedlongintkplz(){intsum=0;intj=12;inti;LCD501_Init(0x00);LCD501_PutChar(48,21,'.');LCD501_PutChar(84,24,'K');LCD501_PutChar(96,24,'H');LCD501_PutChar(104,24,'z');for(i=0;i<=3;i++){while(key_scan()==16)*P_Watchdog_Clear=1;keyval=key_scan();while(keyval>9){delay(1000);while(key_scan()==16);keyval=key_scan();}dataz[i]=keyval;if(i==3){sum=sum+j;}sum=sum+j;LCD501_Bitmap(sum,24,table[dataz[i]]);delay(1000);}data=dataz[0]*100000+dataz[1]*10000+dataz[2]*1000+dataz[3]*100;}voidpsk()//产生10KHz的方波{*P_IOB_Data|=0x0008;while(1){*P_IOB_Data=0;delay2(2);*P_IOB_Data=0x0080;delay2(2);}}voidaskpsk()//产生10KHz的方波{*P_IOB_Data&=0xfff7;while(1){*P_IOB_Data=0;delay2(2);*P_IOB_Data=0x0080;delay2(2);}}voidAMchange(){unsignedlongintmatable[10]={65472,32768,21845,16384,13107,10922,9364,8192,7281,6554};unsignedlongintr1=0x0001;inti=4;*P_DAC_Ctrl=r1;r1=13107;*P_DAC1=r1;LCD501_Init(0x00);LCD501_Bitmap(12,32,(unsignedint*)table[4]);//十位显示LCD501_Bitmap(24,32,(unsignedint*)table[0]);//个位显示LCD501_PutChar(60,32,'%');while(1){delay(100);while(key_scan()==16){*P_Watchdog_Clear=1;}keyval=key_scan();switch(keyval){case10:if(i<10){i++;*P_DAC1=matable[i-1];LCD501_Init(0x00);LCD501_Bitmap(12,32,(unsignedint*)table[i]);//十位显示LCD501_Bitmap(24,32,(unsignedint*)table[0]);//个位显示LCD501_PutChar(60,32,'%');}if(i==10){LCD501_Init(0x00);LCD501_Bitmap(0,32,(unsignedint*)table[1]);LCD501_Bitmap(12,32,(unsignedint*)table[0]);//十位显示LCD501_Bitmap(24,32,(unsignedint*)table[0]);//个位显示LCD501_PutChar(60,32,'%');}break;case11:if(i>1){i--;*P_DAC1=matable[i-1];LCD501_Init(0x00);LCD501_Bitmap(12,32,(unsignedint*)table[i]);//十位显示LCD501_Bitmap(24,32,(unsignedint*)table[0]);//个位显示LCD501_PutChar(60,32,'%');}break;default:break;}}}unsignedintkey_scan(){unsignedintrow,col=0,tmp1,tmp2,key_val;tmp1=0x0010;//tmp1用来设置P1口的输出,取反后使P1.4~P1.7中有一个为0for(row=0;row<4;row++)//行检测{*P_IOA_Data=0x000f;//先将p1.4~P1.7置高*P_IOA_Data=~tmp1;//使P1.4~p1.7中有一个为0*P_Watchdog_Clear=1;tmp1=tmp1<<1;//tmp1左移一位if((*P_IOA_Data&0x000f)<0x000f)//检测P1.0~P1.3中是否有一位为0,只要有,则说明此行有键按下,进入列检测{tmp2=0x0001;//tmp2用于检测出哪一列为0for(col=0;col<4;col++)//列检测{if((*P_IOA_Data&tmp2)==0x0000)//该列如果为低电平则可以判定为该列{key_val=row*4+col;//获取键值,识别按键switch(key_val){case0:key_val=10;break;//退出循环case1:key_val=3;break;case2:key_val=2;break;case3:key_val=1;break;case4:key_val=11;break;case5:key_val=6;break;case6:key_val=5;break;case7:key_val=4;break;case8:key_val=12;break;case9:key_val=9;break;case10:key_val=8;break;case11:key_val=7;break;case12:key_val=13;break;case13:key_val=14;break;case14:key_val=15;break;case15:key_val=0;break;}returnkey_val;}tmp2=tmp2<<1;//tmp2左移一位}}}return16;}voiddelay(unsignedintcount){unsignedinti;while(--count!=0){*P_Watchdog_Clear=1;for(i=0;i<25;i++);//";"表示空语句,CPU空转。}//i从0加到125,在12M晶体下CPU大概耗时1毫秒}voiddelay1(unsignedintcount){unsignedinti;while(--count!=0){*P_Watchdog_Clear=1;for(i=0;i<125;i++);//";"表示空语句,CPU空转。}//i从0加到125,在12M晶体下CPU大概耗时1毫秒}voiddelay2(unsignedintcount){unsignedinti;while(--count!=0){*P_Watchdog_Clear=1;}}
本文档为【正弦信号发生器设计】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
娟娟
暂无简介~
格式:doc
大小:343KB
软件:Word
页数:19
分类:
上传时间:2022-05-09
浏览量:0