硬件说明
- 单片机型号:STC89C52
- 晶振频率:11.0592MHZ
参考代码
#include <reg52.h>
/* 自定义变量类型 */
typedef unsigned char uchar; //0~255
typedef unsigned int uint; //0~65535
uchar a;
uchar flag = 0;
void UartInit(void) //9600bps@11.0592MHz
{
TMOD = 0x20; //设置定时器1为方式2
TH1 = 0xfd; //装入初值 波特率为9600
TL1 = 0xfd;
TR1 = 1; //启动定时器1
SM0 = 0;
SM1 = 1;
REN = 1; //接收使能
EA = 1; //打开总中断
ES = 1; //打开串口中断
}
void main()
{
UartInit();
while(1)
{
if(flag==1)
{
ES = 0;
flag = 0;
SBUF = a;
while(!TI); //等待数据传输完成
TI = 0;
ES = 1;
}
};
}
void serial() interrupt 4
{
a = SBUF;
P0 = a;
RI = 0;
flag = 1;
}