实时时钟DS1302原理详解和单片机编程

22 篇文章 16 订阅
订阅专栏
13 篇文章 4 订阅
订阅专栏

一、DS1302的功能

DS1302是美国DALLAS推出的一款高性能、低功耗的日历时钟芯片。

DS1302是一种串行接口的实时时钟,芯片内部具有可编程的日历时钟和31个字节的静态RAM,日历时钟可以自动进行闰年补偿,计时准确,接口简单,使用方便,工作电压范围宽(2.5~5.5V),芯片自身还具有对备用电池进行涓流充电功能,可有效延长备用电池的使用寿命。

DS1302用于数据记录,能实现数据与该数据出现的时间同时记录,因此广泛应用于测量系统中。

 

 二、DS1302硬件及引脚功能

 

各引脚功能为:

1、VCC1:主电源。 VCC2:备用电源。当VCC2大于VCC1+0.2V时由VCC2向DS1302供电否则由VCC1向DS1302供电。

2、SCLK:串行时钟输入端,控制数据输入与输出;

3、I/O :双向输入线;

4、CE:使能端,CE为高时允许读写DS1302数据,为低时禁止读写。

三、DS1302寄存器

时钟日历和控制寄存器如图所示:

如上图所示,时钟日历寄存器包含在7个读/写寄存器内,读/写寄存器中的数据是BCD码。

秒寄存器(81h、80h)的BIT7定义为时钟暂停标志(CH)。当该位置为1时,时钟振荡器停止,DS1302处于低功耗状态;当该位置为0时,时钟开始运行。

小时寄存器(85h、84h)的BIT7用于定义DS1302是运行于12小时模式还是24小时模式,当为1时,选择12小时模式,此时BIT5为AM/PM位,在24小时模式时此位为小时数据位。

控制寄存器(8Fh、8Eh)的BIT7是写保护位(WP),其它7位均为0。在任何对时钟或RAM读写操作之前,WP位必须为0。当WP位为1时,不能对任何时钟日历寄存器或RAM进行写操作。

    

 31个字节静态RAM寄存器如图所示

 

 突发模式配置寄存器如图所示

  四、DS1302通信时序

DS1302读写数据时序,图8为读一字节时序,图9为写一字节时序,数据的传输是从最低位开始(BIT0)。数据是以位(BIT)为单位依次写入或读出,读写数据操作中SCLK上升沿时执行写入数据,下降沿时执行读出数据。

 读数据:CE端从低到高的一个上升沿开始允许开始读数据,拉低CE端则禁止读写数据;开始的8个SCLK周期,写命令字节,数据的后8个SCLK 周期读出数据。

 

 写数据:CE端从低到高的一个上升沿开始允许开始写数据,拉低CE端则禁止读写数据;开始的8个SCLK周期,写命令字节,数据的后8个SCLK 周期写入数据。

 五、BCD码的转换

在DS1302中有关于时钟日历的寄存器数据存储格式为BCD码

BCD码介绍:

我们时钟日历寄存器使用的是8421码型的BCD码,BCD码还有5421码、2421码等,其中8421码型的BCD码最最常用;

BCD码是用四位二进制数表示一位十进制数的0-9这十个数简称BCD码;

      8421

8421码型BCD码最小值为0000(二进制),最大值为1001(二进制);9

一个字节的8421码型BCD码中的低四位用于表示十进制的个位,高四位用于表示十进制的十位,如10(十进制)的8421码型BCD码=0001 0000;

BCD码用程序转换实例:

例:把十进制数45转换为8421型BCD码

unsigned char data1, data2 = 45;  //声明2个无符号char型变量data1data2并且data2赋初值45

data1 = data2/10;  data2 = data2%10;  data2 = data2 + data1*16;  //data2最终等于69这个数

把69这个8421型BCD码换算回十进制数:

data1 = data2/16;  data2 = data2%16;  data2 = data2 + data1*10;  //data2最终等于45

 六、程序设计流程

写DS1302一字节数据
读DS1302一字节数据
BCD码转换
关闭写保护
设置DS1302时钟日历寄存器(初始显示时间)
设置写保护
关闭写保护
读取DS1302时钟日历
设置写保护
用数码管显示DS1302  时.分.秒

#include <reg52.h>
#include <intrins.h>
#define MAIN_Fosc		11059200UL	//宏定义主时钟HZ
/*====================================
 自定义类型名
====================================*/
typedef unsigned char INT8U;
typedef unsigned char uchar;

typedef unsigned int INT16U;
typedef unsigned int uint;

/*====================================
 硬件接口位声明
====================================*/
sbit TSCLK = P1^0;//时钟线 接到P10上用杜邦线
sbit TIO   = P1^1;//数据线,接到P11上
sbit TRST  = P1^2;//使能端,接到P12上
sbit DU  = P2^6;   //数码管段选
sbit WE  = P2^7;   //数码管位选
/*====================================
共阴极数码管段选码
====================================*/
uchar code table[]={ 
//0		1	 2     3     4     5     6     7     8
0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F,
//9     A     B	   C	 D	   E	 F		-	 .	  关显示
0x6F, 0x77, 0x7C, 0x39, 0x5E, 0x79, 0x71, 0x40, 0x80, 0x00
                   };

/*====================================
数码管位选码
====================================*/
				  //第1位	2位	  3位	 4位   5位	6位	  7位	8位
uchar code T_COM[] = {0xfe, 0xfd, 0xfb, 0xf7, 0xef, 0xdf, 0xbf, 0x7f};//数码管位码

/*====================================
函数:void Delay_Ms(INT16U ms)
参数:ms,毫秒延时形参
描述:12T 51单片机自适应主时钟毫秒级延时函数
====================================*/
void Delay_Ms(INT16U ms)
{
     INT16U i;
	 do{
	      i = MAIN_Fosc / 96000; 
		  while(--i);   //96T per loop
     }while(--ms);
}

void Display(uchar Hour, Min, Sec)
{		
//------------------------------
	DU = 0;							
	P0 = table[Hour/10];		
	DU = 1;						
	DU = 0;							

	WE = 0;						
	P0 = T_COM[0];				   
	WE = 1;						
	WE = 0;						
	Delay_Ms(3);
//-------------------------------
	DU = 0;
	P0 = table[Hour%10]|0x80; 
	DU = 1;
	DU = 0;

	WE = 0;
	P0 = T_COM[1];			  
	WE = 1;
	WE = 0;
	Delay_Ms(3);
//------------------------------
	DU = 0;							
	P0 = table[Min/10];		
	DU = 1;						
	DU = 0;							

	WE = 0;						
	P0 = T_COM[2];				   
	WE = 1;						
	WE = 0;						
	Delay_Ms(3);
//-------------------------------
	DU = 0;
	P0 = table[Min%10]|0x80; 
	DU = 1;
	DU = 0;

	WE = 0;
	P0 = T_COM[3];			 
	WE = 1;
	WE = 0;
	Delay_Ms(3);
//------------------------------
	DU = 0;							
	P0 = table[Sec/10];		
	DU = 1;						
	DU = 0;							

	WE = 0;						
	P0 = T_COM[4];				   
	WE = 1;						
	WE = 0;						
	Delay_Ms(3);
//-------------------------------
	DU = 0;
	P0 = table[Sec%10]; 
	DU = 1;
	DU = 0;

	WE = 0;
	P0 = T_COM[5];			  
	WE = 1;
	WE = 0;
	Delay_Ms(3);

}

//写DS1302数据
void Write_DS1302_DAT(uchar cmd, uchar dat)
{
	uchar i;
	TRST = 0; //拉低使能端
	TSCLK = 0;//拉低数据总线
	TRST = 1; //拉高使能端,产生上升沿开始写数据
	for(i = 0; i < 8; i++)//每次写1位,写8次
	{
		TSCLK = 0;		  //拉低时钟总线
		TIO = cmd & 0x01; //写1位数据,从最低位开始写
		TSCLK = 1;		  //拉高时钟总线,产生上升沿数据被DS1302读走
		cmd >>=1;		  //右移一位
	}
	for(i = 0; i < 8; i++)//每次写1位,写8次
	{
		TSCLK = 0;		  //拉低时钟总线
		TIO = dat & 0x01; //写1位数据,从最低位开始写
		TSCLK = 1;		  //拉高时钟总线,产生上升沿数据被DS1302读走
		dat >>= 1;		  //右移一位
	}
}
//读DS1302数据
uchar Read_DS1302_DAT(uchar cmd)
{
	uchar i, dat;
	TRST = 0;  //拉低使能端
	TSCLK = 0; //拉低数据总线
	TRST = 1;  //拉高使能端,产生上升沿开始写数据
	for(i = 0; i < 8; i++)//每次写1位,写8次
	{
		TSCLK = 0;		 //拉低时钟总线
		TIO = cmd & 0x01;//写1位数据,从最低位开始写
		TSCLK = 1;		 //拉高时钟总线,产生上升沿数据被DS1302读走
		cmd >>=1;		 //右移一位
	}
	for(i = 0; i < 8; i++)//每次读1位,读8次
	{
		TSCLK = 0;		  //拉低时钟总线,产生下降沿,DS1302把数据放到TIO上
		dat >>= 1;		  //右移一位
		if(TIO)	dat |= 0x80;//读取数据,从最低位开始
		TSCLK = 1;			//拉高时钟总线,以备下一次产生下降沿
	}
	return dat;	//返回读出数据
}

//数据转BCD码
uchar Dat_Chg_BCD(uchar dat)
{
	uchar dat1, dat2;
	dat1 = dat / 10;
	dat2 = dat % 10;
	dat2 = dat2 + dat1 * 16;
	return dat2;
}

//BCD码转换为数据
uchar BCD_Chg_Dat(uchar dat)
{
	uchar dat1, dat2;
	dat1 = dat / 16;
	dat2 = dat % 16;
	dat2 = dat2 + dat1 * 10;
	return dat2;
}

void main()
{
	uchar i;
	uchar Sec, Min, Hour;
	Write_DS1302_DAT(0x8e, 0);//清除写保护
	Write_DS1302_DAT(0x80, Dat_Chg_BCD(30));//30秒(并且进行BCD码转换)
	Write_DS1302_DAT(0x82, Dat_Chg_BCD(15));//15分
	Write_DS1302_DAT(0x84, Dat_Chg_BCD(19));//19时
	Write_DS1302_DAT(0x8e, 0x80);//开写保护
	while(1)
	{
		Write_DS1302_DAT(0x8e, 0); //清除写保护
		Sec = BCD_Chg_Dat(Read_DS1302_DAT(0x81));//读秒寄存器(并且进行BCD码转换)
		Min	= BCD_Chg_Dat(Read_DS1302_DAT(0x83));//读分寄存器
		Hour = BCD_Chg_Dat(Read_DS1302_DAT(0x85));//读时寄存器
		Write_DS1302_DAT(0x8e, 0x80);//开写保护
		for(i = 0; i < 50; i++)	//循环显示时钟
			Display(Hour, Min, Sec);

	}
}

七、结语

考虑到一些读者需要相关资料和解决一些疑问,因此我新建立了一个学习交流群,我在群文件里上传了一些资料,需要的读者可以入群下载。

群中文件资料我会时常更新,主要资料是51单片机开发、32单片机开发、编程、嵌入式学习、算法控制等。

由于群中文件还在不断更新上传,有些方面的资料还不太完善,希望大家理解。若群中涉及违规行为,欢迎举报!

实时时钟电路DS1302原理及应用
mybirdsky的专栏
01-17 5419
2006-05-11 10:10:39 实时时钟电路DS1302原理及应用 摘 要:介绍美国DALLAS公司推出的具有涓细电流充电能力的低功耗实时时钟电路DS1302的结构、工作原理及其在实时显示时间中的应用。它可以对年、月、日、周日、时、分、秒进行计时,且具有闰年补偿等多种功能。给出DS1302在读写
时钟芯片DS1302原理及使用
热门推荐
会飞的鱼的博客
12-14 8万+
一.描述 DS1302时钟芯片是由美国DALLAS公司推出的具有涓细电流充电能力的低功耗实时时钟芯片。它可以对年、月、日、周、时、分、秒进行计时,且具有闰年补偿等多种功能DS1302芯片包含一个用于存储实时时钟/日历的 31 字节的静态 RAM,可通过简单的串行接口与微处理器通讯,将当前的是时钟存于RAM。DS1302芯片对于少于 31 天的月份月末会自动调整,并会自动对闰年进行校正。由于有一个...
ds1302程序详解
05-06
sbit IO=P1^0; //DS1302 数据线 sbit SCLK=P1^1; //DS1302 时钟线 sbit RST=P1^2; //DS1302 复位线 uchar WEEK[][4]={"SUN","***","MON","TUS","WEN","THU","FRI","SAT"}; // 亦可定义成指 针数组 *WEEK[] uchar LCD_DSY_BUFFER1[]={"DA TE 00-00-00
DS1302时钟芯片全解析——概况,性能,MCU连接,样例代码
最新发布
Dunkle.T的博客
07-29 1629
DS1302时钟芯片全解析——概况,性能,MCU连接,样例代码
ds1302时钟程序详解
08-04
控制字节的最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入DS1302中,位6如果为0,则表示存取日历时钟数据,为1表示存取RAM数据;位5至位1指示操作单元的地址;最低有效位(位0)如为0表示要进行写操作,为1表示进行读操作,控制字节总是从最低位开始输出
单片机学习笔记---DS1302实时时钟工作原理
xiaobaivera的博客
02-08 3436
提前预告:本节会带大家看芯片手册!学会看芯片手册是一位开发工程师必备的技能! DS1302介绍 DS1302是由美国DALLAS公司推出的具有涓细电流充电能力的低功耗实时时钟芯片。它可以对年、月、日、周、时、分、秒进行计时,且具有闰年补偿等多种功能 还有另外一个名词就是RTC(Real Time Clock):实时时钟,是一种集成电路,通常称为时钟芯片。(我们的单片机内部没有RTC,可以外接一个RTC的芯片,给单片机提供实时时钟。市面上有很多种实时时钟芯片,有的自带电池,功能各不相同。)
DS1302实时时钟模块相关文件.zip
02-27
在本资料中,我们将深入探讨DS1302的工作原理,以及如何在C51单片机和STM32微控制器中进行应用和编程。 1. **DS1302芯片介绍** DS1302是一款串行接口的RTC,具有日历和计时功能,可提供秒、分、小时、日期、月、年...
DS1302详解实时时钟芯片原理与应用
1. 基本组成与工作原理DS1302内部集成了实时时钟电路和日历功能,能准确提供秒、分、时、日、月和年信息,并能自动处理闰年的天数。通过串行接口(包括复位、I/O数据线和串行时钟)与单片机进行通信,数据传输支持...
单片机项目-实时时钟芯片DS1302带仿真PPT.rar
12-03
本项目包含了一个详细的DS1302实时时钟芯片的介绍、接口电路设计、编程方法以及仿真过程,帮助学习者深入理解其工作原理和应用。 DS1302是一款低功耗、高性能的实时时钟/日历芯片,它能够提供年、月、日、星期、...
基于51单片机功能时钟DS1302仿真设计(包含源程序及仿真)
05-16
《51单片机DS1302功能时钟设计详解》 51单片机,作为微控制器领域的一款经典型号,广泛应用于各种电子设备的设计中。在本项目中,我们将探讨如何利用51单片机实现一个多功能时钟系统,其中核心组件是DS1302实时...
DS1302中文详解实时时钟芯片单片机接口指南
DS1302是一款由DALLAS公司生产的高性能时钟和数据存储芯片,专为低功耗应用设计。它集成了一个实时时钟/日历功能,以及31字节的静态随机存取内存(SRAM),这使得它在嵌入式系统中被广泛用于时间管理和数据保存。DS...
DS1302程序详解
08-28
DS1302数码管显示,详细的程序实例,让你轻松制作万年历
DS1302工作原理
09-12
DS1302工作原理。。。。。。。。。。。。。。。。。。。。。。。。
ds1302时钟程序
10-09
自己写的时钟程序 有兴趣可以看一下 了解一下 本人写的也不容易 希望大家多下载
DS1302时钟程序详解,每一步都有讲解
weixin_49046017的博客
07-26 8087
首先附上DS1302的时序图和它的寄存器图,程序中写的不好的地方希望大家多多谅解,谢谢~ #include<reg52.h> //头文件预编译 #define uchar unsigned char //宏定义 #define uint unsigned int //宏定义 uint DisplayData[8]; //无符号整型数码管显示的总位数 uint code smgduan[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7
DS1302时钟程序解读
祥玉汪的博客
04-02 1万+
功能:系统运行时, 数码管上显示电子时钟, 格式为“XX-XX-XX” 。
51单片机-时钟芯片DS1302
helloyesyes
09-27 754
哈尔滨理工大学软件工程专业08-7李万鹏原创作品,转载请标明出处 http://blog.csdn.net/woshixingaaa/archive/2010/09/27/5910473.aspx 在许多电子设备中,通常会进行一些与时间有关的控制,如果用系统的定时器来设计时钟的话,偶然的掉电或晶振的误差都会造成时间的错乱,更糟糕的是,若完全用程序设计时钟还会占用大量的系统资源,从而严重影响系统...
DS1302时钟模块使用讲解附带完整程序
qq_1840998080的博客
12-05 4万+
AT24C02时钟模块使用附带完整程序DS1302引脚说明DS1302相关寄存器时序说明代码讲解DS1302初始化读取当前时间参考程序 DS1302引脚说明 引脚 说明 Vcc2 主电源 Vcc1 后备电源(断电后保证时钟正常运行) x1,x2 外接32.768KHZ晶振 GND 接地 RST 复位引脚(低电平有效) I/O 数据输入/输出引脚 SCLK 串行时钟输入引脚 参考电路: 如果是直接买的时钟模块的话,会直接引出VCC,GND,CLK,DAT,RST
实时时钟芯片DS1302
wa_chao_的博客
06-05 1万+
寄存器 0:最高位 CH 是一个时钟停止标志位。停止后为1,正常工作为0。如果 Vcc1 悬空或者是电池没电了,当我们下次重新上电时,读取这一位,那这一位就是 1,我们可以通过这一位判断时钟单片机系统掉电后是否还正常运行。剩下的 7 位高 3 位是秒的十位,低 4 位是秒的个位。寄存器 1:最高位未使用,剩下的 7 位中高 3 位是分钟的十位,低 4 位是分钟的个位。寄存器 2:bit7 是 1 的话代表是 12 小时制,0 代表是 24 小时制;
写文章

热门文章

  • 使用c语言编程时输入具体的年份和月份,求月份的天数的两种编程方法 30002
  • 舵机驱动代码及舵机控制原理(详解) 23032
  • OpenMV与STM32之间的通信(附源码) 20625
  • PID算法详解(精华知识汇总) 20447
  • PID算法详解(代码详解篇),位置式PID、增量式PID(通用) 20263

分类专栏

  • FreeRTOS实时操作系统 21篇
  • LabVIEW 2篇
  • 32单片机 21篇
  • 算法 8篇
  • 自动控制 7篇
  • OPENMV 3篇
  • c语言进阶 11篇
  • 硬件设计 1篇
  • Linux 9篇
  • 电赛 1篇
  • 51单片机 22篇
  • 随笔 1篇
  • 嵌入式硬件 13篇
  • 软件工具及技巧分享 2篇
  • c++ 4篇
  • 单片机开发错误解决方案 1篇
  • 单片机蓝桥杯 2篇
  • 智能车竞赛 6篇
  • C语言 19篇
  • UCOS实时操作系统 9篇
  • 计算机三级嵌入式 1篇
  • Simulink 2篇
  • ESP32 2篇
  • 数学建模 4篇
  • Python 2篇
  • 学习经验 1篇

最新评论

  • PID算法详解(代码详解篇),位置式PID、增量式PID(通用)

    广开言璐: 求pid学习资料,老师 3407001661@qq.com

  • 一文带你深度了解FreeRTOS——互斥信号量

    前端青山: 思路清晰明了,干货满满当当,感觉到博主的用心了博主很有耐心,更有对知识的热忱和热爱,写了这么实用有效的分享

  • PID算法详解(代码详解篇),位置式PID、增量式PID(通用)

    karman偷了酒: 求 pid 学习资料表情包,谢谢老师 3010801954@qq.com

  • 基于MATLAB的Simulink搭建一阶低通滤波器

    Joshua180: 整体工程里的输入X为什么不是两个正弦信号之和呢?

  • 一文带你深度了解FreeRTOS——互斥信号量

    步入烟尘: 博客的每一个细节都处理得非常到位,这让我感受到了作者的用心和专注。 也欢迎您来逛逛我的博客哦~~在此提前感谢您对我的互/三/支持~~

大家在看

  • 代理IP池的重要性:为什么它是网络操作的秘密武器 76
  • DMA方式
  • SSM基于HTML5的美食家网站设计87nq4 流量统计
  • CRC-校验
  • 【AI论文精读6】SELF-RAG(23.10)P3(完)

最新文章

  • 一文带你深度了解FreeRTOS——互斥信号量
  • 【LabVIEW】条件结构的使用
  • 【LabVIEW】事件结构的用法
2024
09月 8篇
08月 11篇
07月 8篇
05月 5篇
04月 7篇
03月 9篇
02月 8篇
01月 16篇
2023年67篇
2022年8篇

目录

目录

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小小_扫地僧

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或 充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值

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

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