51单片机串口发送数字给PC

51单片机用数码管发过来的数怎么换算成十进制,求看看

这是主函数


```c++
#include<regx52.h>
#include"delay.h"
#include "key.h"

unsigned char receivedata=0,x=0,y=0,num;
unsigned char NixieTable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x6f};
                                                                                 
void Nixie(unsigned char Location,Number)
 {
     switch(Location)
    {
        case 7:P2_4=0;P2_3=0;P2_2=1;break;
        case 8:P2_4=0;P2_3=0;P2_2=0;break;
    }
    P0=NixieTable[Number];
    delay(1);
    P0=0x00;
 }

void uart_init()
{
    SCON=0x50;                  //REN=1是才能接收
    PCON |=0x80;
    TMOD |=0x20;              //设置定时器模式
    TL1 = 0xfa;                  //设定定时初值
    TH1 = 0xfa;                  //设定定时重装值
    TR1 =1;                      //启动定时器1      
    EA=1;                       //启动所有中断    一个开关
    ES=1;                       //串口中断         一个开关

}

void main()
{
    uart_init();    
    while(1)
   {    
             x=receivedata/10;
        y=receivedata%10;    
        Nixie(7,x);
        delay(1);
        Nixie(8,y);
        delay(1);        
        num=key();
        if(num!=0)
        {
         SBUF=num;
        num=0;
        }
   }
}

/*void UART_SendByte(unsigned char Byte)
{
     SBUF=Byte;
     while(TI==0);
     TI=0;
}*/

void usart()  interrupt 4
{
                        //保存我们接收的数据
    receivedata=SBUF;
    receivedata=receivedata%16+(receivedata/16)*10;    //十六进制转为十进制
    RI=0;                             //软件清0
    if(!TI);                         //检测是否发送完成,发送完成后TI=1
    TI=0;
}

 /*void UART_Routine() interrupt 4
{
     if(RI==1)
     {
          receivedata=SBUF;

          UART_SendByte(SBUF);
          RI=0;
     }
} */




这里是矩阵按键
#include<regx52.h>
 #include "DELAY.H"
     
unsigned char key()
{
     unsigned char keynumber=0;    
     P1=0xff;                                                          //扫描那个按键按下了
     P1_3=0; 
     if(P1_7==0){delay(20);while(P1_7==0);delay(20);keynumber=1;}
     if(P1_6==0){delay(20);while(P1_6==0);delay(20);keynumber=5;}
     if(P1_5==0){delay(20);while(P1_5==0);delay(20);keynumber=9;}  //while的作用是检测按钮是否按下,一直按住就一直循环,松开才继续运行
     if(P1_4==0){delay(20);while(P1_4==0);delay(20);keynumber=13;}

     P1=0xff;
     P1_2=0; 
     if(P1_7==0){delay(20);while(P1_7==0);delay(20);keynumber=2;}
     if(P1_6==0){delay(20);while(P1_6==0);delay(20);keynumber=6;}
     if(P1_5==0){delay(20);while(P1_5==0);delay(20);keynumber=10;}
     if(P1_4==0){delay(20);while(P1_4==0);delay(20);keynumber=14;}

     P1=0xff;
     P1_1=0; 
     if(P1_7==0){delay(20);while(P1_7==0);delay(20);keynumber=3;}
     if(P1_6==0){delay(20);while(P1_6==0);delay(20);keynumber=7;}
     if(P1_5==0){delay(20);while(P1_5==0);delay(20);keynumber=11;}
     if(P1_4==0){delay(20);while(P1_4==0);delay(20);keynumber=15;}

     P1=0xff;
     P1_0=0; 
     if(P1_7==0){delay(20);while(P1_7==0);delay(20);keynumber=4;}
     if(P1_6==0){delay(20);while(P1_6==0);delay(20);keynumber=8;}
     if(P1_5==0){delay(20);while(P1_5==0);delay(20);keynumber=12;}
     if(P1_4==0){delay(20);while(P1_4==0);delay(20);keynumber=16;}
     



     return keynumber;
}


```

51单片机用数码管发过来的数?什么意思?数码管成通讯工具了?