导航:首页 > 操作系统 > 51单片机的eeprom

51单片机的eeprom

发布时间:2023-03-18 06:44:44

⑴ 51单片机内部eeprom怎么使用,求大神指导,查过一些资料,但是看不明白

以下是我一个项目中关于STC12C5A60S2内部EEPROM的相关部分程序
;------------读写内部EEPROM定义区-----------------------
P4SW EQU 0BBH
P4 EQU 0C0H
IAP_DATA EQU 0C2H
IAP_ADDRH EQU 0C3H
IAP_ADDRL EQU 0C4H
IAP_CMD EQU 0C5H
IAP_TRIG EQU 0C6H
IAP_CONTR EQU 0C7H
;定义ISP/IAP命令
ISP_IAP_BYTE_READ EQU 1H ;字节读
ISP_IAP_BYTE_PROGRAM EQU 2H ;字节编程,可以将1写成0,要将1变成0,必须执行字节编程
ISP_IAP_SECTOR_ERASE EQU 3H ;扇区擦除,可以将0擦成1,要将0变成1,必须擦除整个扇区
ENABLE_IAP EQU 83H ;系统工作时钟<12MHz时,对IAP_CONTR寄存器设置此值
;------------------------------------------------
;读一字节,调用前需打开 IAP 功能,入口:DPTR = 字节地址,返回:A = 读出字节
IAP_READ:
MOV IAP_CONTR,#ENABLE_IAP ;打开 IAP 功能, 设置 Flash 操作等待时间
MOV IAP_CMD,#ISP_IAP_BYTE_READ ;设置为IAP/ISP/EEPROM字节读模式命令
MOV IAP_ADDRH,DPH ;设置目标单元地址的高8位地址
MOV IAP_ADDRL,DPL ;设置目标单元地址的低8位地址
MOV IAP_TRIG,#5AH ;先送5Ah,再送A5h到ISP/IAP触发寄存器,每次都需如此
MOV IAP_TRIG,#0A5H ;送完A5h后,ISP/IAP命令立即被触发起动
NOP
MOV A,IAP_DATA ;读出的数据在IAP_DATA单元中,送入累加器A
LCALL IAP_Disable ;关闭 IAP 功能, 清相关的特殊功能寄存器,使CPU处于安全状态,
RET
;------------------------------------------------
;字节编程,调用前需打开 IAP 功能,入口:DPTR = 字节地址, A=须编程字节的数据
IAP_WRITE:
MOV IAP_CONTR,#ENABLE_IAP ;打开 IAP 功能, 设置 Flash 操作等待时间
MOV IAP_CMD,#ISP_IAP_BYTE_PROGRAM ;设置为IAP/ISP/EEPROM字节编程模式命令
MOV IAP_ADDRH,DPH ;设置目标单元地址的高8位地址
MOV IAP_ADDRL,DPL ;设置目标单元地址的低8位地址
MOV IAP_DATA,A ;要编程的数据先送进ISP_DATA寄存器
MOV IAP_TRIG,#5AH ;先送5Ah,再送A5h到ISP/IAP触发寄存器改芦,每次都需如此
MOV IAP_TRIG,#0A5H ;送完A5h后,ISP/IAP命令立即被触发起帆歼旁动
NOP
LCALL IAP_Disable ;关闭 IAP 功能, 清相关的特殊功能寄存器,使CPU处于安全状态态橡,
RET
;------------------------------------------------
;擦除扇区, 入口:DPTR = 扇区地址
IAP_Erase:
MOV IAP_CONTR,#ENABLE_IAP ;打开 IAP 功能, 设置 Flash 操作等待时间
MOV IAP_CMD,#03H ;设置为IAP/ISP/EEPROM扇区擦除模式命令
MOV IAP_ADDRH,DPH ;设置目标单元地址的高8位地址
MOV IAP_ADDRL,DPL ;设置目标单元地址的低8位地址
MOV IAP_TRIG,#5AH ;先送5Ah,再送A5h到ISP/IAP触发寄存器,每次都需如此
MOV IAP_TRIG,#0A5H ;送完A5h后,ISP/IAP命令立即被触发起动
NOP
LCALL IAP_Disable ;关闭 IAP 功能, 清相关的特殊功能寄存器,使CPU处于安全状态,
RET
;------------------------------------------------
IAP_Disable:
;关闭 IAP 功能, 清相关的特殊功能寄存器,使CPU处于安全状态,
;一次连续的IAP操作完成之后建议关闭IAP功能,不需要每次都关
MOV IAP_CONTR,#0 ;关闭 IAP 功能
MOV IAP_CMD,#0 ;清命令寄存器,使命令寄存器无命令,此句可不用
MOV IAP_TRIG,#0 ;清命令触发寄存器,使命令触发寄存器无触发,此句可不用
MOV IAP_ADDRH,#0FFH ;送地址高字节单元为00,指向非EEPROM区
MOV IAP_ADDRL,#0FFH ;送地址低字节单元为00,防止误操作
RET

⑵ 请教51单片机内部EEPROM的应用

不知道你用的是那种51单片机,我就当是STC89C51系列的了。

这问题涉及方面还挺多,这样一一回答还真不好弄,我给你几个方向看看能不能帮到你。

  1. 参考手册(附件我以上传)第9章。

  2. 官方已给了例程,你可以参考一下,最下面我给你,我已复制在下面。

  3. 注意扇区问题(分区,地址,擦除时间等)

  4. 存储前要先擦除扇区

  5. 下面示例一下基本使用

    num = byte_read(0x2000); //读取EEPROM中地址0x2000数据,赋值给num

    SectorErase(0x2000); //擦除第1扇区

    byte_write(0x2000, num); //将num数据写入EPROM地址0x2000中



#include<reg52.h>
#include<intrins.h>

#defineRdCommand0x01 //定义ISP的操作命令
#definePrgCommand0x02
#defineEraseCommand0x03
#defineWaitTime0x01//定义CPU的等待时间 @11.0592MHz
#defineError1
#defineOk0

sfrISP_DATA=0xE2;//寄存器申明
sfrISP_ADDRH=0xE3;
sfrISP_ADDRL=0xE4;
sfrISP_CMD=0xE5;
sfrISP_TRIG=0xE6;
sfrISP_CONTR=0xE7;

voidISP_IAP_enable(void)//打开ISP,IAP功能
{
EA = 0; //关中断
ISP_CONTR= ISP_CONTR&0x18;//0001,1000
ISP_CONTR= ISP_CONTR|WaitTime; //写入硬件延时
ISP_CONTR= ISP_CONTR|0x80;//ISPEN=1
}

voidISP_IAP_disable(void)//关闭ISP,IAP功能
{
ISP_CONTR = ISP_CONTR&0x7F; //ISPEN=0
ISP_TRIG = 0x00;
EA =1; //开中断
}

voidISPgoon(void) //公用的触发代码
{
ISP_IAP_enable(); //打开ISP,IAP功能
ISP_TRIG = 0x46; //触发ISP_IAP命令字节1
ISP_TRIG = 0xB9; //触发ISP_IAP命令字节2
_nop_(); //延时一个机器周期
}

unsignedcharbyte_read(unsignedintbyte_addr) //读字节
{
ISP_ADDRH=(unsignedchar)(byte_addr>>8);//地址赋值
ISP_ADDRL=(unsignedchar)(byte_addr&0x00FF);
ISP_CMD=ISP_CMD &0xF8; //清除低3位
ISP_CMD=ISP_CMD |RdCommand; //知察配写入读命令
ISPgoon(); //触发执行
ISP_IAP_disable(); //关闭ISP,IAP功能
return(ISP_DATA); //返回读到的数据
}

voidSectorErase(unsignedintsector_addr)//扇区擦除
{
// unsignedintiSectorAddr;

// iSectorAddr=(sector_addr&0xFE00);//取扇区地址
// ISP_ADDRH=(unsignedchar)(iSectorAddr>>8);
// ISP_ADDRL搭指=0x00;
ISP_ADDRH=(unsignedchar)(sector_addr>>8); 没旦//取扇区地址高8位
ISP_ADDRL=(unsignedchar)sector_addr; //取扇区地址低8位
ISP_CMD =ISP_CMD&0xF8; //清空低3位
ISP_CMD =ISP_CMD|EraseCommand; //擦除命令3
ISPgoon(); //触发执行
ISP_IAP_disable(); //关闭ISP,IAP功能
}

voidbyte_write(unsignedintbyte_addr,unsignedcharoriginal_data)//写字节
{
ISP_ADDRH= (unsignedchar)(byte_addr>>8); //取地址
ISP_ADDRL= (unsignedchar)(byte_addr&0x00FF);
ISP_CMD =ISP_CMD&0xF8; //清低3位
ISP_CMD=ISP_CMD|PrgCommand; //写命令2
ISP_DATA=original_data; //写入数据准备
ISPgoon(); //触发执行
ISP_IAP_disable(); //关闭IAP功能
}

⑶ 51单片机里EEPROM能存负数吗

能存。
51单片机里EEPROM是可以存负数的,可以对EEPROM进行字节读/字节编程/扇区擦除操作。
保存在单片机RAM中的数据,掉电后就丢失了,保存在单片机的FLASH中的数据,又不能随意改变,也就是不能用它来记录变化的数值。

⑷ n51eeprom数据在哪里

单片机RAM。n51eeprom数据在实际的应用中,保存在单片机RAM中的数据,掉电后就丢失了,保存在单片机的FLASH中的数据,是不能随意棚哗雀改变。芦猛51单片机是对兼容英特尔8051指令系统的单片机的统称;51单片机广泛应用于家用电器、汽车、工业测控、通信设备中;因为51单片机的指令链早系统、内部结构相对简单,所以国内许多高校用其进行单片机入门教学。

⑸ 跪求有谁知道 为什么51单片机的eeprom中存储的数据不能在外部中断子程序中读取

关于读取:在一个中断读取,如果其它中断到来且可以嵌套本中断,那么就可能读错。如果嵌套的中断中没有读取同地址的、且嵌套中断结束执行的主程序指令不是读取同地址的,那么就不会出错(如AVR中断规定,中断结束后最少执行主程序一条指令,再返回或响应其它大宏改中断)。所以,不管读写,滚判保证原子性,也就是读写前后关开中断。如果时间不允许,那么就在程序逻辑上保证不要绝袭嵌套读写。

⑹ 金沙滩51单片机eeprom写满了这么清除

金沙滩51单片机eeprom写满了擦除一页,就是512字节,从0xC000开始,直到0XC200,全部为0XFF。
1、写凯察99H满一页,也全部成功。
2、读出从0XC000至0XC200的内容并与99H比较正确与否,遇错即停。结果是没有一个错。大空间操作是做点慎此阵屏,多信息存储的基础,不太方便的是如早期的外挂存储器一样,不能单独任意字节修改,动一下就要宽孙迅512字节。期待业间哪家单片机公司可以改革突破。

⑺ 51单片机EEPROM电子钟掉电保存怎么做

1、首先你要明确,电子钟需要一直运行,如果断电了就停了,那么你断电1分钟和断电1小时候怎么才能保证瞎兆厅上电后时间是对的

2、一般电子钟需要用专用芯片,由单片机直接读取时间数据,如PCF8563或DS1302等,1302有后备电池的接入管脚猜含,8563则需在设计电路时提供单独的后备电源
如果以上均满足了,则没有频繁读写EEPROM的问题了
3、数码管如果直接用单片机驱动一般显示频率应大于50HZ,即两次扫描间隔时间小于20ms,或者换用74hc595(串入并出带有锁存功能8位移位寄存器)等磨隐驱动数码管

⑻ 51单片机怎么使用内部EEPROM,上电次数、断电记忆,怎么实现计到最大值6千次。

STC 很多都有内部EEPROM,如11或12系列的STC单片机,读写内部EEPROM有一定限制,比如写,必须先擦除再写,而且一次必须擦除一个扇区,所以还是很麻烦的,只能覆盖。

要实兆袜现你的功能,一点问题没有,上电后先读取上次的计数值,再加1重新写进去就可以了。
以下是EEPROM读写子程序供参考:
;------------------------------------------------
;读一字节,调用前需打开 IAP 功能,入口:DPTR = 字节地址,返回:A = 读出字节
IAP_READ:
MOV IAP_CONTR,#ENABLE_IAP ;打开 IAP 功能, 设置 Flash 操作等待时间
MOV IAP_CMD,#ISP_IAP_BYTE_READ ;设置为IAP/ISP/EEPROM字节读模式命令
MOV IAP_ADDRH,DPH ;设置目标单元地址的高8位地址
MOV IAP_ADDRL,DPL ;设置目标单元地址的低8位地址
;CLR EA
MOV IAP_TRIG,#5AH ;先送5Ah,再送A5h到ISP/IAP触发寄存器,每次都需如此
MOV IAP_TRIG,#0A5H ;送完A5h后,ISP/IAP命令立即被触发起动
NOP
MOV A,IAP_DATA ;读出的数据在IAP_DATA单元中,送入累加器A
;SETB EA
LCALL IAP_Disable ;关闭 IAP 功能, 清相关的特殊功能寄存器,使CPU处于安全状态,
;一次连续的IAP操作完成之后建议关闭IAP功能,不需要每次都关
RET
;------------------------------------------------
;字节编程,散闹调用前需打开 IAP 功能,入口:DPTR = 字节地址, A=须编程字节的数据
IAP_WRITE:
MOV IAP_CONTR,#ENABLE_IAP ;打开 IAP 功能, 设置 Flash 操作等待时间
MOV IAP_CMD,#ISP_IAP_BYTE_PROGRAM ;设置为IAP/ISP/EEPROM字节编程模式命令
MOV IAP_ADDRH,DPH ;设置目标单元地址的高8位地址
MOV IAP_ADDRL,DPL ;设置目标单元地址的低8位地址
MOV IAP_DATA,A ;要编程的数据先送进ISP_DATA寄存器
;CLR EA
MOV IAP_TRIG,#5AH ;先送5Ah,再送A5h到ISP/IAP触发寄存器,每次都需如此
MOV IAP_TRIG,#0A5H ;送完A5h后,ISP/IAP命令立即被触发起动
NOP
;SETB EA
LCALL IAP_Disable ;关闭 IAP 功能, 清相关的特殊功能寄存器,使CPU处于安全状态,
;一次连续的IAP操作完成之后建议关闭IAP功能,不需要每次都关
RET
;------------------------------------------------
;擦除扇区, 入口:DPTR = 扇区地址
IAP_Erase:
MOV IAP_CONTR,#ENABLE_IAP ;打开 IAP 功能, 设置 Flash 操作等待时间
MOV IAP_CMD,#03H ;设置为IAP/ISP/EEPROM扇区擦除模式命令
MOV IAP_ADDRH,DPH ;设置目标单元地址的高8位地址
MOV IAP_ADDRL,DPL ;设置目标单元地址的低8位地址
;CLR EA
MOV IAP_TRIG,#5AH ;先送5Ah,再送A5h到ISP/IAP触发寄存器,每次都需如此
MOV IAP_TRIG,#0A5H ;送完A5h后,ISP/IAP命令立即被触发起动
NOP
;SETB EA
LCALL IAP_Disable ;关闭 IAP 功能, 清相关的特殊功能寄存器,使CPU处于安全状态,
;一族掘激次连续的IAP操作完成之后建议关闭IAP功能,不需要每次都关
RET
;------------------------------------------------
IAP_Disable:
;关闭 IAP 功能, 清相关的特殊功能寄存器,使CPU处于安全状态,
;一次连续的IAP操作完成之后建议关闭IAP功能,不需要每次都关
MOV IAP_CONTR,#0 ;关闭 IAP 功能
MOV IAP_CMD,#0 ;清命令寄存器,使命令寄存器无命令,此句可不用
MOV IAP_TRIG,#0 ;清命令触发寄存器,使命令触发寄存器无触发,此句可不用
MOV IAP_ADDRH,#0FFH ;送地址高字节单元为00,指向非EEPROM区
MOV IAP_ADDRL,#0FFH ;送地址低字节单元为00,防止误操作
RET

⑼ 51单片机都有eeprom吗

51单片机内部程序存储器五花八门:
1、内部没有程序存储器如:8031
2、内部有EPROM(可擦除ROM)如:8751
3、内部有EEPROM(电可擦除ROM)如:AT89C51
4、内部有FLASHROM(可以在线编程ISP)如:STC、AT89S51等等。

⑽ 51单片机内部EEPROM使用求教

不知道你用的是哪款单片机,你可以看单片机的数据手册,应该会有详细到操作时序的介绍

针对STC15F4K系列单片机EEPROM使用实例如下:

单字节操作,串口发送

#include"reg51.h"
#include"intrins.h"

typedefunsignedcharBYTE;
typedefunsignedintWORD;

//-----------------------------------------------

sfrP1M1=0x91;//PxM1.n,PxM0.n=00--->Standard,01--->push-pull
sfrP1M0=0x92;//=10--->pureinput,11--->opendrain
sfrP0M1=0x93;
sfrP0M0=0x94;
sfrP2M1=0x95;
sfrP2M0=0x96;
sfrP3M1=0xB1;
sfrP3M0=0xB2;
sfrP4M1=0xB3;
sfrP4M0=0xB4;
sfrP5M1=0xC9;
sfrP5M0=0xCA;
sfrP6M1=0xCB;
sfrP6M0=0xCC;
sfrP7M1=0xE1;
sfrP7M0=0xE2;

sfrIAP_DATA=0xC2;//IAP数据寄存器
sfrIAP_ADDRH=0xC3;//IAP地址寄存器高字节
sfrIAP_ADDRL=0xC4;//IAP地址寄存器低字节
sfrIAP_CMD=0xC5;//IAP命令寄存器
sfrIAP_TRIG=0xC6;//IAP命令触发寄存器
sfrIAP_CONTR=0xC7;//IAP控制寄存器

#defineCMD_IDLE0//空闲模式
#defineCMD_READ1//IAP字节读命令
#defineCMD_PROGRAM2//IAP字节编程命令
#defineCMD_ERASE3//IAP扇区擦除命令

#defineURMD0//0:使用定时器2作为波特率发生器
//1:使用定时器1的模式0(16位自动重载模式)作为波特率发生器
//2:使用定时器1的模式2(8位自动重载模式)作为波特率发生器

sfrT2H=0xd6;//定时器2高8位
sfrT2L=0xd7;//定时器2低8位

sfrAUXR=0x8e;//辅助寄存器

//#defineENABLE_IAP0x80//ifSYSCLK<30MHz
//#defineENABLE_IAP0x81//ifSYSCLK<24MHz
#defineENABLE_IAP0x82//ifSYSCLK<20MHz
//#defineENABLE_IAP0x83//ifSYSCLK<12MHz
//#defineENABLE_IAP0x84//ifSYSCLK<6MHz
//#defineENABLE_IAP0x85//ifSYSCLK<3MHz
//#defineENABLE_IAP0x86//ifSYSCLK<2MHz
//#defineENABLE_IAP0x87//ifSYSCLK<1MHz

//测试地址
#defineIAP_ADDRESS0x0400

voidDelay(BYTEn);
voidIapIdle();
BYTEIapReadByte(WORDaddr);
voidIapProgramByte(WORDaddr,BYTEdat);
voidIapEraseSector(WORDaddr);
voidInitUart();
BYTESendData(BYTEdat);

voidmain()
{
WORDi;

P0M0=0x00;
P0M1=0x00;
P1M0=0x00;
P1M1=0x00;
P2M0=0x00;
P2M1=0x00;
P3M0=0x00;
P3M1=0x00;
P4M0=0x00;
P4M1=0x00;
P5M0=0x00;
P5M1=0x00;
P6M0=0x00;
P6M1=0x00;
P7M0=0x00;
P7M1=0x00;

P1=0xfe;//1111,1110系统OK
InitUart();//初始化串口
Delay(10);//延时
IapEraseSector(IAP_ADDRESS);//扇区擦除
for(i=0;i<512;i++)//检测是否擦除成功(全FF检测)
{
if(SendData(IapReadByte(IAP_ADDRESS+i))!=0xff)
gotoError;//如果出错,则退出
}
P1=0xfc;//1111,1100擦除成功
Delay(10);//延时
for(i=0;i<512;i++)//编程512字节
{
IapProgramByte(IAP_ADDRESS+i,(BYTE)i);
}
P1=0xf8;//1111,1000编程完成
Delay(10);//延时
for(i=0;i<512;i++)//校验512字节
{
if(SendData(IapReadByte(IAP_ADDRESS+i))!=(BYTE)i)
gotoError;//如果校验错误,则退出
}
P1=0xf0;//1111,0000测试完成
while(1);
Error:
P1&=0x7f;//0xxx,xxxxIAP操作失败
while(1);
}

/*----------------------------
软件延时
----------------------------*/
voidDelay(BYTEn)
{
WORDx;

while(n--)
{
x=0;
while(++x);
}
}

/*----------------------------
关闭IAP
----------------------------*/
voidIapIdle()
{
IAP_CONTR=0;//关闭IAP功能
IAP_CMD=0;//清除命令寄存器
IAP_TRIG=0;//清除触发寄存器
IAP_ADDRH=0x80;//将地址设置到非IAP区域
IAP_ADDRL=0;
}

/*----------------------------
从ISP/IAP/EEPROM区域读取一字节
----------------------------*/
BYTEIapReadByte(WORDaddr)
{
BYTEdat;//数据缓冲区

IAP_CONTR=ENABLE_IAP;//使能IAP
IAP_CMD=CMD_READ;//设置IAP命令
IAP_ADDRL=addr;//设置IAP低地址
IAP_ADDRH=addr>>8;//设置IAP高地址
IAP_TRIG=0x5a;//写触发命令(0x5a)
IAP_TRIG=0xa5;//写触发命令(0xa5)
_nop_();//等待ISP/IAP/EEPROM操作完成
dat=IAP_DATA;//读ISP/IAP/EEPROM数据
IapIdle();//关闭IAP功能

returndat;//返回
}

/*----------------------------
写一字节数据到ISP/IAP/EEPROM区域
----------------------------*/
voidIapProgramByte(WORDaddr,BYTEdat)
{
IAP_CONTR=ENABLE_IAP;//使能IAP
IAP_CMD=CMD_PROGRAM;//设置IAP命令
IAP_ADDRL=addr;//设置IAP低地址
IAP_ADDRH=addr>>8;//设置IAP高地址
IAP_DATA=dat;//写ISP/IAP/EEPROM数据
IAP_TRIG=0x5a;//写触发命令(0x5a)
IAP_TRIG=0xa5;//写触发命令(0xa5)
_nop_();//等待ISP/IAP/EEPROM操作完成
IapIdle();
}

/*----------------------------
扇区擦除
----------------------------*/
voidIapEraseSector(WORDaddr)
{
IAP_CONTR=ENABLE_IAP;//使能IAP
IAP_CMD=CMD_ERASE;//设置IAP命令
IAP_ADDRL=addr;//设置IAP低地址
IAP_ADDRH=addr>>8;//设置IAP高地址
IAP_TRIG=0x5a;//写触发命令(0x5a)
IAP_TRIG=0xa5;//写触发命令(0xa5)
_nop_();//等待ISP/IAP/EEPROM操作完成
IapIdle();
}

/*----------------------------
初始化串口
----------------------------*/
voidInitUart()
{
SCON=0x5a;//设置串口为8位可变波特率
#ifURMD==0
T2L=0xd8;//设置波特率重装值
T2H=0xff;//115200bps(65536-18432000/4/115200)
AUXR=0x14;//T2为1T模式,并启动定时器2
AUXR|=0x01;//选择定时器2为串口1的波特率发生器
#elifURMD==1
AUXR=0x40;//定时器1为1T模式
TMOD=0x00;//定时器1为模式0(16位自动重载)
TL1=0xd8;//设置波特率重装值
TH1=0xff;//115200bps(65536-18432000/4/115200)
TR1=1;//定时器1开始启动
#else
TMOD=0x20;//设置定时器1为8位自动重装载模式
AUXR=0x40;//定时器1为1T模式
TH1=TL1=0xfb;//115200bps(256-18432000/32/115200)
TR1=1;
#endif
}

/*----------------------------
发送串口数据
----------------------------*/
BYTESendData(BYTEdat)
{
while(!TI);//等待前一个数据发送完成
TI=0;//清除发送标志
SBUF=dat;//发送当前数据

returndat;
}
阅读全文

与51单片机的eeprom相关的资料

热点内容
安卓怎么关权限保护隐私 浏览:390
海牛微视app怎么用 浏览:70
单片机怎样选变压器 浏览:829
癌症pdf 浏览:725
云服务器镜像批量部署环境 浏览:683
安卓手机浏览器能访问什么网站 浏览:254
找不到网站的服务器ip地址该如何解决 浏览:743
算法十个数降序排列 浏览:95
基于单片机的老年人健康监测系统 浏览:706
python入门经典pdf下载 浏览:17
东芝变频2p空调压缩机 浏览:227
自家wifi怎么能加密 浏览:644
红米k40加密门禁卡 浏览:847
什么样的源码好看 浏览:156
手机主服务器有什么用 浏览:612
程序编写命令 浏览:597
android发送心跳包 浏览:385
指标源码和原理 浏览:700
汽车空调压缩吸盘 浏览:208
崽崽因app版本不同不能邀请怎么办 浏览:686