找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4752|回复: 2
打印 上一主题 下一主题
收起左侧

RFID读出卡信号后转换成ASCII,那怎么转回RFID的卡号的格式呀?大一新生提问

[复制链接]
跳转到指定楼层
楼主
ID:252777 发表于 2018-3-14 16:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
通过下面一段代码读出卡号以后,转成ASCII ( ID_ASC[] )那有个问题呢...我想从键盘键入ASCII码,代替RFID都出来的卡号(Card_SN[ i])与已存储卡号进行对比,用来注销已储存的卡。应该怎么写这段代码呢...
  1. uchar Card_type[2],               //卡片类型

  2.       Card_SN[4]={0},      //IC卡号

  3.           Card_SN_BUF[4]={0xff,0xff,0xff,0xff},  //卡号登记缓冲区1         
  4.           NewCard1[4]={0xff,0xff,0xff,0xff},    //卡号登记缓冲区2
  5.           NewCard2[4]={0xff,0xff,0xff,0xff},    //卡号登记缓冲区3
  6.            
  7.           KEY_BUF[8]={'8','8','8','8','8','8','8','8'};        //默认状态密码为8个8::"8888  8888"
  8.     uchar ii=0;

  9. void uart_over( void )        //串口数据还原
  10. {
  11.         UartCount = 0;
  12.         UartStart = FALSE;
  13.         UartComp = FALSE;
  14. }

  15. uchar IC_READ( void )           //读卡程序
  16. {
  17.     uchar ID_ASC[8],i;
  18.         if( PcdRequest( PICC_REQIDL, Card_type ) != MI_OK )//寻天线区内未进入休眠状态的卡,返回卡片类型 2字节        
  19.         {
  20.                 if( PcdRequest( PICC_REQIDL, Card_type ) != MI_OK )//寻天线区内未进入休眠状态的卡,返回卡片类型 2字节        
  21.                 {
  22.                   
  23.                             return FALSE;
  24.                 }        
  25.         }
  26.         
  27.         if( PcdAnticoll( Card_SN ) != MI_OK ) //防冲撞,返回卡的序列号 4字节
  28.         {

  29.                 return FALSE;        
  30.         }

  31.         send_bytes(Card_type,2);         //发送卡类型
  32.         send_bytes(Card_SN,4);                 //发送卡号
  33. /***********************************************************************************************************
  34.               将IC卡的物理地址转换为显示在液晶屏上的ASCII值        卡号


  35. ***********************************************************************************************************/        
  36.         for(i=0;i<4;i++)       //卡ID号转化成ASCII
  37.         {
  38.           if(Card_SN[i]/16>9)        ID_ASC[i*2]=Card_SN[i]/16+'7';
  39.             else ID_ASC[i*2]=Card_SN[i]/16+'0';

  40.       if(Card_SN[i]%16>9)        ID_ASC[i*2+1]=Card_SN[i]%16+'7';
  41.             else ID_ASC[i*2+1]=Card_SN[i]%16+'0';
  42.         }
  43.               lcd_mesg("ID:",0x88,4);                         //显示ID:
  44.                   display_card_num(0x88+0x02,ID_ASC,8);         //显示:当前刷卡的卡号

  45.                 return TRUE;
  46. }
复制代码


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:212149 发表于 2018-3-14 19:43 | 只看该作者
不知道你用的是什么读卡器来读卡,一般来说读卡器输出的数据都是有固定格式的。一般是头字符+读出来的信息+检验和等,可以看你用的读卡器的使用说明,将读出的信息转换成对应ascll码
回复

使用道具 举报

板凳
ID:252777 发表于 2018-3-15 12:05 来自手机 | 只看该作者
QWER01234 发表于 2018-3-14 19:43
不知道你用的是什么读卡器来读卡,一般来说读卡器输出的数据都是有固定格式的。一般是头字符+读出来的信息+ ...

用RFID读卡..读出来的是uchar ID[4]={0xff,0xff,0xff,0xff}的格式。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表