







 
 


/*
项目名称:串口接收实验
项目内容:串口接收电脑发送的数据控制led的亮灭
时间:2015年12月23日
项目负责人:YUAN
*/
#include <reg52.h>
typedef unsigned char	uChar8;
typedef unsigned int	uInt16;
void UartInit(void);	//串口初始化
void ReceiveData(void);	//接收数据
void main(void)
{
	/*初始化:包括定时器中断的设置,
	  串口寄存器设置,波特率设置*/
	  UartInit();
	while(1)
	{
		/*接收计算机发送的数据并送给led控制端口*/	
		ReceiveData();
	}
}
void UartInit(void)
{
	TMOD &= 0x0f;	 //只改变要改变的
	TMOD |= 0x20;	//设置定时器0为工作方式2
	TL1 = 0xfd;
	TH1 = 0xfd;		//设置波特率为9600bps
	TR1 = 1;		//允许T1开始计数
	SCON &= 0x5f;
	SCON |= 0x50;	//设置串口工作在方式1,允许接收数据 
}
void ReceiveData(void)
{
	//如果接收中断为1,则说明有发送
	if(RI)
	{
		RI = 0;	
		P0 = SBUF;	//把发送的数据送给P0控制LED
	}
}
原文:http://www.cnblogs.com/yuanbao825/p/5107675.html