单片机问题 关于IE

来源:百度知道 编辑:UC知道 时间:2024/06/13 20:51:13
#include<reg51.h>
void main()
{
unsigned char a;
TMOD=0x20;
TL1=0xfd;
TH1=0xfd;
SCON=0xd8;
PCON=0;
TR1=1;
while(1)
{while(RI==0);
RI=0;
a=SBUF;
SBUF=a;
while(TI==0);
TI=0;}}
比如这段程序 没有初始化IE 请问系统怎么设置它的?

这段程序没有用到中断,所以当然不需要设IE寄存器了。
51单片机发送和接收数据都有两种方式,中断方式和查询方式。
中断方式要设置IE开启,然后产生中断的时候进入中断处理服务函数去处理。
而上题中用的是查询方式来接收和发送的。while(RI==0),它的意思就是一直在查看RI的值,因为接收成功的话RI会被置1,所以当while(RI==0)这句话结束时,代表RI已经被置1,即接收完成。然后把接收的SBUF赋给a,再将a赋给SBUF,发送出去。while(TI==0),同理,这句话结束时,代表发送完成,完成后清除TI。
可以看出,查询的方式比较占用CPU,它一直在查询。而不像中断那样,发送或接收后都不占用CPU,当中断产生时才再次使用CPU
有问题随时HI我