好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

S3C2410GPIO及AD转换.ppt

42页
  • 卖家[上传人]:大米
  • 文档编号:590379302
  • 上传时间:2024-09-14
  • 文档格式:PPT
  • 文档大小:380.01KB
  • / 42 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 第第5章章￿￿￿￿嵌入式系嵌入式系统输入/入/输出出设备接接口口 5.1 GPIO(通用(通用输入入/输出接口)出接口) 5.1.1 GPIO原理与结构GPIO(General Purpose I/O,通用输入/输出接口)也称为并行I/O(parallel I/O),是最基本的I/O形式,由一组输入引脚、输出引脚或输入/输出引脚组成,CPU对它们能够进行存取操作有些GPIO引脚能够通过软件编程改变输入/输出方向一个双向GPIO端口(D0)的简化功能逻辑图如图5.1.1所示,图中PORT为数据寄存器和DDR(Data Direction Register)为数据方向寄存器 图图5.1.1 5.1.1 双向双向GPIOGPIO功能功能逻辑图逻辑图 DDR设置端口的方向如果DDR的输出为1,则GPIO端口为输出形式;如果DDR的输出为零,则GPIO端口为输入形式写入WR—DDR信号能够改变DDR的输出状态DDR在微控制器地址空间中是一个映射单元这种情况下,如果需要改变DDR,则需要将恰当的值置于数据总线的第0位(即D0),同时激活WR—DDR信号读DDR,就能得到DDR的状态,同时激活RD—DDR信号。

      如果设置PORT引脚端为输出,则PORT寄存器控制着该引脚端状态如果将PORT引脚端设置为输入,则此输入引脚端的状态由引脚端上的逻辑电路层来实现对它的控制对PORT寄存器的写操作,需要激活WR—PORT信号PORT寄存器也映射到微控制器的地址空间需指出,即使当端口设置为输入时,如果对PORT寄存器进行写操作,并不会对该引脚产生影响但从PORT寄存器的读出,不管端口是什么方向,总会影响该引脚端的状态 5.1.2 S3C2410A输入/输出端口编程实例S3C2410A共有117个多功能复用输入/输出端口(I/O口),分为端口A~端口H共8组为了满足不同系统设计的需要,每个I/O口可以很容易地通过软件对进行配置每个引脚的功能必须在启动主程序之前进行定义如果一个引脚没有使用复用功能,那么它可以配置为I/O口注意:端口A除了作为功能口外,只能够作为输出口使用在S3C2410A中,大多数的引脚端都是复用的,所以对于每一个引脚端都需要定义其功能为了使用I/O口,首先需要定义引脚的功能每个引脚端的功能通过端口控制寄存器(PnCON)来定义(配置)与配置I/O口相关的寄存器包括:端口控制寄存器(GPACON~GPHCON)、端口数据寄存器(GPADAT~GPHDAT)、端口上拉寄存器(GPBUP~GPHUP)、杂项控制寄存器以及外部中断控制寄存器(EXTINTN)等。

      S3C2410A的I/O口配置情况请参考第3章如表3.4.1~3.4.7所列 下面介绍一个通过G口的控制发光二极管LED1和LED2轮流闪烁I/O口编程实例[徐英慧]对I/O口的操作是通过对相关各个寄存器的读/写实现的要对寄存器进行读/写操作,首先要对寄存器进行定义有关I/O口相关寄存器的宏定义代码如下: //Port A控制寄存器 #definerGPACON (*(volatile unsigned*)0x56000000) //Port A数据寄存器 #definerGPADAT (*(volati1e unsigned*)0x56000004) //Port B控制寄存器 #definerGPBCON (*(volatile unsigned*)0x56000010)￿￿ //Port B数据寄存器 #definerGPBDAT (*(volatile unsigned*)0x56000014) //Port B上拉电阻禁止寄存器￿￿￿￿#definerGPBUP (*(volatile unsigned*)0x56000018) //Port C控制寄存器#definerGPCCON (*(volatile unsigned*)0x56000020)//Port C数据寄存器#definerGPCDAT (*(volatile unsigned*)0x56000024)￿//Port C上拉电阻禁止寄存器#definerGPCUP (*(volatile unsigned*)0x56000028)//Port D控制寄存器#definerGPDCON (*(volatile unsigned*)0x56000030)//Port D数据寄存器#definerGPDDAT (*(volatile unsigned*)0x56000034)//Port D上拉电阻禁止寄存器#definerGPDUP (*(volatile unsigned*)0x56000038) //Port E控制寄存器#definerGPECON (*(volatile unsigned*)0x56000040)//Port E数据寄存器#definerGPEDAT (*(volatile unsigned*)0x56000044)￿//Port E上拉电阻禁止寄存器#definerGPEUP (*(volatile unsigned*)0x56000048)//Port F控制寄存器￿#definerGPFCON (*(volatile unsigned*)0x56000050)￿//Port F数据寄存器#definerGPFDAT (*(volatile unsigned*)0x56000054)￿//Port F上拉电阻禁止寄存器#definerGPFUP (*(volatile unsigned*)0x56000058) //Port G控制寄存器#definerGPGCON (*(volati1e unsigned*)0x56000060)//Port G数据寄存器#definerGPGDAT (*(volatile unsigned*)0x56000064)￿//Port G上拉电阻禁止寄存器#definerGPGUP (*(volatile unsigned*)0x56000068)//Port H控制寄存器#definerGPHCON (*(volatile unsigned*)0x56000070)//Port H数据寄存器#definerGPHDAT (*(volatile unsigned*)0x56000074)//Port H上拉电阻禁止寄存器#definerGPHUP (*(volatile unsigned*)0x56000078) 要想实现对G口的配置,只要在地址0x5600 0060中给32位的每一位赋值就可以了。

      如果G口的某个引脚被配置为输出引脚,在PDATG对应的地址位写入1时,该引脚输出高电平;写入0时该引脚输出低电平如果该引脚被配置为功能引脚,则该引脚作为相应的功能引脚使用下面是实现LED1和LED2轮流闪烁的程序代码 void Main(void){ int flag,i; Target Init();//进行硬件初始化操作,包括对I/O口的初始化操作 for(;;){ if(flag = = 0){ for(i = 0;i < 1000000;i++);￿￿￿￿￿//延时 rGPGCON=￿rGPGCON&0xfff0ffff | 0x00050000;//配置第8、第 ￿//9位为输出引脚￿ rGPGDAT=￿rGPGDAT&0xeff | 0x200;￿￿￿￿//第8位输出为低电平 // 第9位输出高电平 for(i = 0;i< 10000000;i++);￿￿￿￿￿￿￿￿￿￿//延时 flag = 1;} else{ for(i = 0;i< 1000000;i++);￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿//延时 rGPGCON=rGPGCON&0xfff0ffff(0x00050000;//配置第8、 // 第9位为输出引脚￿ rGPGDAT=rGPGDAT&Oxdff | 0x100;//第8位输出为高电平 // 第9位输出低电平 for(i = 0;i< 1000000;i++);￿￿￿￿￿￿￿//延时 flag = 0;￿￿￿￿￿￿￿￿￿￿￿}￿￿￿￿￿￿}} 5.2 A/D转换器接口器接口 5.2.1 A/D(模/数)转换的方法和原理A/D转换器(模/数转换器)完成电模拟量到数字量的转换。

      实现A/D转换的方法很多,常用的方法有计数法、双积分法和逐次逼近法等1..计数式数式A/D转换器原理器原理计数式A/D转换器结构如图5.2.1所示其中,Vi是模拟输入电压,VO是D/A转换器的输出电压,C是控制计数端,当C=1(高电平)时,计数器开始计数,C=0(低电平)时,则停止计数D7~D0是数字量输出,数字输出量同时驱动一个D/A转换器 图图5.2.1 5.2.1 计计数式数式A/DA/D转换转换器器结结构构 计数式A/D转换器的转换过程如下:① 首先/CLR(开始转换信号)有效(由高电平变成低电平),使计数器复位,计数器输出数字信号为00000000,这个00000000的输出送至8位D/A转换器,8位D/A转换器也输出0V模拟信号② 当/CLR恢复为高电平时.计数器准备计数此时,在比较器输入端上待转换的模拟输入电压Vi大于VO(0V),比较器输出高电平,使计数控制信号C为1这样,计数器开始计数③ 从此计数器的输出不断增加,D/A转换器输入端得到的数字量也不断增加,致使输出电压VO不断上升在VO<Vi时,比较器的输出总是保持高电平,计数器不断地计数④ 当VO上升到某值时,出现VO>Vi的情况时,此时,比较器的输出为低电平,使计数控制信号C为0,计数器停止计数。

      这时候数字输出量D7~D0就是与模拟电压等效的数字量计数控制信号由高变低的负跳变也是A/D转换的结束信号,表示已完成一次A/D转换计数式A/D转换器结构简单,但转换速度较慢 2.双.双积分式分式A/D转换器原理器原理双积分式A/D转换器对输入模拟电压和参考电压进行两次积分,将电压变换成与其成正比的时间间隔,利用时钟脉冲和计数器测出其时间间隔,完成A/D转换双积分式A/D转换器主要包括积分器、比较器、计数器和标准电压源等部件,其电路结构图如图5.2.2(a)所示双积分式A/D转换器的转换过程如下:首先对输入待测的模拟电压Vi进行固定时间的积分;然后转换到标准电压VR进行固定斜率的反向积分(定值积分￿),如图5.2.2(b)所示反向积分进行到一定时间,便返回起始值从图5.2.2(b)中可看出对标准电压VR进行反向积分的时间T2正比于输入模拟电压,输入模拟电压越大,反向积分回到起始值的时间T越长,有Vi=(T2/T1)VR用标准时钟脉冲测定反向积分时间(如计数器),就可以得到对应于输入模拟电压的数字量,实现A/D转换双积分式A/D转换器具有很强的抗工频干扰能力,转换精度高,但速度较慢。

      图图5.2.2 5.2.2 ((a a)双)双积积分式分式A/DA/D转换转换器器电电路路结结构构图图￿双积分式A/D转换图 图图5.2.25.2.2 ((b b))积积分分输输出波形出波形￿ 3.逐次逼近式.逐次逼近式A/D转换器原理器原理逐次逼近式A/D转换器电路结构如图5.2.3所示,其工作过程可与天平称重物类比,图中的电压比较器相当于天平,被测电压Ux相当于重物,基准电压Ur相当于电压法码该方案具有各种规格的按8421编码的二进制电压法码Ur,根据UxUr,比较器有不同的输出以打开或关闭逐次逼近寄存器的各位输出从大到小的基准电压法码,与被测电压Ux比较,并逐渐减小其差值,使之逼近平衡当Ux=Ur时,比较器输出为零,相当于天平平衡,最后以数字显示的平衡值即为被测电压值逐次逼近式A/D转换器转换速度快,转换精度较高,对N位A/D转换只需N个时钟脉冲即可完成,可用于测量微秒级的过渡过程的变化,是在计算机系统中采用最多的一种A/D转换方法 图图5.2.3 5.2.3 逐次逼近式逐次逼近式A/DA/D转换转换器器电电路路结结构构 4..A/D转换器的主要指器的主要指标(1)分辨率(Resolution)分辨率用来反映A/D转换器对输入电压微小变化的响应能力,通常用数字输出最低位(LSB)所对应的模拟输入的电平值表示。

      n位A/D转换能反应1/2n满量程的模拟输入电平分辨率直接与转换器的位数有关,一般也可简单地用数字量的位数来表示分辨率,即n位二进制数,最低位所具有的权值,就是它的分辨率值得注意的是,分辨率与精度是两个不同的概念,不要把两者相混淆即使分辨率很高,也可能由于温度漂移、线性度等原因,而使其精度不够高(2)精度(Accuracy)精度有绝对精度(Absolute Accuracy)和相对精度(Relative Accuracy)两种表示方法①绝对精度:在一个转换器中,对应于一个数字量的实际模拟输入电压和理想的模拟输入电压之差并非是一个常数把它们之间的差的最大值,定义为“绝对误差”通常以数字量的最小有效位(LSB)的分 ￿￿￿￿数值来表示绝对精度,如±1LSB绝对误差包括量化精度和其他所有精度②相对精度是指整个转换范围内,任一数字量所对应的模拟输入量的实际值与理论值之差,用模拟电压满量程的百分比表示例如,满量程为l0V,10位A/D芯片,若其绝对精度为±1/2LSB,则其最小有效位的量化单位为9.77mV,其绝对精度为4.88mV,其相对精度为0.048%③转换时间(Conversion Time)转换时间是指完成一次A/D转换所需的时间,即由发出启动转换命令信号到转换结束信号开始有效的时间间隔。

      转换时间的倒数称为转换速率例如AD570的转换时间为25us,其转换速率为40kHz④量程量程是指所能转换的模拟输入电压范围,分单极性、双极性两种类型例如,单极性的量程为0~+5V,0~+10V,0~+20V;双极性的量程为-5~+5V,-10~+l0V 5.2.2 S3C2410A的A/D转换器1..S3C2410A A/D转换器和触摸屏接口器和触摸屏接口电路路S3C2410A包含一个8通道的A/D转换器,内部结构见图5.2.4,该电路可以将模拟输入信号转换成10位数字编码(10位分辨率),差分线性误差为1.0 LSB,积分线性误差为2.0 LSB在A/D转换时钟频率为2.5 MHz时,其最大转换率为500 KSPS(Kilo Samples Per Second,千采样点每秒),输入电压范围是0~3.3VA/D转换器支持片上操作、采样保持功能和掉电模式S3C2410A的A/D转换器和触摸屏接口电路如图5.2.4所示 图图5.2.4 S3C2410A5.2.4 S3C2410A的的A/DA/D转换转换器和触摸屏接口器和触摸屏接口电电路路￿ 2.与.与S3C2410A A/D转换器相关的寄存器器相关的寄存器使用S3C2410A的A/D转换器进行模拟信号到数字信号的转换,需要配置以下相关的寄存器。

      (1)ADC控制寄存器(ADCCON)ADC控制寄存器(ADCCON)是一个16位的可读/写的寄存器,地址为0x5800 0000,复位值为0x3FC4ADCCON位的功能描述如表5.2.1所列 表表5.2.1 ADC5.2.1 ADC控制寄存器(控制寄存器(ADCCONADCCON)的位功能)的位功能￿ADCCON符号位描述初始状态ECFLG[15]A/D转换状态标志(只读)0:A/D转换中;1:A/D转换结束0PRSCEN[14]A/D转换器前置分频器使能控制0:禁止;1:使能0PRSCVL[13:6]A/D转换器前置分频器数值设置,数值取值范围:1~255注意:当前置分频器数值为N时,分频数值为N+10xFFSEL_MUX[5:3]模拟输入通道选择 000:AIN0;001:AIN1;010:AIN2;011:AIN3;100:AIN4;101:AIN5;110:AIN6;111:AIN70 STDBM[2]备用(Standby)模式选择 0:正常模式;1:备用模式1READ_START[1]利用读操作来启动A/D转换 0:不使能读操作启动;1:使能读操作启动0ENABLE_START[0]A/D转换通过将该位置1来启动,如果READ_START有效(READ_START置1),则该位无效。

      0:不操作;1:启动A/D转换,A/D转换开始后该位自动清零0 (2)ADC触摸屏控制寄存器(ADCTSC)ADC触摸屏控制寄存器(ADCTSC)是一个可读/写的寄存器,地址为0x5800 0004,复位值为0x058ADCTSC的位功能描述如表5.2.2所列在正常A/D转换时,AUTO_PST和XY_PST都置成0即可,其他各位与触摸屏有关,不需要进行设置 表表5.2.2 ADC5.2.2 ADC控制寄存器(控制寄存器(ADCTSCADCTSC)的位功能)的位功能￿ADCTSC符号位描述初始状态Reserved[8保留位0YM_SEN[7]选择YMON的输出值 0:YMON输出0(YM = 高阻) 1:YMON输出1(YM = GND)0YP_SEN[6]选择nYPON的输出值 0:nYPON输出0(YP=外部电压) 1:nYPON输出1(YP连接到AIN[5])1XM_SEN[5]选择XMON的输出值 0:XMON输出0(XM=高阻) 1:XMON输出1(XM=GND)0 XP_SEN[4]选择nXPON的输出值 0:nXPON输出0(XP=外部电压) 1:nXPON输出1(XP连接AIN[7])0PULL_UP[3]上拉开关使能。

      0:XP上拉使能;1:XP上拉不使能1AUTO_P5T[2]X位置和Y位置自动顺序转换 0:正常ADC转换模式 1:自动顺序X/Y位置转换模式0XY_PST[1:0]X位置或Y位置的手动测量 00:无操作模式;01:X位置测量 10:Y位置测量;11:等待中断模式0 (3)ADC启动延时寄存器(ADCDLY ) ADC启动延时寄存器(ADCDLY)是一个可读/写的寄存器,地址为0x5800 0008,复位值为0x00FFADCDLY的位功能描述如表5.2.3所列 表5.2.3 ADC启动延时寄存器(ADCDLY)的位功能 ADCDLY符号位描述DELAY[15:0](1)在正常转换模式、分开的X/Y位置转换模式和X/Y位置自动(顺序)转换模式的X/Y位置转换延时值2)在等待中断模式:当在此模式按下触笔时,这个寄存器在几ms时间间隔内产生用于进行X/Y方向自动转换的中断信号(INT_TC) 注意:不能使用零位值(0x0000) (4)ADC转换数据寄存器(ADCDAT0和ADCDAT1)S3C2410A有ADCDAT0和ADCDAT1两个ADC转换数据寄存器。

      ADCDAT0和ADCDAT1为只读寄存器,地址分别为0x5800 000C和0x5800 0010在触摸屏应用中,分别使用ADCDAT0和ADCDAT1保存X位置和Y位置的转换数据对于正常的A/D转换,使用ADCDAT0来保存转换后的数据ADCDAT0的位功能描述如表5.2.4所列,ADCDAT1的位功能描述如表5.2.5所列,除了位[9:0]为Y位置的转换数据值以外,其他与ADCDAT0类似通过读取该寄存器的位[9:0],可以获得转换后的数字量 表表5.2.4 ADCDAT05.2.4 ADCDAT0的位功能的位功能￿ADCDATO位名位描述UPDOWN[15]在等待中断模式时,触笔的状态为上还是下 0:触笔为下状态;1:触笔为上状态AUTO_PST[14]X位置和Y位置的自动顺序转换 0:正常A/D转换;1:X/Y位置自动顺序测量XY_PST[13:12]手动测量X位置或Y位置 00:无操作模式;01:X位置测量 10:Y位置测量;11:等待中断模式Reserved[11:10]保留XPDATA(正常ADC)[9:0]X位置的转换数据值(包括正常A/D转换的数据值)。

      取值范围:0~3FF 表表5.2.5 ADCDAT15.2.5 ADCDAT1的位功能描述的位功能描述ADCDATO位名位描述[15:10]与ADCDAT0的位功能相同YPDATA(正常ADC)[9:0]Y位置的转换数据值(包括正常A/D转换的数据值)取值范围:0~3FF 5.2.3 S3C2410A A/D接口编程实例下面介绍一个A/D接口编程实例[徐英慧],其功能实现从A/D转换器的通道0获取模拟数据,并将转换后的数字量以波形的形式在LCD上显示模拟输入信号的电压范围必须是0~2.5V程序如下:1.定.定义与与A/D转换相关的寄存器相关的寄存器定义如下:#define rADCCON(*(volatile unsigned*)0x58000000)￿￿￿￿//ADC控制寄存器#define rADCTSC(*(volatile unsigned*)0x58000004)￿￿￿￿￿//ADC触摸屏控制寄存器#define rADCDLY(*(volatile unsigned*)0x58000008)￿￿￿￿￿//ADC启动或间隔延时寄存器#define rADCDAT0(*(volatile unsigned*)0x5800000c)￿￿￿￿//ADC转换数据寄存器0#define rADCDAT1(*(volati1e unsigned*)0x58000010)￿￿￿//ADC转换数据寄存器￿ 2..对A/D转换器器进行初始化行初始化程序中的参数ch表示所选择的通道号,程序如下:void AD_Init(unsigned char ch){ rADCDLY=100; //ADC启动或间隔延时 rADCTSC=0; //选择ADC模式 rADCCON=(1<<14)|(49<<6)|(ch<<3)| (0<<2)|(0<<1)|(0); //设置ADC控制寄存器￿￿￿￿}3.获取取A/D的的转换值程序中的参数ch表示所选择的通道号,程序如下: int Get_AD(unsigned char ch){ int i; int val= 0; i f (ch>7)￿return 0; //通道不能大于7 for(i=0; i< 16; i++){￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿//为转换准确,转换16次 rADCCON |=0x1; //启动A/D转换 rADCCON= rADCCON&0xffc7 |(ch<<3); while (rADCCON&0x1); //避免第一个标志出错 while(!(rADCCON&0x8000)); //避免第二个标志出错 val +=(rADCDAT0&0x03ff); Delay(10); } return(val >> 4); //为转换准确,除以16取均值} 4.主函数主函数实现将转换后的数据在LCD上以波形的方式显示,程序如下:void Main(void){ int i,P=0; unsigned short buffer[Length]; // 显示缓冲区 Target_Init(); GUI_Init();￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿// 图形界面初始化 Set_Color (GUI_BLUE);￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿//画显示背景界面 Fill_Rect(0,0,319,239); Set_Color(GUI_RED); Draw Line(0,119,319,119); Set_Font(&GUI_Font 8x16);￿￿￿￿￿￿￿￿//设定字体类型API Set_Color(GUI_WHITE); Set_BKColor(GUI_BLUE);￿￿￿￿￿￿￿￿￿￿￿￿￿//设定背景颜色API Fill_Rect(0,0,319,3); Fill_Rect(0,0,3,239);Fill_Rect(316,0,319,239);Fill_Rect(0,236,319,239);Disp_String(“ADC DEMO”,(320 – 8*8)/2, 30); for(i=0;i< Length;i++) buffer[i]=0;while(1){ p=0; for(i=0;i< Length;i ++){ buffer[p] =Get _AD(0); //从通道获取转换后的数据 Delay(20); p++;￿￿￿￿￿￿￿￿} p=0; for(i=0;i(Length;i++){ Uart _Printf(“%d\n”,buffer[p]); P++;￿￿￿￿￿￿￿￿} P=0; for(i=0;i(￿Length;i++){￿ buffer [p]=AD2Y(buffer[p]); P++;￿￿￿￿￿￿￿￿￿￿￿￿￿￿} P = 0; for(i=0; i<Length;i++){￿ Uart _Printf("量化后:%d\n",buffer[p]); P++;￿￿￿￿￿￿￿￿￿} ShowWavebuffer(buffer); //在LCD上显示A/D转换后的波形 Delay(1000);￿￿￿￿}} 。

      点击阅读更多内容
      相关文档
      2026年一级消防工程师考试《消防安全综合能力》预习卷.docx 2025年执业药师《药学专业知识(一)》预测试卷一.docx 2026年证券从业资格考试《证券市场基本法律法规》提分卷二.docx 2025高考真题--全国II卷高考英语真题【原卷+听力音频+听力原文+答案】.docx 2024年高考真题--新课标全国ⅠⅠ卷【英语】真题及答案(含听力音频).docx 2025年秋江苏开放大学农业生态工程060165形考作业123答案.docx 2026年一级造价工程师考试《建设工程造价案例分析(土建专业)》模拟卷.docx 2024年一级建造师-港口与航道工程管理与实务-2024年真题解析.docx 2026年一级建造师考试《公路工程管理与实务》破题卷.docx 2026年证券从业资格考试《金融市场基础知识》提分卷二.docx 2025年秋江开机电设备故障诊断与维修050096第1次形考作业带答案.docx 2025年高考真题---山东省高考真题地理试卷(含答案).docx 2025年高考真题--山东省生物高考真题(含答案).docx 2025年秋江苏开放⼤学建筑材料第⼀次作业答案.docx 2025年高考真题--云南高考地理真题(含答案).docx 2025高考真题--北京卷语文真题(含答案).docx 2025年秋江苏开放⼤学机电设备伺服与变频应⽤第1次形考作业答案.docx 2025年秋江苏开放⼤学机械创新设计060260过程性考核作业1.docx 2025年秋江苏开放大学 知识产权文献检索与应用060933过程性考试.docx 2025年高考云南物理真题(答案参考).docx
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.