怎样学习51单片机

怎样学习51单片机,第1张

单片机学习如何入门LUOKUI很多搞电子类行业的朋友都梦想自己成为搞硬件的高手,然而搞硬件难就难在没有头绪,学习硬件技术找到一个合适的入手点是最重要的。比较流行的硬件技术有数字系统设计、模拟电路系统设计、射频电路系统设计以及以上三类的混合。模拟与射频的设计入门门槛比较高而且市场份额比较小,因此学习硬件技术从数字电路入手是最容易而且是最具基础性的,而数字电路的设计又以单片机的学习为基础,学习单片机不仅仅是学习一项技术,更重要的是建立起一种数字系统设计的概念,为以后学习其他高档数字器件以及模拟、射频电路打下基础。现在单片机的主流仍然是8位单片机(例如MCS51、AVR、PIC、NEC、瑞萨系列)以及少数16位单片机(例如MSP430、凌阳系列)。在学校的单片机教学中,几乎都是以MCS51为主。但实际应用中却不是这样,在国外的DIY爱好者中,PIC单片机是最流行的;在国内,AVR单片机非常火。所以我要先谈谈单片机学习的两种路子。其一是传统的稳扎稳打型:从MCS51的汇编语言设计以及硬件电路设计开始入手,汇编语言程序设计熟悉了之后(这大概需要半年至一年的时间),对MCS51的内部硬件构成也有了很深的理解,这时再学习51单片机C语言设计(因为实际的大工程不可能用汇编完成),51的资源很有可能不够用,就要换用其他型号的单片机(例如AVR、430)。这种路子的优点在于基础厚实,MCS51的汇编语言运用熟练之后,学习其他单片机会很容易上手。但从汇编向C语言的思维转变是一个比较痛苦的过程。其二是自顶向下型:选定一种实际工程中比较实用的单片机,直接学习怎样使用C语言来开发它,在较短的时间内掌握对其IO口、定时器、中断的 *** 作,然后再慢慢了解芯片内部的硬件构成细节。这种路子的优点有很多:初入门时不需要花比较长的时间去学习单片机内部硬件构成结构之类很枯燥的东西,只要明白C语言的变量与单片机的IO口等模块的寄存器、一个函数与单片机的一项功能、顺序语句与单片机的顺序输出、条件语句与单片机的输入输出间条件关系、循环语句与单片机的反复型输出是怎样映射的就可以完成很多范例项目的开发,可以保持住学习的兴趣;可以直接学习实际工程中用得到的东西,不必完成从MCS51向其他单片机的转变。我推荐大多数的,尤其是已经参加工作的初学者朋友,走第二种路子,而且推荐大家采用AVR系列单片机中的ATmega16来入门。因为AVR相比51和其他单片机有诸多优点。首先是最小系统设计容易,只需要连接电源、焊接晶振就可以工作,尤其是对时钟精度要求不太高的话晶振都可以省去,因为AVR带有内部RC振荡器,相比之下51单片机需要外接上电复位电路(AVR内部自带这个电路而且性能比51的RC复位要好)、EA/VPP引脚要上拉、P0口要上拉等等,光建立最小系统就是很麻烦的一件事。其次很多概念初学者理解起来更容易,AVR的时钟源(晶振、内部RC等)不经过分频直接提供给CPU使用,例如AVR外接10MHz的晶振其CPU的时钟周期就是1/10MHz=01uS,而51的时钟源要12分频后提供给CPU,12MHz的晶振对应的CPU时钟频率是1MHz,这一点尤其是在计算定时器相关的设置时AVR非常方便。第三,相比例如PIC、430等其他单片机,AVR既具有简单的、可以自制的ISP下载线和Jtag仿真器,又有DIP直插的封装形式,而且网络上AVR有关的中文资料非常多,尤其是有Atmel公司官方翻译的中文技术文档,大大方便初学者的入门。第四,AVR的C语言编程与教科书上学习的C语言语法是几乎一样的,不像51的C语言,一些bit、srf之类的变量定义在教科书中是找不到的,在更高层次的ARM、DSP的C语言中也是没有那样用的,仅仅是51独有的用法,尤其是bit变量的用法很“汇编化”,会给后续的嵌入式系统的程序设计形成不好的思维模式。而AVR的设计很入嵌入式系统设计的主流,有利于后续的发展。说了这么多“空洞”的东西,我们说点比较实在的吧,我也是初学者过来的,比较了解初学者的心理,恨不得你给他制定出第一步、第二步、第三步该干什么,那我就按照这个模式讲一下:Step1,准备万用板三块,查找Jtag、ISP的电路,焊接,用掉两块板;剩下的一块用来焊接AVR的最小系统。Step2,在ATmega16的一个8位IO口上焊接8个LED(注意要串接220欧姆限流电阻哦)。Step3,写一个流水灯的小程序。

方案一 以单片机为核心处理器的DMR对讲机方案(MSP430F149+AMBE1000)

1工作原理

发射时,由麦克送来的模拟语音经CSP1027进行A/D转换,由声码器AMBE1000进行语音压缩,交单片机MSP430F149进行协议填充组帧,送到CC1101进行调制后发射。接收时,由CC1101解调出来的码流经MSP430F149进行帧恢复,交由声码器进行解压,数据经CSP1027进行D/A转换为模拟语音信号。

2关键器件

微控制器采用TI公司的MSP430F149,它是16位超低功耗、混合信号微控制器,采用“冯·诺依曼”结构,可用JTAG(一种标准测试接口)进行仿真调试。

芯片的电源电压为(18~36)V,在RAM数据保持方式下耗电仅01uA,活动模式耗电250 uA/MIPS(每秒百万条指令数)。运算时由于本单片机采用16位RISC(精简指令集计算机),一个时钟周期可以执行一条指令,而传统的单片机要12个时钟周期才执行一条指令。工作在8MHz的晶振频率时,指令速度可达8MIPS,而同样这个指令速度,16位处理器比8位处理器高远不止两倍。

概述

声码器AMBE1000在国内已有产品,价格比较合理。CC1101的灵敏度为-116dBm(12kbps,1%数据包误码率,工作在433MHz时),与国内的对讲机可用灵敏度-120dBm相比偏低,但符合欧盟的CE标准规定小于-107dBm另外,射频模块的功率输出仅12dBm(16mW),所以本方案仅适用短距离范围的通信。提高灵敏度可考虑用器件ADF7021作为射频模块。

方案二 以DSP+MCU为核心处理器的对讲机方案

1工作原理

方案以MSP430为中心系统来完成数据的收、发控制等工作,系统采用MSP430中 USART模块的SPI同步通信模式。在接收过程中,首先接收来自射频芯片的FSK数据,解调后由MSP430将数据帧的同步域、尾域、ID域以及命令字节去除后,数据发至C5402进行去压缩处理,数据交AIC23进行D/A转换为语音信号。在发送过程中,首先由AIC23进行A/D转换,数据交C5402将语音压缩,再由微控制器MSP430进行协议填充,加上头域、尾域、ID域以及命令字节形成数据帧,然后控制射频模块将数据发送。

2关键器件

TMS320C5402是TI公司于1996年推出的一种定点DSP芯片,采用先进的修正哈佛结构和8总线结构,使处理器的性能大大提高。其独立的程序和数据总线允许同时访问程序存储器和数据存储器,实现高速并行 *** 作。如,可以在一条指令中同时执行3次读 *** 作和1次写 *** 作。TMS320C5402的运行速度为40MIPS,指令周期为25ns此外,还可以在数据总线与程序总线之间相互传送数据。从而使处理器具有单个周期内同时执行算术运算、逻辑运算、位移 *** 作、乘法累加运算以及访问程序、数据存储等强大功能。

概述

采用DSP方案时,免去选用语音芯片声码器的烦恼,提高了数字对讲机对语音处理的能力,可让语音编码的算法尽量优化,从而使对讲机语音信号的处理更具通用性和扩展性。本方案是以DSP为开发平台,经过连续可变斜率增量(CVSD)调制编解码得到语音信号的清晰度和自然度好,但软件开发工作量大。CC1000不支持4FSK调制与解调,本方案不适用于DMR与dPMR协议。另外CC1000的接收可用灵敏度为-110dBm,国内对讲机厂家可能嫌低。

方案三 以单片机为核心处理器的dPMR对讲机方案(CMX618+CMX7141)

1工作原理

发射时,麦克送来的模拟语音经CMX618内部进行增益调节,A/D转换和压缩处理,然后通过SPI(串行外围设备接口)进入CMX7141基带处理器,在微控制器LPC2138的控制和管理下经CMX7141芯片内部进行信道编码,dPMR协议栈打包,数字滤波以及4FSK调制,调制编码后的语音数据经CMX7141芯片的MOD1/2管脚分别输出给外部的发射VCO和压控温补参考时钟,经两点调制输出射频载波给发射功放,并到天线输出。

接收时,CMX7141对基于超外差射频接收模块送来的4FSK解调信号在微控制器LPC2138的控制和管理下进行4FSK解调,dPMR拆包,信道解码,最终得到语音编码数据,经SPI串口送给CMX618进行语音解压缩并恢复语音信号。

2关键器件

语音编解码片CMX618是CML微电子(新加坡)私人有限公司的产品,芯片由音频压缩/解压器、RALCWI编解码器、前向纠错编解码器和其他特殊功能模块几部分组成。

RALCWI是一种鲁棒的先进的复杂性波形插入技术,与其他语音编解码技术不同,它使用独有的信号分解和参数编码方法,可确保在较高的压缩率下有较好的语音质量。

在声码器中,采用RALCWI技术实现的语音质量与编码速率在4kbps以上的标准声码器话音质量相当。

概述

本方案优点是开发时的灵活性高,模拟与数字可双模设计,且同一个硬件开发平台能满足不同的数字对讲机标准,支持多种语音声码器,射频的接收灵敏度可做得较高达到-118dBm(误码率为1%时)。发射功率05W,功率容易提升。

缺点是前期的软件开发成本高并有一定难度,射频模块ATB010只支持dPMR的EN301,166标准,不支持DMR

方案四 以MCU+DSP的DMR对讲机方案(MSP430FG4619+VC5510)

1工作原理

发射时,由麦克送来的模拟语音经模数转换器AD73311采样成数字信号,AMBE2000对语音数字信号进行压缩编码,数字信号由VC5510进行DMR通信协议填充组成帧信号和4FSK的调频波成形,最后由微控制器MCU进行D/A转换,送往射频模块进行发射调制,实现发射。

接收时,MCU将射频模块送来已解调数据进行A/D转换,经VC5510进行拆帧,交AMBE2000进行解压,数据由AD73311数模转换为语音信号。

微控制器MSP430FG4619是整个系统的控制中心,人机接口如键盘、显示器与MCU直接连接。微控制器实现对射频模块的控制,包括基带信号的发送与接收、射频频率点的控制、信道检测等,MCU还负责DMR协议的高层信令控制、人机接口的互通等。

另外,请注意微控制器还要完成基带信号的AD/DA转换功能。

2关键器件

AMBE2000TM声码器是美国语音公司DVSI推出的一款适应性强、高性能、单芯片的语音压缩编解码器。它能在低速率下提供优良的语音质量,并实现了实时的、全双工的标准设定的AMBE语音压缩软件算法。

大量的评估显示,这款声码器具有在一般数据速率下提供同数字蜂窝系统一样性能的能力。AMBE在24kbps速率下保持自然语音质量和清晰度,由于AMBE算法复杂性低,所以它能够完全集成在成本低、功耗低的芯片上。

概述

方案简单,实用。

软件开发中,微控制器和数字处理器的程序对DMR协议的分层必须有清晰的概念,正确的程序设计是硬件实现的保证。声码器的选用有较大的余地。

方案五 以ARM+DSP的DMR对讲机方案

1工作原理

发射时,由麦克送来的话音信号由数模转换器AD73311进行采样,数据由声码器进行压缩,OMAP5910内的DSP与ARM对压缩的数据进行协议添加与控制,形成4FSK波形,数模转换器AIC23将4FSK数字波形模拟化后进行射频调制,调频载波由天线发射。

接收时,射频模块对接收的模拟信号进行解调,模拟信号交AIC23进行数字化处理,OMAP5910对接收到的数据进行信道解码和拆帧,帧信号交声码器进行解压,数据由AD73311还原为模拟语音信号。

2关键器件

OMAP5910是一款嵌入式双核处理器,它集成了高性能的ARM925、TMS320C55x DSP核和已经得到的广泛应用的各种接口与外设,具有较强的处理能力、较低的功耗和较高的信价比。ARM处理器内核用于DMR协议的处理与系统控制,DSP内核用于完成数字信号的实时处理。

OMAP5910及其设计套件具有多个目标应用市场,提供多媒体功能、改善人机界面并延长电池寿命。

概述

从技术上讲,双核处理器方案与前面介绍的DSP+MCU相比,可以降低系统体积,减少电路的复杂性,对通信协议能作较好的兼容,升级空间大。声码器的应用有可选国产芯片的余地。

缺点是前期的软件开发工作量大,ARM与DSP间的协调工作要深入研究,以免浪费处理器的资源。此外,由于OMAP的功能十分强大,该平台还可以有更多的应用,如加入视频、娱乐等功能。

方案六

1工作原理

发射时,麦克送来的模拟语音经WM8758B进行A/D转换,送到SCT3252进行压缩处理,经SCT3252进行dPMR协议处理后送到WM8758B的D/A转换单元调制成4FSK信号,经两点调制输出射频载波给发射功放,送天线输出。

接收时,WM8758B对射频模拟信号进行A/D转换,送到SCT3252进行4FSK解调,dPMR拆包,信道解码,最终得到语音编码数据,经解码处理后把语音数据送到WM8758B进行D/A转换,经由外部放大电路送入喇叭还原成话音。

2关键器件

SCT3252是上海士康公司生产的语音编解码及dPMR协议栈处理芯片。具有较好的语音质量及较高的接收灵敏度(可达-126dBm)。

概述

本方案的特点是语音编解码及dPMR协议栈都集成在SCT3252中,大大减少了控制单元MCU的工作量,另外SCT3252为LQFP100封装,焊接方便。整个方案简单,软件升级的空间大。本方案可以实现数模兼容,通过开关可方便进行数字与模拟通信之间的切换。

WM8758B只起模数转换作用,厂家认为,把它集成进SCT3252是指日可待的事。

开发板的话就选 郭天祥的

淘宝上很多的

也不贵

1、熟悉单片机的原理,结构;

2、学好数电,模电,为设计电路打好基础;

3、熟练使用C语言,多学习别人的程序;

4、对 *** 作系统原理有一定的了解;

5、Protel至少要有点基础;

6、要实际动手调试电路的能力。

学习单片机的步骤

当前的单片机种类很多,但是 51 是最基础的,因此单片机的学习最好也是从 51 开始,不仅容易上手,而且相当实用。然而 51 单片机毕竟过于基础,后来的很多单片机在功能上都有很大的扩展,因此按照我们实验室多数人的路线接下来大多数人会学习 AVR 单片机, AVR 单片机在功能上较 51 有很大提升,集成了 A/D 、快速 PWM 等很多实用的功能,而且和很多大型的单片机在功能上有很多类似之处,因此如果以后还想掌握其他单片机 AVR 无疑是一个很好的跳板。

学习的过程

学习单片机最终要的是当然是练,我所说的学习跟课堂上的单片机学习不同,我以前也看过一些单片机教材,有些教材讲的是单片机的工作原理和内部结构,这些东西对于我们暂时并不需要,等以后开课的时候在学习好了。现在要学习的是暂时抛开内部结构原理不谈,如何能用单片机写一些简单的小程序,是从实用性的角度出发,网上有一种说法称之为先实践后理论的学习方法。

因此我的观点如下,单片机的硬件结构首先要有一个基本的了解,最起码要知道各引脚的功能、区别,能自己动手搭一个单片机的最小系统,然后就可以直接从程序入手,程序最好还是用 C 语言编程,从简单的跑马灯做起,逐渐深入,陆续可以做一些数码管、液晶、 DS1302 、 DS18B20 等电子元器件的应用,在深入就可以结合一些具体实例扩展一些中断、串口通讯等功能。还有一点要声明的是单片机里用到的 C 语言其实很有限,课堂上学习 C++ 的很大一部分内容在初期单片机编程中都用不到,因此没必要因为觉的自己的 C 语言基础不是很好而对单片机望而止步!

学习的工具

软件方面方面, 51 单片机用的是 KEIL 软件,这个软件在学校图书馆软件下载和其他网站上都有,具体用法自己查找相关资料, AVR 的软件就比较多了,我用的是 CVAVR ,另外还有 ICCAVR 等多款编译软件,这要看个人喜好了,建议有了一定的 51 基础再学。另外就是烧写软件,烧写软件的作用就是将编译器生成的 HEX 文件烧写至单片机里,这要配合下载线实用,如果有并口的话最好用并口下载线,软件最好用广州双龙的 SLISP 软件,如果是笔记本没有并口的话则要自己买一个下载器了,名称为 USBASP ,网上电子市场有卖 20 块钱左右,软件会随光盘自带。

硬件方面,首先是要有单片机,对于单片机有一点要注意, 51 单片机最好买 89S51 、 89S52 这两种型号,上面我所说的烧写程序是 ISP 方式,这两种单片机支持 ISP 下载,所以如果买其他型号的烧写程序可能会不太方便, AVR 单片机常用的就是 ATmega16L 其它型号的区别也不是很大,甚至有些兼容。至于单片机开发板,目前的价格都很贵,从一百到几百不等,不过像上次学校里广告的那个六十多块钱的最好还是免了,没什么作用。能买一块当然好,没有的话也不要紧,自己动手买个电路板搭一下也很方便,引出 ISP 接口,烧写程序十分容易,然后将 I/O 口引出扩展也很方便。

学习单片机的其它几个注意点:

1 .理论与实践并重

对一个初学单片机的人来说,如果按教科书式的学法,上来就是一大堆指令、名词,学了半天还搞不清这些指令起什么作用,也许用不了几天就会觉得枯燥乏味以致半途而废。所以学习与实践结合是一个好方法,边学习、边演练,循序渐进,这样用不了几次就能将所用到的指令理解、吃透、扎根于脑海,甚至 “ 根深蒂固 ” 。也就是说,当你学习完几条指令后 ( 一次数量不求多,只求懂 ) ,接下去就该做实验了,通过实验,使你感受到刚才的指令产生的控制效果,眼睛看得见 ( 灯光 ) 、耳朵听得到 ( 声音 ) ,更能深刻理解指令是怎样转化成信号去实现控制的,通过实验看到自己所学的成果不仅有一种成就感也能提升你对单片机的兴趣。说句实在话,单片机与其说是学出来的,还不如说是做实验练出来的,何况做实验本身也是一种学习过程。因此边学边练的学习方法,效果特别好。

2 .合理安排时间持之以恒

学习单片机不能 “ 三天打鱼、两天晒网 ” ,要有持之以恒的毅力与决 4 心。学习完几条指令后,就应及时做实验,融汇贯通,而不要等几天或几个星期之后再做实验,这样效果不好甚至前学后忘。另外要有打 “ 持久战 ” 的心理准备,不要兴趣来时学上几天,无兴趣时凉上几星期。学习单片机很重要的一点就是持之以恒。

3 .遇到问题耐心检查

单片机有软硬件两方面的内容,有时一个程序怎么调都不出效果,然而从理论分析却又是对的,这是就要仔细找原因了,学习单片机经常碰到很多问题,有时一两天都不能解决,这是就要有耐心,从底层找起,相信每找出一个错误都会有一个新的收获。切不可轻言放弃!!!

4 .对只短暂学过一遍的知识,充其量只比浮光掠影稍好。因此,较好的方法是过一段时间后 (1-2 个月 ) 再重新学一遍,学过的知识要经常运用,这样反复循环几次就能彻底弄懂消化,永不忘却。

5 .要进行适当投资购买实验器材及书籍资料

单片机技术含金量高,一旦学会后,给你带来的效益当然也高,无论是应聘求职还是自起炉灶开厂办公司,其前景都光明无限。因此在学习时要舍得适当投资购买必要的学习、实验器材。另外还要经常去科技图书店看看,购买一些适合自己学习、提高的书籍。一本好的书籍真的很重要,可以随时翻阅,随时补充不懂或遗忘的知识。

学习使用单片机就是理解单片机硬件结构,以及内部资源的应用,在汇编或C语言中学会各种功能的初始化设置,以及实现各种功能的程序编制。

第一步:数字I/O的使用

使用按钮输入信号,发光二极管显示输出电平,就可以学习引脚的数字I/O功能,在按下某个按钮后,某发光二极管发亮,这就是数字电路中组合逻辑的功能,虽然很简单,但是可以学习一般的单片机编程思想,例如,必须设置很多寄存器对引脚进行初始化处理,才能使引脚具备有数字输入和输出输出功能。每使用单片机的一个功能,就要对控制该功能的寄存器进行设置,这就是单片机编程的特点,千万不要怕麻烦,所有的单片机都是这样。

第二步:定时器的使用 学会定时器的使用,就可以用单片机实现时序电路,时序电路的功能是强大的,在工业、家用电气设备的控制中有很多应用,例如,可以用单片机实现一个具有一个按钮的楼道灯开关,该开关在按钮按下一次后,灯亮3分钟后自动灭,当按钮连续按下两次后,灯常亮不灭,当按钮按下时间超过2s,则灯灭。数字集成电路可以实现时序电路,可编程逻辑器件(PLD)可以实现时序电路,可编程控制器(PLC)也可以实现时序电路,但是只有单片机实现起来最简单,成本最低。

定时器的使用是非常重要的,逻辑加时间控制是单片机使用的基础。

第三步:中断

单片机的特点是一段程序反复执行,程序中的每个指令的执行都需要一定的执行时间,如果程序没有执行到某指令,则该指令的动作就不会发生,这样就会耽误很多快速发生的事情,例如,按钮按下时的下降沿。要使单片机在程序正常运行过程中,对快速动作做出反应,就必须使用单片机的中断功能,该功能就是在快速动作发生后,单片机中断正常运行的程序,处理快速发生的动作,处理完成后,在返回执行正常的程序。中断功能使用中的困难是需要精确地知道什么时候不允许中断发生(屏蔽中断)、什么时候允许中断发生(开中断),需要设置哪些寄存器才能使某种中断起作用,中断开始时,程序应该干什么,中断完成后,程序应该干什么等等。

中断学会后,就可以编制更复杂结构的程序,这样的程序可以干着一件事,监视着一件事,一旦监视的事情发生,就中断正在干的事情,处理监视的事情,当然也可以监视多个事情,形象的比喻,中断功能使单片机具有吃着碗里的,看着锅里的功能。

以上三步学会,就相当于降龙十八掌武功,会了三掌了,可以勉强护身。

第四步:与PC机进行RS232通信

单片机都有USART接口,特别是MSP430系列中很多型号,都具有两个USART接口。USART接口不能直接与PC机的RS232接口连接,它们之间的逻辑电平不同,需要使用一个MAX3232芯片进行电平转换。

USART接口的使用是非常重要的,通过该接口,可以使单片机与PC机之间交换信息,虽然RS232通信并不先进,但是对于接口的学习是非常重要的。正确使用USART接口,需要学习通信协议,PC机的RS232接口编程等等知识。试想,单片机实验板上的数据显示在PC机监视器上,而PC机的键盘信号可以在单片机实验板上得到显示,将是多么有意思的事情啊!

第五步:学会A/D转换

MAP430单片机带有多通道12位A/D转换器,通过这些A/D转换器可以使单片机 *** 作模拟量,显示和检测电压、电流等信号。学习时注意模拟地与数字地、参考电压、采样时间,转换速率,转换误差等概念。

使用A/D转换功能的简单的例子是设计一个电压表。

第六步:学会PCI、I2C接口和液晶显示器接口

这些接口的使用可以使单片机更容易连接外部设备,在扩展单片机功能方面非常重要。

第七步:学会比较、捕捉、PWM功能

这些功能可以使单片机能够控制电机,检测转速信号,实现电机调速器等控制起功能。

如果以上七步都学会,就可以设计一般的应用系统,相当于学会十招降龙十八掌,可以出手攻击了。

第八步:学习USB接口、TCP/IP接口、各种工业总线的硬件与软件设计学习USB接口、TCP/IP接口、各种工业总线的硬件与软件设计是非常重要的,因为这是当前产品开发的发展方向。

到此为止,相当于学会15招降龙十八掌,但还不到打遍天下无敌手的境界。即使如此,也算是单片机大虾了

是否可以解决您的问题?

以上就是关于怎样学习51单片机全部的内容,包括:怎样学习51单片机、单片机对讲机原理、51单片机该怎么学等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9494407.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存