久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2312|回復: 4
打印 上一主題 下一主題
收起左側

STC15+RC523讀卡ID 尋卡直接失敗了,找不到問題點在哪里

[復制鏈接]
跳轉到指定樓層
樓主
ID:675145 發表于 2020-1-11 11:02 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
RC523已經可以正常讀寫M1卡了,按鍵控制,OLED顯示數據,沒有用串口顯示但是ID讀不出來,第一步尋卡直接失敗了,找不到問題點在哪里,知道的大佬能提點一下。以下是代碼。
單片機源程序如下:
  1. u8 xdata AAA=0;
  2. u8 xdata pUID[10]={0};
  3. void Pcd_Config(u8 type)//寄存器配置
  4. {
  5.         PcdAntennaOff();
  6.         if ('A' == type)
  7.         {         
  8.                 WriteRawRC(CommandReg,PCD_RESETPHASE);
  9.                 _nop_();
  10.                 WriteRawRC(ModeReg,0x3D);            //和Mifare卡通訊,CRC初始值0x6363
  11.                 WriteRawRC(TReloadRegL,30);           
  12.                 WriteRawRC(TReloadRegH,0);
  13.                 WriteRawRC(TModeReg,0x8D);
  14.                 WriteRawRC(TPrescalerReg,0x3E);
  15.                 WriteRawRC(TxAutoReg,0x40);

  16.                 ClearBitMask(Status2Reg,0x08);
  17.                 WriteRawRC(ModeReg,0x3D);//3F
  18.                 WriteRawRC(RxSelReg,0x86);//84
  19.                 WriteRawRC(RFCfgReg,0x7F);   //4F
  20.                 WriteRawRC(TReloadRegL,30);//tmoLength);// TReloadVal = 'h6a =tmoLength(dec)
  21.                 WriteRawRC(TReloadRegH,0);
  22.                 WriteRawRC(TModeReg,0x8D);
  23.                 WriteRawRC(TPrescalerReg,0x3E);        
  24.         }
  25.         else if ('B' == type)
  26.         {
  27.                 ClearBitMask(Status2Reg, 0x08);
  28.                 WriteRawRC(ControlReg, 0x10);
  29.                 WriteRawRC(ModeReg, 0x3F);                                       // For 0xFFFF crc
  30.                 WriteRawRC(TReloadRegL, 30);
  31.                 WriteRawRC(TReloadRegH, 0);
  32.                 WriteRawRC(TModeReg, 0x8D);
  33.                 WriteRawRC(TPrescalerReg, 0x3E);
  34.                 WriteRawRC(TxAutoReg, 0);        // Force 100ASK = 0
  35.                
  36.                 /**************************************發送部分*****************************/
  37.                 WriteRawRC(GsNReg, 0xFa);   //0xF8  
  38.                 WriteRawRC(CWGsCfgReg, 0x3F);
  39.                 WriteRawRC(ModGsCfgReg, 0x08); //08
  40.                 WriteRawRC(TxModeReg, 0x83);   //03   
  41.                 WriteRawRC(BitFramingReg, 0x00);
  42.                 WriteRawRC(AutoTestReg, 0x00);
  43.                         
  44.                 WriteRawRC(TypeBReg, 0xc0);
  45.                 WriteRawRC(ModWidthReg,0x68);
  46.                 WriteRawRC(DemodReg, 0x5D);
  47.                 WriteRawRC(RFCfgReg, 0x70);  // 0x59 RegRxControl1//73,
  48.                 WriteRawRC(RxModeReg, 0x83);        //03      
  49.                 WriteRawRC(RxThresholdReg, 0x65);//0x75);

  50.                 /**************************************TYPEB特征參數設定*****************************/
  51.                 ClearBitMask(RxSelReg,0x3F);        // TR0
  52.                 SetBitMask(RxSelReg, 0x08);
  53.                 ClearBitMask(TxModeReg, 0x80);       // ?CRC
  54.                 ClearBitMask(RxModeReg, 0x80);
  55.                 ClearBitMask(Status2Reg, 0x08);      // MFCrypto1On =0

  56.         }
  57.         PcdAntennaOn();
  58. }
  59. void typeB_Allot()
  60. {
  61.         u8 status;
  62.         static u16 xdata count=0;
  63.         if(key4x4_Read_Byte==5)
  64.         {
  65.                 count++;
  66.                 if(count>=200)
  67.                 {
  68.                         count=0;
  69.                         switch(key4x4_Read_Byte)
  70.                         {
  71.                                 case 5:        
  72.                                                 status=RCRequestTypeB();
  73.                                                 if(status==MI_OK)
  74.                                                 {
  75.                                                         key4x4_Read_Byte=6;
  76.                                                 }
  77.                                                 else
  78.                                                 {
  79.                                                         AAA=1;
  80.                                                 }
  81.                                                 break;
  82.                                 case 6:        
  83.                                                 status=RCATTRIBTypeB();
  84.                                                 if(status==MI_OK)
  85.                                                 {
  86.                                                         key4x4_Read_Byte=7;
  87.                                                 }
  88.                                                 else
  89.                                                 {
  90.                                                         AAA=2;
  91.                                                 }
  92.                                                 break;
  93.                                 case 7:
  94.                                                 status=RCGetUIDTypeB(pUID);
  95.                                                 if(status==MI_OK)
  96.                                                 {
  97.                                                         key4x4_Read_Byte=8;
  98.                                                 }
  99.                                                 else
  100.                                                 {
  101.                                                         AAA=3;
  102.                                                 }
  103.                                                 break;
  104.                                 case 8:
  105. //                                                PcdHalt();//終止卡的操作,命令卡片進入休眠狀態        
  106.                                                 AAA=4;
  107.                                                 key4x4_Read_Byte=0;
  108.                                                 break;
  109.                         }
  110.                 }
  111.         }
  112. }
  113. void OLED_Allot()
  114. {        
  115.         static u16 xdata count=0;
  116.         if(OLED_Modify_Allow)                //允許單片機修改XRAM
  117.         {
  118.                 count++;
  119.                 switch(count)
  120.                 {
  121.                         case 5: OLED_Symbol_Ser(0,0,pUID[0]/16+'0',pUID[0]%16+'0');break;
  122.                         case 10:OLED_Symbol_Ser(0,1,pUID[1]/16+'0',pUID[1]%16+'0');break;
  123.                         case 15:OLED_Symbol_Ser(0,2,pUID[2]/16+'0',pUID[2]%16+'0');break;
  124.                         case 20:OLED_Symbol_Ser(0,3,pUID[3]/16+'0',pUID[3]%16+'0');break;
  125.                         case 25:OLED_Symbol_Ser(0,4,pUID[4]/16+'0',pUID[4]%16+'0');break;
  126.                         case 30:OLED_Symbol_Ser(0,5,pUID[5]/16+'0',pUID[5]%16+'0');break;
  127.                         case 35:OLED_Symbol_Ser(0,6,pUID[6]/16+'0',pUID[6]%16+'0');break;
  128.                         case 40:OLED_Symbol_Ser(0,7,pUID[7]/16+'0',pUID[7]%16+'0');break;
  129.                         case 45:OLED_Symbol_Ser(2,0,pUID[8]/16+'0',pUID[8]%16+'0');break;
  130.                         case 50:OLED_Symbol_Ser(2,2,pUID[9]/16+'0',pUID[9]%16+'0');break;
  131.                         case 55:OLED_Symbol_Ser(2,4,key4x4_Read_Byte+'0',AAA+'0');
  132. //                        case 60:OLED_Symbol_Ser(2,7,Read_Buffer[14]+'0',Read_Buffer[15]+'0');break;        
  133. //                        case 65:OLED_Symbol_Ser(4,3,(AAA-1)/10+'0',(AAA-1)%10+'0');
  134.                                         count=0;break;                        
  135.                 }
  136.                 OLED_Modify_Allow=0;
  137.         }
  138.         else                //不允許修改RAM,只能顯示數據到OLED
  139.         {
  140.                 OLED_New_Show_Ser();
  141.         }        
  142. }

  143. void main()
  144. {
  145.         P0M1=0;P0M0=0;
  146.         P1M1=0;P1M0=0;
  147.         P2M1=0;P2M0=0;
  148.         P3M1=0;P3M0=0;
  149.         P4M1=0;P4M0=0;
  150.         P5M1=0;P5M0=0;
  151.         IIC_Init();
  152.         OLED_Init();
  153. //        Pcd_Config('A');
  154.         Pcd_Config('B');
  155.         while(1)
  156.         {
  157.                 OLED_Allot();
  158.                 key_Scan_Drive();
  159.                 typeA_Allot();
  160.                 typeB_Allot();
  161.         }
  162. }
復制代碼

RC523測試.rar

142.11 KB, 下載次數: 18

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:404160 發表于 2020-1-13 20:25 | 只看該作者
IC卡與ID卡的類型不同吧?即頻率不同125k與13.及兆
回復

使用道具 舉報

板凳
ID:675145 發表于 2020-1-14 12:58 | 只看該作者
飛云居士 發表于 2020-1-13 20:25
IC卡與ID卡的類型不同吧?即頻率不同125k與13.及兆

誒。。不是ID卡    M1卡能用了,想刷,調試不起來
回復

使用道具 舉報

地板
ID:337487 發表于 2022-12-23 10:42 | 只看該作者
正好在調試這個芯片,學習一下。
回復

使用道具 舉報

5#
ID:1034262 發表于 2022-12-23 10:56 | 只看該作者
有協議的。
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 天堂一区 | 在线视频中文字幕 | 成人免费观看男女羞羞视频 | 国产福利91精品一区二区三区 | 九九看片| 亚洲一区中文字幕 | 国产我和子的乱视频网站 | 国产精品久久国产精品 | 亚洲精品乱码久久久久久蜜桃91 | 99精品免费视频 | 精品视频一区在线 | 国产乱码精品一区二区三区中文 | 91精品国产综合久久婷婷香蕉 | 欧美国产日韩在线观看 | 国产a级黄色录像 | 国产欧美一区二区三区在线播放 | 国内精品久久久久久 | 日本精品视频 | 精品在线观看一区二区 | 国产高清久久久 | 天天看天天干 | 18成人在线观看 | 奇米超碰 | 成人在线观看免费 | 日韩av最新网址 | 欧美亚洲视频 | 一区二区国产在线观看 | 日韩欧美亚洲综合 | 欧美福利在线 | 97超在线视频 | 日韩一区中文字幕 | a在线视频 | 日韩三级免费观看 | 范冰冰一级做a爰片久久毛片 | 日韩在线不卡 | 亚州午夜精品 | 欧美a区 | 欧美福利在线 | 国产91在线 | 中日 | 91精品国产一区二区三区蜜臀 | 国产精品美女久久久久久免费 |