STC12读取内部ID方法介绍

5 篇文章 1 订阅
订阅专栏

STC12读取内部ID方法介绍


  • 🔖这里以STC12LE5A60S2为例,从STC12手册的第一章,1.10小结可以找到相关的ID相关的信息。这个信息主要是用于程序加密或产品销售管理等方面。
  • 🌿STC12LE5A60S2系统板: https://oshwhub.com/perseverance51/stc12le5a60s2-ji-tong-ban
    在这里插入图片描述

📓芯片的ID信息源

  • 📑芯片ID信息源:内部RAM的F1H ~ F7H单元的内容也为全球唯一ID号。以及在程序区的最后7个字节的全球唯一ID号。后者需要在使用STC-ISP下载程序的时候,勾选相应的选项:在代码区的最后添加ID号
    在这里插入图片描述
  • 对于STC8单片机,ID源:从 CHIPID 中读取(xdata区)、从 Flash 程序存储器(ROM)中读取从 RAM 中读 取。
  • 🔖对于STC8H单片机CHIPID寄存器描述:
    在这里插入图片描述
🌟由于RAM里面的ID号存放地址一旦被变量/堆栈占用,内容就会改变,这种情况下,读取的ID就不对,从 Flash 程序存储器(ROM)中也会有这个情况,一旦程序占用该地址空间,读取的ID就不对,,推荐从只读特殊功能寄存器(CHIPID)中读取。
  • 👉注意:对于芯片固件版本为 7.4.4 以及后续版本的芯片,所有的特殊参数均只能从只读特殊功能寄存器中存储(CHIPID)中读取。在当前版本的aiapp-isp-v6.94M工具中,也取消了对ID参数的写入选项。
  • 📜读取ID效果:
    在这里插入图片描述
✨在采用代码区的最后添加ID号的方法,在通过STC-ISP写入程序到单片机时,根据芯片型号flash容量的大小,擦除和写入的时间会有所增长。

📝示例代码

  • 🌿串口采用独立波特率发生器。
  • 🌿采用外部22.1184MHz晶振
  • 🌿波特率:9600
  • 📋通过串口发送对应的字符,来获取相对于的信息。

/*------------------------------------------------------------------*/
/* --- STC MCU International Limited -------------------------------*/
/* --- STC 1T Series MCU Programme Demo ----------------------------*/
/* --- Fax: 86-755-82944243 ----------------------------------------*/
/* --- Tel: 86-755-82948412 ----------------------------------------*/
/* --- Web: www.STCMCU.com -----------------------------------------*/
/* If you want to use the program or the program referenced in the  */
/* article, please specify in which data and procedures from STC    */
/*------------------------------------------------------------------*/

/*      本程序经过测试完全正常, 不提供电话技术支持, 如不能理解, 请自行补充相关基础.  */


/*************	本程序功能说明	**************
	测试方法:
	根据您的主时钟和波特率修改下面的相关定义,编译后下载到MCU。
	通过串口助手向MCU发送数据,MCU收到后原样返回。
	发单个字符'a',将返回RAM区的唯一 ID号。
	发单个字符'o',将返回ROM区的唯一 ID号。(需要在STC-ISP下载时勾选“在代码区的最后添加ID号”选项)
	发单个字符'r',将返回内部震荡频率。
*/


/*************** 用户定义参数 *****************************/

#define MAIN_Fosc		22118400L	//define main clock
#define Baudrate0		9600		//define the baudrate,
//12T mode: 600~115200 for 22.1184MHZ, 300~57600 for 11.0592MHZ
//1T  mode: 7200~1382400 for 22.1184MHZ, 3600~691200 for 11.0592MHZ

/**********************************************************/
#include	<reg51.h>

//ID号的存放在程序区的地址为程序空间的最后7字节
//#define ID_ADDR_ROM 0x03f9 //1K程序空间的MCU
//#define ID_ADDR_ROM 0x07f9 //2K程序空间的MCU
//#define ID_ADDR_ROM 0x0bf9 //3K程序空间的MCU
//#define ID_ADDR_ROM 0x0ff9 //4K程序空间的MCU
//#define ID_ADDR_ROM 0x13f9 //5K程序空间的MCU
//#define ID_ADDR_ROM 0x1ff9 //8K程序空间的MCU
//#define ID_ADDR_ROM 0x27f9 //10K程序空间的MCU
//#define ID_ADDR_ROM 0x2ff9 //12K程序空间的MCU
//#define ID_ADDR_ROM 0x3ff9 //16K程序空间的MCU
//#define ID_ADDR_ROM 0x4ff9 //20K程序空间的MCU
//#define ID_ADDR_ROM 0x5ff9 //24K程序空间的MCU
//#define ID_ADDR_ROM 0x6ff9 //28K程序空间的MCU
//#define ID_ADDR_ROM 0x7ff9 //32K程序空间的MCU
//#define ID_ADDR_ROM 0x9ff9 //40K程序空间的MCU
//#define ID_ADDR_ROM 0xbff9 //48K程序空间的MCU
//#define ID_ADDR_ROM 0xcff9 //52K程序空间的MCU
//#define ID_ADDR_ROM 0xdff9 //56K程序空间的MCU
#define ID_ADDR_ROM 0xeff9 //60K程序空间的MCU -->STC12LE5A60S2

sfr	AUXR = 0x8E;
sfr BRT = 0x9c;	//独立波特率发生器
bit		B_TI;

unsigned char id[7];		//用于读取RAM区的ID
unsigned char ROM_id[7];	//用于读取ROM区的ID
unsigned long Rosc, RoscZ;
unsigned char Command;

void	uart0_init(void);


/****************** 编译器自动生成,用户请勿修改 ************************************/

#define T1_TimerReload		(256 - MAIN_Fosc / 192 / Baudrate0)		//Calculate the timer1 reload value	at 12T mode
//#define T1_TimerReload	(256 - MAIN_Fosc / 16 / Baudrate0)		//Calculate the timer1 reload value ar 1T mode

/**********************************************************/

void TxByte(unsigned char dat);
unsigned char HEX2DEC(unsigned char dat);
void PrintStrings(unsigned char code* sts);


void main(void)
{
    unsigned char i;
    unsigned int  j;
    unsigned char idata* p;
    unsigned char code* cptr;

    p = 0xf1;
    for(i = 0; i < 7; i++)	//从RAM区读取ID号
    {
        id[i] = *p;
        p++;
    }
    cptr = ID_ADDR_ROM; //从程序区读取ID号
    for(i = 0; i < 7; i++) //读7个字节
    {
        ROM_id[i] = *cptr;
        cptr++;
    }
    cptr = 0;
    Rosc = 0;
    for(p = 0xf8; p <= 0xfb; p++)	Rosc = (Rosc << 8) + *p;
    RoscZ = 0;
    for(p = 0xfc; p > 0; p++)	RoscZ = (RoscZ << 8) + *p;

    uart0_init();
    PrintStrings("读ID和内部震荡频率\r\n");
    PrintStrings("发单个字符'a',将返回唯一RAM ID号。\r\n");
    PrintStrings("发单个字符'o',将返回唯一ROM ID号。\r\n");
    PrintStrings("发单个字符'r',将返回内部震荡频率。\r\n");

    while(1)
    {
        for(j = 0; j < 1500; j++)	;	//14T per loop, delay 1ms
        if(Command != 0)		//收到命令
        {
            if(Command == 'a')	//读取ID命令
            {
                PrintStrings("本IC的RAM ID号为:");
                for(i = 0; i < 7; i++)
                {
                    TxByte(HEX2DEC(id[i] >> 4));
                    TxByte(HEX2DEC(id[i] & 0x0f));
                    TxByte(' ');
                }
                TxByte(0x0d);
                TxByte(0x0a);
            }
            if(Command == 'o')	//读取ID命令
            {
                PrintStrings("本IC的ROM ID号为:");
                for(i = 0; i < 7; i++)
                {
                    TxByte(HEX2DEC(ROM_id[i] >> 4));
                    TxByte(HEX2DEC(ROM_id[i] & 0x0f));
                    TxByte(' ');
                }
                TxByte(0x0d);
                TxByte(0x0a);
            }
            if(Command == 'r')	//读取内部频率命令
            {
                PrintStrings("内部震荡频率为:");
                TxByte(Rosc / 10000000L + '0');
                TxByte(Rosc % 10000000L / 1000000L + '0');
                TxByte('.');
                TxByte(Rosc % 1000000L / 100000L + '0');
                TxByte(Rosc % 100000L / 10000 + '0');
                TxByte(Rosc % 10000 / 1000 + '0');
                TxByte(Rosc % 1000 / 100 + '0');
                TxByte(Rosc % 100 / 10 + '0');
                TxByte(Rosc % 10 + '0');
                TxByte('M');
                TxByte('H');
                TxByte('Z');
                TxByte(0x0d);
                TxByte(0x0a);
            }
            Command = 0;
        }
    }
}


unsigned char HEX2DEC(unsigned char dat)
{
    dat &= 0x0f;
    if(dat <= 9)	return (dat + '0');
    else			return (dat + 55);
}

void TxByte(unsigned char dat)
{
    B_TI = 0;
    SBUF = dat;
    while(!B_TI)	;
    B_TI = 0;
}

/**********************************************/
void	PrintStrings(unsigned char code* sts)
{
    for(; *sts != 0; sts++)	TxByte(*sts);
}

void	uart0_init(void)
{

    SCON = 0x50;		//UART0 set as 10bit , UART0 RX enable
	BRT = 0xFA;			//设置定时重载值:22.1184MHz,9600
    AUXR |= 0x01;		//串口1使用独立波特率发射器为波特率发生器
    AUXR |= 0x10;		//启动独立波特率发射器
    ES  = 1;
    EA = 1;
}


/**********************************************/
void UART0_RCV(void) interrupt 4
{
    if(RI)
    {
        RI = 0;
        Command = SBUF;
    }

    if(TI)
    {
        TI = 0;
        B_TI = 1;
    }
}

STC学习:非易失存储器
m0_52380556的博客
08-23 1102
程序设计目标及程序运行效果说明 程序设计目标:本程序是对24C02存储页面的0x00地址写入可变化的数据,然后读取数据,并显示在数码管上。 程序运行效果说明: 位数码管默认显示0。按下key3,要写入数据的地址加1。按下key2要写入的数据减1。按下key1,向存储器写入数据并读取数据,并显示在数码管上。数码管左边2位(第一、第二位)是写入的地址,数码管中间两位(第四、第五位)是写入的数据,数码管右边两位(第七、第八位)是显示从非易失存储器读取的数据。 程序相关电路及工作原理说明 非易失性存储器(nonvo
stc单片机id加密c语言,STC单片机内部ID读取
weixin_39945795的博客
05-22 2616
STC单片机ID,晶振等数据的具体地址见相关的PDF。注意,STC89C52RC没有ID功能,所以读出来是全0。官方给出了读取工具和相关的HEX文件,但是没有源代码。通过用串口调试助手测试,发现了单片机自定义下载指令为0x80,返回数据帧头数据为0x69,故改写了官方提供的老版本代码,可以直接与官方最新软件配套使用。废话少说,上程序://读内部R/C时钟及ID号C语言参考程序/* --- ST...
STC-ISP加密下载
最新发布
yiweixiaowang的博客
09-02 301
同时勾选“下载用户代码前先更新用户密钥”和“本次下载的代码为加密代码”,再打开我们加密后的代码,正常进行烧写后,烧录进单片机的就是我们加密后的代码。在前一步的基础上或者打开我们所需要的密钥,然后点击“加密代码”,选择未加密的原代码,然后定义好名称后会生成新的一份代码。如果后续还需要更新代码,那么先点击“打开密钥”,然后只勾选“本次下载的代码为加密代码”,然后正常进行一次烧写即可。我们点击“生成新密钥”,可以看到2中的密钥会不断地刷新,我们选择一组后点击“保存密钥”,存为“.k”类型的文件。
STC8H8K64U单片机-获取单片机唯一ID
zhai17863966493的博客
05-10 1944
CHIPID0~CHIPID1]:16位MCU ID,用于区别不同的单片机型号(高位在前)在STC8.H中,已经定义了 CHIPID 寄存器。device_id[]数组中就会存放7个字节的唯一ID。[CHIPID2~CHIPID3]:16位测试机台编号。[CHIPID4~CHIPID6]:24位测试流水编号。STC8系列常用单片机的MCU ID
读取STC单片机ID号,用CRC-ITU算法加密 完整源代码
12-23
读取STC单片机 ID号,利用CRC-ITU算法存入EEPROM,在应用程序中比较单片机ID号和EEPROM中的CRC数据,两者符合规定算法才运行程序执行,这样将达到程序坚不可摧的目的!(在具体应用中,可以灵活修改 生成多项式0X1021的值,防止被破解算法)
STC11单片机读取IDID号加密试验源代码例程
guoruibin123的博客
11-12 555
* 系统工作时钟<12M,对ISP_CONTR寄存器设置此值 ,0x81*/=0) crc^=0x1021;//生成多项式0x1021。#define ID_ADDR_ROM 0X1FF9 //stc11 ROM 无ID号。//启动独立波特率发生器 *///串口1选择独立波特率发生器为波特率发生器。//串口1选择定时器1为波特率发生器。/* 字节编程 *//* 扇区擦除 *//* PCON &= 0x7F;
读取STC12单片机内部序列号ID工具
02-25
通过串口读取STC12单片机内部序列号ID工具。
12-读ID号-模拟串口发送.zip_STC15 ID_STC15单片机_STC15读取内部单片机ID_stc15唯一ID_st
09-15
通过学习和理解这个示例,开发者能够熟练掌握在STC15单片机读取和利用内部ID进行安全保护的方法。这不仅可以提高产品的安全性,也有助于防止非法复制和滥用。在实际项目中,结合其他安全措施,如加密算法和硬件锁...
STC12C5A60S2-串口1读ID.zip_SL7_STC12-串口1读ID_STC12单片机_bt2
09-20
这个压缩包文件"STC12C5A60S2-串口1读ID.zip_SL7_STC12-串口1读ID_STC12单片机_bt2"包含了与该型号单片机相关的串口1(UART1)读取设备ID的程序资源。了解这一技术,我们首先需要深入理解STC12C5A60S2单片机的基本...
STC12C5A60S2读内部ID
08-08
读取STC12C5A60S2内部ID的过程通常涉及到访问特殊的寄存器或执行特定的指令序列。由于STC12C5A60S2是基于MCS-51内核的,它有一些特有的指令集和寄存器,如EEPROM寄存器,可以用来存储和读取ID。在C语言中,我们通常...
STC15读取内部ID示例程序
perseverance51博客
02-12 3636
STC15读取内部ID示例程序
STC单片机读取AT24C02程序
07-19
STC单片机读取AT24C02程序 采用软件模拟IIC读取EEPROM程序
STC单片机EEPROM读写程序
09-16
/* STC89C54RD+的flash空间从0x4000~0xf3ff 共90个扇区,每扇区512字节 */ // #define BaseAddr 0x1000 /* 51rc */ // #define EndSectoraddr 0x3d00 /* 51rc */ // #define EndAddr 0x3fff /* 51rc 12K eeprom */ #define BaseAddr 0x4000 #define EndSectoraddr 0xf200 #define EndAddr 0xf3ff #define UseAddr 0x1000 /* ------------- 定义扇区大小 ------------- */ #define PerSector 512 /* 用户程序需要记忆的数组, 用户实际使用了n-1个数据,数组长度规整到 2 4 8 16 32 64 上 */ uchar Ttotal[16] = {
STC15单片机读取ID号后用CRC-ITU算法存入EEPROM实现加密完整软件源代码例程.zip
06-19
STC15单片机读取ID号后用CRC-ITU算法加密完整软件源代码例程,利用CRC-ITU算法存入EEPROM,在应用程序中比较单片机ID号和EEPROM中的CRC数据,两者符合规定算法才运行程序执行,这样将达到程序坚不可摧的目的!(在具体应用中,可以灵活修改 生成多项式0X1021的值,防止被破解算法) void main() { unsigned char idata *iptr; unsigned char code *cptr; unsigned char i; unsigned long xdata outdata; unsigned char xdata outdata1 ,outdata2,outdata3,outdata4; unsigned char xdata stc_15[7] ; Delay10ms(); InitUart(); iptr= ID_ADDR_RAM; cptr=ID_ADDR_ROM; for (i=0;i<7;i++) { SendUart(*iptr++
STC单片机自身eeprom读写程序
04-29
89c51系列eeprom读写程序 stc12系列eeprom读写程序 注意:各系列单片机要看其eeprom寻址范围
单片机 STC11L02E-35I - 读取 MCU ID,然后通过串口发送
qq_29761395的博客
07-14 643
文章目录读取 MCU ID,然后通过串口发送原理图示例参考 读取 MCU ID,然后通过串口发送 原理图 示例 main.c 文件: #include <reg51.h> #ifndef SYSTEM_CLOCK #define SYSTEM_CLOCK (1000000 * 12) // 12MHz #endif typedef enum { FALSE = 0, TRUE = !FALSE } boolean; /** Bits definition of PCON */
使用SDCC编译的程序读取STC单片机内部数据为零的解决方法
william_9527的博客
09-15 769
写了一段代码读取片内IRC的频率和1.19V参考电压源数值,用的是stc8g1k17,环境是sdcc+但是读取出来都是0。
STC单片机通过串口多字节数据读写EEPROM操作
perseverance51博客
02-15 2373
STC15系列单片机通过串口多字节数据读写EEPROM操作
C#实现DataGridView右键菜单:STC12C5A60S2 I/O口选中行操作
在章节"第1章STC12C5A60S2系列单片机总体介绍"中,详细讲解了单片机的基本信息,如内部结构、管脚图、选型表格、最小应用系统示例、ISPMSP编程线路图以及管脚功能说明。此外,还介绍单片机的封装尺寸图和命名规则...
写文章

热门文章

  • 利用MinproI给FLASH芯片烧写固件,给ESP8266更换更大容量的flash 154182
  • NMOS和PMOS电流流向以及导通条件 63053
  • 74LS138译码器真值表以及快速计算方法 51451
  • Multisim元件库介绍以及中英文全面解析 43473
  • ESP32硬件参考详细说明 38609

分类专栏

  • 51单片机+Proteus仿真实例开发指南 付费 352篇
  • Arduino应用笔记 付费 438篇
  • ESP8266开发应用笔记 付费 253篇
  • 单片机学习手稿 付费 128篇
  • GD32 2篇
  • AT32 MCU 4篇
  • AVR单片机 6篇
  • Mbed OS for STM32 1篇
  • MATLAB实验室 3篇
  • Proteus 51单片机基础课堂 17篇
  • Arduino ESP32 入门实例教程 127篇
  • RT-Thread 1篇
  • # Micropython for STM32 3篇
  • stm32 59篇
  • stm32标准库开发例程 24篇
  • STM32CubeMX自动配置工程系列 86篇
  • STM32F103系列 15篇
  • WCH - CH32F203系列 11篇
  • WCH-E8051单片机开发 14篇
  • 极海APM32微控制器 7篇
  • 联盛德W801 4篇
  • 合宙MCU系列 13篇
  • 华芯微特MCU 7篇
  • STM8 32篇
  • STM8S系列 14篇
  • STM8L系列 3篇
  • Lua嵌入式开发 12篇
  • 嵌入式C语言 1篇
  • Multisim电路仿真 42篇
  • Proteus + 51单片机汇编开发 14篇
  • Proteus VSM 51基础A/D实验项目 15篇
  • 基于Arduino+Proteus仿真 5篇
  • Proteus STM32仿真 1篇
  • 逻辑芯片实验小课堂 28篇
  • Raspberry Pi Pico(RP2040) 22篇
  • DIY 10篇
  • CircuitPython 1篇
  • MicroPython嵌入式开发 64篇
  • Arduino for Raspberry 7篇
  • MicroPython for ESP32 47篇
  • MicroPython for ESP8266 13篇
  • STC系列天问Block编程开发 3篇
  • STC15W408AS最小系统板 33篇
  • STC32G 3篇
  • STC15系列 26篇
  • STC12系列 5篇
  • STC8系列 8篇
  • OLED显示 49篇
  • 电子电路 115篇
  • SolidWorks 18篇
  • esp8266wifi时钟天气 18篇
  • 步进电机 11篇
  • blinker 7篇
  • C/C++ 22篇

最新评论

  • 官版树莓派Pi Pico和YD-RP2040版本对比

    燕大溜: 我使用yd rp2040的 adc 读取到的皆为1023 请问有遇到吗

  • HAL STM32+EC11编码器实现增减调节及单击、双击、长按功能

    之乌朱?: 求求了

  • ESP32在Arduino开发环境中的PWM的使用方法

    perseverance52: 可能选择的开发板型号不支持。

  • ESP32在Arduino开发环境中的PWM的使用方法

    是小林君呀: 报错,'ledcSetup' was not declared in this scope 请问博主知道为什么吗

  • 【Multisim仿真】焦耳小偷电路仿真实验

    2403_88077139: 请问这个电感实物图长什么样呀

最新文章

  • 浅谈针对Nor flash状态寄存器保护位修改方法
  • STM32H750 QSPI + MDMA Flash的读写测试
  • STM32 QSPI接口驱动GD/W25Qxx配置简要
2024
10月 3篇
09月 10篇
08月 6篇
07月 5篇
06月 7篇
05月 3篇
04月 16篇
03月 22篇
02月 14篇
01月 7篇
2023年317篇
2022年636篇
2021年806篇
2020年48篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

玻璃钢生产厂家楼盘玻璃钢卡通雕塑图片博尔塔拉园林玻璃钢雕塑定做玻璃钢雕塑花艺玻璃钢雕塑制品检验设备富民玻璃钢仿生雕塑南京景区玻璃钢雕塑价格延安景区玻璃钢雕塑公司长宁区进口玻璃钢雕塑优质商家商场美陈柱子装饰德惠玻璃钢座椅雕塑成都玻璃钢雕塑优势耐高温玻璃钢花盆供应晋宁玻璃钢雕塑常见玻璃钢雕塑摆件销售公司泉州玻璃钢雕塑凳子6.1商场美陈怎么布置商场美陈系统报价信阳玻璃钢动物雕塑生产厂家沅江玻璃钢十二生肖雕塑玻璃钢卡通雕塑公司哪家好茂名玻璃钢人物雕塑供应玻璃钢花盆的制作酒店玻璃钢雕塑设计及定制玻璃钢雕塑厂家厂3.8节商场美陈江门玻璃钢动物雕塑货源充足湘潭长沙玻璃钢雕塑公司推荐苏州商场商业美陈推荐厂家白银户外玻璃钢雕塑南京玻璃钢花盆开发香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化