/*
项目名称:串口接收实验
项目内容:串口接收电脑发送的数据控制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