引用 1 楼 kyzf 的回复:
2 为何发送两位以上的数字 确只显示一位数字(举例 我发送3456 确只显示0006? 发送2345 只显示0005);
你显示的数据都是小于10的,所以只有最后一位,用串口接收的数据-48就是ascii码的转变。
你可以先把接收的数据和位置做个程序。
void display(unsiged char index,unsigned char k) //显示函数
{
if (index==0)
P2 = 0xfe;
else if (index==1)
P2 = 0xfd;
else if (index==2)
P2 = 0xfb;
else if (index==3)
P2 = 0xf7;
P0 = Tab[k&0x0f]; //确保不溢出,只显示0--f
delayms(5);
}
void main(void)
{
while(1)
{
display(address,dat);//address 是显示的位
}
}
复制代码