收藏 分享(赏)

第五章 MCS-51系统扩展技术.ppt

上传人:wspkg9802 文档编号:5588526 上传时间:2019-03-09 格式:PPT 页数:95 大小:3.28MB
下载 相关 举报
第五章  MCS-51系统扩展技术.ppt_第1页
第1页 / 共95页
第五章  MCS-51系统扩展技术.ppt_第2页
第2页 / 共95页
第五章  MCS-51系统扩展技术.ppt_第3页
第3页 / 共95页
第五章  MCS-51系统扩展技术.ppt_第4页
第4页 / 共95页
第五章  MCS-51系统扩展技术.ppt_第5页
第5页 / 共95页
点击查看更多>>
资源描述

1、,第五章 MCS-51系统扩展技术,内容提要:,5-1 MCS-51单片机最小系统,5-2 存储器的扩展,5-4 可编程并行接口芯片8255A,5-6 常用通道配置与接口技术,5-7 D / A转换,5-3 并行I / O端口的扩展方法,5-5 可编程并行接口芯片8155,5-8 A / D转换,单片机内资源少,容量小,在进行较复杂过程的控制时,它自身的功能远远不能满足需要。为此,应扩展其功能。MCS-51单片机的扩展性能较强,根据需要,可扩展:ROM、RAM;定时 / 计数器;并行I / O口、 串行口;中断系统扩展等。,5-1 MCS-51单片机最小系统,一、8051/8751硬件最小系统

2、 对于片内有ROM型单片机,其自身可以构成最小系统,该系统的资源如下:4KB ROM,256B RAM;五源中断系统;两个十六位加一定时 / 计数器;一个全双工串行UART;四个并行I / O口。,二、8031硬件最小系统8031单片机片内无ROM,若要正常工作,必需外配ROM。外接ROM后,P3口、P2口、P0口均被占用只剩下P1口作I / O口用,其它功能不变。,图中:/E 三态门控制端G 低电平锁存,三总线的概念: 地址总线 AB,P0口提供(A7 A0);P2口提供(A15 A8),共16位。 数据总线 DB,P0口提供(D7 D0),共8位。 控制总线 CB,ALE 、 、 、 、

3、等。,5-2 存储器的扩展,一、三总线的连接,1、数据线的连接P0口的八位线承担此任,此时不用外接上拉电阻。 2、地址线的连接P0口承担地址低八位线,A0 A7;P2口承担地址高八位线。A8 A15。 注意:P0口线地址 / 数据分时复用,需用地址锁存器74LS373锁存地址。,A10 A8,A7 A0,D7 D0,CB,3、控制线的连接对存储器来讲控制线无非是:芯片的选通控制、读写控制。单片机与外部器件数据交换要遵循两个重要原则:一是,地址唯一性,一个单元一个地址。二是,同一时刻,CPU只能访问一个地址,即只能与一个单元交换数据。不交换时,外部器件处于锁闭状态,对总线呈浮空状态。,读 / 写

4、:CPU向外部设备发出的读/写控制命令。EPROM:/OE /PSENSRAM: /WE /WR/OE /RD,选通:CPU与器件交换数据或信息,需先发出选通信号/CE或/CS,以便选中芯片。,二、存储器地址编码 SRAM6116:“16” 2K8b = 2KB 21210 = 211 即6116有11根地址线。 地址空间: A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 最低地址: 0 0 0 0 0 0 0 0 0 0 0 0000H 最高地址: 1 1 1 1 1 1 1 1 1 1 07FFH MCS-51单片机寻址范围:64KB 26210 = 216即16位地址

5、线 地址空间: A15A14A13A12A11A10A9A8A7A0 单片机 A10A9A8A7A0 6116,上式中:“”表示0或1。 即单片机地址空间中包含有32个2KB。某片6116占据的是哪2KB不能确定地址浮动。,只有限定A15A11的取值才能确定6116在系统中的地址范围。如,P2.6 = 0 ,选中6116的/CS线。设P2.7 P2.5 P2.4 P2.3假定全为1则: 6116地址范围是B800H BFFFH。同理, P27 P25 P24 P23假定全为0则: 6116地址范围是 0000H 07FFH;再设P27选中6116 (设P26 P25 P24 P23全为1)则:

6、地址范围是7800H 7FFFH,23 = 8,8KB,若取P27 P26均为1; 则2764在本系统内地址范围:C000H DFFFH,可以。此时6116:D800H DFFFH2764:C000H DB00H,若6116与2764都用A13 (P25)选中可否,6116与2764在0800H DFFFH范围内地址重叠,这是不是违反交换原则呢?,不会!因为,6116是SRAM,2764是EPROM。除地址和选通信号外,还有读/写控制信号起作用。,RAM /WE /WR /OE /RD ROM /OE /PSEN,可用来区分 二器件,小结:1)CPU与外设数据交换的原则是什么?2)决定存储器芯

7、片在系统中地址范围的两个因素是什么?,5-3 并口的扩展方法,一、利用TTL、CMOS集成电路来扩展,1、用锁存器扩展简单的8位输出口,74LS377为8D锁存器,八入八出,一时钟CP,一锁存允许/E。 /E = 0时,CP 的上升沿,输入数据并锁存。,MOV DPTR,#7FFFH ;指向74LS377 MOV A,#data ;取输出的数据 MOVX DPTR,A ;通过74LS377送出数据,P2.7接 /E , 所以,74LS377的口地址为7FFFH。,P0口是数据总线口,作I / O口用时只能分时使用,为此,输出数据时需要锁存。,2、用锁存器扩展简单的八位输入口,外设与单片机在传输

8、数据速度上存在着一定的差异,为了 保证数据能被单片机正确地接收,应采取以下电路:,输入设备STBIN7 IN6 IN5 IN4 IN3 IN2 IN1 IN0,8031P2.6P0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.0,74LS373 GQ7 D7 Q6 D6 Q5 D5 Q4 D4 Q3 D3 Q2 D2 Q1 D1 Q0 D0,在STB的下降沿,将数据锁存入74LS373 /E控制着74LS373的输出,由P2.6和/RD相或控制,所以,74LS373的口地址为BFFFH。,例、设将上图74LS373中数据送入8031片内数据存储器中首地址为50H的数据区。写出相应中

9、断系统初始化及中断服务程序。,中断系统初始化程序: PINT:SETB IT0 ;/INT0选为下降沿触发方式SETB EA ;CPU开中断MOV R0,#50H ;置数据区首址SETB EX0 ;/INT0中断允许,中断服务程序:ORG 0003H PINT0: AJMP INT0ORG 1000H INT0: MOV DPTR,#0BFFFH ;指向74LS373扩展输入口MOVX A,DPTR ;8031读入数据 MOV R0,A ;输入数据送数据区INC R0RETI,3、用三态门扩展8位输入并行口,74LS244是8位三态门,当/1G、/2G均为低电平时,允许输入数据;否则,为高阻态

10、。,输入设备IN7 IN6 IN5 IN4 IN3 IN2 IN1 IN0,8031P2.6P0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.0,74LS244 1Y1 1A1 1Y2 1A2 1Y3 1A3 1Y4 1A4 2Y1 2A1 2Y2 2A2 2Y3 2A3 2Y4 2A4,二、用串行口扩展并行I / O 接口,如果串口别无他用,则可让其工作于方式0,来扩展一个或多个8位并行I / O口,1、用74LS165扩展并行I / O口,8031P3.0P3.1P1.0,H G F E D C B A QH SIN /QH 74LS165(1)S/L M CP,H G F E

11、 D C B A QH SIN /QH 74LS165(2)S/L M CP,D0 D7,D0 D7,74LS165是8位并入、串出移位寄存器。 其中,CP为移位脉冲输入端;S / L为移位 / 装入端,以P1.0控制。两片74LS165的首尾相连,即QH与SIN相连。,例、从上图两个八位并行口读入20H组(每组两个字节)字节数据,并把它们转存到内部RAM(首址为30H)的数据区中。,解:以PSW中的用F0位来标志接收一组数中的前8位与后8位,74LS165(1)并行口输入数据时,置F0为1;74LS165(2)并行口输入数据时,置F0为0;P1.0高、低变化一次,就控制并行数据装入一次,即串

12、行 口应接收到2个8位数据(一组)。串口工作在方式0,波特率为fosc / 12 = 1Mb/s。,MOV R7,#20H ;读入字节数组MOV R0,#30H ;内部RAM数据区首址SETB F0 ;假定74LS165(1)先读入 RCV0: CLR P1.0 ;165装入数据SETB P1.0 ;允许165串行移位 RCV1: MOV SCON,#00010000B ;串行口设定 STP: JNB RI,STP ;等待接收完一个八位数CLR RI不胜数 ;清RI标志,以备下次接收MOV A,SBUF ;串口接收数据,8031P3.0P3.1P1.0,A B C D E F G H AB 7

13、4LS164(1)/CR CP,A B C D E F G H AB74LS164(2)/CR CP,D7 D0,D7 D0,2、用74LS164扩展并行输出口,74LS164是8位串入、并出移位寄存器,其中,CP为移位脉冲输入端;/CR为清除端。,上图接法中,由于移位寄存器无并行输出控制,在串行输入过程中,其输出状态会不断变化,故在某些使用场合下,在74LS164的输出端应加接输出三态门控制,以便保证串行输入结束后再输出并行数据。,5-4 可编程并行接口芯片8255A,一、8255A的结构和操作方式 1、8255A的组成及引脚引脚图:,组成:,P2.7P08031ALE/RD/WRRST/E

14、A,74LS373 1D 8D2Q1Q G /OC,/CS8255APA0PA7 A1 A0PC7PC0 D0 D7 /RD /WR RESET,微型打印机DB0DB7BUSY /STB,8,8,8,分三部分:总线接口部分;内部逻辑部分 ;外设接口部分,(1)总线接口部分/CS 片选线 A1、A0 端口选择线(选片内四个端口寄存器)/RD 读信号线/WR 写信号线,(2)内部逻辑部分 PA PC7 PC4 PB PC3 PC0,(3)外设接口部分 可由编程决定三个端口的功能输入 输出 其它 A口 8位锁存 / 缓冲 8位锁存 双向 B口 8位锁存 / 缓冲 8位缓冲 C口 8位锁存 / 缓冲

15、8位缓冲 可分成两组分别作A口、B口的选通联络线,二、8255A的工作方式及方式选择 1、8255A的工作方式 (1)方式0 基本输入/输出方式A口、B口、C口均有此方式,无选通,是单片机与外部设备之间的直接数据通道。 (2)方式1 选通输入/输出方式仅PA口、PB口有此方式,PC口中若干位作联络信号线,联络信号的组合情况见P164 图5-18。,各联络信号线的意义:/STB 输入选通信号,外设发来。IBF 输入缓冲器满信号,发给外设(通知外 设数据未被取走,暂不能接收新数据) INTR 中断请求信号,外部设备发给单片机 INTE 中断允许信号 /OBF 输出缓冲器满信号,发给外设(单片机将数

16、据已送 到指定口,外部设备可以取走) /ACK 外设响应信号,由外部设备发来(数据已送到外部 设备),(3)方式3 双向方式仅PA口有此方式。PC3 PC7作联络线此时, PB口可以是方式0;也可以是方式1(PC0 PC1作联络线)。,2、8255A的方式控制字用编程方法向8255A的控制口写控制字,可决定它的工作 方式。有两个控制字:(1)方式选择控制字,“ 1”方式控制标志位 D6、D5决定A组的工作方式,0 0 方式00 1 方式11 方式2D4 A口的传输方向,1 入,0 出。D3 PC7 PC4的传输方向,1 入,0 出。D2 决定B组的工作方式,0 方式0,1 方式1。D1 B口的

17、传输方向,1 入,0 出。D0 PC3 PC0传输方向,1 入,0 出。,(2)PC口置位/复位控制字,“0” 标志位。 D6、D5 不使用位。D3、D2、D1 位选择位,000 111 分别对应PC7 PC0。D0 位状态位,1 置位,0 复位。,三、8031和8255A的连接及应用单片机 8255AA0 A0A1 A1A15 A2中任一线 /CSP0 D7 D0/RD /RD/WR /WRRST RESET,应用,上图中,地址线连接采用线选法。8255A的地址分布:A15 A14 A13A8 A7A1 A00 0 0 0 0 0 0 0000H 0 1 0001H 1 0 0002H 1

18、1 0003H或 0 1 1 1 1 0 0 7FFCHPA 0 1 7FFDHPB 1 0 7FFEHPC 1 1 7FFFH控制,例、设单片机8031与微型打印机之间的数据传送采用查询方式。要求将存放在8031单片机内RAM中以30H为首地址的64个连续单元中的内容打印输出,试编程。,P2.7P08031ALE/RD/WRRST/EA,74LS373 1D 8D2Q1Q G /OC,/CS8255APA0PA7 A1 A0PC7PC0 D0 D7 /RD /WR RESET,微型打印机DB0DB7BUSY /STB,8,8,8,解:因为PC0连接BUSY,所以,PC3 PC0为输入又因PC

19、7连接 /DATA STROBE ,所以PC7 PC4为输出,STROBE 表示重复的意思。/DATA STROBE 数据选通信号。作用是通知打印机,8255A要给它传数。PA口输出,PB口未用。故 8255A的控制字可设为:1 0 0 0 0 0 0 1B = 81H,PA口地址:7FFCHPB口地址:7FFDHPC口地址:7FFEH控制口: 7FFFH,ORG 1000H PRINT:MOV DPTR,#7FFFH ;控制口地址MOV A,#81H ;控制字MOVX DPTR,A ;写入控制字MOV R1,#30H ;数据指针MOV R2,#40H ;64个数,NEXT: MOV DPTR

20、,#7FFEH ;PC口地址MOV A, #80H ;使PC7为高电平MOVX DPTR,A ;输出/DATA STR OBE为 ;高电平;无效,不准备送数 WAIT: MOVX A,DPTR ;查询打印机状态JB ACC.0, WAIT ;若PC0即BUSY = 1忙,则等待MOV DPTR , #7FFCH ;若BUSY = 0空闲,则指向PA口MOV A , R1 ;输出数据MOVX DPTR , AMOV DPTR , #7FFEH库 ;指向PC口MOV A , #00H ;8255A输出/DATA STR OBE信号;通知打印机,给它传数。,MOVX DPTR , A ACALL P

21、DELAY ;调延时子程序,以形成一个宽度;定时值的负脉冲为INC R1DJNZ R2 , NEXT ;判断打印输出完成否?SJMP $PDELAY:(延时程序略)END,小结:1、8255A有几个并行I / O口?几种工作方式?2、工作方式控制字、置位/复位控制字是如何定义的?,5-5 可编程并行接口芯片8155,包括:256B静态RAM;2 个8位和1个6位可编程并行I / O口;1个14位定时器(减1计数);1个8位地址锁存器;一些控制逻辑电路等。,一、引脚AD0 AD7 地址/数据线。传送地址、数据、命令、状态等。ALE 地址锁存(输入)IO / /M IO口/RAM选择;0:选内RA

22、M;1:选内IO口/CE 片选线/RD、/WR 读、写控制PA7 PA0 A口输入/输出线PB7 PB0 B口输入/输出线PC5 PC0 C口输入/输出线TIMERIN 定时器输入(输入定时器所需时钟)TIMEROUT 定时器输出(输出所产生的方波脉冲),二、8155的RAM和I / O口地址编码 包括:内RAM 256B对应256个地址命令/状态寄存器地址 1个地址PA口地址 1个地址 PB口地址 1个地址PC口地址 1个地址定时器低8位地址 1个地址定时器高8位地址 1个地址,三、8155的工作方式与基本操作 有三种基本操作: 1、作单片机片外256B数据存储器 IO / /M = 0,与

23、其它数据存储器统一编址。用MOVX访问。 2、作扩展I / O口使用 IO / /M = 1,PA口、PB口、PC口,可通过编程决定如何使用。 命令寄存器(命令控制字) I / O口工作方式 状态标志寄存器 PA口、PB口状态标志。,I / O口工作方式有四种: A口、B口 基本I / O口, C口输入; A口、B口 基本I / O口, C口输出; A口选通I / O、B口基本I / O、C口作联络线; A口、B口选通I / O、C口作联络线。 状态标志寄存器:BF 缓冲器满标志;INTR 端口中断请求标志;INTE 端口中断允许标志;TIMER 定时器中断请求。 命令寄存器,只写不读 状态标

24、志寄存器,只读不写 二者使用同一地址,3、作定时器扩展使用 可以通过编程决定输出4种信号,即有四种工作台方式(P172 图5-27)单方波; 连续方波;单脉冲; 连续脉冲。 由两个8位寄存器,决定14位定时器计数常数及四种工作方式。 由命令寄存器的最高两位对定时器进行四种控制。,(a) 定时器格式,(b)定时器方式及输出波形,四、单片机与8155的接口及操作软件图 5-28 (P173) 如图连线后地址分布是:内RAM地址 7E00H 7EFFHI / O口地址:命令状态口 7F00HPA 口 7F01HPB 口 7F02HPC 口 7F03H定时器低8位 7F04H定时器高8位 7F05H,

25、操作软件:MOV DPTR,#RAM或I / O口地址MOV A,#欲写内容或命令字MOV DPTR,A,5-6 常用通道配置及接口基础,一、按键、键盘及其接口 1、按键操作存在的问题 键抖动图 硬件消除抖动 P180图5-37,RS触发器构成单稳电路 软件去抖 延时10ms左右。,2、按键分类 (1)独立式按键 单片机一条I / O口线对应一个按键。 (2)键盘 一般指矩阵式键盘。 若干I / O口线作行线;若干I / O口线作列线,在每个行列交点设置按键组成。 图5-42 P185,3、按键监测方法 (1)监测有无键按下(中断方式或查询方式) (2)按键的识别 (哪一个键被按下)扫描法 有

26、键按下时,读入行或列值,则为0值的行列交点的键便是。线反转法院 第一步,行线输出全0,列线输入;第二步,列线输出全0,行线输入;输入的行值、列值均为0的相应键便是。,二、七段LED显示器及接口 1、字形码表的产生, P192 表5-11 2、显示方式 1)静态显示 2)动态显示(利用人眼的视觉暂留效应) 3、接口方法 1)与单片机直接相接:取字形码表中的码值来显示。 2)通过硬件七段译码器相接:单片机利用口线输出十六进制数来显示。,小结:8155有哪些功能?有几个并行I / O口?如何去除按键抖动?按键查询有几种方法?,5-7 D / A转换,一、D / A转换的作用,图,1、DAC 0832

27、内部结构P205 图5-58有20个引脚。,2、与8031单片机接口及操作软件(1)单缓冲方式P206 图5-60,有20个引脚。 DI0 DI7 数据输入线ILE 数据允许锁存/CS 输入寄存器选择 /WR1 输入寄存器的写选通 /WR2 DAC寄存器的写选通 /XREF 数据传送信号Vref 基准电源输入Rfb 反信号输入(内有反馈电阻) Iout1、Iout2 电流输出 Vcc、AGND、DGND 电源、地,完成一次D / A转换:MOV DPTR,#7FFFH ;DAC 0832口地址MOV A,#DATA ;欲转换的数字量MOVX DPTR , A ;转换(2)双缓冲器同步方式电路:

28、图5-61 图中:P2.5 选中DAC 0832(1)P2.6 选中DAC 0832(2) 输入锁存器P2.7 控制两芯片/XREF同步转换,3、应用 例、利用单片机及DAC 0832产生阶梯波,DAC 0832采用单缓冲方式,定时1ms,增幅10,10ms一循环。,解: START:MOV A,#00HMOV DPTR,#7FFFH ;转换器地址MOV R1,#0AH ;10个台阶(10ms),LOOP:MOVX DPTR,A ;送欲转换数字量CALL DL1 ;延时1msDJNZ R1,NEXT ;10个台阶未完继续增幅SJMP STARTNEXT: ADD A,#10JMP LOOPDL

29、1 : MOV 20H,#249DLL : NOPNOPDJNZ 20H,DLLRET如此,还可产生锯齿波,三角波等。,5-8 A / D转换,一、常用A / D转换器的转换原理,分辨率的定义:输出数字量变化一个相邻数码所需要输入模拟 电压的变化量。用公式表示为:满刻度电压/2n (n为位数),二、ADC 0808 / 0809 8路8位A / D转换器采用逐次逼近式A / D转换原理(时钟:10 1280KHz)模拟输入有8个通道(任一通道模拟都可以转换为一个8位数字量输出),1、ADC 0809内部结构及引脚( 图 5-72 ),图中SAR是逐次逼近寄存器;引脚(有28条):IN0 IN7

30、 8路模拟量输入通道的输入口;2-1 2-8 8位数字量输出口;START 启动输入口 启动转换ALE 通道地址锁存 EOC 转换结束输出信号OE 输出允许CLK 时钟端 ADDA、ADDB、ADDC 8路模拟开关的3位地址选择端 REF(+)、REF(-) 参电压输入端 Vcc、GND 电源、地。,2、ADC 0809 与8031单片机接口设计有查询方式、中断方式、等待延时方式。片内无时钟,由单片机的ALE(fosc/6)经二分频后接入。若fosc = 6MHz,则接入时钟为500KHz, 满足:10 1280KHz的要求。图 5-75,P2.7(片选) 地址码 输入通道C B A7FF8H

31、 0 0 0 0 IN0 7FFFH 0 1 1 1 IN7,例、对通道IN0,采样一次,转换,并将转换结果存到数据存储区。 解:MAIN:MOV R1,#data ;存数地址MOV DPTR,#7FF8H ;P2.7 = 0,指向IN0MOVX DPTR,A ;不论A中为何内容都启动转换MOV R6,#0AH ;软件延时DLAY: NOPNOPNOPNOPNOPDJNZ R6,DLAYMOVX A,DPTR ;读转换结果 MOV R1 , A ;存储数据,A / D转换接口的设计,1、硬件连线 (图P218 5-75),图中, ALE = START = /(/WR+P2.7)OE = /(

32、/RD+P2.7)通道地址:P27 P26 P20 P07 P0.3 P0.2 P0.1 P0.0A15 A14 A8 A7 A3 A2 A1 A07FFBH 0 0 0 0 7FFFH 0 1 1 1,2、软件设计方法,(1)延时等待方式分别8路模拟信号轮流采样一次,并依次把结果转存 到数据存储区的采样转换程序如下(设数据区首地址30H; 采样采用循环程序,R7作计数器):,ORG 0000HAJMP MAINORG 0100HMAIN: MOV R1,#30HMOV DPTR,#7FF8HMOV R7,#08H,LOOP: MOVX DPTR,AMOV R6,#0FHDLAY: NOPNO

33、PNOPNOPDJNZ R6,DLAYMOVX A,DPTRMOV R1,AINC DPTRINC R1DJNZ R7,LOOPRET,(2) 中断方式合上K1,启动转换后,经tEOC时间,EOC输出负脉冲波形,表示某通道转换已结束,单片机可以取走数据。让八个通道轮流转换一遍。ORG 0000HAJMP MAIN2ORG 0013HAJMP INTR1ORG 0300HMAIN2: MOV R1,#30HSETB IT1 ;下降沿触发/INT1中断SETB EX1 ;允许/INT1中断SETB EA ;开中断MOV R7,#08H ;待转换的通道个数,即循环次数MOV DPTR,#7FF8H;

34、指向通道0MOV DPTR,A ;启动首次转换,WAIT: CJNE R7,#00H,$ ;等待中断CLR EX1 ;8个通道转换完成,结束SJMP $ORG 0500H INTR1: MOVX A,DPTR ;读取转换结果MOV R1,A ;存数INC DPTR ;通道号加1INC R1DEC R7MOVX DPTR,A ;启动下一次转换 RETIEND,(3) 查询方式 启动转换后,经tOEC时间后,转换结束,EOC输出负脉冲。 所以,启动转换后,延时tEOC时间,检查EOC电平,若为0说明仍在转换中,若为高电平说明转换结束,书中只针对IN0通道模似量转换一次而编程。ADC 0801 0804转换芯片与ADC 0809芯片的区别是: ADC 0801 0804是单通道模拟信号。,P00 DB0 REF+ P01 DB1 REF- P02 DB2 P07 DB7P27 /CS VIN+ /WR /WR VIN- /RD /RD/INT1 INTR,8031 ADC0801,上图中,模拟通道地址是:7FFFH。编程同ADC 0809,只是仅有一个通道。,小结:DAC 0832的作用是什么?分辨率是多少位?ADC0809的作用是什么?有几个模拟通道?,END,

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

当前位置:首页 > 生活休闲 > 社会民生

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报