【求救!】怎么通过串口,让单片机数码管显示电脑传过来的数???

时间:2021-10-29 19:47:40
大家帮我看一下有什么问题,如果我想通过串口从计算机传一个数到单片机,然后让单片机显示这个数,但是数码管并没有亮,旁边的led灯倒是亮了。我还没有发现有什么问题,麻烦大家帮我看下,谢了!!


#include <reg52.h>

unsigned char temp,i;
unsigned char code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};

sbit P27=P2^7;

void init()
{
TMOD=0x20;
TH1=TL1=0xfd;
TR1=1;
SCON=0x50;
EA=1;
ES=1;

}

void main()
{
init();
while(1)
{
if(temp>15)
{
temp=0;
}  

for(i=0;i<15;i++)
{
if(temp==table[i])
{
P27=0;
P0=table[i];
P27=1;
}
}
}

}

void ser() interrupt 4
{
if(RI==1)
{
RI=0;   //必须用软件将RI置零
temp=SBUF;
P0=temp;      //让led灯点亮SBUF传过来的数
SBUF=temp;
while(!TI);    //等待TI传输完数据,传输完数据,TI=1
TI=0;  
}
}



7 个解决方案

#1


我知道为什么了...

#2


怎么回事,想知道

#3


怎么回事?

#4


没有时间延时 数码管动态扫描

#5


你是不是送错口了,我看你led用的是P0口,而数码管那边也是用的P0口,应该是写错了吧

#6


对啊,你是不是送错口了,我看你led用的是P0口,而数码管那边也是用的P0口,应该是写错了吧 

#7


没有时间延时 数码管动态扫描

#1


我知道为什么了...

#2


怎么回事,想知道

#3


怎么回事?

#4


没有时间延时 数码管动态扫描

#5


你是不是送错口了,我看你led用的是P0口,而数码管那边也是用的P0口,应该是写错了吧

#6


对啊,你是不是送错口了,我看你led用的是P0口,而数码管那边也是用的P0口,应该是写错了吧 

#7


没有时间延时 数码管动态扫描