51单片机Proteus仿真+Keil工程-实验5-单片机串行口中断实验

9 篇文章 5 订阅
订阅专栏
9 篇文章 1 订阅
订阅专栏
8 篇文章 5 订阅
订阅专栏

实验5-单片机单片机串行口中断实验

  之前做的一次实验,51单片机串行口中断实验,感觉不够完美,待改进。如有问题欢迎指正。

实验目的:

  掌握串行口的工作方式;掌握不同串行口工作方式下的通讯方法。

实验目标:

  放置两个单片机,通过串行口线的互连,应用方式1和方式3,同时设计发送和接受程序,完成两个方式的应用,将发送和接收的内容在虚拟串口中显示。

实验环境:

   MDK-ARM V5.21a、Proteus 8.6

Proteus原理图

   方式1:
在这里插入图片描述
   方式3:
在这里插入图片描述

选择元器件:

DEVICES说明
AT89C51MCU
BUTTON按键
CAP普通电容
CAP-ELEC电解电容
CRYSTAL晶振
RES电阻
RESPACK-8排阻

  51单片机的P0口做IO口使用时是漏极开路输出,其引脚一般需要在片外接一定阻值的上拉电阻,此时端口不存在高阻抗的悬浮状态,因此它是一个准双向口。同时,P0口每一位的驱动能力是P1~P3口的两倍,每位可以驱动8个LSTTL(Low-power Schottky TTL,即低功耗肖特基TTL)输入,89C51等单片机任何一个端口想要获得较大的驱动能力,必须采用低电平输出。
  时钟晶体振荡频率为 f o s c = 11.0592 M H Z f_{osc}=11.0592MHZ fosc=11.0592MHZ
  时钟周期相当于 T o s c = 1 f o s c ≈ 90.42 n s T_{osc}=\frac{1}{f_{osc}} \approx 90.42ns Tosc=fosc190.42ns
  复位电路的话通过给89C51等单片机的复位引脚RST加上大于2个机器周期的高电平(即24个时钟振荡周期)就可以使单片机复位。

KEIL工程:

方式1:
  1.甲乙两机以方式1进行串行通信,双方晶体振荡器频率均为11.0592MHz,波特率为2400bit/s。甲机的TXD脚、RXD脚分别与乙机的RXD、TXD脚相连。
  2.为观察串行口传输的数据,电路中添加了两个虚拟终端来分别显示串行口发出的数据。添加虚拟终端,只需单击Proteus左侧工具箱中的虚拟仪器图标图,在预览窗口中显示的各种虚拟仪器选项,单击“VIRTUAL TERMINAL"项,并放置在原理图编辑窗口,然后把虚拟终端的“RXD”端与单片机的“TXD”端相连即可。
  3.当串行通信开始时,甲机首先发送数据AAH,乙机收到后应答BBH,表示同意接收。甲机收到BBH后,即可发送数据。如果乙机发现数据出错,就向甲机发送FFH,甲机收到FFH后,重新发送数据给乙机。
  4.选择定时器TI为方式2定时,波特率不倍增,即SMOD=0,经过计算: 2 S M O D 32 × 11.0592 M 12 = 2400 × ( 256 − X ) ( 其 中 S M O D = 0 ) , X = 244 D = F 4 H \frac{2^{SMOD}}{32}×\frac{11.0592M}{12}=2400×(256-X)(其中SMOD=0),X=244D=F4H 322SMOD×1211.0592M=2400×256X(SMOD=0),X=244D=F4H,可得写入T1的初值应为F4H。
  5.以下双机通信程序,该程序可以在甲乙两机中运行,不同的是在程序运行之前,要人为地设置TR。若选择TR=0,表示该机为发送方;若TR=1,表示该机是接收方。程序根据TR设置,利用发送函数send( )和接收丽数receive( )分别实现发送和接收功能。

  甲机串口通信程序:

#include <reg52.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
#define TR 0					//接收发送的区别值,TR=0为发送
uchar buf[10]={0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a};//发送的10个数据
uchar sum;
void delay(uint i);
void init();
void send(void);	//甲机发送函数
void receive(void);	//甲机接收函数

void main(void)
{
	init();
	if(TR==0)//TR=0为发送
	{send();}
	if(TR==1)//TR=1为接收
	{receive();}
}
void delay(uint i)
{
	uchar j;
	for(;i>0;i--)
		for(j=0;j<125;j++);
}
void init()
{
	TMOD=0x20;	//T1的方式2定时
	TH1=0xf4;	//波特率为2400
	TL1=0xf4;
	PCON=0x00;	//SMOD=0
	SCON=0x50;	//串行口方式1,REN=1允许接收
	
	TR1=1;		//启动定时器T1
}
void send(void)//甲机发送函数
{
	uchar i;
	do{
		delay(1000);
		SBUF=0xaa;			//发送联络信号
		while(TI==0);		//等待数据发送完毕
		TI=0;
		while(RI==0);
		RI=0;				//等待乙机应答
	}while(SBUF!=0xbb);		//乙机未准备好继续联络
	do{
		sum=0;				//校验和变量清零
		for(i=0;i<10;i++)
		{
			delay(1000);
			SBUF=buf[i];
			sum+=buf[i];	//求校验和
			while(TI==0);
			TI=0;
		}
		delay(1000);
		SBUF=sum;			//发送校验和
		while(TI==0);TI=0;
		while(RI==0);RI=0;
	}while(SBUF!=0x00);		//出错,重新发送
	while(1);
}
void receive(void)
{
	uchar i;
	RI=0;
	while(RI==0); RI=0;
	while(SBUF!=0xaa);		//判断甲机是否发出请求
	SBUF=0xbb;				//发送应答信号BBH
	while(TI==0);			//等待发送结束
	TI=0;
	sum=0;
	for(i=0;i<10;i++)
	{
		while(RI==0);RI=0;	//接收校验和
		buf[i]=SBUF;		//接收一个数据
		sum+=buf[i];		//求校验和
	}
	while(RI==0);
	RI=0;					//接收甲机的校验和
	if(SBUF==sum)			//比较校验和
	{
		SBUF=0x00;			//校验和相等,则发送00h
	}
	else
	{
		SBUF=0xFF;			//出错发送FFH,重新接收
		while(TI==0);TI=0;
	}
}

  乙机串口通信程序:

#include <reg52.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
#define TR 1					//接收发送的区别值,TR=1为接收
uchar idata buf[10];//={0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a};//发送的10个数据
uchar sum;
void delay(uint i);
void init();
void send(void);			//乙机发送函数
void receive(void);			//乙机接收函数

void main(void)
{
	init();
	if(TR==0)				//TR=0为发送
	{	
		send();				//调用发送函数
	}
	else
	{
		receive();			//调用接收函数
	}
}
void delay(uint i)
{
	uchar j;
	for(;i>0;i--)
		for(j=0;j<125;j++);
}
void init()
{
	TMOD=0x20;				//T1的方式2定时
	TH1=0xf4;				//波特率为2400
	TL1=0xf4;
	PCON=0x00;				//SMOD=0
	SCON=0x50;				//串行口方式1,REN=1允许接收
	TR1=1;					//启动定时器T1
}
void send(void)//乙机发送函数
{
	uchar i;
	do{
							//delay(1000);
		SBUF=0xaa;			//发送联络信号
		while(TI==0);TI=0;	//等待数据发送完毕
		while(RI==0);RI=0;	//等待乙机应答
	}while(SBUF!=0xbb);		//乙机未准备好,继续联络
	do{
		sum=0;				//校验和变量清零
		for(i=0;i<10;i++)
		{
			//delay(1000);
			SBUF=buf[i];
			sum+=buf[i];	//求校验和
			while(TI==0);
			TI=0;
		}
		//delay(1000);
		SBUF=sum;			//发送校验和
		while(TI==0);TI=0;
		while(RI==0);RI=0;
	}while(SBUF!=0);		//出错,重新发送
}
void receive(void)			//乙机接收函数
{
	uchar i;
	RI=0;
	while(RI==0); RI=0;
	while(SBUF!=0xaa)		//判断甲机是否发出请求
	{
		SBUF=0xff;
		while(TI!=1);TI=0;
		delay(1000);
	}
	SBUF=0xbb;				//发送应答信号BBH
	while(TI==0);			//等待发送结束
	TI=0;
	sum=0;					//清校验和
	for(i=0;i<10;i++)
	{
		while(RI==0);RI=0;	//接收校验和
		buf[i]=SBUF;		//接收一个数据
		sum+=buf[i];		//求校验和
	}
	while(RI==0);
	RI=0;					//接收甲机的校验和
	if(SBUF==sum)			//比较校验和
	{
		SBUF=0x00;			//校验和相等,则发送00h
	}
	else
	{
		SBUF=0xFF;			//出错发送FFH,重新接收
		while(TI==0);TI=0;
	}
}

方式3:
  先比较方式2与方式1,有两点不同之处:
  1. 方式2接收/发送11位信息,第0位为起始位,第1~8位为数据位,第9位是程控位,由用户设置的TB8位决定,第10位是停止位1,这是方式2与方式1的一个不同点。
  2. 方式2的波特率变化范围比方式1小,方式2的波特率=振荡器频率/n。
  当SMOD=0时,n=64。
  当SMOD=1时,n=32。
  而方式3和方式2相比,除了波特率的差别外,其他都相同。
  甲机串口通信程序:

#include <reg52.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
#define TR 0					//接收发送的区别值,TR=0为发送
sbit p=PSW^0;					//p位定义为PSW寄存器的第0位,即奇偶校验位
uchar buf[10]="I LOVE YOU";//{0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//发送的8个数据
void delay(void);
void init();
void send(uchar dat);	//甲机发送函数
void receive(void);		//甲机接收函数

void main(void)
{
	uchar i;
	init();
	if(TR==0)		//TR=0为发送
	{
		while(1)
		{
			for(i=0;i<8;i++)
			{
				send(buf[i]);
				delay();//大概200ms发送一次数据
			}
		}
	}
	if(TR==1)		//TR=1为接收
	{
		receive();
	}
}
void send(uchar dat)
{
	TB8=P;
	SBUF=dat;
	while(TI==0);
	;
	TI=0;	
}
	
void init()
{
//	TMOD=0x20;	//T1的方式2定时-方式2
//	SCON=0x90;	//串行口方式2,REN=1允许接收
//	PCON=0x00;	//SMOD=0
//	
//	TH1=0xfd;	//波特率为9600
//	TL1=0xfd;
//	TR1=1;		//启动定时器T1
	
	//Success
	TMOD=0x20;	//T1的方式2定时-方式2
	SCON=0xc0;	//串行口方式3,REN=1允许接收
	PCON=0x00;	//SMOD=0
	
	TH1=0xfd;	//波特率为9600
	TL1=0xfd;
	TR1=1;		//启动定时器T1
	REN=1;
}

void delay(void)
{
	uchar m,n;
	for(m=0;m<250;m++)
		for(n=0;n<125;n++);
}

  乙机串口通信程序:

#include <reg52.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
#define TR 1					//接收发送的区别值,TR=1为接收
sbit p=PSW^0;					//p位定义为PSW寄存器的第0位,即奇偶校验位
uchar idata buf[10];//={0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a};//发送的10个数据
void delay(void);
void init();
void send(void);			//乙机发送函数
uchar receive(void);		//乙机接收函数

void main(void)
{
	init();
	if(TR==0)				//TR=0为发送
	{	
		//send();				//调用发送函数
	}
	else
	{
		while(1)
		{
			P1=receive();			//调用接收函数
		}
		
	}
}

void init()
{
//	TMOD=0x20;	//T1的方式2定时-方式2
//	SCON=0x90;	//串行口方式2,REN=1允许接收
//	PCON=0x00;	//SMOD=0
//	
//	TH1=0xfd;	//波特率为9600
//	TL1=0xfd;
//	TR1=1;		//启动定时器T1
//	REN=1;
	
	//Success
	TMOD=0x20;	//T1的方式2定时-方式2
	SCON=0xd0;	//串行口方式3,REN=1允许接收
	PCON=0x00;	//SMOD=0
	
	TH1=0xfd;	//波特率为9600
	TL1=0xfd;
	TR1=1;		//启动定时器T1
	REN=1;
}
void delay(void)
{
	uchar m,n;
	for(m=0;m<250;m++)
		for(n=0;n<125;n++);
}
uchar receive(void)
{
	uchar dat;
	while(RI==0);
	;
	RI=0;
	ACC=SBUF;
	if(RB8==P)
	{
		dat=ACC;
		return dat;
	}
}

参考文献
1.《单片机原理与接口技术》张毅刚
资源

返回目录

matlab单片机仿真,51单片机proteus仿真实验设计
weixin_39699313的博客
03-23 2070
描述这个proteus仿真是一个网友做的,该仿真可以生成方波、正弦波、锯齿波和三角波,并且还可以用按键调整波形。不过,对初学者来讲,可能有点复杂。对于本科生来说,这个仿真几乎可以作为毕业论文了吧。当然,需要用实际元器件来调试,制作pcb,焊接。我做的生成锯齿波和生成正弦波的仿真,可以作为学习这个仿真的阶梯。这个仿真主要是用到溢出中断,和外部键盘中断。熟悉中断,和定时器的编程后,实现这个仿真其实也很...
实验5-单片机串行口中断实验.zip
02-03
放置两个51单片机,通过串行口线的互连,应用方式1和方式3,同时设计发送和接受程序,完成两个方式的应用,将发送和接收的内容在虚拟串口中显示。 详细链接:...
keil5+proteus实现中断系统(流水灯为例子)
NTMIAOD的博客
03-27 1835
编程软件编写程序,并通过仿真软件模拟了中断请求和中断服务程序的执行过程。在中断服务程序中,我们需要快速、准确地处理中断请求,然后尽快返回,以便单片机能够继续执行其他任务。如果中断服务程序编写不当,可能会导致单片机无法及时响应其他中断请求,从而影响整个系统的性能。利用开关控制8个LED的闪烁与点亮:当开关拨到1时,LED闪烁;当开关拨到0 时,LED点亮。利用开关控制8个LED的闪烁与流水:当开关拨到1时,LED流水;当开关拨到0 时,LED闪烁。//外部0中断边沿触发。//外部0中断边沿触发。
实验(七):串行口实验
心之所向
12-07 1万+
单片机原理及应用》实验报告(七)【zzuli】
基于51单片机的点阵显示的proteus仿真(附源码)
最新发布
xiaobuding的博客
04-27 2231
上一篇我们学习了独立按键和矩阵按键扫描,今天我们讲点阵。那点阵是个什么东西呢?led大家都知道,其实点阵也是led,不信大家看下面的原理图。点阵和LED之间的关系类似于矩阵按键和独立按键之间的关系,点阵由多个LED灯组成,可以按照特定的排列方式组织成图像或文字。而LED则是点阵的基本组成单元,通过控制LED的亮灭来实现图像或文字的显示。今天主要讲了基于51单片机的点阵显示的proteus仿真
单片机 串口通信实验
美女的博客
08-11 5529
思考题: 设计两个单片机通过串口方式1进行全双工数据通信,要求将波特率设置为2400,晶振频率为11.0592MHz,请分别编写发送程序和接收程序,接收端需使用液晶屏幕显示接收内容,发送端可循环发送一个字符串(自己定义一个字符串,例如“Welcome to Wuhan”)。 (1)电路图如下: (2)设计思路: 1、电路: 两个单片机都是用P0口连接LCD1602数据线的0~7位,P20连接寄存器选择位RS,P21连接读写选择位RW,P2^2连接使能位E。然后机的RXD连机的TXD,机的TXD连
基于51单片机之间的双向通信(Proteus仿真
JaneZJW的博客
09-19 2449
基于51单片机之间的双向通信(Proteus仿真
Proteus仿真实验---USART串口通信实验
weixin_46510976的博客
12-04 9867
一、概要 本次实验使用51单片机的串口与Protues的Virtual Terminal(虚拟终端)进行一个简单的串口通信,实现的功能是让Virtual Terminal通过串口向单片机发送数据,单片机接收到数据后经串口将数据发送到Virtual Terminal上显示。 Virtual Terminal:如下图,在使用前根据程序设计配置VIRTUAL TERMINAL的参数,本实验使用的是11.0592MHz的晶振,波特率为9600不加倍,串口工作于方式1,8位数据位1位停止位
51单片机——串口通信(发送和接受数据)
热门推荐
ssssshhbh的博客
02-21 4万+
51单片机串口通信(发送和接受数据)
51单片机4×4键盘矩阵控制条形LED显示proteus仿真+keil程序软件源码.rar
06-28
该资源包含的是一个51单片机的项目实践,主要涉及了4×4键盘矩阵的控制以及条形LED显示,并提供了Proteus仿真环境和Keil编程软件的源码。这个项目非常适合初学者或者对单片机编程感兴趣的工程进行学习和参考。 51...
Proteus仿真+Keil程序】51单片机IO扩展之并转串(74HC165)
07-23
本主题将探讨如何通过Proteus仿真软件和Keil编程环境,实现51单片机的IO扩展,具体是将并行输入转换为串行输入,利用74HC165移位寄存器这一过程。74HC165是一款8位串行入/并行出的移位寄存器,它可以有效地帮助我们...
C语言实现51单片机和ADC0832芯片的AD模数转换实验(含proteus仿真+keil项目)
05-30
5. **Proteus仿真**:Proteus是一款强大的电子设计自动化(EDA)工具,提供电路仿真和虚拟原型测试功能。在实验中,使用Proteus可以预览和验证AT89C52与ADC0832的连接是否正确,以及C代码是否能正确控制转换过程。 6....
proteus仿真+keil源代码。STC15W4K32S4单片机读取DS18B20温度,并发送至串口。
07-15
本文将详细讲解基于STC15W4K32S4单片机的DS18B20温度传感器读取及串口通信的实现过程,结合Proteus仿真Keil开发环境。首先,我们要了解涉及的核心技术点:STC15系列单片机、DS18B20温度传感器以及串行通信。 STC...
51单片机 多机串口通讯实验与双机串口通讯实验proteus仿真
眰恦
04-10 1万+
51单片机 多机串口通讯实验与双机串口通讯实验proteus仿真
51单片机UART通信串口打印信息+proteus仿真+VSPD虚拟串口
qq_48579018的博客
08-21 2873
51单片机UART串口通信,proteus仿真打印串口信息,VSPD虚拟串口使用
51单片机串口通信的程序实现与Proteus仿真
weixin_44509533的博客
05-19 2万+
一、51单片机的串口通信 关于51单片机串口通信的讲解的博客有很多,这里就不再详细讲解。下面给出程序 1.uart.h #ifndef __UART__ #define __UART__ typedef unsigned char u8; void UART_Init(); void UART_Send_Data(u8 byte); u8 UART_Receive_Data(); #endif 2.uart.c #include "reg52.h" #include "uart.h" //串口初始化
基于51单片机串口实验设计
小敢心的博客
06-12 2513
基于51单片机串口实验设计 一实验内容: 实现两个单片机系统(A,B)之间通过串口方式 1 传输数据。 1)可以通过一个按键任意指定某个单片机是发送端,之后该单片机发送消 息通知另一个单片机是接收端,并且发送端在本地数码管显示“A”,接 收端显示“B”; 2)发送端依次发送 0~9 给发送端,接收端每接收一个字符就将该字符与前 面接收的字符累加后再发回发送端,发送端和接收端都能在数码管上显 示接收和发送的字符; 3)如果数据传输过程中出现错误需要重新发送; 4)所有数据传输完成后,发送端需要通知接收端结束此
51单片机温度控制调速风扇仿真设计
weixin_52733843的博客
09-03 7815
单片机(Microcontrollers)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。从上世纪80年代,由当时的4位、8位单片机,发展到现在的300M的高速单片机。本文的单片机特指51单片机,具体芯片型号是。
51单片机Proteus仿真实验Keil工程
qq_43353985的博客
08-11 2210
第一次在CSDN写博客。记得刚开始是什么也不懂的小白时,在搜索中知道了有个叫CSDN的网站,有时遇到一些问题,在这个地方有耐心的多转几圈、多转几圈,或许就能找到一些答案、思路乃至灵感。到了今天,接触东西的更多,愈发觉得知识海洋的深不可测。人的记忆就像画在沙滩上的画,风一吹就变得模糊不清,一些东西或许记录下来会更好,这些笔记还可以作为一个小白成长中的见证,这里或许是一个不错的平台。
单片机原理及应用-基于ProteusKeil-C林立版课后习题答案.docx
11-27
单片机原理及应用-基于ProteusKeil-C林立版课后习题答案.docx

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • 51单片机Proteus仿真+Keil工程-实验7-单片机AD和DA实验 14948
  • STM32 LoRa无线数传模块 PC通过串口传输数据到单片机 13629
  • 51单片机Proteus仿真+Keil工程-实验6-单片机扩展RAM6264实验 12457
  • 51单片机Proteus仿真+Keil工程-实验2-按键-数码管 11621
  • 51单片机Proteus仿真+Keil工程-实验5-单片机串行口中断实验 9659

分类专栏

  • BUG随记 4篇
  • STM32 2篇
  • Keil工程 9篇
  • 51单片机 8篇
  • Proteus仿真 9篇
  • Python与深度学习 2篇
  • Task 1篇
  • 数字电子 1篇
  • STM8 1篇

最新评论

  • 51单片机Proteus仿真+Keil工程-实验7-单片机AD和DA实验

    轩笑鹄: 我没试过,要输出符合要求的范围一般都需要分压或放大处理吧

  • 51单片机Proteus仿真+Keil工程-实验7-单片机AD和DA实验

    Megan_Leo: 这个可以不分压,直接一个IN口输出0-5V嘛

  • STM32 LoRa无线数传模块 PC通过串口传输数据到单片机

    weixin_43386620: 你好,请问无线数传模块需要进行什么配置吗?

  • 序列检测器-检测巴克码1110010仿真

    m0_74063204: 哥,如果是检测1101,要改哪些地方

  • STM32 LoRa无线数传模块 PC通过串口传输数据到单片机

    轩笑鹄: 不是,是另一家的Lora,端口设置对的上应该可以

大家在看

  • Java——数据类型与变量
  • 昇思25天学习打卡营第03天 | 张量 Tensor 1242
  • Locust 性能测试工具:原理与使用 908
  • 二叉树的链式结构
  • C++的线程管理 688

最新文章

  • 【vscode】Could not establish connection to “xxx(IP)“: Downloading VS Code Serverfailed - please insta
  • 神舟电脑 Windows7系统从启动盘安装过程
  • NVIDIA显卡驱动丢失 安装失败
2024年1篇
2022年4篇
2021年2篇
2020年12篇

目录

目录

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值

深圳SEO优化公司南澳企业网站建设大芬百度标王丹竹头阿里店铺运营木棉湾百搜词包松岗网站排名优化民治设计网站东莞网站优化按天收费大芬网络推广双龙优化丹竹头SEO按效果付费吉祥网站开发宝安企业网站建设惠州SEO按效果付费塘坑网站设计光明网页制作大鹏网站制作平湖企业网站建设松岗阿里店铺运营广州网络营销东莞百姓网标王推广盐田网站制作罗湖如何制作网站沙井百度关键词包年推广南联设计网站惠州网站优化软件永湖seo排名龙华网站制作设计荷坳网站排名优化横岗建站民治如何制作网站歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化