中级会员
- 积分
- 374
- 金钱
- 374
- 注册时间
- 2012-12-30
- 在线时间
- 48 小时
|
发表于 2018-3-16 22:51:44
|
显示全部楼层
求大神帮忙看看哪有问题,用串口给发数据不能实现灯的亮灭
#include <STC12C5A60S2.h>
#define uchar unsigned char
#define S2RI 0x01
#define S2TI 0x02
sbit led=P1^1;
uchar temp;
void UartInit(void) //9600bps@11.0592MHz
{
AUXR &= 0xF7; //波特率不倍速
S2CON = 0x50; //8位数据,可变波特率
AUXR |= 0x04; //独立波特率发生器时钟为Fosc,即1T
BRT = 0xDC; //设定独立波特率发生器重装值
AUXR |= 0x10; //启动独立波特率发生器
IE2 = 0x01;
EA = 1;
}
void Uart2() interrupt 8 using 1
{
if (S2CON & S2RI)
{
S2CON &= ~S2RI; //Clear receive interrupt flag
temp = S2BUF; //P0 show UART data
led=!led;//先一次发一个,看能不能收到
}
}
void main()
{
UartInit();
while(1)
{
if(temp=='a')
{
led=0;
}
if(temp=='b')
{
led=1;
}
}
} |
|
|