最近搞了下RFID签到系统,在LCD12864上显示时间和签到情况,前几天无论如何都不能显示卡号,昨天看到一个论坛,试试了,果然行了,分享给大家,不喜勿喷!
//卡号转换
void id_conv(unsigned char *p)
{
if(p[0]%16 >9 )
dis_buf[0] = p[0]%16 + 0x37;
else
dis_buf[0] = p[0]%16 + 0x30;
if(p[0]/16 >9 )
dis_buf[1] = p[0]/16 + 0x37;
else
dis_buf[1] = p[0]/16 + 0x30;
if(p[1]%16 >9 )
dis_buf[2] = p[1]%16 + 0x37;
else
dis_buf[2] = p[1]%16 + 0x30;
if(p[1]/16 >9 )
dis_buf[3] = p[1]/16 + 0x37;
else
dis_buf[3] = p[1]/16 + 0x30;
if(p[2]%16 >9 )
dis_buf[4] = p[2]%16 + 0x37;
else
dis_buf[4] = p[2]%16 + 0x30;
if(p[2]/16 >9 )
dis_buf[5] = p[2]/16 + 0x37;
else
dis_buf[5] = p[2]/16 + 0x30;
if(p[3]%16 >9 )
dis_buf[6] = p[3]%16 + 0x37;
else
dis_buf[6] = p[3]%16 + 0x30;
if(p[3]/16 >9 )
dis_buf[7] = p[3]/16 + 0x37;
else
dis_buf[7] = p[3]/16 + 0x30;
}
//显示卡号
void Display_id(void)
{
unsigned i;
LCD12864_SetWindow(3, 0);
for(i=0;i<8;i++)
{
LCD12864_WriteData(dis_buf[i]);
}
}
下面是main函数里面的一小部分
for(i=0;i<4;i++)
{
temp=g_ucTempbuf[i];
buf[i] = temp;
}
id_conv(buf);
Display_id();
|