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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

51單片機與FM1702SL交互讀寫IC卡,CPU卡的源代碼

[復制鏈接]
跳轉到指定樓層
樓主
ID:811568 發(fā)表于 2020-8-5 16:30 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
FM1702SL交互讀寫IC卡,CPU卡的源代碼。
大家自行測試,讀寫M1卡,還有復旦的CPU卡

單片機源程序如下:
  1. /*************************************************************/

  2. /*===========================================================*/
  3. #include "at89x52.h"
  4. #include "intrins.h"
  5. #include "pin.h"
  6. #include "fm17xx.h"
  7. #include "psam.h"
  8. #include <string.h>
  9. unsigned char mac_data[4];
  10. unsigned char dat,add,i,len,initdata[8],insdata[64],mac_key[16];
  11. void timer_uart_init();
  12. void io_init();
  13. void timer0_int();

  14. void beep(unsigned char beep_time);
  15. unsigned int time1,time2;
  16. void main()
  17. {
  18.         
  19.         io_init();
  20.         timer_uart_init();

  21. while(1)
  22.      {
  23.                                                 
  24.      while(serial_receive_finish_flag==1)
  25.           {
  26.         serial_receive_finish_flag=0;
  27.         switch(serial_data_buffer[0])
  28.         {
  29.         case 0x0://版本確認

  30.                 serial_data_buffer[1]=0x46;//F
  31.                 serial_data_buffer[2]=0x4D;//M
  32.                  serial_data_buffer[3]=0x31;//1
  33.                 serial_data_buffer[4]=0x37;//7
  34.                 serial_data_buffer[5]=0x58;//X
  35.                 serial_data_buffer[6]=0x58;//X
  36.                 serial_data_buffer[7]=0x20;//
  37.                 serial_data_buffer[8]=0x76;//V
  38.                 serial_data_buffer[9]=0x31;//1
  39.                 serial_data_buffer[10]=0x2E;//.
  40.                 serial_data_buffer[11]=0x30;//0
  41.                 serial_data_length=11;

  42.                 uart_send();
  43.                 break;
  44.         
  45.         case 0x1://FM17XX 初始化
  46.                 serial_data_buffer[1]=FM17XX_Init();
  47.                 serial_data_buffer[2]=SPI_Init();
  48.                 Rf_On();
  49.                 PCB=0x00;
  50.                 serial_data_length=2;
  51.                 uart_send();
  52.                 break;

  53.         case 0x2://PC讀取FM17XX所有地址
  54.                 for(i=0;i<0x3f;i++)
  55.                 {
  56.                 serial_data_buffer[i+1]=SPIRead(i);
  57.                 }
  58.                 serial_data_length=63;
  59.                 uart_send();

  60.                 break;




  61.         case 0x3://PC讀取FM17XX地址
  62.         
  63.                 add=serial_data_buffer[1];
  64.         
  65.                 serial_data_buffer[1]=SPIRead(add);
  66.                 serial_data_length=1;
  67.                 uart_send();

  68.                 break;
  69.         case 0x4://PC寫入FM17XX地址
  70.                                 
  71.                 add=serial_data_buffer[1];
  72.                 dat=serial_data_buffer[2];
  73.         
  74.                 SPIWrite(add,dat);
  75.                 serial_data_length=1;
  76.                 uart_send();

  77.                 break;

  78.         case 0x5://關射頻

  79.                
  80.                 Rf_Off();
  81.                 serial_data_length=1;
  82.                 uart_send();

  83.                 break;


  84.         case 0x6://尋卡,防沖突,選卡

  85.         //        serial_data_buffer[1]=Halt();
  86.                 Rf_On();
  87.                 if(serial_data_buffer[1]==0x0)
  88.                         serial_data_buffer[2]=Request(Req_Std);//尋卡 Standard
  89.                 else
  90.                         serial_data_buffer[2]=Request(Req_Wakeup);//尋卡 Wakeup
  91.         
  92.                 serial_data_buffer[3]=tagtype[0];        
  93.                 serial_data_buffer[4]=tagtype[1];

  94.                 for(i=0;i<4;i++)
  95.                 UID[i]=0;
  96.                 serial_data_buffer[5]=AntiColl();
  97.                 serial_data_buffer[6]=UID[0];
  98.                 serial_data_buffer[7]=UID[1];
  99.                 serial_data_buffer[8]=UID[2];
  100.                 serial_data_buffer[9]=UID[3];

  101.                 serial_data_buffer[10]=Select_Card();
  102.                 serial_data_buffer[11]=SAK;
  103.                 serial_data_length=11;
  104.                 uart_send();

  105.                 break;

  106.         case 0x7://Mifare 認證
  107.                
  108.                 for(i=0;i<12;i++)
  109.                 temp[i]=serial_data_buffer[i+1];        //12字節(jié) key
  110.                 serial_data_buffer[1]=mifare_loadkey(temp);
  111.                 serial_data_buffer[2]=mifare_auth(serial_data_buffer[13],serial_data_buffer[14]);
  112.                
  113.                 serial_data_length=2;
  114.                 uart_send();
  115.                 break;
  116.         case 0x8://Mifare 讀塊
  117.                
  118. ……………………

  119. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼

本人初學,僅供參考,存在錯誤和不足之處,請大家回帖多多指教,切勿照搬,文件下載:
fm1702_cpu_des.rar (198.58 KB, 下載次數(shù): 79)


評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

沙發(fā)
ID:1044848 發(fā)表于 2022-9-28 07:50 | 只看該作者
,不是stm32的,是89x52的
回復

使用道具 舉報

板凳
ID:471389 發(fā)表于 2023-6-29 09:49 | 只看該作者
如果可以讀CPU卡 那很牛逼了
回復

使用道具 舉報

地板
ID:602844 發(fā)表于 2023-12-4 18:02 | 只看該作者
研究研究
回復

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 一区二区成人 | 国产激情偷乱视频一区二区三区 | 久久精品免费观看 | 日本福利视频 | 国产精品不卡一区 | 亚洲精品久久久久久久久久久 | 成人日批视频 | 国产欧美日韩综合精品一区二区 | 99精品国产一区二区三区 | 国产精品一区一区 | 国产91丝袜在线播放 | 五月天国产视频 | 999久久久 | 69av在线视频 | 99精品久久久久久中文字幕 | 国产精品一区二区视频 | 自拍偷拍在线视频 | 欧美精品第一页 | 欧美久久久久 | 亚洲国产精品99久久久久久久久 | 国产网站在线免费观看 | 日韩在线不卡 | 中文字幕在线视频免费观看 | 91精品国产91久久久久久丝袜 | 中文字幕免费中文 | 永久av| 伊人在线视频 | 在线观看国产视频 | 欧美日韩国产在线观看 | 久久久国产精品 | 亚洲区中文字幕 | 黄色免费看 | 97精品超碰一区二区三区 | 欧美电影大全 | 日日天天 | 国产在线a| 成人在线播放网站 | 女女爱爱视频 | 日本欧美大片 | 91在线区| 久久亚洲国产精品 |