【51单片机学习过程记录】16 中断之 串口中断的应用2(中断方式)

声明:【51单片机学习过程记录】全是我自己学习、实践所记录的过程,我只是菜鸟,所有论点和观点仅代表我个人,不能确定是这个技术的真理。我的目的是学习和有可能成为可以向别人分享的经验,因此有错误我会虚心接受,并认真改正。

代码:


#include <reg52.h>
#define uchar unsigned char
#define uint  unsigned int
uchar ch,RIflag,TIflag;


void serialinit()
{
SCON|=0x50;//串口模式一用10位UART(异步收发传输器),波特率可变
PCON|=0x0;//SMOD=0波特率不加倍
TMOD|=0x20;//定时器1为模式2,8位自动填充计数器
TH1=0xfd;//波特率为9600bps。
TL1=0xfd;
TR1=1;//计时器1开启
EA=1;//总中断开启
ES=1;//串口中断开启
}


void sentch()
{
SBUF=ch;
while(!TI);
TI=0;
}
void main()
{
serialinit();
while(1)
{


if(RIflag==1)
{
ES=0;
RIflag=0;
sentch();
ES=1;
}
};
}


void serialportinterrupt() interrupt 4
{
if(RI)
{
RI=0;
ch=SBUF;
  RIflag=1;
}

}


小结:

主函数检测接收中断,然后调用发送函数发送数据。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值