关于stc89c52主函数的问题

2019-07-15 09:01发布

void
main( void )
{        
        unsigned char i;
        for( i=0;i<10;i++ )
        {
                ti = 1;
        }
        while( 1 );
}
TI = 1,进入串口中断,发送数据。
循环十次把一个十个数据的数组给发送出去。
下载后发现串口一直再发数据,每进入中断我都TI=0,按道理应该只是输出十个数据就停留在while(1)这里。
请问谁有遇到过这个问题并解决,指教一下

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
8条回答
fudadaqaz987
1楼-- · 2019-07-15 12:57
谢谢
wulinwl
2楼-- · 2019-07-15 15:21
#include<reg52.h>
void main()
{        
        unsigned char code table[]={
        0x00,0x01,0x02,0x03,
        0x04,0x05,0x06,0x07,
        0x08,0x09};
        unsigned char i;
        TMOD=0x20;
        TH1=0xfd;
        TL1=0xfd;
        TR1=1;
        REN=1;
        SM0=0;
        SM1=1;
        for( i=0;i<10;i++ )
        {
                SBUF=table[i];
                while(!TI);
                TI=0;
        }
        while(1);
}
houjue
3楼-- · 2019-07-15 19:38
沙发说的对,还要看其它函数具体分析才行。
一天一地
4楼-- · 2019-07-16 00:39
谢谢大神回复
蔡聪
5楼-- · 2019-07-16 04:24
 精彩回答 2  元偷偷看……
勇哥-lzu
6楼-- · 2019-07-16 07:46
先找个能用的串口程序编译了,下载看看结果,弄懂了再改一改;你这里问题很多,首先在main函数中没对串口和定时器进行初始化,其次TI是发送完成中断,进入TI中断后,将TI清零,然后再发送一个字符,TI又变成1了,这就是程序会一直发送的原因。为什么你没配置串口,竟然可以发送、进入串口中断,我不懂

一周热门 更多>