单片机串口中断问题

#include<REG51.H>#defineucharunsignedchar#defineuintunsignedintucharcodeSEG7[10]={0x3... #include <REG51.H>
#define uchar unsigned char
#define uint unsigned int
uchar code SEG7[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
uchar code ACT[4]={0xfe,0xfd,0xfb,0xf7};
/*************************************************************/
uchar code as[]=" Receving Data:\0";
uchar a=0x30,b;
//****************************************************
void init(void)
{

TMOD=0x20;
TH1=0xfd;
TL1=0xfd;
SCON=0x50;
TR1=1;
ES=1;
EA=1;
}
//************************
void delay(uint k)
{
uint data i,j;
for(i=0;i<k;i++)
{
for(j=0;j<121;j++){;}
}
}
//**************************************
void main(void)
{ uchar i;
init();
while(1)
{
P0=SEG7[(a-0x30)/10];
P2=ACT[1];
delay(1);
P0=SEG7[(a-0x30)%10];
P2=ACT[0];
delay(1);
if(RI)
{
RI=0;i=0;
while(as[i]!='\0'){SBUF=as[i];while(!TI);TI=0;i++;}
SBUF=b;while(!TI);TI=0;
EA=1;
}
}
}
//*****************************************
void serial_serve(void) interrupt 4
{
a=SBUF;
b=a;
EA=0;
}

各位大哥:
1. 请问是否RI置1的时候第一时间就入中断服务子程序( void serial_serve(void) interrupt 4 )?
2. 会不会先入了if(RI)中,被清0的?
3. 当执行到主程序时,到
P2=ACT[0];
delay(1);
if(RI)
执行delay(1)之后,如RI不是1时,会否在delay处停留,不然的话,按道理是无限循环的,那么a就狂减0x30。(应该不是,本人菜鸟,看不懂)
4.可不可讲述下程序的主要运行顺序小弟听听………如可以的话小弟会加分…万分感谢………………
5.sbuf其实是不是同一个物理地址?怎样知道它是发送还是接收?
展开
 我来答
37772166
2008-08-28 · TA获得超过693个赞
知道小有建树答主
回答量:414
采纳率:0%
帮助的人:0
展开全部
1,只要,RI和TI中有一个为1就会马上进入中断服务子程序。
2,开了中断,不会先进入IF(RI)的。
3,不会在DELAY停留。会再次从WHILE(1)开始。
4,先串口初始化,进入动态扫描和判断RI(也就是WHILE(1)中。如果RI为1,则向外发送RECEIVING DATA 。发送完后就再打开中断。
在中断服务程序中,先取出数据,并关中断。
5,SBUF是同一地址。根据RI和TI可以判断是发送还是接收。
大概就是这样了。。
百度网友146035605
2008-08-29 · TA获得超过131个赞
知道小有建树答主
回答量:109
采纳率:0%
帮助的人:94.9万
展开全部
执行delay(1)之后,如RI不是1时,会否在delay处停留,不然的话,按道理是无限循环的,那么a就狂减0x30。(应该不是,本人菜鸟,看不懂)

不是的
a-0x30没有对a进行赋值的 也就是减法运算过程的出口并不在a上 这点和汇编不同
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
llj3366
2008-08-27 · TA获得超过115个赞
知道小有建树答主
回答量:486
采纳率:0%
帮助的人:350万
展开全部
牛人一个。我根本看不懂。。。大哥。。哪天教教我啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式