找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1039|回复: 2
打印 上一主题 下一主题
收起左侧

单片机串口实现数码管的动态显示,为什么无法接受数据?

[复制链接]
跳转到指定楼层
楼主
ID:904179 发表于 2021-4-13 13:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include<reg52.h>#define uchar unsigned char

#define uint unsigned int
        unsigned char dat;//用于存储单片机接收发送缓冲寄存器SBUF里面的内容

uchar const dofly[]={0x05,0x7d,0x46,0x54,
0x3c,0x94,0x84,0x5d,0x04,0x14
};
uchar  code seg[]={0x01,0x79,0x42,0x50,0x38,
0x90,0x80,0x59,0x00,0x10
};
sbit wela=P2^7;
uchar bai,shi,ge;

void delay(unsigned int xms )
{
        unsigned int i,j;
        for(i=xms;i>0;i--)
                for(j=110;j>0;j--);
}

void display(dat)
{
        bai=dat/100;
        shi=(dat%100)/10;
        ge=dat%10;
        wela=1;
        P0=dofly[bai];
        P2=seg[0];
        delay(3);
        wela=1;
        P0=dofly[shi];
        P2=seg[1];
        delay(3);
        wela=1;
        P0=dofly[ge];
        P2=seg[2];
        delay(3);
}
void Init_Com(void)
{
        TMOD=0x20;
        PCON=0x00;
        SCON=0x50;
        TH1=0xfd;
        TL1=0xfd;
        TR1=1;
}
void main()
{
        Init_Com();
        while(1)
        {
                if(RI)
                        
                {dat=SBUF;
                        RI=0;
                        SBUF=dat;
                }
                display(dat);
        }
}
                        
为什么无法接受数据,哪位大佬帮忙看看
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:900662 发表于 2021-4-13 21:55 | 只看该作者
你初始化的时候总中断开关没开   ,T1不会产生波特率,ES也没开,串口中断不开怎么接收数据呢????

ES=1; //开串口中断  
    EA=1; //打开总中断
回复

使用道具 举报

板凳
ID:904179 发表于 2021-4-14 21:50 | 只看该作者
jfmdam 发表于 2021-4-13 21:55
你初始化的时候总中断开关没开   ,T1不会产生波特率,ES也没开,串口中断不开怎么接收数据呢????

  ...

不行哎
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表