为啥这个程序上位机不能显示返回值 i 这是为什么 大神们
#include <reg51.h>
unsigned char flag,a;
int i;
void main ()
{
TMOD=0x20;
TH1=0xfd;
TL1=0xfd;
TR1=1;
REN=1;
SM0=0;
SM1=1;
EA=1;
ES=1;
while(1)
{
if(flag==1)
{
ES=0;
flag=0;
SBUF=i;
while(!
ti);
TI=0;
SBUF=a;
while(!TI);
TI=0;
ES=1;
}
}
}
void inti () interrupt 4
{
RI=0;
a=SBUF;
P0=SBUF;
i=0;
i++;
if(i==256)
i=0;
flag=1;
}
{
RI=0;
a=SBUF;
P0=SBUF;
i=0;
i++;
if(i==256)
i=0;
flag=1;
}
你每次进入中断都i=0;i++;那就是i永远都是1了
那应该怎么改 求指导 谢谢 那把i=0放外面?
在最前面那个int i改回unsigned int i,那个i=0就不需要了
- #include <reg51.h>
- unsigned char flag,a;
- int i;
- void main ()
- {
- TMOD=0x20;
- TH1=0xfd;
- TL1=0xfd;
- TR1=1;
- REN=1;
- SM0=0;
- SM1=1;
- EA=1;
- ES=1;
- while(1)
- {
- if(flag==1)
- {
- ES=0;
- flag=0;
- SBUF=i; //这个做什么的?
- while(!TI);
- TI=0;
- SBUF=a;
- while(!TI);
- TI=0;
- ES=1;
- }
- }
- }
- void inti () interrupt 4
- {
- RI=0;
- a=SBUF;
- P0=SBUF;
- i=0;
- i++;
- if(i==256)
- i=0;//i循环意义何在?
- flag=1;
- }
复制代码一周热门 更多>