ImageVerifierCode 换一换
格式:DOCX , 页数:30 ,大小:466.88KB ,
资源ID:6256354      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-6256354.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于单片机的简易数字电压表设计.docx)为本站会员(b****3)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

基于单片机的简易数字电压表设计.docx

1、基于单片机的简易数字电压表设计第1章 课程设计的目的和意义1.1 课程设计的目的1. 运用单片机的基础知识,依据课程设计内容,能够完成从硬件电路图设计,到PCB制版,再到软件编程以及系统调试实现系统功能,完成课程设计,加深对单片机基础知识的理解,并灵活运用,将各门知识综合应用。2. 能够上网查询器件资料,培养对新知识,新技术的独立的学习能力和应用能力。3. 能够独立完成一个小的系统设计,从硬件设计到软件设计,增强分析问题、解决问题的能力,为今后的毕业设计及科研工作奠定良好的基础。1.2课程设计的意义单片机是随着超大规模集成电路技术的发展而诞生的,由于它具有体积小、功能强、性价比高等特点,所以广

2、泛应用于电子仪表、家用电器、节能装置、军事装置、机器人、工业控制等诸多领域,使产品小型化、智能化,既提高了产品的功能和质量,又降低了成本,简化了设计。本课题主要实现利用单片机对电压表进行控制。 第2章 系统方案设计及确定 2.1 系统方案的提出根据简易数字电压表设计的需要,为单片机和A/D转换器提供以下设计方案。2.1.1 单片机方案 方案一:AT89S51AT89S51 是一个低功耗,高性能CMOS 8位单片机,片内含8k Bytes ISP的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构

3、,芯片内集成了通用8位中央处理器和ISP Flash存储单元。AT89S51具有如下特点:40个引脚,8k Bytes Flash片内程序存储器,128 bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。 方案二:AT89C51 AT89C51是一个低功耗,高性能CMOS 8位单片机,片内含4k字节Flash可擦写存储器(PEROM)。AT89C51器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚

4、结构,AT89C51的片内Flash允许程序存储器通过传统编程器反复编程。由于芯片内集成了通用8位中央处理器和Flash存储单元,功能强大的微处理器ATMEL AT89C51可为许多嵌入式控制应用系统提供高度灵活、高性价比的解决方案。AT89C51具有如下特点:4k Bytes Flash存储器、128 bytes的RAM以及32个I/O口、2个16位定时/计数器,5个中断优先级2层中断嵌套中断、1个全双工串行通信口、片内时钟振荡器。 2.1.2 A/D转换器方案 方案一:ADC0808 ADC0808是逐次逼近型A/D转换器,它能把输入的模拟电压直接转换为输出地数字代码,而不需要经过中间变量

5、。主要由比较器,环形分配器,控制门,寄存器等组成。 方案二:ADC0809 ADC0809是采样分辨率为8位的、以逐次逼近原理进行模数转换的器件。其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。2.2 方案比较及确定2.2.1 单片机的选择 AT89S51与T89C51相比,外型管脚完全相同,但AT89S51比AT89C51新增了一些功能,支持在线编程,烧写次数高,工作频率高,电源范围宽,抗干扰性强,加密功能强,性能有了较大提升,价格比89C51低! 综上所述:方案一比方案二更佳,因此选择方案一即单片机用AT89S51。2.2.2 A

6、/D转换器的选择 与ADC0808相比ADC0809 具有转换起停控制端,转换时间为100s,模拟输入电压范围05V,不需零点和满刻度校准,工作温度范围为-4085摄氏度 ,低功耗,约15mW等特性。 综上所述:由于两个方案都可以实现同样的功能,但方案二编程简单,价格便宜,更符合设计要求,因此选择方案二。2.2.3系统设计方案: 简易数字电压表设计要求我们可以测量05V范围内的8路输入电压值,并在4位LED数码显示管上可以实现8路循环显示或单路选择显示。其测量最小分辨率为0.02V。注:1. 4位LED显示,一位显示模拟量通道数,3 位显示电压值(0.005.00V); 2.使用按键切换8路循

7、环显示和单路显示; 3.在单路显示时,使用按键选择待显示的通道。 4.按键可采用查询方式,也可采用中断和查询相结合的方式。 根据以上设计内容及技术指标,数字电压表按系统功能实现要求,决定控制系统采用AT89S51单片机,A/D转换采用ADC0809。系统除能确保实现要求的功能外,还可以方便地进行8路其他A/D转换量的测量和远程测量结果传送等扩展功能。 简易数字电压表系统设计方案框图如下图所示: 图2-1 系统设计方案框图 第3章 系统硬件设计 3.1 AT89S51最小系统设计 AT89S51芯片,如图所示,各引脚功能如下: VCC:供电电压。 GND:接地。 P0口:为一个8位漏级开路双向I

8、/O口,每脚可吸收8TTL门电流。 P1口:是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。 图3-1 AT89S51设计 P2口:为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高。 P3口:管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。P3口也可作为AT89C51的一些特殊功能口,如所示: P3.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 /INT0(外部中断0) P3.3 /INT1(外部中断1) P3.4 T0(记时器0外部输入) P

9、3.5 T1(记时器1外部输入) P3.6 /WR(外部数据存储器写选通) P3.7 /RD(外部数据存储器读选通) P3口同时为闪烁编程和编程校验接收一些控制信号。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。 ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。 /PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。XTAL

10、1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。 3.1.1 时钟电路 AT89S51的时钟电路如图所示,在单片机的XTAL1和XTAL2两个管脚接一个晶振及两个电容构成了时钟电路电路中电容C1和C2对振荡频率有微调作用,在设计时取30uF。晶振为11.0592MHz,故选择12MHz即可。 图3-2 时钟电路 图3-3 复位电路3.1.2复位电路 AT89S51的复位电路如图所示。当单片机一上电,立即复位;另外,如果在运行中,外界干扰等因素使单片机的程序陷入死循环状态,就可以通过按键手动使其复位。复位也是使单片机退出低功耗工作方式而进入正常状态的一种操作

11、。电容C3和电阻R10实现上电自动复位。增加按键开关S1和电阻R9又可实现按键手动复位功能。R9的作用是在S1按下的时候,防止电容C3放电电流过大烧坏开关S1的触点。32 A/D转换电路设计321 ADC0809电路设计 ADC0809芯片有28条引脚,各引脚功能如下: IN0IN7:8路模拟量输入端。 D0D8:8位数字量输出端。 ADDA、ADDB、ADDC:3位地址输入线,用于选通8路模拟输入中的一路 ALE:地址锁存允许信号,输入,高电平有效。 START: AD转换启动脉冲输入端,输入一个正脉冲(至少100ns宽)使其启动(脉冲上升沿使0809复位,下降沿启动A/D转换)。 EOC:

12、 AD转换结束信号,输出,当AD转换结束时,此端输出一个高电平(转换期间一直为低电平)。 OE:数据输出允许信号,输入,高电平有效。当AD转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。 CLK:时钟脉冲输入端。要求时钟频率不高于640KHZ。 REF(+)、REF(-):基准电压。 Vcc:电源,单一5V。 GND:地。 ADC0809的工作过程如下:首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。此地址经译码选通8路模拟输入之一到比较器。START上升沿将逐次逼近寄存器复位。下降沿启动 AD转换,之后EOC输出信号变低,指示转换正在进行。直到AD转换完成,EOC变

13、为高电平,指示AD转换结束,结果数据已存入锁存器,这个信号可用作中断申请。当OE输入高电平 时,输出三态门打开,转换结果的数字量输出到数据总线。 表3-1 ADC0809通道选择表 C(ADDC)B(ADDB)A(ADDA)选择的通道000IN0001IN1010IN2011IN3100IN4101IN5110IN6111IN7 图3-4 ADC0809设计根据设计的需要,我们需要再ADC0809的IN0-IN7通道加八个可调电阻,其电路接法如下图所示: 图3-5 可调电阻电路设计322 双D触发器电路设计D触发器的状态方程为:Qn+1=D。其状态的更新发生在CP脉冲的边沿,74LS74为上升

14、沿触发,故又称之为上升沿触发器的边沿触发器,触发器的状态只取决于时针到来前D端的状态。D触发器应用很广,可用做数字信号的寄存,移位寄存,分频和波形发生器等。 SN74LS74双D触发器有14个管脚,为2个D触发器串联,4分频每个分500KHz。其设计图如下所示: 图3-6 双D触发器电路设计33键盘电路硬件设计 键盘分为独立式键盘和矩阵式键盘。本设计采用的是独立式键盘,即各键相互独立,每个按键各接一根输入线,通过检测输入线的电平状态可以很容易的判断哪个按键被按下。使用3位独立式键盘,直接使用AT89S51的P2口连接。其设计图如下所示: 图3-7 按键电路设计34 显示电路硬件设计 341 L

15、ED显示电路硬件设计 最常用的显示器有发光二极管显示器(LED)和液晶显示器(LCD)。我们设计时主要采用LED数码显示器及其接口电路。LED数码管由8个发光二极管组成,其中7个按“8”型排列,另一个发光二极管为圆点形状,位于右下角,常用于显示小数点。 共阴极LED电路连接如图3-8所示, 8支发光二极管的阴极共同接到地上,所以叫共阴极LED,在每个发光二极管的阳极接的电阻将起到保护作用。在输入管脚接高电平时,对应的发光二极管将会发光。适当编码后,8支发光二极管组合起来就可以显示数据了。 共阳极LED电路连接如图3-9所示,8支发光二极管的阳极共同接到电源上,所以叫共阳极LED,在每个发光二极

16、管的阳极接的电阻将起到保护作用。在输入管脚接低电平时,对应的发光二极管将会发光。和共阴极LED一样,适当编码后,8支发光二极管组合起来就可以显示数据了。 3-8共阴极接法原理图 3-9共阳极接法原理图 静态显示时,数据是分开送到每一位LED上的;而动态显示时,是数据送到每一个LED上,再根据位选线来确定是哪一位LED显示。静态显示亮度很高,但口线占用较多;动态显示占用口线数目较少,适合用在显示位数较多的场合, 但显示位数的增多,将占用大量的CPU时间。 综上所述,根据共阴极,共阳极和静态显示,动态显示各自的优缺点,我采用的是共阳极,动态显示来完成该显示电路的硬件设计。 图3-10显示电路设计

17、342 74LS06 驱动电路设计 74LS06为集电极开路输出的六组反相驱动器。其电路设计如下所示:图3-11 74LS06驱动电路设计343 74LS573驱动电路硬件设计74LS573是带三态输出的8位锁存器,共有8个输入端D1D8及8个输出端Q1Q8。当三态端OE为有效低电平,锁存器处于透明工作状态,即锁存器的输出状态随数据端的变化而变化,即脚1=Di(I=1,2,8)。输出端Qi不再随输入端的变化而变化,而一直保持锁存前的值不变。可直接与单片机的锁存控制信号端ALE相连,在ALE的下降沿进行地址锁存。其设计图如下: 图3-12 74LS573驱动电路设计另外,74LS573芯片虽然有

18、锁存能力,但在使用时必须加限流电阻。 图3-13 限流电阻 第4章 系统软件设计 根据需要,可将系统软件设计分为以下六个模块,分别为主程序模块,A/D转换子程序模块,8路循环显示控制子程序模块,单路显示控制子程序模块,显示控制程序模块以及按键子程序。41 系统软件设计内存分配 软件设计内存分配如下所示:1. 显示缓冲区:30H-40H2. K0标志位:50H3. K1标志位:51H4. 堆栈区:60H-7FH 栈顶为60H42 系统主程序设计 初始化中主要对AT89S51,ADC0809的管脚和数码管的位选进行初始化设置。准备工作做好后便启动ADC0809对IN0脚输入进的05V电压模拟信号进

19、行数据采集并转换成相对应的0255十进制数字量。 主程序就是在A/D转换和显示子程序之间循环执行。主程序流程图如下所示: 图4-1 主程序流程图43 A/D转换子程序设计 A/D转换子程序的功能是采集数据,在启动ADC0809对模拟量输入信号进行转换时,通过判断EOC(P3.1引脚)来确定转换是否完成,若EOC为0,则继续等待;若EOC为1,则把OE置位,将转换完成的数据读取即P2.5=1时指向下个通道,存储数据。最后判断8路采集是否完毕,若采集完毕,则结束;若未采集完毕则返回到启动A/D。其流程图如下: 图4-2 A/D转换子程序流程图44 八路循环显示控制子程序设计 设置初始值以后运用标度

20、变换知识,编写算法将0255十进制数字量转换成0.005.00V的数据,公式如下: 其中 接着输出到显示子程序进行显示,通过调用第一个按键子程序来判断八路、单路之间是否有切换。经过延时后判断八路采集是否显示完全,若显示完全则结束;如果还没有显示完全,则返回到标度变换,继续调用显示子程序。其流程图如下所示: 图4-3 八路循环显示控制子程序流程图45 单路显示控制子程序设计 首先选择通道采样值,经过标度变换后,调用显示子程序,接着调用第二个按键子程序,K1依次加1,经过延时后返回。其流程图如下所示: 图4-4 单路循环显示控制子程序流程图46 显示子程序设计 显示子程序采用动态扫描法实现三位数码

21、管的数值显示。测量所得的A/D转换数据放在40H内存单元中,测量数据在显示时需转换成10进制BCD码放在40H-47H单元中。寄存器R0用作显示数据地址指针。程序流程图如图所示: 图4-5显示子程序流程图47按键子程序设计 判断按键,并切换到不同的功能模式中。实现模式切换后可以实现单路显示和循环显示。因按键的机械触点的弹性作用,按键闭合或断开瞬间均伴随一连串抖动,抖动时间一般为510ms。消除抖动是为了防止产生误动作,保证对键闭合一次只作一次处理。软件消抖一般采用延时方法,延时1020ms,判别闭合键释放后再作输入处理。 图4-6 第一个按键子程序流程图 图4-7 第二个按键子程序流程图 第5

22、章 系统调试51 调试环境 WAVE6000软件在以前的版本基础上做了增加了许多功能,特别是在窗口管理、项目管理和源文件编辑工具上做了较大改进,在WAVE6000环境下的所有窗口均可以放在窗口的同一块区域,各窗口可以直接切换,节省了窗口的面积,使窗口管理更有效。WAVE6000还增强了项目管理和源文件编辑方面的功能,使得项目、文件切换更方便,有效地后退、前进功能使得修改程序更方便。新增加的书签窗口和断点窗口可以有效地管理断点和书签,使得程序员无需在众多的代码和断点中逐行查询,断点信息和书签信息在各自的窗口中显示一目了然。1项目窗口是用户和源程序文件、目标文件和用户设置等的桥梁,通过项目窗口可以

23、建立项目、设置项目、添加源程序到项目、编译项目等项目操作。信息串口显示项目操作和文件操作后的详细信息,例如打开项目、保存项目、项目编译过程以及出错信息等等。在一个项目调试之前,必须经过新建项目、设置项目、添加模块和包含文件、保存项目、编译项目,最后进入调试项目,其中的所有成功和错误信息都会在该窗口中显示,因此用户在调试项目前,需要观察此窗口是否有错误信息,待排除错误后方可正确调试项目。 2观察窗口用于显示项目中的所有变量和用户自定义变量,能显示常量、函数入口地址、数组变量、结构变量、共用体变量、指针变量等多种复杂的数据类型。用户可以添加用户变量、设置变量类型,使用结合影子存储器、时效分析等功能

24、分析用户程序、数据。变量一旦被修改,将一很醒目的显示被修改过;支持直接修改变量的值,以方便程序的局部调试。 图5-1 观察窗口 3.断点窗口通过断点窗口可以管理项目内的断点。可以在断点窗口中直观地看到断点的行号,内容,可以通过断点迅速定位程序所在的位置。 4书签窗口通过书签窗口可以管理项目内的书签,在项目中迅速定位程序位置。 5跟踪窗口显示跟踪器捕捉到的程序执行的轨迹,其中可以看到帧号,时标,反汇编程序,对应的源程序和程序所在的文件名。52 调试步骤按照说明书,将仿真器通过串行电缆连接计算机上,将仿真头接到仿真器,检查接线否有误,确信没有接错后,接上电源,打开仿真器的电源开关。设置项目,在“仿

25、真器”和“通信设置”栏的下方有“使用伟福软件模拟器”的选择项。将其前面框内的勾去掉。在通信设置中选择正确的串行口。按“好”确认。如果仿真器和仿真头设置正确,并且硬件连接没有错误,就会出现如图的“硬件仿真”的对话框,并显示仿真器、仿真头的型号 在调试时可以采用以下调试方法: 1选择执行 | 跟踪功能或按跟踪快捷图标或按 F7键进行单步跟踪调试程序 。单步跟踪就一条指令一条指令地执行程序,若有子程序调用,也会跟踪到子程序中去。你可以观察程序每步执行的结果,“=”所指的就是下次将要执行的程序指令。 由于条件编译或高级语言优化的原因,不是所有的源程序都能产生机器指令。源程序窗口最左边的“o”代表此行为

26、有效程序,此行产生了可以指行的机器指令。 2要改变单步执行太慢的状况,可以用“执行到光标处”的功能,将光标移到程序想要暂停的地方。选择菜单执行 | 执行到光标处功能或 F4 键或弹出菜单的“执行到光标处”功能。程序全速执行到光标所在行。 如果想下次不想单步调试 “Delay”延时子程序里的内容, 可以按F8键单步执行就可以全速执行子程序调用,而不会一步一步地跟踪子程序。 3如果程序太长,那就设置断点。将光标移到源程序窗口的左边灰色区, 光标变成 “手指圈” ,单击左键设断点,也可以用弹出菜单的“设置/取消断点”功能或用Ctrl+F8组合键设置断点。如果断点有效图标为“红圆绿勾” ,无效断点的图

27、标为“红圆黄叉” 。 断点设置好后,就可以用全速执行的功能,全速执行程序,当程序执行到断点时,会暂停下来,这时你可以观察程序中各变量的值,及各端口的状态,判断程序是否正确。 1. ADDR 0F 地址栏 最上面一行标有ADDR 0 1 F 是地址名称栏, “ADDR” 表示集中在一行中16个存储器(或寄存器)单元的第一个单元的地址, “0F”表示它的下面对应着16个存储单元(或寄存器) , “0”下面对应的2位16进制数,是第一个地址中的内容, “1”下面对应的是第二个地址单元中的内容, “F”下面是第16个存储单元的内容。 2. CODE 程序存贮器 它是为用户观察程序存贮器内部信息而设置的

28、,共有64KB的地址空间,但是,在一般情况下只显示16个单元的信息。 “ADDR”栏下的是以16进制表示的4位地址,地址后的16个数是这个地址及其随后的16个存储单元的内容。如果希望同时看到更多的信息,可用或键选择下一行的16个地址。若用鼠标,可拖动右边的滚动条查看下面的16个单元,或单击右侧的激增框,将窗口放大到满屏幕,同时查看更多的内容。 3. XDATA 数据存储器 它是为用户观察外部数据存贮器的信息而设置的,共有64KB的地址空间。其操作方法与程序窗口”CODE”相同。在仿真87/89系列单片机且P0,P2口作I/O用时,请关闭XDATA窗口。 4. DATA 单片机内部数据存储器它包

29、括单片机内部数据存储器共256字节, 其中通用寄存器32字节(即4组R0R7) , 地址为00H1FH;直接可寻址位16个字节,地址为20H2FH,专用寄存器(SFR)共128字节,地址为80HFFH。其操作方法与程序窗口“CODE”相同。在内部数据窗口中可以看到CPU 内部的数据值,红色的为上一步执行过程中,改变过的值,窗口状态栏中为选中数据的地址,可以在选中的数据上直接修改数据的十六进制值,也可以用弹出菜单的修改功能,修改选中的数据值。弹出菜单:修改:修改选中数据的值,可以输入十进制,十六进制,二进制的值,与直接修改不同的是,用这种方法可以输入多种格式数据,而直接修改只能输入十六进制数据。

30、46(十进制),2EH(十六进制),00101110B(二进制)都是有效的数据格式,53 调试过程中遇到的问题及解决方法 在调试时经常遇见以问题: 1串口通信经常出错 串口通信出错有几种可能: (1)电路板有问题, 你可以将仿真头从用户板上取下,将晶振跳接至仿真头上。测试不连电路板时仿真器串口通信是否正常。 (2)串口电缆连接有问题。通信时仿真器上的指示灯应闪烁, 若不闪烁, 说明通信电缆连接有问题或串口号选择不对。 (3)串口号和波特率选择不对。一般 PC 机有两个串口:串口1及串口2在调试程序时应正确选择串口: /S1选择串口1, /S2选择串口2。另外波特率选择不对也会引起通信出错。一般情况下你可以不选择波特率,由软件自动选择一个合适的波特率, 但是对有些机器可能选择得不合适, 这时你可以用几个波特率试试,手工选择一个合适的波特率。如可以输入 /S2D 选择串口2降低通信速率。 2仿真调试时是如何“复位”的? 如果仿真系统要求“复位” ,实际上是仿真系统无法工作,出现这种现象的 原因有很多,如晶振跳线位置不正确,用户板上无电源,仿真头接触不良,仿真头的选择和仿真系统内的设置或选项不一致等。如果在使用中出现这种情况,可以先将仿真头从用户板上拔下来,把晶振跳线器放在“1”的位置上,再次进入仿真系统。如果正常

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2