C51单片机串口点亮一个led
因为最近要用到51的串口做一些通信,这里写一个点led的程序记录一下。
说是一个led,其实可以随意多个。
主要使用到的东西:
STC89C52芯片,USB转TTL下载器,led灯若干,面包板,1K电阻,杜邦线.
代码如下:
#include<reg52.h>
typedef unsigned int u16;
typedef unsigned char u8;
sbit led1 = P2^1;
sbit led2 = P2^2;
void UsartInit()
{
SCON = 0x50;//波特率为4800
TMOD = 0x20;
PCON = 0x80;
TH1 = 0xF4;
TL1 = 0xF4;
ES = 1;
EA = 1;
TR1 = 1;
}
void main(void)
{
UsartInit();//串口初始化
led1 = 1;//随意设置初值为0或1
led2 = 0;
while(1)
{
}
}
void Usart() interrupt 4
{
u8 receiveData,i;
if(SBUF=='0')//0控制第一个led
led1 = ~led1;
if(SBUF=='1')//1控制第二个led
led2 = ~led2;
receiveData = SBUF;
RI = 0;
SBUF = receiveData;
while(!TI);
TI = 0;
}
串口助手界面如下: