为什么我的程序只能发送一个字节到上位机

2019-07-15 13:54发布

#include<reg52.h>

unsigned char flag,a,i;
unsigned char table[]="I get ";
void main()
{
        SCON = 0x50;
        TMOD = 0x20;
        PCON = 0x80;
        TH1 = 0xf3;
        TL1 = 0xf3;
        TR1 = 1;
        EA = 1;
        ES = 1;

        while(1)
        {
                if(flag==1)
                {
                        ES = 0;

                        for(i=0;i<6;i++)
                        {
                                SBUF = table[i];
                                while(!ti);
                                TI = 0;       
                        }
                        SBUF = a;
                        while(!TI);
                        TI = 0;
                        ES = 1;
                        flag = 0;
                }       
        }       
}

void ser() interrupt 4
{
        RI = 0;
        a = SBUF;
        flag = 1;       
}


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
9条回答
shiyidezhu
1楼-- · 2019-07-15 16:45
 精彩回答 2  元偷偷看……
shiyidezhu
2楼-- · 2019-07-15 19:56
应该是串口接收时被占用了吧!
liujinyi016
3楼-- · 2019-07-16 01:54
TI = 0;     这句是不是有问题
zy1996
4楼-- · 2019-07-16 07:47
jinyi7016 发表于 2016-5-20 14:16
TI = 0;     这句是不是有问题

这个没问题,这个是要软件清零
zy1996
5楼-- · 2019-07-16 12:28
shiyidezhu 发表于 2016-5-20 13:39
应该是串口接收时被占用了吧!

我把for语句删除后就可以发送多个字符串,这是为什么
Mr.DHG
6楼-- · 2019-07-16 15:43
 精彩回答 2  元偷偷看……

一周热门 更多>