您的位置:首页 > 其它

51单片机(AT89C52)串口收发程序

2012-07-02 14:37 645 查看
#include<reg52.h>
#define uchar unsigned char
uchar rtemp,sflag;
void SerialInit()	//11.0592M晶振,波特率9600
{
TMOD=0x20;	//设置定时器1工作方式为方式2
TH1=0xfd;
TL1=0xfd;
TR1=1;		//启动定时器1

SM0=0;		//串口方式1
SM1=1;
REN=1;		//允许接收
PCON=0x00;	//关倍频
ES=1;		//开串口中断
EA=1;		//开总中断
}
void SerialService() interrupt 4
{
if(RI==1)
{
RI=0;
rtemp=SBUF;	//读缓冲区
sflag=1;
}
}
void main()
{
SerialInit();
while(1)
{
if(sflag==1)
{
ES=0;	//发送期间关闭串口中断
sflag=0;
SBUF=rtemp;
while(!TI);
TI=0;
ES=1;	//发送完成开串口中断
}
}
}
 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c 工作