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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 8783|回復(fù): 7
打印 上一主題 下一主題
收起左側(cè)

STM8單片機(jī)+RC522電路原理圖+讀寫卡源代碼

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
基于stm8的ds1302模塊千萬別把數(shù)據(jù)寫在第3個(gè)區(qū),不然卡就鎖住了,只能寫在第2個(gè)區(qū)

電路原理圖如下:




stm8單片機(jī)源碼:
  1. /* Includes ------------------------------------------------------------------*/
  2. /* Includes ------------------------------------------------------------------*/
  3. #include "stm8s.h"
  4. #include "stm8s_clk.h"
  5. #include "intrinsics.h"
  6. #include "stm8s_uart1.h"
  7. #include "uart.h"
  8. #include "rc522.h"
  9. #include "string.h"
  10. #include "IWDG.h"
  11. #include "tim2.h"
  12. #include "1602i2c.h"
  13. void Delay(u32 nCount);
  14. extern u8 RxBuffer[RxBufferSize];
  15. extern u8 UART_RX_NUM;
  16. extern int time2;
  17. extern int tim2test;
  18. extern int tim2test1;
  19. unsigned char CT[2];//卡類型
  20. unsigned char SN[4]; //卡號
  21. unsigned char M1UID[8]={0x2e,0x55,0,0,0,0,0,0};//讀卡器向上發(fā)送,讀到卡后自動(dòng)發(fā)
  22. extern unsigned char controlflag;//接收到控制LED beep指令標(biāo)志   01表示收到
  23. extern unsigned char sendflag;//發(fā)送標(biāo)志  =1表示還未發(fā)送過 =0表示已經(jīng)發(fā)送一次  等待回復(fù)  如果超時(shí)重新發(fā)送
  24. unsigned char write[16] = {0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,0x10};
  25. unsigned char read[16] = {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
  26. extern unsigned char receive[8];
  27. u8 read_flag=0;//讀卡標(biāo)志位  1;讀到卡  0;還沒讀到卡
  28. u8 time_flag=0;//超時(shí)標(biāo)志 0;未超時(shí)   1:超時(shí)
  29. //unsigned char key[6] = {0x19,0x84,0x07,0x15,0x76,0x14};
  30. unsigned char key[6] = {0xff,0xff,0xff,0xff,0xff,0xff};
  31. int sum=0;
  32. //unsigned char key[6] = {0x00,0x00,0x00,0x00,0x00,0x00};
  33. /* Private macro -------------------------------------------------------------*/
  34. #define countof(a) (sizeof(a) / sizeof(*(a)))
  35. #define  BufferSize (countof(Tx_Buffer)-1)
  36. /* Private variables ---------------------------------------------------------*/
  37. u8 Tx_Buffer[] = "請刷卡";
  38. u8 Rx_Buffer[BufferSize];
  39. u32 FLASH_ID ;
  40. /* Private defines -----------------------------------------------------------*/
  41. /* Private function prototypes -----------------------------------------------*/
  42. void cardNo2String(u8 *cardNo, u8 *str);
  43. /* Private functions ---------------------------------------------------------*/
  44. #define ReadWriteAddr 3                       //讀寫扇區(qū)
  45. void SN_UID(void)
  46. {
  47.   unsigned int tempUID;
  48.    M1UID[2]=SN[0];
  49.    M1UID[3]=SN[1];
  50.    M1UID[4]=SN[2];
  51.    M1UID[5]=SN[3];
  52.    tempUID=M1UID[1]+M1UID[2]+M1UID[3]+M1UID[4]+M1UID[5];
  53.    M1UID[6]=tempUID&0x00ff;
  54.    M1UID[7]=tempUID>>8;
  55.   
  56. }
  57. void rxfromPIC(void)
  58. {
  59.   
  60.   u8 i;
  61.   sum=receive[1]+receive[2]+receive[3]+receive[4]+receive[5];

  62.   if((receive[0]==0x7e)&&(receive[1]==0x55)&&(receive[6]==(sum&0x00ff))&&(receive[7]==(sum&0xff00)>>8))
  63.   {
  64.    
  65.     read_flag=0;
  66.     if(receive[2]==0x01)
  67.     {

  68.     }
  69.     else if(receive[2]!=0x01)
  70.     {
  71.      
  72.     }
  73.      if(receive[3]==0x01)
  74.      {
  75.      
  76.      }
  77.     else if(receive[3]!=0x01)
  78.     {
  79.       

  80.     }
  81.    
  82.     if(receive[4]==0x01)
  83.     {
  84.       
  85.     }
  86.       receive[0]=0x7e;
  87.      UART1_SendString(receive, 8);
  88.      for(i=2;i<8;i++)
  89.         {
  90.          M1UID[i]=0;
  91.         }
  92.      tim2test1=0;//啟動(dòng)計(jì)時(shí)
  93.   }
  94.   
  95.   for(i=0;i<8;i++)
  96.   {
  97.     receive[i]=0;
  98.   }
  99.   if(tim2test1>5000)//超時(shí)全部關(guān)閉
  100.   {
  101.     tim2test1=0;
  102.           //  GPIO_HIGH(GPIOD, GPIO_PIN_3);
  103.       //  GPIO_HIGH(GPIOD, GPIO_PIN_7);
  104.         // GPIO_LOW(GPIOD, GPIO_PIN_2);
  105.   }
  106. }
  107. void main(void)
  108. {
  109.   unsigned char  status;

  110.   /*設(shè)置內(nèi)部時(shí)鐘16M為主時(shí)鐘*/
  111.   CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV2);

  112.   status = memcmp(read,write,16);//清0
  113.   InitRc522();//rc522初始化
  114.   sendflag=1;
  115.   I2C1602_Configuration();
  116.   init1602_i2c();
  117.   __enable_interrupt();//開啟總中斷
  118.   
  119.   //////////////
  120.   write[0] =1;//
  121.   write[1] =3;//
  122.   write[2] =2;//
  123.   write[3] =6;//
  124.   write[4] =7;//
  125.   write[5] =7;//
  126.   write[6] =6;//
  127.   write[7] =0;//
  128.   write[8] =2;//
  129.   write[9] =8;//
  130. write[10] =5;//
  131. ///////////////// 要寫入的值,最多16個(gè)///////

  132.   while(1)
  133.   {

  134.     status = PcdRequest(PICC_REQALL,CT);     // 掃描卡
  135.     status= PcdAnticoll(SN);  
  136.     //防沖撞
  137.      rxfromPIC();
  138.    if (status==MI_OK)
  139.     {
  140.         SN_UID();
  141.         status = PcdSelect(SN);               //選擇要操作的卡
  142.         if (status==MI_OK)
  143.         {   
  144.             if( MI_OK == PcdAuthState(0x61,ReadWriteAddr,key,SN) )        //驗(yàn)證A密碼   
  145.              {     
  146.               //    status =  PcdWrite(2,write);//寫入M1卡第2塊塊數(shù)據(jù)
  147.              status = PcdRead(2,read);//讀取M1卡第2塊塊數(shù)據(jù)
  148.                 if(MI_OK == status)
  149.                 {

  150.               zl_i2c(0x80);
  151.               sj_i2c(0x30+ read[0]);
  152.               sj_i2c(0x30+ read[1]);
  153.               sj_i2c(0x30+ read[2]);
  154.               sj_i2c(0x30+ read[3]);
  155.               sj_i2c(0x30+ read[4]);
  156.               sj_i2c(0x30+ read[5]);
  157.               sj_i2c(0x30+ read[6]);
  158.               sj_i2c(0x30+ read[7]);
  159.               sj_i2c(0x30+ read[8]);
  160.               sj_i2c(0x30+ read[9]);
  161.               sj_i2c(0x30+ read[10]);
  162.                 }
  163.              }
  164.         }
  165.     }

  166.      
  167.    
  168. }
  169.   
  170.   
  171.   
  172. }

  173. void Delay(u32 nCount)
  174. {
  175.   /* Decrement nCount value */
  176.   while (nCount != 0)
  177.   {
  178.     nCount--;
  179.   }
  180. }


  181. void Hex2String(u8 hex,u8 *str)
  182. {
  183.   str[0] = (hex / 100) + '0';
  184.   str[1] = (hex % 100 / 10) + '0';
  185.   str[2] = (hex % 10) + '0';
  186. }

  187. void cardNo2String(u8 *cardNo, u8 *str)
  188. {
  189.     u8 Count = 0;
  190.     for(Count = 0; Count < 4; Count++)
  191.     {
  192.         Hex2String(cardNo[Count], str + Count * 4);
  193.         if(Count == 3)
  194.         {
  195.           str[15] = '\n';
  196.         }
  197.         else
  198.         {
  199.           str[Count * 4 + 3] = ':';
  200.         }
  201. ……………………

  202. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復(fù)制代碼

所有資料51hei提供下載:
第5周任務(wù)及代碼.rar (15.54 MB, 下載次數(shù): 209)




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

使用道具 舉報(bào)

沙發(fā)
ID:447252 發(fā)表于 2018-12-16 15:19 | 只看該作者
誰有剩下的代碼,能不能發(fā)份給我,多謝了,可發(fā)我QQ郵箱:156585370
回復(fù)

使用道具 舉報(bào)

板凳
ID:487821 發(fā)表于 2019-5-15 11:51 | 只看該作者
解壓錯(cuò)誤,別下載了
回復(fù)

使用道具 舉報(bào)

地板
ID:487821 發(fā)表于 2019-5-15 12:14 | 只看該作者
用win zip可以解壓了
回復(fù)

使用道具 舉報(bào)

5#
ID:607641 發(fā)表于 2020-1-5 10:45 | 只看該作者
謝謝正在學(xué)習(xí)
回復(fù)

使用道具 舉報(bào)

6#
ID:233711 發(fā)表于 2020-1-5 15:55 | 只看該作者
很好的資料
回復(fù)

使用道具 舉報(bào)

7#
ID:607641 發(fā)表于 2020-1-9 13:29 | 只看該作者
已經(jīng)下載正在學(xué)習(xí)
回復(fù)

使用道具 舉報(bào)

8#
ID:969958 發(fā)表于 2021-10-5 15:40 | 只看該作者
nice,learning...
回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 男人的天堂在线视频 | 亚洲国产高清高潮精品美女 | 99精品国自产在线观看 | 欧美日韩在线观看一区 | 色香蕉在线| 欧产日产国产精品视频 | 欧美精品一区在线 | 色久电影| 日韩理论电影在线观看 | 国产91网站在线观看 | 亚洲精品在线免费观看视频 | 亚洲美女网站 | 亚洲视频 欧美视频 | 在线观看中文字幕av | 日韩视频中文字幕 | 亚洲午夜精品久久久久久app | 在线成人www免费观看视频 | 久久久久久国产精品mv | 成人免费视频在线观看 | 免费看国产片在线观看 | 久久高潮| 日本国产精品视频 | 激情毛片 | 日韩在线观看一区二区三区 | 激情免费视频 | 国产在线观看免费 | 九一精品| 日韩欧美成人一区二区三区 | 久久综合爱| 成年人精品视频 | 国产精品视频免费观看 | 国产一区二区三区视频 | 在线一级片 | 久久成人一区二区三区 | 国产三级大片 | 亚洲精品久 | 亚洲成人一区 | 欧美激情视频一区二区三区在线播放 | 久久综合狠狠综合久久 | 亚洲一区欧美一区 | 精品一区二区视频 |