最近搞了下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();
|