简易电子钟的设计.doc

上传人:牧羊曲112 文档编号:4295874 上传时间:2023-04-14 格式:DOC 页数:25 大小:884.50KB
返回 下载 相关 举报
简易电子钟的设计.doc_第1页
第1页 / 共25页
简易电子钟的设计.doc_第2页
第2页 / 共25页
简易电子钟的设计.doc_第3页
第3页 / 共25页
简易电子钟的设计.doc_第4页
第4页 / 共25页
简易电子钟的设计.doc_第5页
第5页 / 共25页
点击查看更多>>
资源描述

《简易电子钟的设计.doc》由会员分享,可在线阅读,更多相关《简易电子钟的设计.doc(25页珍藏版)》请在三一办公上搜索。

1、湖南建高等专科学校课程设计说明书课题名称: 简易电子钟的设计 专业名称: 学生班级: 学生姓名: 学生学号: 指导教师: 单片机技术课程设计任务书一、设计题目:简易电子钟的设计二、适用班级:电气04010405三、指导教师:王韧四、任务与要求:在智能化仪器仪表中,控制核心均为微处理器,而单片机以其高性能、高速度、体积小、价格低廉、稳定可靠而得到广泛应用,是设计智能化仪器仪表的首选微控制器,单片机结合简单的接口电路即可构成电子钟,它可广泛应用于工业、农业、日常生活等领域,与传统钟表相比较,它具有高精度、高可靠性、操作方便、价格便宜、智能化等特点,是钟表的一个发展方向,具有一定的实用价值。1、本课

2、题任务如下:设计一个具有特定功能的电子钟。该电子钟上电或按键复位后能自动显示系统提示符“P.”, 进入时钟准备状态;第一次按电子钟启动/调整键,电子钟从0时0分0秒开始运行,进入时钟运行状态;再次按电子钟启动/调整键,则电子钟进入时钟调整状态,此时可利用各调整键调整时间,调整结束后可按启动/调整键再次进入时钟运行状态。2、本课题可选择设计方案如下:(1)、基于单片机并行口的电子钟的设计在AT89S52的P0口和P2口外接由六个LED数码管(LED5LED0)构成的显示器,用P0口作LED的段码输出口(P0.0P0.7对应于LED的adp),P2.5P2.0作LED的位控输出线(P2.5P2.0

3、对应于LED5LED0),P1口外接四个按键A、B、C、D(对应于P1.0P1.3)。(2)、基于单片机串行口的电子钟的设计将AT89S52的串行口扩展成并行口,外接由六个LED数码管(LED5LED0)构成的显示器;P1口外接四个按键A、B、C、D(对应于P1.0P1.3)。(3)、基于Intel 8279的电子钟的设计利用Intel 8279芯片为AT89S52扩展并行口,通过Intel 8279外接由六个LED数码管(LED5LED0)构成的显示器和由四个按键A、B、C、D构成的键盘。(4)、基于Intel 8155的电子钟的设计利用Intel 8155芯片为AT89S52扩展并行口,通

4、过Intel 8155外接由六个LED数码管(LED5LED0)构成的显示器和由四个按键A、B、C、D构成的键盘。(5)、基于Intel 8255的电子钟的设计利用Intel 8255芯片为AT89S52扩展并行口,通过Intel 8255外接由六个LED数码管(LED5LED0)构成的显示器和由四个按键A、B、C、D构成的键盘。3、本课题基本要求如下:(1)、六个LED显示当前时间;(2)、四个按键的功能:A键用于电子钟启动/调整;B键用于调时,范围0-23,0为24点,每按一次时加1;C键用于调分,范围0-59,0 为60分,每按一次分加1;D键用于调秒, 范围0-59,0为60秒,每按一

5、次秒加1;(3)、单片机采用AT89S52,fosc=6MHZ;(4)、计算机打印单片机技术课程设计说明书一份;(5)、设计时间:二周;(6)、制作简易电子钟实物;(7)、人员分组:一人一组或多人一组(不超4人)。五、单片机技术课程设计说明书正文主要内容参照“单片机技术课程设计说明书正文主要内容”文件。六、单片机技术课程设计说明书书写格式 参照“单片机技术课程设计说明书书写格式”文件。七、参考资料1、曹巧媛,单片机原理及应用M,北京:电子工业出版社,1997.7;2、赵秀珍,单永磊,单片微型计算机原理及其应用M,北京:中国水利水电出版社,2001.8;3、张毅刚,修林成,胡振江,MCS-51单

6、片机应用设计M,哈尔滨:哈尔滨工业大学出版社,1990.8;4、张洪润,兰清华,单片机应用技术教程M,北京:清华大学出版社,1997.11;5、李华,MCS-51系列单片机实用接口技术M,北京:北京航空航天大学出版社,1993.8;6、陈景初,单片机应用系统设计与实践M,北京:北京航空航天大学出版社;7、马家辰,MCS-51单片机原理与接口技术M,哈尔滨:哈尔滨工业大学出版社;8、刘守义,单片机应用技术M,西安:西安电子科技大学出版社;9、马忠梅,单片机的C语言Windows环境编程宝典M, 北京:北京航空航天大学出版社,2003.6; 10、李光飞,单片机C程序设计指导M,北京:北京航空航天

7、大学出版社,2003.01 ;11、李朝青,单片机学习指导M,北京:北京航空航天大学出版社,2005.10 ;12、李朝青,单片机学习辅导测验及解答讲义M,北京:北京航空航天大学出版社,2003.7 ;13、李光飞,单片机课程设计实例指导M,北京:北京航空航天大学出版社,2004.9。 电气自动化教研室 摘要第1章 电子钟功能说明及方案介绍1.1电子钟功能说明 该电子钟上电或按键复位后能自动显示系统提示符“P.”, 进入时钟准备状态;第一次按电子钟启动/调整键,电子钟从0时0分0秒开始运行,进入时钟运行状态;再次按电子钟启动/调整键,则电子钟进入时钟调整状态,此时可利用各调整键调整时间,调整结

8、束后可按启动/调整键再次进入时钟运行状态。1.2总体方案介绍与选择1.2.1本课题可选择设计方案如下:(1)、基于单片机并行口的电子钟的设计在AT89S52的P0口和P2口外接由六个LED数码管(LED5LED0)构成的显示器,用P0口作LED的段码输出口(P0.0P0.7对应于LED的adp),P2.5P2.0作LED的位控输出线(P2.5P2.0对应于LED5LED0),P1口外接四个按键A、B、C、D(对应于P1.0P1.3)。(2)、基于单片机串行口的电子钟的设计将AT89S52的串行口扩展成并行口,外接由六个LED数码管(LED5LED0)构成的显示器;P1口外接四个按键A、B、C、

9、D(对应于P1.0P1.3)。(3)、基于Intel 8279的电子钟的设计利用Intel 8279芯片为AT89S52扩展并行口,通过Intel 8279外接由六个LED数码管(LED5LED0)构成的显示器和由四个按键A、B、C、D构成的键盘。(4)、基于Intel 8155的电子钟的设计利用Intel 8155芯片为AT89S52扩展并行口,通过Intel 8155外接由六个LED数码管(LED5LED0)构成的显示器和由四个按键A、B、C、D构成的键盘。(5)、基于Intel 8255的电子钟的设计利用Intel 8255芯片为AT89S52扩展并行口,通过Intel 8255外接由六

10、个LED数码管(LED5LED0)构成的显示器和由四个按键A、B、C、D构成的键盘。1.2.2方案选择的确定在智能化仪器仪表中,控制核心均为微处理器,而单片机以其高性能、高速度、体积小、价格低廉、稳定可靠而得到广泛应用,是设计智能化仪器仪表的首选微控制器,单片机结合简单的接口电路即可构成电子钟,它可广泛应用于工业、农业、日常生活等领域,与传统钟表相比较,它具有高精度、高可靠性、操作方便、价格便宜、智能化等特点,是钟表的一个发展方向,具有一定的实用价值。所以我们小组选择方案二基于单片机串行口的电子钟的设计。第2章 电子钟的工作原理2.1 电子钟的组成框图本电子钟电路主要由振荡电路、复位电路、AT

11、89S52、键盘电路、显示电路驱动电路构成,其具体结构功能如图2-1所示。键盘电路路驱动电复位电路振荡电路图2-1电子钟的组成框图2. 电子钟的工作原理2.1、实现时钟计时的基本方法:利用MCS-51系列单片机的可编程定时/计数器、中断系统来实现时钟计数。(1)、计数初值计算;把定时器设为工作方式1,定时时间为125mS,则计数溢出8次即得时钟计时最小单位秒,而8次计数可用软件方法实现。假设使用T/C0,方式1,125mS定时,fosc=12MHz。则初值X满足(216-X)2=125000X=607010111101101100BDCH(2)、采用中断方式进行溢出次数累计,计满8次为秒计时(

12、1秒);(3)、从秒到分和从分到时的计时是通过累加和数值比较实现。2.2、电子钟的时间显示电子钟的时钟时间在六位数码管上进行显示,因此,在内部RAM中设置显示缓冲区共6个单元。 LED5 LED4 LED3 LED2 LED1 LED0 7EH 7DH 7CH 7BH 7AH 79H显示缓冲区从左至右依次存校时,分、秒的数值。2.3、电子钟的启、停及时间调整电子钟设置4个按键通过程序控制来完成电子钟的启、停及时间调整。A键控制电子钟的启、停; B键调整时;C键调整分;D键调整秒。第三章 电子钟整机电路框图、整机电路原理图、电源电路原理图PCB图第4章、电子钟元器件清单第章电子钟单元电路工作原理

13、.1单片机介绍 AT89S51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89S51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。 51单片机主要包括运算器、控制器、存储器、输入/输出电路、串行口电路、中断和定时电路,如下图2-2单片机系统结构框

14、图。中断4KB程序存储器128B数据存储器2个16位定时/计数器64KB总线扩展控制可编程I/O口可编程串行口C P U振荡器及定时电路中断频率基准源计数器控制并行I/O口串行输 入串行输 出图2-2 单片机系统结构图 5.1.1单片机内部逻辑结构(1)中央处理器(CPU):CPU是单片机的核心,完成运算和控制操作,中央处理器包括运算器和控制器两部分电路。(2)内部数据存储器:80C51芯片中共有256个RAM单元,其中后128单元被专用寄存器占用,供用户使用只是前128个单元,用于荐放可读定的数据。(3)内部程序存储器:80C51共有4KB掩膜ROM,用于存放程序和原始数据。(4)定时器/计

15、数器:80C51共有两个16位的定时器/计数器,以实现定时或计数功能,并以其定时或计数结果对单片机进行控制。(5)并行I/O口:80C51共有4个8位的I/O口,以实现数据的并行输入输出。(6)串行口:以实现单片机和共它数据设备之间的串行数据传送。(7)中断控制系统:80C51共有5个中断源,即外中断2个,定时/计数中断2个,串行中断1个。(8)时钟电路:时钟电路为单片机产生时钟脉冲序列。(9)位处理器:位处理器以状态寄存器中选择进位标志位C为累加器,可进行置位、复位、取反、等于“0”转移、等于“1”转移且清“0”以及C与可寻址之间的传送、逻辑与、逻辑或等位操作。(10)总线:系统的地址信号、

16、数据信号和控制信号都是通过总线传送。5.1.2引脚功能80S51是标准的40引脚双列插式集成电路芯片,其外观如图2-3。 图2-3 引脚排列1)、电源引脚VCC 40 电源端GND 20 接地端工作电压为5V,另有AT89S51 工作电压则是2.7-6V, 引脚功能一样。2) 、外接晶体引脚: XTAL1 19 XTAL2 18 XTAL1 是片内振荡器的反相放大器输入端,XTAL2 则是输出端,使用外部振荡器时,外部振荡信号应直接加到XTAL1,而XTAL2 悬空。内部方式时,时钟发生器对振荡脉冲二分频,如晶振为12MHz,时钟频率就为6MHz。晶振的频率可以在1MHz-24MHz内选择。电

17、容取30PF 左右。3)、复位 RST 9 在振荡器运行时,有两个机器周期(24 个振荡周期)以上的高电平出现在此引腿时,将使单片机复位,只要这个脚保持高电平,51 芯片便循环复位。复位后P0P3 口均置1 引脚表现为高电平,程序计数器和特殊功能寄存器SFR 全部清零。当复位脚由高电平变为低电平时,芯片为ROM 的00H 处开始运行程序。复位操作不会对内部RAM 有所影响。其第二功能可作为备用电源引脚,当电压降低到下限值时,备用电源经此端向内部RAM提供电压,以保护内部RAM中的信息不丢失。4)、输入输出引脚(1)、P0 端口P0.0P0.7 P0 是一个8 位漏极开路型双向I/O 端口,端口

18、置1(对端口写1)时作高阻抗输入端。作为输出口时能驱动8 个TTL。对内部Flash 程序存储器编程时,接收指令字节;校验程序时输出指令字节,要求外接上拉电阻。在访问外部程序和外部数据存储器时,P0 口是分时转换的地址(低8 位)/数据总线,访问期间内部的上拉电阻起作用。 (2)、P1 端口P1.0P1.7 P1 是一个带有内部上拉电阻的8 位双向I/0 端口。输出时可驱动4 个TTL。端口置1 时,内部上拉电阻将端口拉到高电平,作输入用。对内部Flash 程序存储器编程时,接收低8 位地址信息。 (3)、P2 端口P2.0P2.7 P2 是一个带有内部上拉电阻的8 位双向I/0 端口。输出时

19、可驱动4 个TTL。端口置1 时,内部上拉电阻将端口拉到高电平,作输入用。对内部Flash 程序存储器编程时,接收高8 位地址和控制信息。在访问外部程序和16 位外部数据存储器时,P2 口送出高8 位地址。而在访问8位地址的外部数据存储器时其引脚上的内容在此期间不会改变。 (4)、P3 端口P3.0P3.7 P2 是一个带有内部上拉电阻的8 位双向I/0 端口。输出时可驱动4 个TTL。端口置1 时,内部上拉电阻将端口拉到高电平,作输入用。对内部Flash 程序存储器编程时,接控制信息。除此之外P3 端口还用于一些专门功能,具体请看表2:表2 P3口线的第二功能5)、ALE30 地址锁存控制信

20、号在系统扩展时,ALE用于控制把P0口输出的低8位地址送入锁存器锁存起来,以实现低位地址和数据的分时传送。此外ALE是以六分之一的晶振频率的固定频率输出的正脉冲,可作为外部时钟或外部定时脉冲使用。其次该引脚还可有第二功能,可作为编程时的编程脉冲。PSEN6)、 29 外部程序存储器读选通信号PSEN在读外部ROM时 有效(低电平),以实现外部ROM单元的读操作。EA 7)、 31 访问程序存储器控制信号EA 当 信号为低电平时,对ROM的读操作限定在外部程序存储器;而当EA 信号为高电平时,则对ROM的读操作是从内部程序存储器开始,并可延续外部程序存储器。其也有第二功能,可作编程时的编程电压2

21、5V的接口。8)、VSS20 地线5.1.3单片机内部资源分配AT89C51单片机内部有数据存储器(RAM)和程序存储器(ROM),共256个RAM存储器单元和4KBROM存储单元。对于256个RAM单元划分为两个部分,低128单元(00H7FH)和高128单元,其中低128单元是单片机供用户使用的RAM存储单元,分为寄存器区、位寻址区、用户RAM区。通用寄存器32个单元,位寻址区16个单元,用户RAM区80个单元。高128单元为专用寄存器区。对于4KBROM区,其中0000H0002H为启动单元,0003H002AH共40个单元分为五段,每段8个单元为五个中断源地址区。现将本次课程设计中使用

22、到的内部资源情况如下所述:堆椎60H5.2时钟电路时钟电路用于产生单片机工作所需要的时钟们号,单元片机本身就是一个复杂的同步时序电路,为了保证同步工作方式的实现,电路应在唯一的时钟信号控制下严格地按时序时行工作。C2晶振XTAL2XTAL1至内部 时钟电路8051C1图(2) 振荡电路在MCS51芯片内部有一个高增益反相放大器,其输入端为芯片引脚XTAL1,输出端为引脚XTAL2,在芯片的外部能过这两个引脚跨接晶体振荡器和微调电容,形成反馈电路,构成了一个稳定的自激振荡器,如图(2)所示。电路中的电容C1和C2为30pF左右,而晶体的振荡频率范围通常是1.2MHZ12MHZ,晶体振荡频率高,则

23、系统的时种频率也高,单片机运行速度就更快,本次设计晶振为6MHZ。XTAL1和XTAL2分别为反向放大器的输入和输出.该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。定时振荡器的工作可由专用寄存器PCON的PD位进行控制,把PD位置“1”,振荡器停止工作系统进入低功耗状态。单片机振荡电路产生的振荡脉冲并不直接使用,而是经分频后再为系统所用,电路时钟框图如图(3)所示。 P2P1XTAL2XTAL1ALE3振荡器 2QQ状

24、态时钟6机器周期图(3)时钟电路框图 振荡脉冲经过二分频后才作为系统的时钟信号,在二分频的基础上再三分频产生ALE信号(ALE是以晶振六分之一的固定频率输出的正脉冲),再在二分频的基础上再六分频得到机器周期信号。5.3复位电路复位是单片机的初始化操作,其主要功能是把PC初始化为0000H,使单片机从0000H单元开始执行程序。除了进入系统的正常初始化之外,当由于程序运行出错或操作使系统处于死锁状态,为摆脱困境,也需按复位健以重新启动。图3-3复位电路逻辑图RST引脚是复位信号的输入端,复位信号是高电平有效,其有效时间要达到2个机器周期以上。产生复位信号的电路逻辑如图3-3所示。整个复位电路包括

25、芯片内外两部分,外部电路产生的复位信号(RST)送施密特触发器,再由片内复位电路在每个周期的S5P2时刻对施密特触发器的输出进行采样,然后才得到内部复位操作所需的信号。复位操作有上电自动复位和按键手动复位两种方式,本次设计采用按键复位,其电路原理图如图3-4所示,其中按键电平是通过使复位端经电阻与VCC电源接通面实现的。图3-4 按键电平复位 5.4键盘电路图3-5键盘电接口电路由于本次电子钟需要的键盘只有4个,所以采用了独立式键盘,按键一端通过限流电阻接电源VCC,一端通过按键接地GND,在没有按键时,键盘输入单片机为高电平“ 1”,当有键按下时,输入单片机的为低电平“ 0”。电路如图3-5

26、所示。 5.5 显示电路本次设计采用了LED显示,通常所说的LED显示器由7个发光二极管组成,因此也称之为七段LED显示器,其排列形状如图3-6所示。图3-6 LED显示器排列图 为了显示数字或符号,要为LED显示器提供代码,因为这些代码是为显示字形的,因此称之为字形代码。七段发光二极管,再加上一个小数点位,共计八段,因此提供给LED显示器的字形代码正好一个字节。各代码位的对应关系如表3所示。表3 段码号代码位D7D6D5D4D3D2D1D0显示段dpgfedcba1.共阴极接法把发光二极管的阴极连在一起构成公共阴极。使用时公共阴极接地,这样阳极端输入高电平的段发光二极管就导通点亮,而输入低电

27、平的则不亮。2.共阳极接法 把发光二极管的阳极连在一起构成公共阳极。使用时公共阳极接+5v,这样阴极端输入低电平的段发光二极管就导通点亮,而输入高电平的则不亮。3.控制数码管驱动级的控制电路有静态式和动态式两类。 1)静态驱动:静态驱动也称直流驱动。静态驱动是指每个数码管各用一个笔画译码器(如BCD码二十进制译码器)译码驱动。 2)动态驱动:动态驱动是将所有数码管使用一个专门的译码驱动器,使各位数码管逐个轮流受控显示,这就是动态驱动。5.6驱动电路驱动电路主要由同向驱动芯片74LS244和限流电阻组成,因为单片机的口线输出电流有限,不能足够点亮发光二极管,所以利用74LS244内部的2个4位的

28、三态缓冲器,扩展成一个8位的输入口,并串接8个限流电阻,一起组成LED显示电路的驱动电路。其结构如图3-7所示。第章单片机控制程序及流程图6.1 电子钟显示“p.”主程序流程框图6.1.1电子钟显示“p.”主程序 程序清单 ORG 0000H START: AJMP MAIN ORG 0030H MAIN: MOV SP, #60H ;确立堆栈区 MOV PSW, #00H ; MOV R0, #20H ;RAM区首地址 MOV R7, #5FH ;RAM区单元个数 ML: MOV R0, #00H INC R0 DJNZ R7, MLTSF: MOV DPTR, #DISBH 系统初始化后提

29、示符“P.”字符代码表首地址 MOV R5, #06H MOV R0, #79HDISPTSF:CLR A MOVC A, A+DPTR MOV R0, A INC R0 INC DPTR DJNZ R5, DISPTSF LCALL DISP ;调显示子程序显示提示符“P.” LJMP TSF6.2 电子钟显示子程序流程框 6.2.1 电子钟显示子程序显示器设定-;P0.7-P0.0段控线,接LED的显示段dp,g,f,e,d,c,b,a;P2.5-P2.0位控线,从左至右(LED5,LED4,LED3,LED2,LED1,LED0);显示子程序;入口:79H,7AH,7BH,7CH,7DH

30、,7EH DISP: PUSHDPHPUSHDPL PUSHACC PUSHPSW CLR RS1 ;改变当前寄存器组为组1 SETB RS0 MOV R1, #79H ;显示缓冲存储单元首地址 MOV R2, #01H ;从右至左显示 DISP1: MOVA, R1MOVDPTR, #TABMOVCA, A+DPTRMOVP0, A;送段控 MOVP2, R2 ;送位控ACALLDL ;延时2毫秒MOVA, R2JBACC.5, DISP2RLAINCR1MOVR2, AAJMPDISP1DISP2: POPPSW ;恢复当前寄存器组的组号POPACCPOPDPLPOPDPHRET;延时2毫

31、秒子程序 DL: PUSH PSW SETB RS1 SETB RS0 MOVR7, #02HDL1:MOVR6, #0FFHDL2:DJNZR6, DL2DJNZR7, DL1 POP PSWRET;常数表格区-;系统初始化后提示符“P.”字符代码表 DISBH: DB 10H,10H,10H,10H,10H,11H ;提示符“P.”字符序号;显示字符段选码表(共阳极代码) TAB: DB 0C0H, 0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H ;0-8 DB 90H, 0FFH,0CH ;9,灭,p.6.3电子钟加一子程序流程框图6.3.1电子钟加一子程序十进制

32、加1子程序入口:R0,出口:R0 DADD1: MOV A, R0 ;十进制加1子程序,十位数1 DEC R0 SWAP A ;十位数占高4位 ORL A, R0 ;个位数占低4位 ADD A, #01H DA A MOV R2, A ;全值暂存R2中 ANL A, #0FH MOV R0, A ;个位值送显示缓冲单元 MOV A, R2 INC R0 ANL A, #0F0H SWAP A MOV R0, A ;个位值送显示缓冲单元 RET6.4电子钟显示子程序定时器/计数器的使用-定时器/计数器0,定时功能,工作方式1,提供125毫秒的定时时间;系统中断源的使用-定时器/计数器中断0,计满

33、8次即得到秒计时单位 SECGE EQU 30H ;秒个位存储单元 SECSH EQU 31H ;秒十位存储单元 MINGE EQU 32H ;分个位存储单元 MINSH EQU 33H ;分十位存储单元 HOUGE EQU 34H ;时个位存储单元 HOUSH EQU 35H ;时十位存储单元 INTCISHU EQU 46H 要求的计数溢出次数,即1秒计时的循环次数中断服务程序区-PITO: PUSHDPL PUSHDPH PUSHPSW PUSHACC SETB RS1 ;改变当前寄存器组为组3 SETB RS0 MOV TL0, #0DCH ;装计数初值 MOV TH0, #0BH ; MOV A, INTCISHU ;循环次数减1 DEC A MOV INTCISHU,A JNZ RET0 ;不满8次,转RET0返回 MOV INTCISHU,#08H ;满8

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号