密码锁论文最新另.docx

上传人:b****6 文档编号:3252872 上传时间:2022-11-21 格式:DOCX 页数:34 大小:393.40KB
下载 相关 举报
密码锁论文最新另.docx_第1页
第1页 / 共34页
密码锁论文最新另.docx_第2页
第2页 / 共34页
密码锁论文最新另.docx_第3页
第3页 / 共34页
密码锁论文最新另.docx_第4页
第4页 / 共34页
密码锁论文最新另.docx_第5页
第5页 / 共34页
点击查看更多>>
下载资源
资源描述

密码锁论文最新另.docx

《密码锁论文最新另.docx》由会员分享,可在线阅读,更多相关《密码锁论文最新另.docx(34页珍藏版)》请在冰豆网上搜索。

密码锁论文最新另.docx

密码锁论文最新另

第一章密码锁原理及实现

第1.1节密码锁原理综述

密码锁广泛的应用于安全性、保密性比较高的场合,例如:

门禁、保险柜等。

一般密码锁都具有键盘输入、密码更改和LCD显示相关信息等功能。

此次的毕业设计就是要设计一个具有一定功能的智能密码锁。

设计的方案就是利用89C51单片机,结合键盘和LCD来进行设计;同时,增加时钟显示等功能。

设计的原理图,如图1-1:

图1-1智能密码锁设计原理图

键盘和LCD是密码锁设计电路中最重要的部分。

键盘含有16键,采用矩阵式排列接入单片机的P1口,用于实现密码锁密码的输入、设置。

同时还使用了独立式键盘用于时钟的设置。

设计中使用JDL204A系列的点阵字符型LCD显示器来显示时间和密码的相关信息,因为P0口内部无上拉电阻,所以LCD接入单片机P0口时必须接上拉电阻。

同时,电路中还接入了一个喇叭,以实现在密码输入正确演奏音乐,密码错误发出警报声。

该设计在不使用的情况下,可作为时钟使用。

密码锁可在编程中设置初始密码,密码在使用的过程中可根据需要通过键盘重新设置。

使用中,如果输入密码跟设置的密码相同,即密码输入正确,则由P3.0输出高电平驱动继电器模拟电子锁启动2S。

黄色指示灯发光、LCD显示“密码正确”,同时喇叭发出一段欢快的音乐铃声。

密码输入错误时,绿色指示灯发光,LCD显示“密码错误”,并发出警报声。

本设计的硬件电路相对简单,功能的实现主要依赖于软件编程。

第1.2节电源

在密码锁的制作中,使用了单片机和LCD液晶显示器,而两者都需要用到5V电源。

5V电源的产生可以使用电压调节器34063,也可以使用LM7805,使用都很方便。

MC34063是一种线性DC/DC转换器件。

该芯片的内部有一个温度补偿器和一个比较器,由一个限流电路来控制,它是一种驱动和高电流输出器件。

该芯片的工作输入电压可以从3V到40V,而输出电压可通过外部电路的变阻器调节。

图1-2为电压调节器34063的外部结图.

图1-2电压调节器34063的外部结构图

采用芯片MC34063时,都要通过和外部附加电路组合在一起构成一个电流变换电路,经直流—交流—直流变换,使得在7V—15V范围内的输入,都能输出5V电压,并且输出电流大。

经过实际测试,它的抗干扰性强,并起到很好的隔离作用。

图1—3为MC34063应用电路举例(输出5V).图中的RA也可以换成一个变阻器,通过调节变阻器的阻值大小,可以改变输出电压,上图中如果RA为1.2K,输出电压正好为5V。

图1—3MC34063应用电路举例(输出5V)

LM7805是一种输出电压固定的集成稳压器。

这种稳压器只有输入、输出、公共引出端三个端子。

三端式稳压器由启动电路、基准电压电路、取样比较放大电路、调整电路和保护电路等部分组成。

LM7805因内部有过热、过流保护电路,因此它具有性能好、可靠性高等优点。

同时,体积小、使用简便。

LM7805的性能主要指标如下:

(1)输出电压:

U0=5V

(2)输入电压:

Ui=7.5—14.6V

(3)纹波抑制比:

Sr=68db

(4)静态工作电流:

I0=6mA

其典型接法及结构图,如图1-4、1-5所示:

 

图1-4LM7805的典型接法

 

图1-57805外部结构图

虽然LM7805会因长时间使用而发热,但是其在电路中使用方便且输出电压稳定,所以在设计中采用了LM7805。

 

第1.3节AT89C51单片机

目前,单片机正朝着高性能和多品种方向发展,今后单片机的发展趋势将是进一步向着CMOS化、低功耗、小体积、大容量、高性能、低价格和外围电路内装化等几个方面发展。

随着半导体集成工艺的不断发展,单片机的集成度将更高,功能将更强。

单片机由CPU、存储器(包括RAM和ROM)、I/O接口、定时/计数器、中断控制功能等均集成在一块芯片上,片内各功能通过内部总线相互连接起来。

单片机具有集成度高、体积小、可靠性高,抗工业噪声干扰优于一般CPU等优点,并且控制功能强、易扩充。

1.AT89C51单片机

设计中采用了国内广泛应用的ATMEL公司的89C51单片机。

单片机是密码锁控制的核心器件,按键的处理、LCD显示、音乐铃声以及时钟的产生都依赖于单片机。

AT89C51单片机是89系列中的标准产品,它采用CMOS工艺ATMEL公司的高密度非易失性技术,其输出引脚和指令系统都与MCS-51系列兼容,因此,它是一种功能强、灵活性高的单片机。

AT89C51单片机的主要性能和特点如下:

(1)4KB可编程的FLASH存储器,可进行重复1000次的写入/擦除操作。

(2)全静态工作范围为0-24MHZ。

(3)具有三级程序存储器保密。

(4)具有128个字节的片内RAM。

(5)具有32条可编程I/O端口线。

(6)具有2个16位可编程定时器/计数器。

(7)具有5个中断源。

(8)具有一个全双工串行口。

2、单片机的应用:

(1)、在智能仪器仪表中的应用:

在各类仪器仪表中引入单片机,使仪器仪表智能化和微型化,提高测试的自动化程度和精度,简化仪器仪表的硬件结构,提高其性能价格比。

(2)、在机电一体化中的应用:

机电一体化产品是指集机械、微电子技术、计算机技术于一体,具有智能化特征的电子产品。

(3)、在实时过程控制中的应用:

用单片机实时进行数据处理和控制,使系统保持最佳工作状态,提高系统的工作效率和产品的质量。

(4)、在人类生活中的应用:

目前国外各种家用电器已普通采用单片机代替传统的控制电路。

(5)、在其它方面的应用:

单片机除以上各方面的应用,它还广泛应用于办公自动化领域、商业营销领域、汽车及通信、计算机外部设备、模糊控制等各领域中。

(6)计算机智能终端:

单片机用于智能终端如:

键盘、打印机等,使之能脱离主机而独立工作,尽量少占用主机时间,提高主机的计算速度和处理能力。

 

第1.4节定时器/计数器的原理及应用

定时器是一种特殊的计数器——记录时间间隔的计数器,而计数器是记录信号个数(通常为脉冲信号)的电路。

如果计数信号由内部的基准时钟源提供,则此时计数器变为定时器。

计数器的初始值可由软件来设置其工作模式,计数器超过计数范围,即称为“溢出”。

1.定时器/计数器的结构

单片机的通过内部总线同定时器/计数器交换信息。

AT89C51单片机有两个定时器/计数器T0和T1。

每个定时器/计数器有一个外部输入端(T0、T1)、一个16位的二进制加法计数器(TH0、TL0和TH1、TL1)以及两个内部特殊功能寄存器TMOD和TCON。

计数信号的选择和控制通过TMOD中的GATE、C/

和TCON中的TR0(TR1)这3个控制位来实现。

GATE=0时,由程序设置TR0=1接通计数脉冲,TR0=0停止计数。

此时与外部

无关。

GATE=1时,由程序设置TR0=1,外部

=1来控制接通计数脉冲,

=0则停止计数。

TR0=0时,则禁止

接通计数脉冲。

2.定时器/计数器的工作方式

定时器/计数器内部计数的工作方式由M0、M1来设置。

如下表:

工作方式

M1

M0

功能

计数范围

0

0

0

13位二进制加法计数器

213-初值=8192-初值

1

0

1

16位二进制加法计数器

216-初值=65536-初值

2

1

0

可重置初值的8位二进制加法计数器

28-初值=256-初值

2

1

1

2个独立的8位二进制加法计数器(仅对T0)

28-初值=256-初值

四种工作方式对溢出的处理相同,加法计数器超出范围后,溢出信号将使TCON中的TF0或TF1置位,计数值回到0或初值,重新开始计数。

TF0或TF1置位后,可向CPU提出中断请求。

TF0和TF1在响应中断后会自动复位,在禁止中断响应时,也可由软件复位。

3、定时和计数范围的计算

内部计数器TH0、TL0、TH1、TL1的溢出值固定不变,所以定时和计数范围只能通过设置初值来控制。

(1)工作方式1

计数范围为216-初值=10000H-初值=65536-初值。

定时时间T为:

T=(

-初值)*计数周期=(65536-初值)*1/fosc*12

定时初值为:

初值=65536-T/计数周期=65536-T*fosc/12

(2)工作方式2

计数范围为

-初值=100H-初值=256-初值。

定时时间T为:

T=(

-初值)*计数周期

=(256-初值)*1/fosc*12

定时初值为:

初值=256-T/计数周期=256-T*fosc/12

4、定时器/计数器的应用

在此设计中,使用了定时器计数器T0、T1并且都工作在Mode1下,分别用于时钟和音乐铃声的产生。

软件设计中将会详细介绍定时器计数器在设计中的应用。

 

第1.5节LCD液晶显示器及接口技术

液晶显示器LCD是一种液晶的扭曲——向列效应制成的新型显示器,具有功耗极低、抗干扰能力强、体积小、廉价等优点,目前已广泛应用在各种显示领域,尤其是在袖珍仪表及低功耗应用系统中,LCD已成为一种占主导地位的显示器。

1.LCD液晶显示器的原理

LCD是一种借助外界光线照射材料而实现显示的被动式显示器,它本身不发光只是调整光的亮度。

目前常用的LCD是根据液晶的扭曲-向列效应原理制成的。

这是一种电场效应,夹在两块导电玻璃电极之间的液晶,经过一定的处理之后,其内部的分子成90度的扭曲,这种液晶具有旋光特性。

当线性偏振光通过液晶层时,偏振面会旋转90度。

当玻璃电极加上电压之后,在电场的作用下,液晶的扭曲结构消失,偏振光便可以直接通过。

当去掉电场后,液晶分子又恢复其扭曲结构。

把这样的液晶放在两个偏振片之间,改变偏振片的相对位置(平行或正交)就可以得到黑底白字或黑字白底的显示效果。

据此,可以把电极做成各种形状,用以显示各种文字、符号和图形。

2.LCD的驱动方式

LCD常采用交流驱动,以避免液晶材料在直流电压长时间的作用下产生电解,缩短使用寿命。

常用的做法是在公共端(一般为背极)加上频率固定的方波信号,通过控制前极的电压获得两极间所需的亮、灭电压差。

LCD的驱动方式为静态(直接)驱动和动态(多极)驱动两种。

静态驱动方式的LCD每个显示器的每个字段都要引出电极,所有显示器的公共电极连在一起后引出,如图1-6。

显示位数越多引出线越多,相应的驱动电路也越多,故适用于显示位数较少的场合。

通常采用异或门把显示控制信号和显示频率信号合成为交变的驱动信号,当显示控制电极上的波形与公共电极上的方波相位相反时,则为显示状态。

 

图1-6一位LCD数码管的静态显示电路

动态驱动方式实际上是用矩阵驱动法来驱动字符显示。

字段引线相当于行引线,公共电极相当于列引线,字符的每一个字段相当于矩阵的一个点,如图1-7示。

各段的显示与否只取决于加在相应段段阻与公共电极上的电压。

 

图1-7一位LCD数码管的三极驱动原理电路图

多极驱动是常用的动态驱动方法。

多极驱动采用电压平均化法,其占空比有1/2,1/8,1/16,1/32等,偏压比为1/2,1/3,1/4,1/5等。

驱动时字符段的消隐并不是把该段与对应公共极间的电压降为0,而只要将电压的有效值降至LCD的门限电压之下就能关断显示,即偏压。

加大选通电压与非选通电压之间的差距,可提高显示的清新度。

通过恰当的设计各段组与公共极的电压驱动波形即可控制各段的显示与熄灭,并保证段与极间以交流电压驱动,就可确保LCD的正常驱动。

3.LCD显示器的分类

从显示形式分类,可分成段式LCD显示器、点阵图形LCD显示器、点阵字符型LCD显示器。

(1)段式LCD显示器

段式LCD显示器是一种以条状显示象素组成的液晶显示器,其中七段显示方式最为常用,也有专为特殊显示面板设计的固定图形及少量汉字等。

段式LCD的驱动方式取决于显示器件各个显示像素外引线的引出和排列方式。

静态段式LCD驱动接口一般可以通过译码驱动器来实现。

译码驱动器的功能是将将要显示的数字译为显示代码,在变为低频的交变信号送到LCD。

译码方式有硬件译码和软件译码。

硬件译码采用译码器如MC14543,软件译码由单片机通过查表的方法完成。

(2)点阵式图形LCD显示器

点阵式LCD的显示面积较大,点阵数较多,它的显示像素是连续排列的,不仅可以显示任意字符,而且可以显示各种曲线和图形,同时图形和字符还可以实现与或异或等逻辑组合,然后再混合显示。

(3)点阵字符型LCD显示器

点阵式液晶显示器是一种专用于显示字母、数字、符号的液晶器件,它由若干个5*8或5*11点阵块组成字符块。

每一个字符块显示一个字母或符号。

每个点阵块之间有一定的空隙作为字符间的自然间隔,而在整个显示屏上的像素并非是等间隔的排列,这就决定了它只能显示字符,不能显示连续的图形。

点阵字符液晶显示器件在使用中通常做成模块的形式,即将液晶显示屏和控制器、驱动器集成在一起称为点阵字符液晶显示模块。

字符型液晶显示模块大多做成通用形式,接口比较统一。

设计中使用了点阵式的LCD—JDL204A,它采用1/16D驱动方式,是一种专用于显示字母、数字、符号的液晶器件。

由若干个5*8点阵块组成字符块,每一个字符块显示一个字母、数字或符号,显示类型为20字符*4行。

它用于时钟和密码显示以及密码输入是否正确的相关信息。

为了实现与单片机的通讯,该LCD的接口数据位数可设置为4位或8位。

4位的控制方式是使用D4-D7数据线来传送控制命令和数据,这就需要分两次传送,先送出高4位再送出低4位;而8位控制方式可用D0-D7一次性传送控制命令和数据。

本设计中采用8位的控制方式。

以下是LCD—JDL204A的使用时序、典型接法以及指令表和字符代码表。

使用时序如图所示:

图1-8LCD—JDL204A的使用时序

 

典型接法

图1-9LCD—JDL204A的典型接法

 

指令表和字符代码表

指令

指令码

说明

指令周期

fosc=250kHz

RS

R/W

DB7

DB6

DB5

DB4

DB3

DB2

DB1

DB0

清屏

0

0

0

0

0

0

0

0

0

1

清除屏幕,置AC为0,光标回位。

1.64ms

光标返回

0

0

0

0

0

0

0

0

1

*

DDRAM地址为0,显示回原位,DDRAM内容不变.

1.64ms

设置输入

方式

0

0

0

0

0

0

0

1

I/D

S

设置光标移动方向并指定显示是否移动。

40µs

显示开关

0

0

0

0

0

0

1

D

C

B

设置显示开或关D、光标开关C、光标所在字符闪烁B.

40µs

移位

0

0

0

0

0

1

S/C

R/L

*

*

移动光标及整体显示,同时不改变DDRAM内容。

40µs

功能设置

0

0

0

0

1

DL

N

F

*

*

设置接口数据位数DL、显示行数L、字符字体F。

40µs

CGRAM

地址设置

0

0

0

1

ACG

设置CGRAM地址。

设置后发送接收数据。

40µs

DDRAM

地址设置

0

0

1

ADD

设置DDRAM地址。

设置后发送接收数据。

40µs

忙标志/读地址计数器

0

1

BF

AC

读忙标志BF标志正在执行内部操作并读地址计数器内容。

0µs

CGRAM/DDRAM数据写

1

0

写数据

从CGRAM或DDRAM写数据。

40µs

CGRAM/DDRAM数据读

1

1

读数据

从CGRAM或DDRAM读数据。

40µs

I/D=1:

增量方式;I/D=0:

减量方式

S=1:

移位

S/C=1:

显示移位;S/C=0:

光标移位

R/L=1:

右移;R/L=0:

左移

DL=1:

8位;DL=0:

4位

N=1:

2行;N=0:

1行

F=1:

5x10字体F=0:

5x7字体

BF=1:

执行内部操作;BF=0可接收指令

DDRAM:

显示数据RAM

CGRAM:

字符发生器RAM

ACG:

CGRAM地址

ADD:

DDRAM地址及光标地址

AC:

地址计数器,用于

DDRA和CGRAM

执行周期主频改变而改变。

例如当fcp或

fosc=270KHZ

时:

40μsx

250/270=37μs

 

第1.6节键盘接口技术

在各种数字控制系统中,大多数都用键盘和LCD作为人机交互界面。

一般地,键盘分为编码和非编码两种。

编码方式的键盘要使用专门的硬件来识别按键,系统比较复杂且占用较多的硬件资源。

实际应用中编码方式的键盘使用得越来越少,相应地大多数系统都采用非编码键,并用软件的方式对键盘进行扫描处理。

单片机系统中三种软件扫描键盘的方法:

(1)程序控制扫描方式;

(2)定时扫描方式;

(3)中断扫描方式。

(2)和(3)都要占用单片机系统中的硬件资源,在使用中断扫描方式时还需要增加硬件电路。

同时,本设计中两个定时器/计数器都已经被利用,故设计采用了程序控制扫描方式来处理键盘。

键盘设计还需要解决以下几个问题:

(1)按键防抖动问题,这可以从硬件或软件两方面进行处理。

(2)重键或连击处理。

即同时或先后按下两个以上的键。

(3)键的识别。

1、按键开关的抖动问题

组成键盘的按键有触点式和非触点式两种,单片机中应用的一般是由机械触点构成的。

图1

图2

在下图中,当开关S未被按下时,P1.0输入为高电平,S闭合后,P1.0输入为低电平。

由于按键是机械触点,当机械触点断开、闭合时,会有抖动,P1.0输入端的波形如图2所示。

因为计算机处理的速度是在微秒级,而机械抖动的时间至少是毫秒级,所以这种抖动对计算机而言,这已是一个“漫长”的时间了。

这就导致按键有时灵,有时不灵。

常用的去抖动的方法有两种:

硬件方法和软件方法。

本设计使用软件去抖动的方法,因此,对于硬件方法我们不介绍。

在单片机获得P1.0口为低的信号后,不是立即认定S1已被按下,而是延时10毫秒或更长一些时间后再次检测P1.0口,如果仍为低,说明S1的确按下了,这实际上是避开了按键按下时的抖动时间。

而在检测到按键释放后(P1.0为高)再延时5-10个毫秒,消除后沿的抖动,然后再对键值处理。

一般情况下,通常不对按键释放的后沿进行处理,实践证明,也能满足一定的要求。

当然,实际应用中,对按键的要求也是千差万别,要根据不同的需要来编制处理程序。

2.重键或连击处理

由于操作不慎,可能会同时按下几个键产生多次击键的效果,称为重键。

为了消除重键的影响,编程时,可以把键的释放作为按键的结束。

等键释放电平到来后再执行相应的功能程序,以防止一次击键多次执行的错误发生。

以下是三种处理重键的方法:

(1)当两键同时按下时。

最简单的方法是只有一个键按下时才读取键盘的输出,在使用软件扫描键盘时常采用这种方法。

另一种是当第一个键未松开时,第二个键按下不产生选通信号,这种方法常借助硬件来实现。

(2)“N个键同时按下”的处理可以不理会所有被按下的键直至只有一个键按下时为止。

或者将所有按键的信息都存入缓冲器中,然后逐个处理。

(3)“N键锁定”技术只处理1个键,通常第一个按下或最后一个松开的键产生码。

其他按下又松开的键不产生任何码。

这种方法简单也最常用,因此设计中采用了第三种方法,只处理最后松开的按键。

3.键的识别

在密码锁的设计中,既使用了独立式键盘又使用了矩阵式键盘。

独立式键盘用于时间的设置,因为时间的设置使用了逐渐增加的方式,即相应的按键按下一次分钟或小时的单元加一。

设置时必定会多次按下同一键,如果使用矩阵式键盘将会增加程序运行时间;且时间设置的按键只有3个,所以采用了相对简单的独立式键盘。

在密码的设置和密码输入时,按键较多,且每个按键按下的机会均等,采用矩阵式键盘将会减少引线数占用较少的I/O口。

(1)独立式键盘

最简单的键盘也被称独立式按键,但独立式键盘的缺点,就是当键盘上的按键较多时,引线太多,占用的I/O端口也太多。

所以这种简单结构只用于案件较少的小键盘。

图3

图4

将每个按键的一端接到单片机的I/O口,另一端接地,这是最简单的方法,如图3所示,四个按键分别接到P3.2、P3.3、P3.4和P3.5。

每一个按键对应I/O端口的一位,没有键闭合时,各位均处于高电平。

当有按键按下时,就使相应位接地而成为低电平,而其它位仍为高电平。

这样,CPU只要检测到某一位为“0”,便可判断对应键已经按下。

对于独立式键盘各程序可以采用不断查询的方法,检测是否有键闭合,如有键闭合,则去除键抖动,判断键号并转入相应的键处理。

(2)矩阵式键盘

在键盘中按键数量较多时,为了减少I/O口的占用,通常将按键排列成矩阵形式如果有M*N个按键,那么,采用M+N根引线就可以了。

在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。

矩阵式键盘工作时,是按照行和列上的电平来识别闭合键的。

当某一个键按下与此键相连的行和列便接通形成通路,如果此时行输出为低电平那么,列也为低电平。

如图1-10为一个4*4的键盘接法。

图1-10矩阵式键盘

如图1-10,列线通过电阻接正电源,并将行线所接的单片机的I/O口作为输出端,而列线所接的I/O口则作为输入。

当按键没有按下时,所有的输入端都是高电平,代表无键按下。

当行线输出是低电平,一旦有键按下,则输入线就会被拉低。

这样,通过读入输入端的状态就可得知是否有键按下了。

下面介绍矩阵式键盘的按键识别方法:

行扫描法,它是一种最常用的按键识别方法。

如上图所示键盘,扫描过程如下:

(1)判断键盘中有无键按下将全部行线Y0-Y3置低电平,然后检测列线的状态。

只要有一列的电平为低,则表示键盘中有键被按下,而且闭合的键位于低电平线与4根行线相交叉的4个按键之中。

若所有列线均为高电平,则键盘中无键按下。

(2)判断闭合键所在的位置在确认有键按下后,即可进入确定具体闭合键的过程。

其方法是:

依次将行线置为低电平,即在置某根行线为低电平时,其它线为高电平。

在确定某根行线位置为低电平后,再逐行检测各列线的电平状态。

若某列为低,则该列线与置为低电平的行线交叉处的按键就是闭合的按键。

在软件设计的过程中,判断有无键按下及按下键所在位置是同时进行的,依次将行线置为低电平,再逐行检测各列线的电平状态,并在查询过程中记下检测的次数即为按键在表中的对应的位置。

4.键值分析

单片机从键盘接口获得键值后究竟执行什么操作,完全取决于键盘解释程序。

同一种键盘接口,用在不同的智能仪表中可以完成全然不同的功能,根本的原因就是在每个仪表系统中都有它自己的一套分析和解释键盘程序。

无论键盘上有多少键,基本上都可以分为两类:

数字键和功能键。

在进行键值分析时,常用的方法有查表法和状态分析法。

(1)查表法是根据键值代码,到固化在ROM里的表格中查找对应代码的动作执行程序的首地址。

这种方法适合于一个键就产生一个动作的单个命令键。

(2)状态分析法是根据键码和当前所处的状态找出一个应进入的状态及动作执行程序。

这种方法适合于多个键互相配合产生一个动作的多义键。

在设计中,采用4*4键盘以及独立式键盘相结合的键盘输入方式,每一个键就能产生一个动作的单个命令键,所以程序设计中采用查表法进行键值分析。

 

第2章密码锁的软件实现

第2.1节部分硬件电路的测试

对硬件电路进行测试,确保硬

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1