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

標題: RC522設計刷卡的51單片機代碼 [打印本頁]

作者: VIVIYA    時間: 2018-6-13 17:25
標題: RC522設計刷卡的51單片機代碼
畢業設計刷卡代碼

單片機源程序如下:
  1. #include "LCD1602.h"
  2. #include "mfrc522.h"
  3. #include "CardAction.h"
  4. #include "key.h"                         

  5. #define uchar unsigned char
  6. #define uint  unsigned int
  7. sbit Buzzer=P3^5;//蜂鳴器接口定義,低電平響
  8. sbit Jdq=P3^7;//繼電器接口定義,低電平吸合
  9. sbit ChangeKey=P3^2;//切換按鍵
  10. sbit Key=P3^2;//切換按鍵

  11. uchar ReturnValue=0;//讀卡返回值
  12. uchar ModeFlag=0;//模式標志位 0-驗證刷卡開門模式    1-注冊卡模式    2-注銷卡模式

  13. uchar i=0,t=0,In_Code=0;
  14. uchar IN_TAXT[4]="0000";
  15. uchar NOW_CODE[]="123456E";                //mima
  16. uchar num[]="123A456B789CD0EF";
  17. u8 receiveData;



  18. /*******************************************************************************
  19. * 函數名         :UsartInit()
  20. * 函數功能                   :設置串口
  21. * 輸入           : 無
  22. * 輸出                  : 無
  23. *******************************************************************************/
  24. void UsartInit()
  25. {
  26.         SCON=0X50;                        //設置為工作方式1
  27.         TMOD=0X20;                        //設置計數器工作方式2
  28.         PCON=0X80;                        //波特率加倍
  29.         TH1=0XF3;                                //計數器初始值設置,注意波特率是4800的
  30.         TL1=0XF3;
  31.         ES=1;                                                //打開接收中斷
  32.         EA=1;                                                //打開總中斷
  33.         TR1=1;                                        //打開計數器
  34. }




  35. void main()
  36. {
  37. Card_Init();//讀卡器初始化
  38. LCD_init();//液晶1602初始化
  39. Buzzer=1;//蜂鳴器關閉
  40. Jdq=0;//繼電器關閉
  41.          KeyState=0;
  42. UsartInit();
  43. while(1)
  44. {

  45.          
  46.          
  47.    while(ModeFlag==0)//卡驗證模式
  48.    {
  49.                  write_string(1,0,"Verif Mode:");//第二行顯示"Welcome!"
  50.                  ReturnValue=0;//驗證卡返回值置0
  51.                  ReturnValue=Vreif_Sy();// 驗證卡
  52.                  if(ReturnValue==4)//ReturnValue==4卡驗證成功
  53.           {
  54.                                  write_string(2,0,"Welcome!");//第二行顯示"Welcome!"
  55.                                  Buzzer=0; //開蜂鳴器
  56.                            Jdq=1;//開繼電器
  57.                                  delay1ms(500);//延時0.5s
  58.                                  Buzzer=1;//關蜂鳴器
  59.                                  delay1ms(1000);//延時1s
  60.                                  write_string(2,0,"         ");//清第二行顯示

  61. //                        EA=1;
  62. //                        ES=1;
  63.                                                                                                 Jdq=0;//關閉繼電器

  64.                  for(t=0;t<100;t++)
  65.                                                  {                        SBUF='A';delay1ms(50);}

  66.           }
  67.                 else                         {SBUF='B';                }


  68.          if(ChangeKey==0)//切換按鍵被按下
  69.          {
  70.                         while(ChangeKey==0);//等待被彈起
  71.                         LCD_Clear();//清屏幕
  72.                         ModeFlag=1;//進入注冊卡模式
  73.          }
  74.          if(Key==0)//切換按鍵被按下
  75.          {
  76.            while(Key==0);//等待被彈起
  77.            write_string(1,0,"CODE  Mode:");//第一行顯示"Code Mode:"
  78.                  write_string(2,0,"         ");
  79.                  In_Code=1;//進入密碼模式
  80.                 }
  81.    }//end for   while(ModeFlag==0)
  82.    while(ModeFlag==1)//卡注冊模式
  83.    {
  84.                          write_string(1,0,"Register Mode:");//第一行顯示"Register Mode:"
  85.                          ReturnValue=0;//ReturnValue重置0
  86.                          ReturnValue=CardReg();//卡注冊
  87.                          if(ReturnValue==6)//ReturnValue==6卡注冊成功
  88.                                 {
  89.                                                  write_string(2,0,"Success !");//第二行顯示"Success !"
  90.                                                  Buzzer=0;   
  91.                                                  delay1ms(500);
  92.                                                  Buzzer=1;
  93.                                                  write_string(2,0,"         ");
  94.                                  
  95.                                 }
  96.                          if(ChangeKey==0)//切換按鍵被按下
  97.                          {
  98.                                                  while(ChangeKey==0);//等待被彈起
  99.                                                  LCD_Clear();
  100.                                                 ModeFlag=2;//進入注銷卡模式
  101.                          }
  102.          if(Key==0)//切換按鍵被按下
  103.          {
  104.                          while(Key==0);//等待被彈起
  105.                          write_string(1,0,"CODE  Mode:");//第一行顯示"Code Mode:"
  106.                          write_string(2,0,"         ");
  107.                          In_Code=1;//進入密碼模式
  108.                 }

  109.    }//end for   while(ModeFlag==1)
  110.     while(ModeFlag==2)//卡注銷模式
  111.    {
  112.      write_string(1,0,"Reset Mode:");//第一行顯示"Reset Mode:"
  113.                  ReturnValue=0;//ReturnValue重置0
  114.                  ReturnValue=CardReset();//注銷卡
  115.                  if(ReturnValue==6)//ReturnValue==6卡注銷成功
  116.           {
  117.                          write_string(2,0,"Success !");//第二行顯示"Success !"  
  118.                          Buzzer=0;   
  119.                          delay1ms(500);
  120.                          Buzzer=1;
  121.                          write_string(2,0,"         ");
  122.           }
  123.          if(ChangeKey==0)//切換按鍵被按下
  124.          {
  125.            while(ChangeKey==0);//等待被彈起
  126.            LCD_Clear();
  127.                  ModeFlag=3;//進入注銷卡模式
  128.          
  129. }



  130.    }//end for   while(ModeFlag==2)
  131.          
  132.          while(ModeFlag==3)//密碼輸入模式
  133.         {
  134.                
  135.                 write_string(1,0,"CODE  Mode:");//第一行顯示"Code Mode:"
  136.                 KeyDown();
  137.                 if(KeyState)
  138.                 {
  139.                         KeyState=0;

  140.                         IN_TAXT[i]=num[KeyValue];

  141. //                write_char(2,0,IN_TAXT[i]);//第一行顯示"Code Mode:"
  142. //                write_char(2,2,NOW_CODE[i]);//第一行顯示"Code Mode:"
  143. //                       
  144. //                write_string(2,0,NOW_CODE);//第一行顯示"Code Mode:"
  145. //                       
  146. //                write_string(2,6,IN_TAXT);//第一行顯示"Code Mode:"

  147. //                write_char(2,3,IN_TAXT[i]);//第一行顯示"Code Mode:"
  148.                 i++;
  149.                         if(i==1)
  150.                         {
  151.                                                 write_string(2,0,"*          ");//第一行顯示"Code Mode:"

  152.                         }
  153.                                                 if(i==2)
  154.                         {
  155.                                                 write_string(2,0,"**          ");//第一行顯示"Code Mode:"

  156.                         }
  157.                                                                         if(i==3)
  158.                         {
  159.                                                 write_string(2,0,"***          ");//第一行顯示"Code Mode:"

  160.                         }
  161.                                                                                                 if(i==4)
  162.                         {
  163.                                                 write_string(2,0,"****          ");//第一行顯示"Code Mode:"

  164.                         }
  165.                                                                                                                         if(i==5)
  166.                         {
  167.                                                 write_string(2,0,"*****          ");//第一行顯示"Code Mode:"

  168.                         }
  169.                                                                                                                                                 if(i==6)
  170.                         {
  171.                                                 write_string(2,0,"******          ");//第一行顯示"Code Mode:"

  172.                         }

  173.                 }
  174.        
  175.                          
  176.                         if(i>=7)
  177.                         {
  178.                                 i=0;
  179.                                         if(NOW_CODE[0]==IN_TAXT[0]&&NOW_CODE[1]==IN_TAXT[1]&&NOW_CODE[2]==IN_TAXT[2]&&NOW_CODE[3]==IN_TAXT[3]&&NOW_CODE[4]==IN_TAXT[4]&&NOW_CODE[5]==IN_TAXT[5]&&NOW_CODE[6]==IN_TAXT[6])//密碼正確
  180.                                          {
  181.                                                          write_string(2,0,"Success !      ");//第二行顯示"Success !"
  182.                                                          Buzzer=0;  
  183.                            Jdq=1;//開繼電器
  184.                                                  
  185.                                                          delay1ms(1000);
  186.                                                          Buzzer=1;
  187.                                                          write_string(2,0,"         ");
  188.                                                         In_Code=0;
  189.                                                  ModeFlag=0;
  190.                                                                                                                                                                       Jdq=0;//gaun繼電器

  191.                                  for(t=0;t<100;t++)
  192.                                                  {                        SBUF='A';delay1ms(50);}


  193.                                          }

  194.                                           else {           write_string(2,8,"error");                                                                         SBUF='B';};
  195.                         }

  196.        
  197.                          
  198.                 if(ChangeKey==0)//切換按鍵被按下
  199.          {
  200.            while(ChangeKey==0);//等待被彈起
  201.            LCD_Clear();
  202. ……………………

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

所有資料51hei提供下載:
刷卡.zip (192.82 KB, 下載次數: 85)



作者: 13253386146    時間: 2018-7-27 12:53
樓主,RC522和單片機怎么連線呀
作者: houjinyue01    時間: 2022-1-3 17:20
RC522源碼這里定義了接口




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 国产精品久久久久久久三级 | 激情婷婷 | 亚洲高清免费视频 | 在线精品一区二区三区 | 狠狠爱网址 | 日韩中文字幕网 | 久久人人爽人人爽人人片av免费 | 亚洲免费在线播放 | 18gay男同69亚洲网站 | 日韩1区| 国产一级精品毛片 | 国内精品99 | 欧美亚洲综合久久 | 欧洲成人免费视频 | 日本欧美国产在线观看 | 91精品国产色综合久久不卡98 | 亚洲欧美日韩精品久久亚洲区 | 日本a级大片 | www.久久国产精品 | 亚洲精品亚洲人成人网 | 北条麻妃99精品青青久久 | 日韩成人在线视频 | 国产91av视频在线观看 | 国产亚洲www | 久久久久国产精品午夜一区 | www.yw193.com| 成人在线a | 免费久草| 精品国产网 | 国产精品久久久久久久久久了 | 精品国产一级 | 国产精品免费在线 | 欧美日韩久久久 | 毛片一级片| 国产片侵犯亲女视频播放 | 久久精品欧美一区二区三区麻豆 | 欧美久久影院 | 日韩欧美一区二区三区在线播放 | 欧美区在线 | 亚洲精品视频在线观看免费 | 亚洲一区 |