为啥这个程序上位机不能显示返回值 i

2019-07-15 23:06发布

为啥这个程序上位机不能显示返回值 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;
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
10条回答
CrazyMCU
1楼-- · 2019-07-16 05:05
void inti () interrupt 4
{
        RI=0;
        a=SBUF;
        P0=SBUF;
        i=0;
        i++;
        if(i==256)
                i=0;
        flag=1;
}
你每次进入中断都i=0;i++;那就是i永远都是1了
西雅图之恋
2楼-- · 2019-07-16 08:36
本帖最后由 西雅图之恋 于 2013-8-12 10:55 编辑
CrazyMCU 发表于 2013-8-11 16:47
void inti () interrupt 4
{
        RI=0;

那应该怎么改 求指导 谢谢 那把i=0放外面?
CrazyMCU
3楼-- · 2019-07-16 14:06
西雅图之恋 发表于 2013-8-12 10:53
那应该怎么改 求指导 谢谢 那把i=0放外面?

在最前面那个int i改回unsigned int i,那个i=0就不需要了
tangkii
4楼-- · 2019-07-16 20:02
  1. #include <reg51.h>

  2. unsigned char flag,a;
  3. int i;

  4. void main ()
  5. {
  6.         TMOD=0x20;
  7.         TH1=0xfd;
  8.         TL1=0xfd;
  9.         TR1=1;
  10.         REN=1;
  11.         SM0=0;
  12.         SM1=1;
  13.         EA=1;
  14.         ES=1;

  15. while(1)
  16.         {
  17.                 if(flag==1)
  18.                 {        
  19.                         ES=0;
  20.                         flag=0;
  21.                                                SBUF=i; //这个做什么的?
  22.                         while(!TI);
  23.                         TI=0;
  24.                         SBUF=a;
  25.                         while(!TI);
  26.                         TI=0;
  27.                         ES=1;                        
  28.                 }
  29.         }
  30. }

  31. void inti () interrupt 4
  32. {
  33.         RI=0;
  34.         a=SBUF;
  35.         P0=SBUF;
  36.         i=0;
  37.         i++;
  38.         if(i==256)
  39.                 i=0;//i循环意义何在?
  40.         flag=1;
  41. }
复制代码
tangkii
5楼-- · 2019-07-16 22:36
 精彩回答 2  元偷偷看……
徦裝妸憐
6楼-- · 2019-07-17 00:26
{:12:}{:12:}{:12:}

一周热门 更多>