嵌入式专业课程设计指导书.doc

上传人:牧羊曲112 文档编号:1598454 上传时间:2022-12-10 格式:DOC 页数:51 大小:1.05MB
返回 下载 相关 举报
嵌入式专业课程设计指导书.doc_第1页
第1页 / 共51页
嵌入式专业课程设计指导书.doc_第2页
第2页 / 共51页
嵌入式专业课程设计指导书.doc_第3页
第3页 / 共51页
嵌入式专业课程设计指导书.doc_第4页
第4页 / 共51页
嵌入式专业课程设计指导书.doc_第5页
第5页 / 共51页
点击查看更多>>
资源描述

《嵌入式专业课程设计指导书.doc》由会员分享,可在线阅读,更多相关《嵌入式专业课程设计指导书.doc(51页珍藏版)》请在三一办公上搜索。

1、嵌入式专业课程设计指导书本科课程设计指导书一、 课程设计的目的和作用课程设计是带有研究性质的专题研究分析、设计报告,是完成教学任务、培养合格人才的一个重要实践性教学环节。通过课程设计,可以培养学生的开发和设计能力,提高综合运用所学知识和技能去分析、解决实际问题的能力,检验学生的学习效果等均具有重要意义。通过课程设计,旨在使学生对所学过的基础理论和专业知识进行一次全面、系统地回顾和总结,通过对具体题目的分析,使理论与实践相结合,巩固和发展所学理论知识,掌握正确的思维方法和基本技能,提高学生独立思考能力和团结协作的工作作风,提高学生利用计算机解决实际问题的能力及计算机实际操作水平,促进学生建立严谨

2、的科学态度和工作作风。嵌入式系统是一门综合性强、与实际应用密切相关的一门课程,这门课程从多个方面全面地描述了嵌入式系统的结构和开发过程原理,同时以实用化为目的,跟踪行业的最新技术发展。本次课程主要要求学生了解嵌入式系统的基本概念;理解Windows Embedded CE 开发基础,熟悉在Windows CE 的基础上使用Visual Studio 2005 C# 进行嵌入式程序开发;掌握嵌入式系统中应用程序的编写与调试过程;掌握嵌入式移动数据库访问技术、 数据库访问技术以及GDI+绘图技术。通过嵌入式系统指导书六个项目的分析设计,进一步强化学生独立思考、分析问题和动手能力。最终培养学生综合设

3、计开发能力。可使参与该题目的同学综合掌握电子信息专业本科阶段应该具备的知识与能力,实现课程设计的真正目的。二、 课程设计任务本课程设计是在Windows CE 的基础上使用Visual Studio 2005 C# 进行嵌入式程序开发。首先,是对Visual Studio 2005 软件做个简单的介绍:包括此软件的概述、软件工具栏的操作以及软件仿真功能实现等。握嵌入式系统中应用程序的编写与调试过程;掌握嵌入式移动数据库访问技术、 数据库访问技术以及GDI+绘图技术。三、 课程设计工具Visual Studio 2005开发软件的简介Visual Studio 2005开发软件使用微软新一代软件

4、开发平台,称为Visual Studio 2005,。Visual Studio 2005集成了Visual Basic 2005、Visual C#.NET、Visual C+.NET、,而微软第一次统一了VB和VC的底层对象,使Visual Basic 2005和Visual C#.NET能够访问相同的组件的属性和方法。,在这以前,大多数人认为,VC+程序员就是比VB程序员更高级些。,这种差别将不复存在。下面对Visual Basic 2005集成开发环境进行简单介绍:1. Visual Studio 2005集成开发环境Visual Studio 产品家族共享一个集成开发环境 (IDE)

5、。IDE 由若干元素组成:菜单工具栏、标准工具栏。2. 解决方案资源管理器通过“解决方案资源管理器”,可以打开文件进行编辑,向项目中添加新文件,以及查看解决方案、项目和项属性。3. 编辑器和设计器文本编辑器是基本字处理器,而代码编辑器是基本源代码编辑器。项目一 Visual Studio 2005开发环境认识一、 项目的目的与要求1.熟悉Visual Studio 2005开发环境软件的使用;2. 熟悉Visual Basic 2005 控制台程序的应用;二、 项目设备计算机 软件:Visual Studio 2005开发软件三、 项目原理基本输入输出:控制台输入输出也称为标准输入输出,使用的

6、是输入输出设备,即键盘和显示器。在Visual Basic 2005中,控制台(Console)输入输出通过以下几个方法来实现: 1、read法:从键盘读入字符,用于获得用户输入信息的第一个字符的ASCII值 2、ReadLine方法:从键盘读入信息,用于将获得的数据保存在字符串变量之中3、Write方法:输出信息但不换行4、WriteLine方法:输出信息并换行四、 项目内容及步骤1. 熟悉Visual Studio 2005开发环境软件;2. 建立控制台应用程序,输入一段程序,观察运行结果。 Visual Studio 2005集成开发环境的启动 编写一个“Hello World”控制台应

7、用程序在这个程序中,()用于保持界面,如果不输入这行语句,则在显示Hello World!后界面将立即关闭。3编写控制台应用程序,要求完成交互输入姓名、性别、年龄、家庭住址,输出同学录内容。参考程序:变量m,n,p,q的作用在于储存读入的信息,注意要使用字符串型(string),用以判断一个5位整数n各位数字的奇偶性,如果为偶数,并求出各自的个数。要求给出源代码与测试用例及运行结果。参考程序:程序说明:先把输入的五位数各位分解出来,然后逐位判断是否为偶数+2+3+4+98+99+100的和。参考程序:项目二 C#.NET语言程序设计一、 项目目的与要求1. 熟悉Windows窗体应用程序设计;

8、1.熟悉常用组件文本类和命令类等控件应用;2. 熟悉添加窗体事件实现功能的应用。二、 项目设备计算机 软件:Visual Studio 2005开发软件三、 项目原理1Windows窗体 Framework为基础的一个新平台,主要用来开发Windows的应用程序。创建一个简单的Visual Basic 2005窗口应用程序。该程序运行后,屏幕显示“Hello World”的文字。2从工具箱中单击需要使用的控件并拖到窗体设计器中,根据需要改变相关控件的属性,然后在设计器的空白部分双击或者双击设计器中需要编程的控件进入编程窗口进行编程(也可以单击控件,然后在属性窗口点击事件,然后双击需要编程的事件

9、进入编程窗口)四、相关知识 Label控件 Label(标签)控件通常用于在界面中显示固定信息,标签控件的功能是显示不能编辑的文本信息,一般用于在窗体上进行文字说明。要在Label控件中显示文本,可以使用它的“Text”属性。 ComboBox 控件 通过使用ComboBox(组合框)控件,用户可以从下拉列表中做出一项选择。组合框可以是静态的,也可以是可编辑的。通过使用可编辑的组合框,用户可以在列表顶部的文本字 段中直接输入文本,也可以从下拉列表中选择一项。如果下拉列表超出文档底部,该列表将会向上打开,而不是向下。当在列表中进行选择后,所选内容的标签被复制到组合框顶部的文本字段中。进行选择时既

10、可以使用鼠标也可以使用键盘。 CheckBox 控件 CheckBox 控件也称复选框,是一个可以选中或取消选中的方框。当它被选中后,框中会出现一个复选标记。CheckBox 控件在用户单击该控件时会引发 CheckedChanged 事件。 Button 控件 Button控件也称命令按钮,在Windows程序中应用非常广泛。在程序执行期间,当用户选择某个命令按钮时,就会执行相应的事件过程五、实验内容及步骤1、 编写一个程序 ,用户可以选择登陆的类型,然后在Label控件中显示用户的选择 。改程序运行的结果如下: 参考程序:运行结果:2、 编写一个程序 ,使用CheckBox来收集用户的兴趣

11、爱好,并且由用户决定是否可以被他人看到。最后单击“确认”按钮时,用户选择显示在Label控件中。结果如下:参考程序:运行结果:3、编写一个计算器,具体界面如下六、 实验报告要求1 分别列出三个完整的实验程序清单;2 在每个程序清单后写出实验结果。项目三 嵌入式控制花样灯实验一、 项目目的与要求1. 熟悉Windows窗体应用程序设计;2.学习用C#控制计算机并口的方法;3. 熟悉掌握计算机并口的输出特性;二、 项目设备计算机 ZZY-JK01计算机控制实验板软件:Visual Studio 2005开发软件三、 项目原理图及相关知识2. 计算机上的打印机端口仔细检查个人计算机的后面接口部分,发

12、现打印机端口是25针的母头,而且一定是母头,这是个人计算机的标准配置,这点是不会改变的。打印机接口属于计算机的并行接口,其数据线有8条,控制线有4条,状态线有5条。3. 计算机打印口连接定义表打印机引脚(36脚插座)PC机引脚(25芯插座)端口信号方向位含义连接打印机时的功能22数据口OUTD0数据输出线33数据口OUTD1数据输出线44数据口OUTD2数据输出线55数据口OUTD3数据输出线66数据口OUTD4数据输出线77数据口OUTD5数据输出线88数据口OUTD6数据输出线99数据口OUTD7数据输出线11控制口OUTD0数据选通1414控制口OUTD1自动回车换行3116控制口OUT

13、D2初始化打印机3617控制口OUTD3选择数据送到打印机3215状态口IND3出错1313状态口IND4打印机选中1212状态口IND5纸尽1010状态口IND6应答1111状态口IND7忙19291825公共地线4. 打印机接口的数据、控制、状态信号地址 计算机的系统软件支持3个打印机接口,分别称为LPT1,LPT2,LPT3,而每个打印机适配器上的数据信号,状态信号和控制信号又分别对应数据口,状态口和控制口,因此每个打印机接口对应有三个地址,打印机接口的基本地址为; 数据口地址 状态口地址 控制口地址 LPTI; 378H 379H 37AH LPT2; 278H 279H 27AH L

14、PT3; 3BCH 3BDH 3BEH5由于Windows属于保护模式的操作系统,不能直接对并口进行控制,我们可以使用外加函数ACALLPORTIO_WriteByte和ACALLPORTIO_ReadByte来传送及读取地址。要使用这两个函数,,安装完毕后找到C:ACALLACALL PRO-8Lib For Users,:一定要添加,而红色的那一排LED灯是共阴极的。四、项目内容及步骤,按照实验原理图连线,要注意: 第一,图中只列出共阳极LED,在计算机控制实验板中还设计了共阴极LED,与并口连接方式与共阳极相同; 第二,为了更好的保护并口,我们实验板中设计了74LS244芯片(1A12A

15、4)与并口(数据端、控制端)相连,再将74LS244芯片(1Y12Y4) 与LED相连! 第三,在程序设计中,并口数据输出为数据口(29脚),并口控制输出为控制口(1、14、16、17脚),与LED相连的方式与实验原理图相同。,在程序上设计几个按键(Button),将打印机数字输出端口上接8个发光二极管,要求通过按下一次按键,使广告灯向左移动一位,直到最后一位,在向右移动。3在请设计打印机数字输出端口上接一个发光二极管L1,使L1在不停地一亮一灭, 秒。,跑马灯的设计是单一方向的,请设计一程序,使用方向是双向性的,运行时,灯号分别是D0及D7向另一个方向前进。五、参考程序1、广告灯左右移:(接

16、共阳极LED)硬件接法:按原理图上的接法即可。界面设计:安排9个Label控件,其Text属性分别为D0D7和“手动控制左右移”。安排10个PictureBox控件,name分别为P1P8、PON、POFF,其中PON、POFF的Visible属性设为False。安排一个Groupbox控件,把PictureBox控件、Label控件框起来。安排3个Button控件B1、B2、B3,其Text属性分别为:“初始化”、“移动”、“结束程序”运行结果:2、 一位指示灯闪烁说明:控制D0口闪烁硬件接法:用杜邦线将D0口通过74LS244与一位共阳极LED连接起来。界面设计:安排1个Label控件,其

17、Text属性为“指示灯闪烁”。安排2个Button控件Button1、B2,其Text属性分别为:“初始化”、“结束程序”运行结果:3、 双向跑马灯:程序说明:双向跑马灯主要是利用定时器来实现自动控制,当定时器计时满后,输出低电位给需要点亮的灯,如此循环往复,实现跑马灯的功能。注意:在安排控件时,最好把定时器的Enabled属性设为False,然后根据情况在程序中开启。如果还没运行程序就把Enabled属性设为True,则在运行程序时定时器往往容易发生外部组件异常的错误。硬件接法:按原理图上的接法即可。界面设计:安排9个Label控件,其Text属性分别为D0D7和“双向跑马灯”。安排10个P

18、ictureBox控件,name分别为P1P8(从左到右按顺序)、PON、POFF,其中PON、POFF的Visible属性设为False。安排一个Groupbox控件,把PictureBox控件、Label控件框起来。安排3个Button控件B1、B2、B3,其Text属性分别为:“初始化”、“跑马灯”、“结束程序”运行结果:4、 控制口跑马灯:这里需要注意的是:控制口C0、C1、C3的输出与软件反相,在软件中如果这三个口置1,则实际输出的是0;而C2口的输出与软件同相,在软件中如果这个口置1,则实际输出的也是1。硬件接法:用杜邦线将C0C3通过74LS244与四位共阳极LED按次序连接起来

19、即可。界面设计:安排5个Label控件,其Text属性分别为C0C3和“控制口跑马灯”。安排6个PictureBox控件,name分别为P1P4、PON、POFF,其中PON、POFF的Visible属性设为False。安排一个Groupbox控件,把PictureBox控件、Label控件框起来。安排3个Button控件B1、B2、B3,其Text属性分别为:“初始化”、“跑马灯”、“结束程序”运行结果:六、 项目报告要求1. 分别列出四个完整的实验程序清单;2.在每个程序清单后写出实验结果。项目四 嵌入式的显示控制一、 项目目的与要求1. 熟悉Windows窗体应用程序设计;2. 了解静态

20、、动态显示的驱动方法;3.学习用计算机并口控制数码管动态显示数字程序的方法;4. 熟悉掌握计算机并口的输入输出特性。二、 项目设备计算机 ZZY-JK01计算机控制实验板软件:Visual Studio 2005开发软件三、 项目原理图及相关知识,并口的控制口用于输出字段码。因为数码管是共阳极的,故若控制口实际输出为低电平时,对应的数码管点亮并接收字段码,把相应的数字显示出来。在这个过程中,由于控制口的C0、C1、C3口实际输出与软件反相,C2口的实际输出与软件同相,故设计程序时须特别注意。四、项目内容及步骤,按照实验原理图连线,要注意:第一,图中只列出共阳极数码管,用并口的数据端口送出LED

21、的adp显示段码,即字形码;用并口的控制端口送出输出字位码,用来控制在第几位显示。 第二,为了更好的保护并口,我们实验板中设计了74LS244芯片(1A12A4)要求并口数据端与74LS244芯片(1A12A4)相连,再将74LS244芯片(1Y12Y4) 与数码管字形码相连,而控制端则直接与字位码相连。,要求计算机并口控制一位数码显示程序(静态)(09 AF) ,要求计算机并口控制多位数码显示程序(动态)(09 AF) 五、 项目报告要求1. 分别列出三个完整的实验程序清单;2.在每个程序清单后写出实验结果。六、参考程序1、并口直接驱动数码管:程序说明:本程序把静态显示与动态显示的功能合二为

22、一,在同一个界面上既可以运行静态显示功能,也可以运行动态显示的功能。为了防止干扰,在运行静态显示功能时,动态显示的【启动】按钮不可用(即Enabled属性设为False);在运行动态显示按钮时,静态显示的【启动】按钮不可用(即Enabled属性设为False)。使用时,先点选【输出数值选择】groupbox内的checkbox来确定需要输出的数值,然后如果要启动静态显示功能,则需要点选【静态显示控制】groupbox内的checkbox来确定需要哪些数码管显示,最后点击【显示】按钮,即可实现静态显示;如果要启动动态显示功能,则需要点击【动态显示控制】groupbox内的【启动】按钮,并点击【显

23、示】按钮,即可实现动态显示的功能(如果输出数值是5,则数码管将显示5678,依此类推)硬件接法:为了保护并口,无论是数据口还是控制口要和数码管连接,都必须先与74LS244相连,才能跟数码管连接。在此前提下,将C3口和左数第一位数码管的位选端连接,将C2口和左数第二位数码管的位选端连接,将C1口和左数第三位的位选端连接,将C0口和左数第四位数码管的位选端连接。数据位从D7D0分别与数码管从左到右的数据端相连。界面设计:安排11个Label控件,其Text属性分别为“8”、“4”、“2”、“1”、“一号管”、“二号管”、“三号管”、“四号管”和“数码管显示”。安排8个CheckBox控件,nam

24、e从左到右从上到下分别为C1C8。安排三个个Groupbox控件,name分别为G1、G2、G3 ,对应的Text属性分别为“静态显示控制”,“动态显示控制”,“输出数值选择”安排5个Button控件B1、B2、B3、B4、B5,其Text属性分别为:“初始化”、“显示”、“结束程序”、“启动”(静态)、“启动”(动态)安排一个TextBox控件,name为T1。安排一个定时器控件,name为Timer1程序清单:运行结果:2、用并口控制单片机,再用单片机控制数码管显示的程序:程序说明:本程序是利用并口的两个数据口D0和D1来控制单片机,当单片机查询到D0口为0时,单片机启动静态显示子程序;当

25、单片机查询到D1口为0时,单片机启动动态显示子程序。硬件接法:,。界面设计:安排1个Label控件,其Text属性为 “数码管显示”。安排一个Groupbox控件,其Text为“显示方式”。安排4个Button控件B1、B2、B3,其Text属性分别为:“静态显示”、“动态显示”“初始化”、“结束程序”。(1)VB程序单片机程序:运行结果:项目五 基于嵌入式的数字输出控制一、 项目目的与要求;。 二、 项目设备计算机 ZZY-JK01计算机控制实验板软件:Visual Studio 2005开发软件三、 项目原理图及相关知识LED2LED12串行端口中的两个引脚可以直接由程序来控制其状态,这两

26、个引脚分别是DTR及RTS,原来这两个引脚是用来做握手(HandingShaking),而且都是由计算机端控制这两个引脚的状态来和对方达成握手的动作。3RS-232共有9只引脚,由其工作原理可知第4只脚的DTR信号与第7只脚的RTS信号是由计算机端控制做为握手之用,因此可以由计算机控制其电压状态。另外RS-232第5脚用于接地线,当电位差产生时,是与第5脚的GND比较而得的,利用此原理,我们可以在DTR及RTS的引脚与GND之间以发光二级管作为电压电平的检测。四、项目内容及步骤 ,要求计算机串口控制LED1和LED2来回显示(参照P95)。,利用定时器组件使LED1和LED2作连续显示(参照P

27、98)。,当LED1连续闪动10次后停止,而LED2则接着闪动10次。重复此种规律。五、 项目报告要求1. 分别列出两个完整的实验程序清单;2.在每个程序清单后写出实验结果。六、参考程序程序说明:本程序将三个功能合成到了一个界面上,在这个界面上既可以实现LED1和LED2的来回显示,也可以实现LED1和LED2的自动连续显示,还可以实现LED1连续闪动10次后停止,而LED2则接着闪动10次并循环往复的功能。使用时,先点击【打开通信端口】按钮,然后随意点击【DTR控制】按钮和【RTS控制】按钮,相应的指示灯即可点亮或熄灭。若点击【连续闪动】按钮,则将实现LED1和LED2的自动连续显示,此时【

28、连续闪动】按钮的Text属性将变成“停止”,同时【DTR控制】按钮、【RTS控制】按钮、【规律闪烁】按钮都将变成灰色,以防止误点击而造成混乱。若需要启动规律闪烁功能,则应先停止连续闪动功能,然后点击【规律闪烁】按钮,则将实现LED1连续闪动10次后停止,而LED2则接着闪动10次并循环往复的功能。硬件连线:把实验板的电源接上,并用串口线把电脑的串口和实验板的串口接口连起来即可。界面设计:安排3个Label控件,其Text属性分别为“通信端口”和“DTR”、“RTS”。安排4个PictureBox控件,name分别为P1、P2、PON、POFF,其中PON、POFF的Visible属性设为Fal

29、se。安排7个Button控件B1、B2、B3、B4、B5、B6、B7,其Text属性分别为:“打开通信端口”、“关闭通信端口”、“DTR控制”、“RTS控制”、“结束程序”、“连续闪动”、“规律闪烁”。安排一个ComboBox控件。安排两个Timer控件,分别为Timer1和Timer2。程序清单:运行结果:项目六 基于嵌入式开关量监测一、 项目目的与要求1. 熟悉掌握计算机串口的数字输入特性;2.熟悉掌握SerialPort组件和Timer组件的应用方法。二、 项目设备计算机 ZZY-JK01计算机控制实验板软件:Visual Studio 2005开发软件三、 项目原理图及相关知识、接收

30、、接地线及数字输出的几个引脚之外,其他的几个引脚理论上是应该用于数字输入,因为其他的几个引脚都是由外界输入,作为让计算机知道某些信息用的,比方CTS与DSR引脚是计算机与调制解调器用于信息沟通时的硬件流量控制,而RI引脚则是用来检测是否有电话铃响,DCD引脚则是用来检测联机时的载波信号是否存在等。这几个引脚上的电压可以被计算机读取而得知其高低电位的变化。Led4Led3Led2Led1Led1如上图,SWDIP-4开关作为电路开关,每一个开关关上后,该电路即形成通路,对应发光二极管将发光,例如开关1关上后,对应led4发光,对应电阻两端就可以形成电位差,由此可以用计算机串口检测RI引脚的电位状

31、态。四、项目内容及步骤 ,要求计算机串口自动检测led线路上的电压变化,并使用checkbox控件选择需要的线路并把结果显示出来,而不需要的线路则不显示。, 要求计算机串口检测四个引脚状态变化的次数,并使DTR灯和RTS灯闪烁相应的次数。五、 项目报告要求1. 分别列出两个完整的实验程序清单;2.在每个程序清单后写出实验结果。六、项目程序1、程序一程序说明:本程序通过检测DTR,DCD,RI,CTS对应的四个Chcekbox的状态来判断需要显示状态的引脚,若有引脚需要显示状态,则根据SerialPinChange事件判断该引脚的状态,若为高电平,则将该引脚界面上对应的图标置为ON;若为低电平,

32、则将该引脚界面上对应的图标置为OFF。另外,由于RI引脚的特殊性,可以使用该图标对应的Tag属性来判断。Tag属性需要先在属性窗口设置,可以设为1,也可以设为0。注意:RI引脚是实际电位变化两次才会被软件认为变化一次。硬件接法:用串口线把电脑的串口和实验板的串口接口连起来,通电即可。界面设计:安排6个Label控件,其Text属性分别为“通信端口”、“DSR”、“DCD”、“RI”、“CTS”、“选择使能”。安排6个PictureBox控件,name分别为P1P4(从左到右按顺序)、PON、POFF,其中PON、POFF的Visible属性设为False。安排一个ComboBox控件,name

33、为C1。安排3个Button控件B1、B2、B3,其Text属性分别为:“启动通信端口”、“关闭通信端口”、“结束程序”安排4个CheckBox按钮,其name从左到右分别为ch1,ch2,ch3,ch4,分别对应DSR,DCD,RI,CTS。运行结果:2、程序二程序说明:本程序在每一次引脚状态发生变化时都将使该引脚对应的计数器加1,同时在点击【闪烁】按钮时,计算各计数器的总和sumn,由于闪烁的次数包含亮和灭两个状态,故通过比较循环变量和2*sumn来确定是否需要闪烁,若循环变量小于2*sumn,则说明闪烁次数还不够,继续闪烁;若循环变量等于2*sumn,则说明闪烁次数已满,循环变量清零,关

34、闭定时器。硬件接法:用串口线把电脑的串口和实验板的串口接口连起来,通电即可。界面设计:安排11个Label控件,其Text属性分别为“通信端口”、“DSR”、“DCD”、“RI”、“CTS”、“DTR”、“RTS”、“0”、“0”、“0”、“0”。安排8个PictureBox控件,name分别为P1P6(从左到右从上到下按顺序)、PON、POFF,其中PON、POFF的Visible属性设为False。安排一个ComboBox控件,name为C1。安排5个Button控件B1、B2、B3、B4、B5,其Text属性分别为:“启动通信端口”、“关闭通信端口”、“计数清零”、“闪烁”、“结束程序”。程序清单:运行结果:注:,学生仅供参考借鉴。同学们在课程设计的时候,需看懂程序并进行修改,以C#.NET实现。四、 主要参考资料书名作者出版社Windows CE 6.0嵌入式高级编程冯(Samuel Phung)主编清华大学出版社AT91系列ARM核微控制器结构与开发马忠梅北京航空航天大学出版社ARM System-on Chip Architecture Steve FurberPearson Education Limited(Addsion Wesley)

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

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


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号