收藏 分享(赏)

单片机人机交互系统的C51语言编程.ppt

上传人:gsy285395 文档编号:6001604 上传时间:2019-03-23 格式:PPT 页数:81 大小:899KB
下载 相关 举报
单片机人机交互系统的C51语言编程.ppt_第1页
第1页 / 共81页
单片机人机交互系统的C51语言编程.ppt_第2页
第2页 / 共81页
单片机人机交互系统的C51语言编程.ppt_第3页
第3页 / 共81页
单片机人机交互系统的C51语言编程.ppt_第4页
第4页 / 共81页
单片机人机交互系统的C51语言编程.ppt_第5页
第5页 / 共81页
点击查看更多>>
资源描述

1、第5章 单片机人机交互系统的C51语言编程,5.1 单片机的输入/输出端口 5.2 LED数码管显示器 5.3 LED数码管点阵显示器 5.4 液晶显示器 5.5 非编码键盘 5.6 本章小结 5.7 实训五 模拟数字密码锁,返回首页,教学提示,在单片机应用系统中,经常会涉及显示器、键盘等人机交互设备。如何将它们与单片机的输入/输出端口相连并编程实现特定的功能是单片机应用开发人员必须掌握的基本技术。常用的显示器有LED数码管显示器、LED点阵显示器、LCD显示器;常用的键盘有非编码键盘、编码键盘。本章将重点介绍上述元器件与单片机的连接方式以及C51语言的编程方法。,教学要求,了解单片机输入/输

2、出端口的特点及使用注意事项;熟练掌握LED数码管显示器的使用方法;掌握LED点阵显示器、LCD显示器的使用方法;熟练掌握非编码键盘的使用方法;掌握外部扩展存储器的使用方法。,5.1 单片机的输入/输出端口,1. P0口,2. P1口,3. P2口,4. P3口,51系列单片机有4个8位的双向并行输入/输出(I/O)端口,称为P0口、P1口、P2口和P3口。各个端口既可以按字节输入、输出,也可以按位进行输入、输出。利用这4个I/O端口可以方便地实现单片机与外部数字设备或芯片的信息交换。下面简要介绍单片机输入/输出端口的特点及使用注意事项。,5.2 LED数码管显示器,5.2.1 LED数码管显示

3、器简介 5.2.2 静态显示编码 5.2.3 动态显示编码静态显示编程,5.2.1 LED数码管显示器简介,图5.1 通用7段LED数码管,图5.2 专用LED数码管,LED显示器按用途可分为通用7段LED显示器和专用LED显示器,分别如图5.1和图5.2所示。本节重点介绍通用7段LED显示器(以下简称为数码管)。,图5.3 共阴极数码管,图5.4 共阳极数码管,数码管由8个LED(a、b、c、d、e、f、g、h)构成,按结构分为共阴极和共阳极两种,如图5.3和5.4所示。,要使LED数码管显示出相应的数字或字符,必须向其数据口输入相应的字形编码。LED数码管的常用字形编码见表5-2。,表5-

4、2 LED数码管的常用字型编码表,续表5-2,LED数码管显示器的外型结构如图5.5所示。,LED数码管有静态显示和动态显示两种方式,在具体使用时,要求LED驱动电路能提供额定的LED导通电流,还要根据外接电源及额定LED导通电流来确定相应的限流电阻。,图5.5 数码管的外型结构,5.2.2 静态显示编程,静态显示是指数码管显示某一字符时,相应的LED恒 定导通或恒定截止。静态显示时,各位数码管是相互独立 的,每个数码管的8个LED分别与一个8位I/O口地址相 连,只要I/O口有字型码输出,相应字符即显示出来,并 保持不变,直到I/O口输出新的字型码。采用静态显示方式,较小的电流即可获得较高的

5、亮度,且占用CPU时间少,编程简单,显示便于监测和控制,但其占用的口线多,硬件电路复杂,成本高,只适合于显示位数较少的场合。,【例5.1】 电路如图5.6所示,单片机采用AT89C51,振荡器频率fOSC为12MHz,数码管LED1、LED2采用7SEG-COM-CAT-GRN(共阴极,绿色),两位数码管分别连接在AT89C51的P0口、P1口,按键K1接在引脚P2.3上,RP1为排阻。试编程实现下列功能。 (1) 开机显示00。 (2) 按一次K1键,数字加1。 (3) 当计数到99时,再按一次K1键,又从00开始计数。,图5.6 例5.1电路图,5.2.3 动态显示编程,动态显示是逐位地轮

6、流点亮各位数码管,这种逐位点 亮显示器的方式称为位扫描。通常,各位数码管的相应 LED选线并联在一起,由一个8位的I/O口控制;各位的位 选线(公共阴极或阳极)由另外的I/O口线控制。动态方式显示时,各数码管分时轮流选通,要使其稳定显示必须采用扫描方式,即在某一时刻只选通一位数码管,并送出相应的字型码,在另一时刻选通另一位数码管,并送出相应的字型码,依此规律循环,即可使各位数码管显示将要显示的字符,虽然这些字符是在不同的时刻分别显示,但由于人眼存在视觉暂留效应,只要每位显示间隔足够短就可以给人同时显示的感觉。,采用动态显示方式比较节省I/O口,硬件电路也较 静态显示方式简单,但其亮度不如静态显

7、示方式,而且 在显示位数较多时,CPU要依次扫描,占用CPU较多的 时间。,【例5.2】 电路如图5.7所示,单片机采用AT89C51,振荡器频率fosc为12MHz,数码管LED1、LED2采用7SEG-COM-CAT-GRN(共阴极,绿色),两位数码管分别连接在AT89C51的P0口、P1口,按键K1接在引脚P2.3上,RP1为排阻。试编程实现下列功能。 (1) 开机显示00。 (2) 按一次K1键,数字加1。 (3) 当计数到99时,再按一次K1键,又从00开始计数。,图5.7 例5.2电路图,5.3 LED数码管点阵显示器,5.3.1 字母、数字及图形的显示 5.3.2 中文字符的显示

8、,LED数码管点阵显示器是由LED按矩阵方式排列而成的,按照尺寸大小,LED点阵显示器有57、58、68、88等多种规格;按照LED发光颜色的变化情况,LED点阵显示器分为单色、双色、三色;按照LED的连接方式,LED点阵显示器又有共阴极、共阳极之分。,在使用时,只要点亮相应的LED,LED点阵显示器即可按要求显示英文字母、阿拉伯数字、图形以及中文字符等。LED点阵显示器广泛地应用于股票显示板、活动信息公告板、活动字幕广告板等场合。,Proteus ISIS中只提供了单色的57、88两种LED点阵显示器,如图5.8所示。,(a) 57LED点阵显示器 (b) 88LED点阵显示器 图5.8 L

9、ED点阵显示器,5.3.1 字母、数字及图形的显示,单个的西文字母或阿拉伯数字通常采用57点阵显 示,图5.9所示为字母“A”的57 字形点阵示意图。值得注 意的是,字形并不是唯一的,应根据具体需要而定。,图5.9 字母A的57 字形点阵示意图,5.3.1 字母、数字及图形的显示,【例5.3】 电路如图5.11所示,单片机采用AT89C51,振荡器频率fOSC为12MHz,LED-DOT为88共阳极LED点阵显示器(MATRIX-88-GREEN)。试编程实现下列功能: 循环显示字符0、1、2、3、4、5、6、7、8、9、A、B、 C、D、E、F。,电路中采用带输出锁存器的8位串入并出移位寄存

10、器74HC595作为列驱动器,目的是为了解决列扫描过程中列数据准备与列数据显示之间的矛盾问题。,图5.10 74HC595原理图,图5.11 例5.3电路图,表5-3 字符09、AF的57数据码,假设所有字符均以57点阵在显示器的左下角显示, 则各字符的数据编码见表5-3。,利用LED点阵显示器,可以方便地显示各种图形,如 正方形、三角形、菱形等,图5.12所示为一个44正方 形。通过编程,还可以实现图形的动态显示。,图5.12 用88 LED点阵显示器显示自定义图形,表5-4 自定义图形编码,【例5.4】 在例5.3的基础上,编程实现下列功能:以显示器的左上角为原点,依次循环显示表5-4所定

11、义的各种图形。,5.3.2 中文字符的显示,利用LED点阵显示器可以方便地实现中文字符的显 示,由于国标汉字是用1616点阵(256个像素)来表示 的,因此需要用4块88的LED点阵显示器组合成1616LED点阵显示器,才可以完整地显示一个汉字。图5.13所 示为汉字“电”的1616 字形点阵示意图。值得注意的是,字形并不是唯一的,应根据具体需要而定。,图5.13 “电”的1616 字形点阵示意图,为了使用8位的51系列单片机控制汉字的显示,通常把一个汉字分成上、下两个部分,如图5.13所示。,单片机从上半部左侧开始,扫描完上半部的第1列后,继续扫描下半部的第1列;然后又从上半部的第2列开始扫

12、描,扫描完上半部的第2列后,继续扫描下半部的第2列;以此类推,直到扫描下半部右侧最后一列为止。,汉字“电”的扫描代码,【例5.5】 用4块88的红色LED点阵显示器构成1块1616的LED电子广告屏,用来显示图形和汉字字符。具体要求如下:开机以卷帘出的形式出现一个笑脸,然后以左跑马的形式出现“零五智能电子班是最棒的!”,再以下滚屏的形式出现“零五智能电子是最棒的!”。最后再以卷帘入的形式出现另一个笑脸。接着不断循环上面的步骤。,(a) 总电路图,图5.14 例5.5电路图,(b) 1616 LED点阵显示器内部接线图,图5.14 例5.5电路图,图5.15 例5.5程序流程图,根据题目要求,主

13、程序的流程图如图5.15所示。,5.4 液晶显示器,5.4.1 点阵字符型LCD的内部结构 5.4.2 点阵字符型LCD的指令系统 5.4.3 点阵字符型LCD应用举例,液晶显示器(LCD)由于功耗低、抗干扰能力强等优点,日渐成为各种便携式产品、仪器仪表以及工控产品的理想显示器。LCD种类繁多,按显示形式及排列形状可分为字段型、点阵字符型、点阵图形型。单片机应用系统中主要使用后两种。,本节重点介绍1602点阵字符型LCD(Proteus ISIS中的LM016L),16代表每行可显示16个字符; 02表示共有2行,即这种LCD显示器可同时显示32个字符,如图5.16所示。,图5.16 1602

14、点阵字符型LCD,5.4.1 点阵字符型LCD的内部结构,图5.17 1602点阵字符型LCD的内部结构框图,1602点阵字符型LCD显示模块(LCM) 由LCD控制器、LCD 驱动器、LCD显示装 置(液晶屏)等组成, 主要用于显示数字、 字母、图形符号及少 量自定义符号,内部 结构如图5.17所示。,表5-5 字符发生器中部分常用的57点阵字符代码,续表5-5 字符发生器中部分常用的57点阵字符代码,图5.19 1602点阵字符型LCD的显示地址编码,5.4.2 点阵字符型LCD的指令系统,点阵字符型液晶显示模块是一个智能化的器件,所有 的显示功能都是由指令实现的。点阵字符型LCD的指令系

15、 统共有11条指令,下面分别介绍。,1. 清屏,指令编码:01H。 指令功能:用字符代码为20H的“空格”刷新屏幕,同时将 光标移到屏幕的左上角。,2. 光标返回原点,指令编码:02H或03H。 指令功能:将光标移到屏幕的左上角,同时清零地址计数 器AC,而DDRAM的内容不变。“”表示该位可以为0或 1(下同)。,3. 设置字符/光标移动模式,指令编码:04H07H。 指令功能:(1) I/D=1,表示当读或写完一个数据操作后,地址指针AC加l,且光标加1(光标右移1格);I/D=0,表示当读或写完一个数据操作后,地址指针AC减1,且光标减1(光标左移1格)。 (2) S=1,表示当写一个数

16、据操作时,整屏显示左移(I/D=1)或右移(I/D=0),以得到光标不移动而屏幕移动的效果;S=0,表示当写一个数据操作时,整屏显示不移动。,4. 显示器开/关控制,指令编码:08H0FH。 指令功能:(1) D=0,显示器关闭,DDRAM中的显示数据保持不变;D=1,显示器打开,立即显示DDRAM中的内容。 (2) C=1,表示在显示屏上显示光标;C=0,表示光标不显示。 (3) B=1,表示光标出现后会闪烁;B=0,表示光标不闪烁。,5. 光标或字符移位,指令编码:10H1FH。 指令功能:(1) S/C=1,表示显示屏上的画面平移1个字符位;S/C=0,表示光标平移1个字符位。 (2)

17、R/L=1,表示右移;R/L=0,表示左移。,6. 设置功能,指令编码:20H3FH。 指令功能:(1) DL=1,表示采用8位数据接口;DL=0,表示采用4位数据接口,使用D7D4位,分两次送入1个完整的字符数据。 (2) N=1,表示采用双行显示;N=0,表示采用单行显示。 (3) F=1,表示采用510点阵字符;F=0,表示采用57点阵字符。,7. 设置CGRAM地址,指令编码:40H7FH。 指令功能:设定下一个要读/写数据的CGRAM地址,地址 由(D5D0)给出,可设定003FH共64个地址。,8. 设置DDRAM地址,指令编码:80HFFH。 指令功能:设定下一个要读/写数据的D

18、DRAM地址,地址由(D6D0)给出,可设定007FH共128个地址。当N=0时单行显示(参见6:设置功能)。D6D0的取值范围为000FH(参见图5.19);当N=1时双行显示(参见6:设置功能),首行D6D0的取值范围为00H0FH,次行D6D0的取值范围为40H4FH(参见图5.19)。,9. 忙碌标志位BF或AC的值,忙碌标志位BF用来指示LCD目前的工作情况,当BF =1时,表示正在进行内部数据的处理,不接收单片机送来 的指令或数据;当BF=0时,表示已准备接收命令或数据。当程序读取此数据的内容时,D7表示BF,D6D0的 值表示CGRAM或DDRAM中的地址。至于是指向哪一个地址,

19、则根据最后写入的地址设定指令而定。,10. 写数到CGRAM或DDRAM,先设定CGRAM或DDRAM地址,再将数据写入D7 D0中,以使LCD显示出字形,也可以使用户自定义的字符图形存入CGRAM中。,11. 从CGRAM或DDRAM中读数,先设定CGRAM或DDRAM地址,再读取其中的数据。,5.4.3 点阵字符型LCD应用举例,液晶显示模块与单片机的连接方式有两种:一种为直接访问方式(总线方式),另一种为间接控制方式(模拟口线方式)。直接访问方式是将液晶显示模块的接口作为存储器或I/O设备直接挂在单片机总线上,单片机以访问存储器或I/O设备的方式控制液晶显示模块的工作。间接控制方式是单片

20、机通过自身的或系统中的并行接口与液晶显示模块连接,单片机通过对这些接口的操作,实现对液晶显示模块的控制。间接控制方式的特点是电路简单,节省单片机外围的数字逻辑电路,控制时序由软件产生,可以实现高速的单片机与液晶显示模块的接口。本节将通过实例介绍间接控制方式的使用方法。,【例5.6】 电路如图5.20所示,单片机采用AT89C51,振荡器频率fOSC为12MHz,显示器采用162的字符型LCD (Proteus ISIS中的LM016L)。试编写程序,让显示器显示两行字符串,第1行为“ZhuHai ChengShi”,共15个字符;第2行为“JiShu XueYuan”,共14个字符。,图5.2

21、0 例5.6电路图,【例5.7】 电路如图5.21所示,单片机采用AT89C51,振荡器频率fosc为12MHz,显示器采用162的字符型LCD (Proteus ISIS中的LM016L)。 试编写程序,在LCD的左上角显示键名,如按A键显示字符“A”。,5.5 非编码键盘,5.5.1 线性非编码键盘 5.5.2 矩阵非编码键盘,键盘是单片机应用系统中最常用的输入设备,通过键盘输入数据或命令,可以实现简单的人机对话。键盘有编码键盘和非编码键盘之分。 目前,单片机应用系统中普遍采用非编码键盘。按照键开关的排列形式,非编码键盘又分为线性非编码键盘和矩阵非编码键盘两种。,5.5.1 线性非编码键盘

22、,线性非编码键盘的键开关(K1、K2、K3、K4)通常排 成一行或一列,一端连接在单片机I/O口(P1)的引脚(P0.0、P0.1、P0.2、P0.3)上,同时经上拉电阻接至+5V电源,另一端则串接在一起作为公共接地端,如图5.22所示。,线性非编码键盘的工作原理是:当无按键被按下时, 引脚P0.0、P0.1、P0.2、P0.3为高电平;当按下某个按 键时,对应的I/O口引脚为低电平。单片机只要读取I/O口 引脚的状态,就可以获得按键信息,识别有无键被按下、 哪个键被按下。,在编写键盘处理程序时要考虑如何消除按键抖动的问题。具体方法是:首先读取I/O口状态并第1次判断有无键被按下,若有键被按下

23、则等待10ms,然后读取I/O口状态并第2次判断有无键被按下,若仍然有键被按下则说明某个按键处于稳定的闭合状态;若第2次判断时无键被按下,则认为第1次是按键抖动引起的无效闭合。,线性非编码键盘的状态扫描及键值处理流程图如图 5.23所示。,图5.23 线性非编码键盘按键处理流程图,【例5.8】 电路如图5.22所示,单片机采用AT89C51,振荡器频率fOSC为12MHz,在P1口接有8只发光二极管D1D8。试编写程序实现下列要求。 (1) 开机D1D8全亮。 (2) 仅按下K1键时,依次点亮D1D8,时间间隔为50ms。 (3) 仅按下K2键时,依次点亮D8D1,时间间隔为50ms。 (4)

24、 仅按下K3键时,D8D1闪烁,时间间隔为50ms。 (5) 仅按下K4键时,熄灭D1D8。,5.5.2 矩阵非编码键盘,矩阵非编码键盘的键开关处于行线与列线的交叉点上,每个键开关的一端与行线相连,另一端与列线相连。图5.24所示是一个43的矩阵非编码键盘。,图5.24 矩阵非编码键盘,矩阵非编码键盘键代码的确定通常采用逐行扫描法, 其处理流程如图5.25所示。,图5.25 矩阵非编码键盘按键处理流程,【例5.9】 基于图5.26所示的硬件电路,试编写程序,用7段数码管显示矩阵非编码键盘的键名。例如,按1键则显示“1”。,图5.26所示是44矩阵非编码键盘与单片机的典型连接方式。4根行线分别与

25、单片机P1口的P1.0P1.3引脚相连,称为行扫描口;4根列线分别与单片机P1口的P1.4 P1.7引脚相连,称为列检测口。16个按键的键名分别为0 9、AF。,根据矩阵非编码键盘逐行扫描法处理流程,键盘扫描 程序应包括以下内容:,(1) 查询是否有键被按下首先单片机向行扫描口输出扫描码F0H,然后从列检 测口读取列检测信号,只要有一列信号不为“1”,即P1口的值不等于F0H,则表示有键被按下;否则表示无键被按下。,(2) 查询闭合键所在的行列位置若有键被按下,单片机将得到的列检测信号取反,列 检测口中为1的位便是闭合键所在的列。,列号确定后,还需要进行逐行扫描以确定行号。单片 机首先向行扫描

26、口输出第1行的扫描码FEH,接着读列检测口,若列检测信号全为“1”,则表示闭合键不在第1行。接着向行扫描口输出第2行的扫描码FDH,再读列检测 口,。以此类推,直到找到闭合键所在的行,并将该 行的扫描码取反保存。如果扫描完所有的行后仍没有找到 闭合键,则结束行扫描,判定本次按键是误动作。,(3) 对得到的行号和列号进行译码,确定键值根据图5.26所示的硬件电路,1、2、3、4行的扫描码分别为0xfe、0xfd、0xfb、0xf7;1、2、3、4列的列检测数据分别为0xe0、0xd0、0xb0、0x70。设行扫描码为HSM,列检测数据为LJC,键值为KEY,则有,例如,“0”键处在第1行第1列,

27、其HSM = 0xfe,LJC = 0xe0,代入上式,可得“0”键的键值为,表5-6 44矩阵非编码键盘的键值,根据上述算法,可计算出所有按键的键值,见表5-6。,(4) 按键防抖动处理当用手按下一个按键时,一般都会产生抖动,即所按下的键会在闭合位置与断开位置之间跳动几下才能达到稳定状态。抖动持续的时间长短不一,通常小于10ms。若抖动问题不解决,就会导致对闭合键的多次读入。解决的方法是:在发现有键按下后,延时10ms再进行逐行扫描。因为键被按下时的闭合时间远远大于10ms,所以延时后再扫描也不迟。,5.6 本章小结,1. 51系列单片机有4个8位的双向并行输入/输出(I/O)端口,称为P0

28、口、P1口、P2口和P3口。各个端口既可以按字节输入、输出,又可以按位进行输入、输出。利用这4个I/O端口可以方便地实现单片机与外部数字设备或芯片的信息交换。2. LED数码管显示器按用途可分为通用7段LED数码管显示器和专用LED数码管显示器。通用7段LED数码管显示器按内部结构划分,数码管又分为共阴极和共阳极两种。数码管的控制方式分为静态和动态两种。,3. LED数码管点阵显示器是由LED按矩阵方式排列而成的,按照尺寸大小,LED点阵显示器有57、58、68、88等多种规格;按照LED发光颜色的变化情况,LED点阵显示器分为单色、双色、三色;按照LED的连接方式,LED点阵显示器又有共阴极

29、、共阳极之分。4. 液晶显示器由于功耗低、抗干扰能力强等优点,日渐成为各种便携式产品、仪器仪表以及工控产品的理想显示器。LCD种类繁多,按显示形式及排列形状可分为字段型、点阵字符型、点阵图形型。单片机应用系统中主要使用后两种。,5. 液晶显示模块与单片机的连接方式有两种:一种为直接访问方式,另一种为间接控制方式。6. 键盘是单片机应用系统中最常用的输入设备,通过键盘输入数据或命令,可以实现简单的人机对话。键盘有编码键盘和非编码键盘之分。编码键盘除了键开关外,还需去键抖动电路、防串键保护电路以及专门的、用于识别闭合键并产生键代码的集成电路(如8255、8279等)。编码键盘的优点是所需软件简短;

30、缺点是硬件电路比较复杂,成本较高。,非编码键盘仅由键开关组成,按键识别、键代码的产生以及去抖动等功能均由软件编程完成。非编码键盘的优点是电路简单,成本低;缺点是软件编程较复杂。目前,单片机应用系统中普遍采用非编码键盘。按照键开关的排列形式,非编码键盘又分为线性非编码键盘和矩阵非编码键盘两种。,5.7 实训五 模拟数字密码锁,1. 用1只绿色发光二极管的亮/灭来表示输入密码是否正确。,实际数字密码锁功能较多,本实训仅模拟一部分功 能,具体要求如下:,2. 显示器采用1602点阵字符型LCD(Proteus中的LM016L)。,3. 键盘采用43矩阵非编码键盘(Proteus中的KEYPAD-PH

31、ONE)。各键的键值见表5-7。,表5-7 43矩阵非编码键盘的键值,其中,为闪烁光标。,4. 控制流程,(1) 开机显示如图5.27所示。,图5.27 开机显示画面,(2) 密码输入。在图5.27所示的状态下,直接按09数字键即可。密码长度为8个字符(默认为12345678,可在程序中修改)。在密码输入时显示“*”,如图5.28所示。,输入完毕后按“#”键确定。若正确则绿色指示灯亮50ms,表示开门;若不正确则出现如图5.29所示的画面,此时按“*”键,即可返回图5.27所示的状态。,图5.28 密码输入,图5.29 密码输入不正确,重复上述过程直至密码输入成功为止。,参考电路原理图如图5.

32、30所示,图5.30 实训五电路原理图,思考与练习,1. 51系列单片机的4个I/O端口各有什么特点?在使用时应注意哪些事项? 2. 在单片机应用系统中常用的显示器有几种? 3. 如何解决LED数码管点阵显示器乱码问题? 4. 目前单片机应用系统中普遍采用什么键盘? 5. 在实训五中,如果增加密码设置功能,应如何修改程序?具体要求如下。,在图5.27所示的状态下,按“*”键,进入密码设置状态。首先输入旧密码,密码长度为8个字符,由09组成,此时显示画面如图5.31所示。,图5.31 密码设置画面一,旧密码输入完毕后,按“#”键确定。若正确则出现如图5.32所示的画面,输入8位新密码后再按“#”键确定,即完成密码设置。,图5.32 密码设置画面二,若输入的旧密码不正确,则出现如图5.33所示的画面,提示密码设置失败。,图5.33 密码设置画面三,重复上述过程直至密码设置成功。,第5章 结束,

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

当前位置:首页 > 网络科技 > 开发文档

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


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

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

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