51单片机串口通信,接收端显示的数码管最后两位数字一直...

2020-01-12 17:14发布

本帖最后由 yuguoyu123456 于 2019-11-27 20:00 编辑

我用串口通信使两个单片机的8位数码管各显示时间,一个显示时间,并发数据,一个收到数据显示,现在的问题是:后面数据覆盖了一部分前面的数据,使小时位置一直在波动,我应该怎么解决
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
14条回答
hill123
1楼-- · 2020-01-12 20:28
描述的很不通顺,理解的不是太清楚,要不上个图看下现象,是程序问题吧
yuguoyu123456
2楼-- · 2020-01-12 23:26
这是从机接收中断的void ser_isr() interrupt 4
{
static unsigned char tou = 0x00;

static unsigned char flag = 0;





RI=0;
tou = SBUF;


       
if(flag == 1 )
{
        buf[num]=SBUF;
        num++;

        if(num == 6 )
        {
                num = 0;
                flag = 0;
        }
                if(tou == 0x60 )
        {
                num = 0;
                flag = 0;
        }
}
if ( tou == 0x55 )
flag = 1;






}



yuguoyu123456
3楼-- · 2020-01-13 03:35
 精彩回答 2  元偷偷看……
yuguoyu123456
4楼-- · 2020-01-13 09:24
两个数码管应该一样才对
hill123
5楼-- · 2020-01-13 10:43
你先发送不变的数字试试,比如发送端显示12-34-56,并发送数组123456,看看接收端显示的是不是12-34-56
yuguoyu123456
6楼-- · 2020-01-13 12:47
hill123 发表于 2019-11-27 18:32
你先发送不变的数字试试,比如发送端显示12-34-56,并发送数组123456,看看接收端显示的是不是12-34-56 ...

是的,他不会变

一周热门 更多>