欢迎来到课桌文档! | 帮助中心 课桌文档-建筑工程资料库
课桌文档
全部分类
  • 党建之窗>
  • 感悟体会>
  • 百家争鸣>
  • 教育整顿>
  • 文笔提升>
  • 热门分类>
  • 计划总结>
  • 致辞演讲>
  • 在线阅读>
  • ImageVerifierCode 换一换
    首页 课桌文档 > 资源分类 > DOCX文档下载  

    简易数字频率计设计-----完整版.docx

    • 资源ID:1537547       资源大小:208.28KB        全文页数:20页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    简易数字频率计设计-----完整版.docx

    河南科技大老课程设计说明书课程名称现代电子系统设计题目简易数字频率计设计学院电信学院班级学生姓名指导教师0期201(三)I-IO课程设计任务书指导数如填写)课程设计名称,现代电子系统课程设计学生姓名刘轮辉G业班级电信科()71设计题目简易数字频率计设计一、课程设计目的掌握高速AD的使用方法:掌握频率计的工作原理;掌握GW48.SOPC实验箱的使用方法:了解乐于FPGA的电子系统的设计方法。二、设计内容、技术条件和要求设计一个具有如下功能的简易频率计。(I)根本要求:a.被测信号的频率范用为1.20kHz,用4位数码管显示数据.b.测班结果直接用卜进制数值显示。C.被测信号可以是正弦波、三角波、方波,幅值13V不等。d具有超最程警告(可以用1.ED灯显示,也可以用蜂鸣器报警)。C,当测限脉冲信号时,能显示其占空比(精度误差不大于1%).(2)发挥局部a.修改设计,实现自动切换地程。b.构思方案,使整形时,以实现犷宽被测信号的帕伊范国。三、时间进度安排布函课遨和讲解;1天查阅资料、设计;4天实验:3天撰写Hi告:2天四、主要参考文献何小超电子系统设计淅江大学出版社2(X)8.1潘松黄继业加DA技术实用教程科学出版社2006.102(X)9年12月14指导教师签字:一、«94二、系统方案版42.1频率渊方案5三、败字U率Ui率计的根本原理6四、各个演三74、1A/D模敷转蝴块84、2比拟模块94、3算”占空g量”10五、各个模块仿真波形12六、巾体会14七、务考文"15附录一16附录二.22摘要援率计是数字电路中的一个典型应用,是计算机、通讯设备,音频视频等科研生产领域不可缺少的测量仪器,频率测量在科技研究和实际应用中的作用日益重要,设计所要到达的效果,同时此设计具有抗干扰性强、易于传输,较高的测量精度等特点。数字频率计是一种根底测量仪器,在许多情况卜.,要对信号的顼率进行测量,利川示波器可以粗略测盘被测信号的频率,精确测量那么要用到数字频率计.测量频率的方法有多种.其中电子计数涔测量频率具有精度高、使用方便、测量迅速,以及使丁实现测量过程自动化等优点,是频率测量的重要手段之一。电子计数器测频有两种方式:一是直接测频法,即在一定闸门时间内测址被测信号的脉冲个数:二是间接测频法,如周期测频法.直接测频法适用于高频信号的频率测量,间接测频法适用于低频信号的频率测量.测量采用了多周期同步测量法,它防止r直接测st法对精度的缺乏,同时消除了直接与间接相结合方法,需对被测信号的频率与中介频率的关系进行判断带来的不便,能实现较高的等精度领率和周期的测量。关调I频率计、仪器、频率、精度、脉冲个数二.系统方案论证由于本课程设计是基于特定的硬件平台,在GW48-SOPC实验开发系统上进行实现对被测信号通过AD进行转换,把转换的结果和给定的阈值进行比拟,产生相应的脉冲信号。得到脉冲信号之后,先进行频率测量,给定IS的基准信号,在IS信号内对脉冲信号进行计数,计数的方式采用BCD码,然后把计数结果直接送数码管显示,对应的就是十进制的数值。为了实现占空比精度的要求,在适当的范围内竞可能提高基准信号的频率。通过个Ied灯来表示相应的单位.然后对脉冲信号进行占空比测破,给定一个高频的基准信号,在脉冲信号的(电平期间对脉冲信号进行计数,把计数结果进行相应的运鸵,运算结果直接送数码管显示,对应的也是十进制显示。对于报警信号,我设计的方案是接数码管显示,频率超过3khz时就会发出警告,数码管指示灯全部变为0“卜.面是简单的系统原理框图:M*1.1.*系线麋理框图2.1频率的测量.对于频率的测量没有现成的硬件模块,因此对于频率的测证需耍我们用VHD1.语言进行实现。对于频率的测量主要考虑有两种实现方案。方案一:直接测频法测频法就是在确定的闸门时间TW内,记录被测信号的变化周期数(或脉冲个数)Nx,那么被测信号的频率为:fx=NxTw.闸门信号>TW<被测信号1.1.WJ1.1.1.11T1.>NX<测量的过程如卜.图,在TW时间内通过计数器记录被测信号脉冲的个数,然后把记录结果锁存,经过运算后,送数码管显示,即为所测频率。,方案二:测周期法测周期法需要有标准信号的频率fs,这个标准信号应该取一个频率适中的高频信号,在待测信号的一个周期TX内,记录标准频率的周期数Ns,那么被测信号的频率为:fx=fsNs.被测信号> TX<标准信号删ff1.删唧唧唧唧删> NS<测量测周期法的过程如上图所示,在待测信号的一个周期TX内,记录标准信号周期的个数,然后把记录结果锁存,经过运算后,送数码管显示,即为所测频率。,比拟一二两种方案:这两种测频率的原理根本一样,都是通过在给定的时间内记录脉冲的个数,经过一定的运.算处理,得出结果显示出来。并且这两种方案的计数值都会产生误差,都与计数器中记录的数值NX或NS有关。但是考虑到用VHD1.语言编写乘除的算法比拟困难,并且经过乘除运兑后所得结果的误差较大,因此选用方案一方案一得好处是闸门信号直接可以选择IS的时钟信号,在这IS时间内记录的被测信号脉冲的个数,正好就是被测信号的频率,不再需要进行运算处理.不但减少编程的难度,而且也减小了实验的误差。因为侧周期法的标准信号是一个高频信号,在不同的被测信号的脉冲下所造成的误差有很大的不同。而在IS闸门信号卜.,记录的脉冲个数,对于所有被测信号的产牛的误差根本是一样。考虑到以上的各因素我认为方案是比拟理想的选择。三.数字频率频率计的根本原理(1)数字频率计的主要功能是测量周期信号的频率。频率是单位时间(IS)内信号发生周期变化的次数。如果我们能在给定的IS时间内而信号波形计数,并将计数结果显示出来,就能读取被测信号的频率。数字频率计首先必须获得相对稳定与准确的时间,同时将被测信号转换成幅度与波形均能被数字电路识别的脉冲信号,然后通过计数器计算这一段时间间隔内的脉冲个数,将其换算后显示出来。这就是数字频率计的根本原理。(2)从频率计的根本原理出发,根据根本要求可以得到如图3的系统框图:图3数字编率计原理框图四.各个模块设计本系统除了特定硬件资源外,还需通过软件实现四个模块的设计,分别是:(1)数模转换模块:A/D数模转换,为把数字信号转换为信息根本相同的模拟信号而设计的处理过程。将信号发生器传过来的模拟信号转化成数字信号。(2)比拟器模块:输出量数值与规定的参比值相比拟,以产生个差值信号(误差信号)的器件。(3)频率和占空比测量模块:在个测量周期过程中,被测周期信号在输入电路中经过放大、整形、微分操作之后形成特定周期的窄脉冲,送到主门的一个输入端。主门的另外一个输入端为时基电路产生电路产生的闭门脉冲。在一串理想的脉冲序列中(如方波),正脉冲的持续时间与脉冲总周期的比值。4、1A/D数模转换拄制模块通过编程实现对ADCO809的控制,具体的程序见附录,其控制模块见下列图:AD0809的工作过程是:输入3位地址,并使A1.E=1,将地址存入地址锁存器中。此地址经译码选通8路模拟输入之一到比拟器.START上升沿招逐次逼近存放器红位,下阡沿I;动A/D转换,之后EOC输出怕号变低,指示转换正在进行.直到A/D转换完成,EoC变为高电平,指示A/D转换结束,结果数据已存入钺存器,这个信号可用作中断申请.当OE输入高电平时,输出三态门翻开,A1.E,START.0E,ADDA都是ADC0809的控制信号,ADD八为模拟通道选择,低电平选择通道0,A1.E为通道地址锁存信号,START为启动AD转换的信号,OE为.ADC0809转换结果输出的使能信号。EOeSJARfCI.tXKOE*地址便存',洋研IN->J28-IN:227-IN1卜1.326一IXoINa-«25-D1>1、:-521-A1.)1IHSTART-623-ADIK'E(X-U-7MC(4-A1.E一I1.OE-92<)-IZc.(x,-101!)一肉丁-1118->)CPkxtt1217GXI)-1316一小口O-H15-n:IJB-IJBiDB1HB,1''IW11.>H,数模转换控制模块的局部程序如下:beginADDA<=1'y5<=REG1.;1.OcKO<=1.OCK:COM:process(CURRENTSTATE,EOC)BEGINCASECURRENT_STATEISWHENSTo=>A1.E<='0'jSTART<=,O,:1.OCK<='0'0E<=0,;NEX1.STATE1.ST1.;WHENST1.->A1.E<='1,:START<=1':1.OCK<='0':0E<=0,;NEX1.STATE1.ST2;WHENST2=>A1.E<三,0,jSTART<=,O,;1.oCK<='0'0E<='0>IF(EOC='1,)THENNEXTSTTE<ST3:E1.SENEXTSTATECST2;ENDIF:WHENST3=>A1.E<='0>STARTC='O'1.OCK<='O'jOE<=t1,;NEXT_STATE<=ST4;WHENST4=>A1.E<='0>START<='O':1.oCK<='T:0E<=1,:NEXT_STATE<=STO:WHEN()THERS=>NEXTSTATE<-STO:ENDCASE:ENDPROCESSCOM;REG!PROCESS(C1.K10)上述程序中为ADDA为1时,为通道1,当STO=O,START<='0'1.OCK<='0'0E<=0,时从状态O转换到状态1;实现了从状态1到状态2,从状态3到状态4,再从状态4到状态0,把输入信号转化为二进制。然后作为比拟器的输入信号在比拟器中和阀值进行比拟.其具体与ADCO809的连接电路图如下:4、2比拟模块数字比拟器用于数字信号的比拟,例如,数据A和B比拟,如果A>B,那么输出A大B的结果信号FA>B=I,FA=B=O,FAVB=O1,如果A=B,那么输出A等于B的结果信号FA>B=0,FA=B=I,FA<B=0:如果A<B,那么输出A小于B的结果信号FA>B=0,FA=B=O,FA<B=1.o我们这里用到的比拟落是比拟是把ADCo809转换的结果和给定的阈值进行比拟,输出产生脉冲信号,结果是把正弦波和三角波转换成方波.局部程序如卜.:beginProCeSMy5)beginify5>="100OOOOO,thcnfin<=':e1.sefin<='0>endif;endprocess;endb1.ockBJ;上述程序中选取阀值为100oOO0当大丁阀值时.输出为W电平,低于阀值时输出为低电平。从而实现了把正弦波,三角波转换为方波。然后输入到频率和占空比的控制模块中。通过编程实现的比拟模块见下列图:经过Q70输出的结果,直接给d7.0做为输入,然后用输入和这个阈值作比拟,如果大于那么输出为高电平,小于或等于那么输出为低电平。4、3频率和占空比测量模块C1.k3M为系统时钟信号,C1.kin是输入的时钟信号,fin是经过过比拟器后的输入信号,在IS的信号下对fin信号进行计数,计数器,要求低位的计数值溢出信号做为高位的输入信号,从而显示频率的计量。CnPI30为计算频率计的khz位,cnp230为频率计数位的hz位,cnp330为频率计数位的个位,cnp430系统占用的位,cnp530和beef对应的数码管是显示占空比,hz和khz是被系统占用的位.在.fin的高电平期间就对这个基准脉冲信号的个数进行计数同时也在fin二分频后的高电平期间对这个柒准信号进行计数,把这两个得到的计数结果进行相除运算,相除后得到的结果进行个位和卜位别离,然后再进行进制转换,送到数码管中显示。占空比局部程序如卜.:beginiff3="thenn1.<=0:m1.<=0:11.<-0:e1.seifc1.k7'eventandc1.k7='thenifg1.="thenn1.<=n1.+1.;endif;endif;ifc1.k7'eventandc1.k7='theniff2,then111.<=m1.+1.;endif;endif:endif;1.1.<=111.*100n1.:endprocessp5:p6:process(m1.,n1.)beginy3(3downto0)<=convst<1.1.ogic,vector(12rem10,4);y3(7downto4)<三conv_std_Iogic_vector(12/10rem10,4);endprocessp6:endb1.ockZKB;上面程序中m1.为高电平时的所得到的频率,n1.为一个周期的频率。把12和10求余,结果转换成四位二进制,得到的就为显示占空比的个位,把上述求余后再和10求余,结果转换成四位二进制,所得到的就是显示数码管的卜位,二个就是显示占空比的二位数码管。五 .各个模块仿真波行各个模块的源程序见附录,对于各个模块的仿真如下:A/D模数转换模块:如果从被测信号输入端输入幅值在IV左右集率为IKHz左右的正弦信号,如果电路正常,数码管可以显示被测信号的频率,如果数码管没有显示,或显示值明显偏离输入信号频率,那么要作进一步检测“1m)*!<<jnr3tcnm正常情况下,可以观测到与输入频率一致、如观测不到输出波形,或观测到的波形形状与幅值不对,那么应检测这一局部电路,消除故障。如该局部电路正常,或消除故障后频率计仍不能正常工作时,也需要进一步检程序。嫌率和占空比模块测172IMCmS3二83二三二三三333±J'如频率关系小致或波形不正常,那么应对计数器和反应门的各引脚电平与波形进行检测,正常情况各电平值或波形应与电路中给出的状态一致.通过检测与分析找出原因,消除故障。电路中C1.kin为IHZ信号,CIk3M为系统时钟的基准信号。fin是输入的脉冲信号,cnp1.,cnp2p3为记数码管的khz,hz和个位。CnP5和beef为显示在数码管中的占空比。在仿真中也应该绐个较高频率的时钟信号,对下占空比测fit,在可以允许的范围内应竟可能的给一个高频的基准信号,因为筑率越高输出的占空比结果会越接近其实值。对总的系统仿真:u.¾vwuwvvtti11u三iff1.mi三1.m¾vwvwvttjmnnvvrtCTi.正常情况各电平值应与电路中给出的状态一致。但是由于显示的是i频的信号,在输入时往往会有一些不正确,有一些功能没有显示出来,占空比不稳定等,我在程序中找到了些错误。通过检测与分析找出原因,消除故障,诚小误差六 .心得体会在这实习的两周中,我了解到了很多书本上未曾有过的东西,在我屡次陷入困境时找到了出路,从而使我们能轻榜完成此次设计.数字痂率计是i种用十进制数字显示被测信号频率的数字测收仪器,它的根本功能是测Ift正弦信号.方波信号,尖脉冲信号及其他各种单位时间内变化的物理fit.我的在此次实习中理论结合实际,提高和培养创新能力,为后续课程的学习,毕业设计,毕业后的工作打下根底,同时,结合实践操作,可以表达现代化的设计方法和理念,使电子课程设计在培养我们能力方面,得到比拟大的提高。通过此次的课程设计,我对数字电子课本上的根本知识有了更深刻的领悟和掌握。由于我设计的是数字频率计,涉及的知识而很广,所以我查阅了很多的书籍,并上网杳阅了相关的知识,才完成了这份课程设计。在这个过程中,遇到了种种的问题,但是通过老师和同学的帮助,以及查阅书籍,最终解决了问题.本次课程设计在王老师和同学的大力帮助下,我才得以完成大学里第一次的课程设it.在次,向老师和同学表示遇谢.在课程设计中,难免有错误,希里老同和同学帮助改正使我的运用知识的能力有更大的提高.七 .参考文献(I)现代电子系统设计浙江大学出版社何小艇主编(2)EDA技术使用教程科学出版社潘松编著(3)电子技术根底(数字局部),康华光,高等教育出版社,1998年(4)实用电子电路手册,高等教育出版社,1992年(5)新型集成器件实用电路,杨帮文,电子工业出版社,2002年(6)电子技术课程设计书,艾永乐、付子义,焦作工学院电气系,1998年附录一:系统总电路图附录二:模数转换模块:1.ibraryiccc;useiccc.std_1.ogic_1164.a1.1.;useieee.std_1.ogic_unsigned.a1.1.;useieee.std_1.ogic_ariih.a1.1.;entity1.1.isport(y1.:instd_1.ogic_vcctor(7downtoO);d.e.c1.k.C1.KK1.eocHnStdJogic;a,b.c:butterStdJogic;adc1.k:outs(djogic;A1.E.START.OE.ADDA.1.OCKO:OUTSTD_1.OGIC:y:outstd_1.ogic_vector(15downto0);end;architecturebhvof1.1.issigna1.e1.k1.c1.k2.c1.k3,c1.k4,c1.k5.c1.k6,c1.k7,fin:std_1.ogic;signa1.1.integerrangeOto2:signa1.m:integerrangeOto5;signa1.nintcgcrrangeOto5999999;signa1.f.g,h:std_1.ogic;signa1.dout.din:std_1.ogic_vector(19downto0):signa1.cc:std_1.ogic:=Y)'signa1.nIintegerrangeOto999999;signa1.m1.:intcgcrrangeOto199999;signa1.11.1.2rintegerrangeOto99:signa1.y3,y4:std_1.ogic_vector(7downtoO);signa1.fI.gI.hI,O.f2:stdJogic;signa1.y2.y5:std_1.ogic_vcctor(7downto0):beginad:b1.ockTYPESTATESIS(STO.ST1.ST2.ST3.ST4);SignaICURRENT_STATE,NEXT_STATE:STATES:=STO;signa1.REGI.:std_1.ogic_vector(7downtoO);signa1.1.OCK:SKUogic;beginADDA<='I'y5<=REG1.;1.oCKo<=1.OCK:COMrocess(CURRENT-SAE.EOC)BEGINCASECURRENT_STATEISWHENST0=>A1.E<='0':START<='0':1.OCK<='0'OE<='0":NEXT_STATE<=STI;WHENSTI=>1.E<='1':SIK<='I':1.CX?K<='0'OE<='0;NEXT_STATE<=ST2;WHENST2=>A1.E<=O;STARTV=O;1.OCK<='0'QE<='0'IF(EOC=T)THENNEXT_STATE<=ST3;E1.SENEXT.STATE<=ST2;ENDIF;WHENST3=>A1.E<=U:STARTV=U:1.OCKV=SoEV=T:NEXT_STATE=ST4;WHENST4=>A1.E<='0';START<='0'IXK?K<='1.OE<='I;NEXT_STATE<=STO;WHENOTHERS=>NEXT_STATE<=STO;ENDCASE;ENDPRoCESSCOM:REG:PROCESS(C1.K1.o)BEGINIF(C1.KIO1EVENTANDC1.KIO='1')THENCURRENTSTATEv=NEXT_STATE:ENDIF;ENDPROCESSREG;1.ATCH1.:PROCESS(1.OCK)BEGINIF1.OeK=TAND1.OCKEVENTTHENREG1.<=y1.;ENDIF;ENDPROCESS1.ATCHI;ENDb1.ockad:比拟模块beginprocess(y5)beginify5>="10(X)00()0"thcnfin<=,;e1.sefin<=,O'endif;endprocess:endb1.ockBJ;FPib1.ockbeginPnKCSS(C1.k)beginifc1.k'eventande1.k-thenifn=59W)9thenc1.k1.<=notc1.kkn<=O;e1.sen<=n+1.;ifm=5thenc1.k2<=noc1.k2un<=0;e1.sem<=m+1;if1=2thenc1.k3<=noic1.k3J<=():e1.se1<=1.+1.;endif;endif:endif;endif;endprocess;endb1.ockFP:频率计模块beginpkprocess(c1.k1.)beginifc1.kcvcn1.andc1.k1.='thenc1.k4<=notc1.k4;endif;endprocessp1.;p2:PrOCeSS(C1.k1.c1.k4)beginifc1.k1.='O,andc1.k4="0'theng<='ie1.seg<='0'endif;f<=notCIk4;h<=c1.k4;endprocessp2;p3:ProCeSS(Dbeginiffcvcn1.andf='I'thendin<=doutjc<=cc:endif;endprocess3;p4:pr(Kcss(fin.g,h)beginifg='thendout<=(others=>,0')cc<='0>e1.siffin,eventandfin='thenifh='andcc='O'thenifdout(3downtoO尸"100I"thenifdout(7downto4)="1(X)1"thenifdout(1.1.downto8)="1001"thenifdout(15downtoI2)="OOIO"then-ifdout(1.9downto16)="OoO1."thencc<=<-e1.se<1.out(1.9downtoI6)<=dout(1.9downto16)+'CC<='0'endif;dout(15downto12)<="00"e1.sedout(15downtoI2)<=dout(15downto12)+'endif;dou1.(1.1.downto8)<="0000"e1.sedout(11downto8)<=dout(1.Idownto8)+'endif;dout(7downto4)<="0000"e1.sedoi(7downto4)<=dot(7downto4)+':endif;dout(3downtoO)<="(XXX)"e1.sedout(3downto0)<=dout(3downto0)+'endif;endif:endif;endprocess4;endb1.ockP1.JS;占空比模块beginp1.:ProCeSS(fin)beginiffin'eventandfin='thenc1.k6<=notc1.k6;endif;endprocessp1.;p2:proccss(fin.c1.k6)begini1.fin='0'andc1.k6='0,then<='1.e1.se<=,Oendif;iffin='andc1.k6='1.'then<='1.,1.sc<='O<ndif;f1.<=notc1.k6;g1.<=c1.k6:endprocessp2:p3:process(f1.)beginiff!'eventandf1.='thenI2<=1.1.;endif;endprocessp3;p4:ProCCSS(a.b)beginia='thenc1.k7<=c1.k2;dsifb='thcnc1.k7<三c1.k3;endif;endprocessp4:p5:process(f3,gI,c1.k7)beginif='1.'thenn1<=0:mI<=0:1.I<=0;e1.seifc1.k7,eventandc1.k7='thenifg1.='thennI<=n1+1;endif;endif;ifc1.k7'cvcn1.andc1.k7="theniff2='thcnin1.<=m1+1;endif:endif;endif;1.1.<=m1.*100n1.;endprocessp5;p6:PrOCeSS(m1.n1.)beginy3(3downIoO)<=conv_std_1.ogic-vcctor(12rcm10,4);y3(7downto4)<=conv_std_1.ogic_vcctor(1.2/IOrcm10.4);endprocess6;endb1.ockZKB;XSib1.ockbeginPrOCCSS(dec)beginife='theny(7downto0)<=y3y(15downto8)<="(XXMXXXX)"C1.sifd=Tthcnifc='thcny<="()OOO()()OO()O(XX)O'a<='O'zb<='O':e1.seifdin(19downtoI6)="(X)(X)"theny<=din(1.5downtoO)a<="1.b<='O'e1.sey<=din(I9downto4)jb<三'ja<三,0"endif;endif;endif;endprocess:endb1.ockXS;end;

    注意事项

    本文(简易数字频率计设计-----完整版.docx)为本站会员(夺命阿水)主动上传,课桌文档仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知课桌文档(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-1

    经营许可证:宁B2-20210002

    宁公网安备 64010402000986号

    课桌文档
    收起
    展开