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单片机用数码管发过来的数?什么意思?数码管成通讯工具了?