keilc实用教案

上传人:公**** 文档编号:570901120 上传时间:2024-08-07 格式:PPT 页数:71 大小:2.65MB
返回 下载 相关 举报
keilc实用教案_第1页
第1页 / 共71页
keilc实用教案_第2页
第2页 / 共71页
keilc实用教案_第3页
第3页 / 共71页
keilc实用教案_第4页
第4页 / 共71页
keilc实用教案_第5页
第5页 / 共71页
点击查看更多>>
资源描述

《keilc实用教案》由会员分享,可在线阅读,更多相关《keilc实用教案(71页珍藏版)》请在金锄头文库上搜索。

1、 Keil C51集成(j chn)开发软件l是Keil 公司针对51系列单片机开发的基于32位Windows环境的单片机集成开发平台。l包括一个编辑软件,可以在线编辑用C语言或51系列单片机汇编语言写成的源程序。l包含高效的编译器、项目管理器和MAKE 工具。集成了C51交叉编译器、A51宏汇编器、BL51连接(linji)定位器等工具软件和Windows集成编译环境。l包括单片机软件仿真器Dscope51,可以采用软件模拟仿真和实时在线仿真两种方式对目标系统进行开发。l 可到Keil公司的网站 : .com 找到最新版本。第1页/共70页第一页,共71页。第2页/共70页第二页,共71页。

2、6.2 Keil C51开发(kif)环境 lKeil C51 是功能强大的51单片机集成开发平台。l它主要(zhyo)由标题栏、菜单栏、工具栏、项目窗口、源程序编辑窗口和输出窗口几部分组成。 6.2.1 标题栏 标题栏位于窗口(chungku)界面的最上面。 左端显示出正在运行的应用程序的名称, 右端三个控制按钮: “最小化”、“最大化”/“还原”和“关闭”按钮。第3页/共70页第三页,共71页。菜单栏工具栏项目(xingm)窗口程序(chngx)窗口输出(shch)窗口标题栏第4页/共70页第四页,共71页。6.2.2 菜单栏(文件):New 新建文件 Open 打开文件 Close 关闭

3、文件 Save 存储文件 Save As 另存文件 Save All 擦除全部文件 Device Database 器件库 Print Setup 打印(d yn)设置 Print 打印(d yn) Print preview 打印(d yn)预览 第5页/共70页第五页,共71页。2. Edit (编辑): Undo 取消上次(shn c)操作 Redo 重复上次(shn c)操作 Cut 剪切所选文本 Copy 复制所选文本 Paste 粘贴 Indent Selected Text 右移一键距离 Unindent Selected Text 左移一键距离 Toggle Bookmark

4、设置/取消标签 Goto Next Bookmark 移到下一标签 Goto Previous Bookmark 移到上一标签 Clear All Bookmarks 清除所有标签 Find 查找文本 Replace 替换特定的字符 。第6页/共70页第六页,共71页。3. View(查看) Status Bar 状态工具条 File Bar 文件工具条 Build Bar 编译工具条 Debug Bar 调试工具条 Project Widows 项目窗口(chungku) Output Windows 输出窗口(chungku) Source Browser 源文件浏览器 还包括调试时可以选

5、择的显示窗口(chungku): Disassembly Windows 反汇编文件窗口(chungku) Memory Windows 存储器窗口(chungku) 等。第7页/共70页第七页,共71页。4. Project(项目): New Project 创建新项目 Import Vision1 Project 导入项目 Open Project 打开项目 Close Project 关闭(gunb)当前的项目 Select Device for Target 选择对象的CPU Remove 从项目中移走一个组或文件 Options 设置对象、组或文件的工具选项 Build Target

6、 编译修改过的文件并生成应用 Rebuild Target 重新编译文件并生成应用 Translate 编译当前文件 Stop Build 停止生成应用的过程第8页/共70页第八页,共71页。5. Debug(调试(dio sh)): Start/Stop Debug 开始/停止调试(dio sh) Go运行程序 Step 单步执行程序 Run to Cursor line 运行到光标行 Stop Runing 停止程序运行 Breakpoints 打开断点对话框 Insert/Remove Breakpoint 设置/取消断点 Enable/Disable Breakpoint 使能/禁止断

7、点 Memory Map 打开存储器空间 Performance Analyzer 打开设置分析窗口 Inline Assembly 某一行重新汇编 Function Editor 编辑调试(dio sh)函数第9页/共70页第九页,共71页。6. Peripherals (外围器件)Reset CPU 复位(f wi)CPU 根据选择的CPU在调试中出现如下对话框 : Interrupt 中断观察 I/O-Ports I/O 口观察 Serial 串口观察 Timer 定时器观察 A/D Conoverter A/D 转换器 D/A Conoverter D/A 转换器 I2C Conove

8、rter I2C 总线控制器 Watchdog 看门狗 第10页/共70页第十页,共71页。7. Tool (工具 ): Setup PC-Lint 设置(shzh)PC- Lint 程序 Lint 用PC- Lint 处理当前文件 Lint all C Source Files 用PC- Lint 处理C 源代码文件 Setup Easy-Case 设置(shzh)Siemens 的Easy-Case 程序 Start/Stop Easy-Case 运行/停止Easy-Case 程序 Show File (Line) 处理当前编辑的文件 Customize Tools Menu 添加用户程序

9、到工具菜单中 第11页/共70页第十一页,共71页。6.2.3 工具栏文件管理的工具图标 :新建文件。 :打开(d ki)文件。 :存储文件。 :存储所有文件。 :打印文件。 :寻找文件( find in files)。第12页/共70页第十二页,共71页。常用的编辑按钮,如: :文件(wnjin)剪切(cut)。快捷键Ctrl+Y :文件(wnjin)复制 (copy)。快捷键为Ctrl+C。 :文件(wnjin)粘贴(paste)。快捷键为Ctrl+V。常用的编译工具按钮: : 编译当前文件。快捷键为Ctrl+F7。 : 编译当前对象(duxing)文件。快捷键为F7。 : 重新编译当前所

10、有文件。 : 停止编译(Stop build)。 第13页/共70页第十三页,共71页。调试(dio sh)的工具按钮: : 开始/停止(tngzh)调试模式。 :打开/关闭项目窗口。 : 打开/关闭输出窗口。 : 设置/取消当前行的断点。 : 取消所有的断点 : 使能/禁止当前行的断点。 : 禁止所有的断点。第14页/共70页第十四页,共71页。 :对CPU复位。光标处于第一条指令处。 :全速运行程序,快捷键为F5。 :暂停(zn tn)程序运行,快捷键为Esc键。 :单步运行程序。 :宏单步运行程序,跳过子程序运行。 :从子程序中跳出,执行到当前函数结束。 :运行程序到当前光标所在行。第1

11、5页/共70页第十五页,共71页。6.2.4 项目(xingm)窗口l 提供(tgng)对项目的管理功能 l 三个选项: 文件管理(Files),寄存器组(Regs),l 说明书(Books)选项。 6.2.5 源程序窗口对源程序文件进行编辑, 如移动(ydng),修改,删除等操作. 6.2.6 输出窗口l 有编译(Build)、命令(Command)和 找到文件(Find in files)三个子项供选择。l 调试 中,可以通过View(查看)菜单的选择,在输出窗口中显示或预置存储器单元、堆栈等内容。第16页/共70页第十六页,共71页。6.3 程序的开发(kif) 调试汇编语言程序设计过程

12、 6.3.1 程序调试的过程(guchng)l新建源程序文件新建源程序文件l 建立和保存一个汇编或语言源程序文件建立和保存一个汇编或语言源程序文件l .ASM 或或.C 文件文件l新建项目文件新建项目文件 .UV2 文件文件l 选择器件,把源文件添加到项目中选择器件,把源文件添加到项目中l编译编译(Build)项目项目 生成目标生成目标(mbio)文件文件.HEX 文件文件l调试程序(调试程序(Debug) l固化程序固化程序 程序固化到程序固化到ROM 第17页/共70页第十七页,共71页。创建项目(xingm)实例 :u 启动Vision2 u 新建一个项目文件u 并从器件库中选择一个器件

13、。 u 新建一个源文件并把它加入到项目中。 u 增加并设置选择的器件的启动代码 u 针对目标硬件设置工具选项。 u 编译(biny)项目并生成可编程的HEX 文件。u 仿真调试第18页/共70页第十八页,共71页。6.3.2 创建项目(xingm)和设置环境参数1. 启动(qdng)Keil C51 Vision2集成开发环境。 点击快捷图标 打开并进入(jnr)Keil C51 开发环境 第19页/共70页第十九页,共71页。2、新建和保存(bocn)一个源文件选择(xunz)【File】/【New】在弹出的程序文本框中输入(shr)一个程序输入程序【File】/【New】第20页/共70页

14、第二十页,共71页。 保存(bocn)源文件选择【File】/【Save】选项在“文件(wnjin)名”文本框中输入文件(wnjin)名。注意:一定要输入扩展名, 如果是C 程序文件(wnjin),扩展名为 .c; 如果是汇编程序文件(wnjin),扩展名为 .asm;输入(shr)文件名第21页/共70页第二十一页,共71页。3、新建(或打开)一个项目(xingm)文件l 选择【Project】/【New Project】选项。l 选择要保存(bocn)项目文件的路径,l 输入项目名 。然后单击“保存(bocn)”按钮。 第22页/共70页第二十二页,共71页。把源文件加入(jir)到项目中

15、 在项目窗口中,单击Target1 前面的+号,展开(zhn ki)里面的内容Source Group1 用右键单击Source Group1 ,在弹出的快捷菜单中选择Add File to GroupSource Group1选项添加文件 第23页/共70页第二十三页,共71页。4. 设置调试参数及运行(ynxng)环境。l 用鼠标右键单击项目中l Target1 l 在弹出的菜单中选择l Options for Target “Target 1 l 弹出l Options for Target “Target 1l 对话框,其中(qzhng)有8 个选项卡l或主菜单“Project”中选择

16、 l Options for Target Target1第24页/共70页第二十四页,共71页。Options for Target “Target 1 对话框第25页/共70页第二十五页,共71页。. Device器件选项卡设置: 选择(xunz)芯片类型,如:Atmel 89C51。Atmel公司(n s)AT89C51第26页/共70页第二十六页,共71页。.“Target” 选项卡设置(shzh)第27页/共70页第二十七页,共71页。 Target 选项卡设置(shzh):u Xtal(MHZ):设置单片机晶振工作的频率,u 默认u Use On-chip ROM(0x0-0XFF

17、F): u 表示使用片上的Flash ROMu Off-chip Code memory: u 表示片外ROM 的开始地址和大小。u Off-chip Xdata memory:u 外部数据(shj)存储器的起始地址和大小。u Code Banking: 是使用Code Banking 技术,u 以支持更多的程序空间。 。 第28页/共70页第二十八页,共71页。u Memory Model :有:有3 个选项,个选项, u Small :变量存储在内部:变量存储在内部(nib)RAM 里。里。u Compact :变量存储在外部:变量存储在外部RAM ,使用使用8 位间位间接寻址接寻址 u

18、Large :变量存储在外部:变量存储在外部RAM 里里,使用使用16 位间位间接寻址接寻址 u Code Rom Size :有:有3 个选项个选项u Small: program2K or less u Compact:2K functiongs,64K program,u Large: 64KB program u Operating:有:有3 个选项个选项u None:表示不使用操作系统。:表示不使用操作系统。 RTX-51 Tiny Real-Time OS :使用:使用Tiny 操作操作系统系统 RTX-51 Full Real -Time OS :使用:使用Full 操作操作系统

19、系统 u 选选None第29页/共70页第二十九页,共71页。 Output 选项卡设置选项卡设置(shzh)第30页/共70页第三十页,共71页。 Output 选项卡设置选项卡设置(shzh)lSelect Folder for Objects:l 选择目标文件的存储目录选择目标文件的存储目录 lName of Executable:设置生成的目标文件名设置生成的目标文件名 lCreate Executable:生成:生成OMF 以及以及HEX 文件文件 lCreate HEX File: 要生成要生成HEX 文件文件 lCreate Library: 将生成将生成lib 库文件库文件 l

20、After Make:有以下几个设置:有以下几个设置: l Beep when complete :编译完后发出咚的声音编译完后发出咚的声音 l Start Debugging 启动启动(qdng)调试调试,一般一般不选中。不选中。l Run User Program #1,Run User Program #2 : l 设置编译完之后所要运行的其他应用程序设置编译完之后所要运行的其他应用程序 第31页/共70页第三十一页,共71页。 Listing选项卡设置选项卡设置(shzh)l编译后生成目标文件(wnjin)外,还生成*.lst、*.m51 的文件(wnjin)。l单击Select Fo

21、lder for Listings 选择列表文件(wnjin)存放目录。第32页/共70页第三十二页,共71页。 Debug选项卡设置选项卡设置(shzh)第33页/共70页第三十三页,共71页。l 有两类仿真形式可选:l“Use Simulator” 选项:l 进行纯软件仿真,不需要外接硬件目标仿真器。l“Use:Keil Monitor-51 Driver”选项:l 进行外接硬件Monitor-51目标仿真器的仿真。l “Load Application at Start”选项 :l 选择后,Keil 才会自动(zdng)装载程序代码。l “Go till main”选项:l 调试C 语言

22、程序时,自动(zdng)运行到main 程序处。 第34页/共70页第三十四页,共71页。 Debug 选项卡设置选项卡设置(shzh)有两类仿真(fn zhn)形式可选:Use Simulator 纯软件仿真(fn zhn) 和Use:Keil Monitor-51 Driver仿真(fn zhn)器的仿真(fn zhn) Use Simulator纯软件(run jin)仿真Use:Keil Monitor-51 Driver仿真器的仿真第35页/共70页第三十五页,共71页。Use Simulator 纯软件(run jin)仿真第36页/共70页第三十六页,共71页。Use:Keil

23、Monitor-51 Driver仿真(fn zhn)器的仿真(fn zhn) 单击图中的Settings 按钮第37页/共70页第三十七页,共71页。设置 :“Port”: 选择(xunz)PC机串行接口。“Baudrate”: 串行通信的波特率。 “Serial Inerrupt”: 选中允许串行中断。“Cache Options”: 缓存,可选项, 选它,运行得快。第38页/共70页第三十八页,共71页。6.3.3 源程序的编译(biny)和调试 工作过程为: 新建一个源文件并把它加入到项目中。 编译项目并生成可编程的HEX 文件。 仿真(fn zhn)调试1. 新建或打开(d ki)源

24、程序文件。 .asm 或 .c 文件2. 新建或打开项目文件, .uv2 文件 对项目进行参数选项和环境的设置,如上所述。3. 将源程序文件添加到该项目(Project)中。第39页/共70页第三十九页,共71页。 4. 编译链接程序, 生成(shn chn)HEX 文件。 选择(xunz)【Project】/【Rebuild all target files 】 编译成功(chnggng)信息 第40页/共70页第四十页,共71页。5. 对程序进行(jnxng)仿真调试l选择调试方法: l菜单“Project”/“Options for TargetTarget1”中,l设置“Debug”

25、选项卡。选择仿真形式(xngsh):l“Use Simulator” :进行软件仿真。 l“Use:Keil Monitor-51 Driver”:选择仿真器仿真。l进入仿真(fn zhn)调试环境: l主菜单【Debug】/【Start/Stop Debug Session 】l 快捷键CTRL+F5 ,l 点击调试工具条(“Debug Bar”)中的 铵钮。第41页/共70页第四十一页,共71页。调试(dio sh)窗口第42页/共70页第四十二页,共71页。选择(xunz)【Debug】/【Start/Stop Debug Session 】 第43页/共70页第四十三页,共71页。De

26、bug(调试(dio sh)): Start/Stop Debug 开始/停止调试(dio sh) Go运行程序 Step 单步执行程序 Run to Cursor line 运行到光标行 Stop Runing 停止程序运行 Breakpoints 打开断点对话框 Insert/Remove Breakpoint 设置/取消断点 Enable/Disable Breakpoint 使能/禁止断点 Memory Map 打开存储器空间 Performance Analyzer 打开设置分析窗口 Inline Assembly 某一行重新汇编 Function Editor 编辑调试(dio s

27、h)函数第44页/共70页第四十四页,共71页。调试(dio sh)的工具按钮: : 开始/停止调试模式。 :打开/关闭(gunb)项目窗口。 : 打开/关闭(gunb)输出窗口。 : 设置/取消当前行的断点。 : 取消所有的断点 : 使能/禁止当前行的断点。 : 禁止所有的断点。第45页/共70页第四十五页,共71页。 :对CPU复位。光标处于第一条指令处。 :全速运行程序(chngx),快捷键为F5。 :暂停程序(chngx)运行,快捷键为Esc键。 :单步运行程序(chngx)。 :宏单步运行程序(chngx),跳过子程序(chngx)运行。 :从子程序(chngx)中跳出,执行到当前函

28、数结束。 :运行程序(chngx)到当前光标所在行。第46页/共70页第四十六页,共71页。仿真(fn zhn)调试过程:. 进入仿真调试环境点击(din j)按钮 进入调试环境, 再次点击(din j),将退出调试.设置程序计数器PC值 可以(ky)点击 复位按钮,程序从0000H开始执行。 也可以(ky)在项目窗口“Project Workspace”中的寄 存器(Regs)选项中,修改PC的值。. 选择全速运行程序 点击 (Run)按钮,全速运行程序。 点击 (Halt)暂停按钮,停止程序的运行。第47页/共70页第四十七页,共71页。.选择运行程序到当前光标所在行。 事先(shxin)

29、用鼠标点击一下所希望运行到的指令行, 然后点击 (Step to Cursor Line)按钮。.选择单步(dn b)运行程序。 点击 ( Step into)按钮,单步(dn b)运行程序, 遇到子程序则进入执行。 或点击 (Step over)按钮,宏单步(dn b)运行程序。对于不需再调试的子程序,可以利用它,一次性越过调用子程序的指令。第48页/共70页第四十八页,共71页。. 选择设置断点调试。 断点是人为地在程序指令处设置的标记,当程序全速(qun s)运行到该处时会自动暂停,设置/取消当前行的断点。 (Insert/Remove Breakpoint)按钮 点击该行置断点。再按下

30、,则取消当前行断点。 取消所有的断点, (Kill All Breakpoints)按钮。 使能/禁止当前光标所在行的断点 (Enable/Disable Breakpoint)按钮。禁止所有的断点。 (Disable All Breakpoints)按钮第49页/共70页第四十九页,共71页。. 选择硬件(yn jin)仿真器调试l进行带有Monitor-51目标仿真器的仿真l通过PC机串口外接硬件目标仿真器l需要对PC机的串行通信口进行参数设置。l调试前连接好实验(shyn)导线, 再打开电源开关。l点击按钮,开始调试。同样可以运用全速运行、单步运行、运行到光标行、运行到断点处等方法进行调

31、试。第50页/共70页第五十页,共71页。 选择硬件仿真器调试过程中,如果出现如图所示的对话框,说明和硬件仿真器连接(linji)出现故障。 这时,可以按动仿真器上的复位按键后,选择图所示Try Again选项,即可重新进入(jnr)调试阶段。第51页/共70页第五十一页,共71页。View 菜单: 输出窗口(chungku)来观察运行结果 第52页/共70页第五十二页,共71页。寄存器存储器:X:片外RAMC:程序(chngx)ROM I:片内RAM寄存器、存储器窗口(chungku):第53页/共70页第五十三页,共71页。6.4 程序开发调试(dio sh)实例6.4.1 软件(run

32、jin)模拟仿真第54页/共70页第五十四页,共71页。 例6-1:将外部(wib)RAM从8000H开始的20个字节,都赋以同一数值FFH。源程序如下:ADDR EQU 8000H ; 地址:8000H ORG 0000H ALMP START ORG 0030H START: MOV DPTR,#ADDR MOV R0,#20 ; 赋值个数20 MOV A,#0FFH ;赋值: 0FFH LOOP: MOVX DPTR,A INC DPTR DJNZ R0,LOOP SJMP $ ;程序原地(yun d)循环 END第55页/共70页第五十五页,共71页。程序开发调试过程如下:1. 新建源

33、程序文件(wnjin) 主菜单的“File”/“New”下,进行源程序的编写并保存文件(wnjin),文件(wnjin)扩展名为“.ASM”。2. 新建项目文件(wnjin),进行参数选项和环境的设置。 主菜单上“Project” /“New Project”新建项目。 保存的项目文件(wnjin)为扩展名为“.Uv2”的文件(wnjin)。3. 将源程序文件添加到该项目(xingm)(Project)中。 项目(xingm)窗口(“Project Window”)中,鼠标右击选取“Source Group 1”。选择“Add Files to Group Source Group 1”,添加

34、编辑好的“.ASM”文件。第56页/共70页第五十六页,共71页。4. 编译链接程序 选择【Project】/【Rebuild all target files 】选项 开始编译程序。 编译成功,在下方(xi fn)输出窗口中会显示编译成功信息.5. 调试程序 点击按钮 , 进入调试环境。 打开主菜单中View 下 Memory Window 下方输出窗口(chungku)中出现 Memory窗口(chungku)。 在Address 中输入: X:8000H , 显示片外RAM从8000H 起的存储单元的数据,初始值都为0。第57页/共70页第五十七页,共71页。第58页/共70页第五十八页

35、,共71页。. 全速运行(ynxng)程序 点击 (Run)按钮,运行(ynxng)程序。第59页/共70页第五十九页,共71页。l 点击 暂停按钮可以停止程序的运行(ynxng)。l 程序结束后,存储器窗口显示8000H 起始的20 个单元的数据已经变为“0FFH”,如图所示。第60页/共70页第六十页,共71页。 设置断点。 设置断点:在指令行的空白处双击左键,出现红色方块完成断点设置。 取消该断点:在该行的空白处双击左键,红色方块消失完成取消断点操作。调试时,点击 (Run)按钮,程序运行到断点处会自动停下,观察(gunch)输出窗口中各个寄存器、存储器单元的数值,即可检查程序的正确与否

36、。第61页/共70页第六十一页,共71页。第62页/共70页第六十二页,共71页。6.4.2 硬件实时在线仿真(fn zhn)1.系统的准备: 硬件准备: 备有仿真(fn zhn)器和相关的硬件实验设备。 一条串口通信电缆,供PC机和仿真(fn zhn)器连接使用。 软件准备: Keil C51 集成开发软件软件,安装在PC机上。第63页/共70页第六十三页,共71页。2、系统设置:.连接串口通信线 将PC机的COM(串行口)和仿真器的串口连接。 特别要注意信号线的连接,要保证发送数据信号(TXD)和接收数据信号(RXD)端连接正确。. 连接电源线 连接好电源线,然后打开电源开关,通电。. 打

37、开Keil C51 软件(run jin) 创建相关实验的应用项目,包括添加源文件,编译项目文件。第64页/共70页第六十四页,共71页。. 进行软件设置 主菜单Project /“Options for Target Target 1”如图所示。选择(xunz)硬件仿真。 第65页/共70页第六十五页,共71页。选择硬件仿真,进行端口设置: 点击(din j)“Settings ”按钮, 进行串口参数设置. 注意: 串口的波特率、数据格式要和PC机一致。第66页/共70页第六十六页,共71页。3、开始(kish)调试l点击工具栏调试按钮 开始调试.l点击“Debug Bar”工具条按钮 l

38、可进行单步,断点,运行到光标(un bio),全速运行等操作。l点击全速运行按钮 即可连续运行程序。l如果按下仿真器上复位按钮,程序便停止运行。l单步调试,停止全速运行后,硬件复位。再点击按钮 ,进行单步调试。第67页/共70页第六十七页,共71页。l 调试过程中, 如果出现如图所示对话框,表示PC机和仿真器通信出现问题(wnt)。硬件系统应复位一次,即按下仿真器的复位按钮。再点击“Try Again” ,重新进入调试。若仍然出现,就需要关闭电源,10秒后再打开电源, 重新进入调试环境,继续工作。第68页/共70页第六十八页,共71页。l在利用硬件实时在线仿真时,不仅可以观察到CPU的寄存器、

39、存储器、I/O接口、定时器等的状态,而且可以实时地观察到硬件设备的运行结果,如数据的采集、结果的显示、人机对话的功能等。这样,就极大限度地反映(fnyng)了目标板的真实的实时运行情况。l4.程序的固化l 调试完成后,可以进行程序的固化工作。将目标程序代码写入ROM中。在实际应用环境中进行考验,最终完成应用系统的设计。第69页/共70页第六十九页,共71页。感谢您的观看(gunkn)!第70页/共70页第七十页,共71页。内容(nirng)总结Keil C51集成开发软件。Print 打印。File Bar 文件(wnjin)工具条。New Project 创建新项目。Open Project 打开项目。Timer 定时器观察第七十一页,共71页。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号