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

標題: 紅外遙控RC522芯片RFID公交卡、飯卡刷卡系統應用(附源碼) [打印本頁]

作者: 51hei學習技術中    時間: 2016-10-20 22:17
標題: 紅外遙控RC522芯片RFID公交卡、飯卡刷卡系統應用(附源碼)


全部源碼下載:
RC-522 S50 038 12864刷卡程序.zip (225.13 KB, 下載次數: 932)

一、功能簡介:
1.
有讀卡信息(卡類型、類號、余額),初始化卡,充值和扣款功能。
2.多級菜單操作,菜單有反白高度顯示。
3.全遙控操作,通過遙控鍵盤控制讀、寫卡,并可輸入讀、寫數值。
4.自動設定數據范圍,超范圍自動提示。
5.可應用于公交卡刷卡和飯卡刷卡等類似應用。
   
1.系統組成                                      2. 歡迎界面
   
3.主菜單                                         4.卡信息二級子菜單
   
5.讀卡信息                                      6. 輸入充值額
   
7.充值刷卡                                      8. 輸入消費額
   
9.消費刷卡                                      10. 余額超范圍提示
二、系統組成:
                    1.MCU:STC12C5A60S2 ,11.0592MHz
                 2.12864帶中文字庫液晶
                 3.RFID讀卡模塊:RC522,+ S50卡
                 4.紅外遙控038接收頭,CARMP3遙控器,不同遙控器鍵值不同,若用不同品牌遙控器需修改鍵值   
                 5.LED指示燈(或為蜂鳴器)
                        RC522接法:
                        sbit     MF522_RST  =    P1^4;                  
                        sbit     MF522_NSS  =    P1^2;
                        sbit     MF522_SCK  =    P1^1;
                        sbit     MF522_SI   =    P1^0;
                        sbit     MF522_SO   =    P1^3;
                        
                        LED指示燈接法:
                        sbit     LED_GREEN  =    P1^5;                   //指示燈
                        
                        12864接法:
                        #define Lcd_Bus P0             //數據口
                        sbit LCM_RS  =  P2^0;            //寄存器選擇輸入
                        sbit LCM_RW  =  P2^1;            //液晶讀/寫控制
                        sbit LCM_EN  =  P2^2;            //液晶使能控制
                        sbit LCM_PSB =  P2^3;            //串/并方式
                        
                        紅外遙控接法:
                        sbit IRIN = P3^2; //紅外接收器數據線
                        遙控器功能鍵說明:prev為退格鍵,next為切換鍵,play為確認鍵,0-9為相應數字鍵        100+為小數點鍵

   
          注意:務必確保RC522供電為3.3V,接5V必燒!!!同時,為了系統運行穩定,整個系統最好單獨供電,用usb供電可能電流不足!
下面是主程序預覽:
  1. /************** 全遙控操作RFID刷卡系統************/
  2. /*
  3.    硬件:1.MCU:STC12C5A60S2 ,11.0592MHz
  4.           2.12864帶中文字庫液晶
  5.           3.RFID讀卡模塊:RC522,+ S50卡
  6.                   4.紅外遙控038接收頭,CARMP3遙控器,不同遙控器鍵值不同,若用不同品牌遙控器需修改鍵值   
  7.                   5.LED指示燈(或為蜂鳴器)
  8.                         RC522接法:
  9.                         sbit     MF522_RST  =    P1^4;                  
  10.                         sbit     MF522_NSS  =    P1^2;
  11.                         sbit     MF522_SCK  =    P1^1;
  12.                         sbit     MF522_SI   =    P1^0;
  13.                         sbit     MF522_SO   =    P1^3;
  14.                         
  15.                         LED指示燈接法:
  16.                         sbit     LED_GREEN  =    P1^5;                   //指示燈
  17.                         
  18.                         12864接法:
  19.                         #define Lcd_Bus P0             //數據口
  20.                         sbit LCM_RS  =  P2^0;            //寄存器選擇輸入
  21.                         sbit LCM_RW  =  P2^1;            //液晶讀/寫控制
  22.                         sbit LCM_EN  =  P2^2;            //液晶使能控制
  23.                         sbit LCM_PSB =  P2^3;            //串/并方式
  24.                         
  25.                         紅外遙控接法:
  26.                         sbit IRIN = P3^2; //紅外接收器數據線
  27.                         遙控器功能鍵說明:prev為退格鍵,next為切換鍵,play為確認鍵,0-9為相應數字鍵        100+為小數點鍵
  28.                         
  29.                         注意:務必確保RC522供電為3.3V,接5V必燒!!!

  30.         功能: 1.多級菜單操作,菜單有反白高度顯示。
  31.                2.全遙控操作,通過遙控鍵盤控制讀、寫卡,并可輸入讀、寫數值。
  32.                    3.有讀卡信息(卡類型、類號、余額),初始化卡,充值和扣款功能。
  33.                    4.自動設定數據范圍,超范圍自動提示。        
  34.                   
  35.         出品:聚龍居士
  36. */
  37. /****************************************/
  38. #include "reg52.h"
  39. #include "main.h"
  40. #include "mfrc522.h"        
  41. #include "string.h"
  42. #include "12864.h"
  43. #include "hw.h"
  44. #include "set.h"
  45. #include "delay.h"
  46. //M1卡的某一塊寫為如下格式,則該塊為錢包,可接收扣款和充值命令
  47. //4字節金額(低字節在前)+4字節金額取反+4字節金額+1字節塊地址+1字節塊地址取反+1字節塊地址+1字節塊地址取反
  48. unsigned char code data1[16] = {0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x01,0xFE,0x01,0xFE};
  49. uchar g_ucTempbuf[20];   
  50. sfr AUXR  = 0x8E;
  51. /////////////////////////////////////////////////////////////////////
  52. //系統初始化
  53. /////////////////////////////////////////////////////////////////////
  54. void InitializeSystem()
  55. {
  56.         LED_GREEN = 1;
  57.         PcdReset();
  58.         PcdAntennaOff();
  59.         PcdAntennaOn();  
  60.         M500PcdConfigISOType( 'A' );
  61.         LED_GREEN = 0;
  62.         delay_10ms();        
  63.         LED_GREEN = 1;
  64.         delay_10ms();
  65.         LED_GREEN = 0;
  66. }

  67. void main( )
  68. {   
  69.         IE = 0x81;    //允許總中斷中斷,使能 INT0 外部中斷 相當于EA=1; EX0=1;
  70.     TCON = 0x01;  //觸發方式為脈沖負邊沿觸發   相當于IT0=1;
  71.     IRIN=1;       //紅外接收器數據初始化
  72.         lcm_init();
  73.     InitializeSystem( );
  74.         write12864GDRAM(bmp12864);//顯示開機畫面
  75.         Delay100ms(20);//延時
  76.         Clean_12864_GDRAM();
  77.         lcm_init();
  78.         display_welcome();
  79.         Delay100ms(20);
  80.         mainmenu(0);
  81.         w=1;
  82.         menu2=0;        
  83.         while(1)
  84.     {        
  85. /*-----------------------------紅外遙控切換功能---------------------------*/
  86.                 if (key_manue==1)         
  87.                 {                  
  88.                         DelayM(8);
  89. /*-----------------當是主菜單調時狀態 本鍵用于調整下一項---------------------------*/               
  90.                         if(key_manue==1&&w==1&& menu2==0)   //w為主菜單狀態位,menu2為子菜單狀態參數
  91.                         {
  92.                                   key_manue=0;
  93.                                 e++;
  94.                                 if (e >= 3 ) {e = 0;}                                             
  95.                                 mainmenu(e);                     //主菜單調整                                
  96.                         }
  97. /*------------------------當是子菜單時調整信息顯示子菜單-----------------------*/
  98.                         if(key_manue==1&&w == 0 &&menu2==1&&e==0)
  99.                         {
  100.                                 key_manue=0;
  101.                                 d++;
  102.                                 if(d>=3){d=0;}
  103.                                 set_info(d);                                       
  104.                         }
  105. /*---------------------當是子菜單時調整充值子菜單------------------------------*/
  106.                         if(key_manue==1&&w == 0&&menu2==1&&e==1)
  107.                         {
  108.                                 key_manue=0;
  109.                                 t++;
  110.                                 if(t>=2){t=0;}
  111.                                 set_inch(t);
  112.                         }
  113. /*---------------------當是子菜單時調整消費子菜單-------------------------------*/
  114.                         if(key_manue==1&&w == 0&&menu2==1&&e==2)
  115.                         {
  116.                                 key_manue=0;
  117.                                 a++;
  118.                                 if(a>=2){a=0;}
  119.                                 set_cons(a);
  120.                         }
  121.                         key_manue=0;
  122.                 }
  123. /*-----------------------------紅外遙控切換功能---------------------------*/


  124. /*--------------紅外遙控確認功能----------------------------------------*/               
  125.                 if (key_ok==1)                    
  126.                 {
  127.                         DelayM(8);
  128. /*---------------------主菜單時選項選擇確認功能-----------------------------------*/
  129.                         if(key_ok==1&&w==1&&menu2==0)
  130.                         {                        
  131.                                 key_ok=0;
  132.                                 menu2=1;
  133.                                 w=0;
  134.                                 switch(e) //進入相應子菜單
  135.                                 {
  136.                                         case 0:        
  137.                                                         d=0;
  138.                                                         set_info(d);
  139.                                                         break;
  140.                                         case 1:        t=0;
  141.                                                         set_inch(t);
  142.                                                         break;
  143.                                         case 2:        a=0;
  144.                                                         set_cons(a);
  145.                                                         break;
  146.                                 }
  147.                         }
  148. /*---------------------子菜單時選項選擇確認功能-----------------------------------*/
  149.                         if(key_ok==1&&w==0&&menu2==1)
  150.                         {                        
  151.                                 key_ok=0;
  152.                                 switch(e) //各子菜單確認鍵功能定義
  153.                                 {
  154.                                        
  155.                                         case 0:        
  156.                                                     if(d==0)
  157.                                                           { info();}
  158.                                                   if(d==1)
  159.                                                           { initcard();}
  160.                                                   if(d==2)
  161.                                                           { menu2=0; w=1;        mainmenu(0);}
  162.                                                         break;
  163.                                         case 1:
  164.                                                   if(t==0)
  165.                                                         {incharg();}         
  166.                                                   if(t==1)
  167.                                                           {menu2=0;w=1;mainmenu(1);}
  168.                                                   break;
  169.                                         case 2:
  170.                                                   if(a==0)
  171.                                                     {consume();}                                                           
  172.                                                   if(a==1)
  173.                                                           {menu2=0;w=1;mainmenu(2);}
  174.                                                   break;
  175.                                 }                        
  176.                         }
  177.                         key_ok=0;
  178.                 }

  179. /*--------------紅外遙控確認功能----------------------------------------*/

  180. /*---------------------遙控鍵盤輸入功能-----------------------------------*/
  181.                 if(key0==1||key1==1||key2==1||key3==1||key4==1||key5==1||key6==1||key7==1||key8==1||key9==1||key_back==1||key_dot==1)
  182.                 {
  183.                    DelayM(8);
  184.                    if(key0==1||key1==1||key2==1||key3==1||key4==1||key5==1||key6==1||key7==1||key8==1||key9==1||key_back==1||key_dot==1)
  185.                    {
  186.                                 if(w==0&&menu2==1)
  187.                                 {
  188.                                         set_inch_input();
  189.                                         key0=0;
  190.                                         key1=0;
  191.                                         key2=0;
  192.                                         key3=0;
  193.                                         key4=0;
  194.                                         key5=0;
  195.                                         key6=0;
  196.                                         key7=0;
  197.                                         key8=0;
  198.                                         key9=0;
  199.                                         key_back=0;
  200.                                         key_dot=0;                                       
  201.                                 }
  202.                         }
  203.                 }
  204. /*---------------------遙控鍵盤輸入功能-----------------------------------*/
  205.         }
  206. }

復制代碼


作者: npn    時間: 2016-11-7 20:41
實際應用的話還需要結合php、易語言、app開發一套管理系統、再做個php服務器以保存消費記錄和開卡人身份信息和卡密碼余額等信息,以實現網上充值以及掛失補辦和余額凍結等功能,卡里保存各種防復制盜刷的高級加密的數據。
作者: 大仙威武    時間: 2016-11-29 14:33
運行之后12864上什么都不顯示是為什么吶
作者: tzh1982657735    時間: 2017-1-19 19:38
好像12864要接DB0~7的接口
作者: tzh1982657735    時間: 2017-1-19 20:45
然后電流一定要足
作者: zpxx125    時間: 2017-3-11 12:07
太給力了,好厲害啊
作者: zqy181818    時間: 2017-3-16 22:03
感謝分享,太厲害了,我來學習一下。
作者: xiaozui1986    時間: 2017-3-23 12:20
wawa,不錯。
作者: eee123    時間: 2017-3-24 17:14
可以啊
作者: _少年放肆的夢    時間: 2017-4-29 22:54
厲害了
作者: EyesofBlack    時間: 2017-5-7 09:00
謝謝分享
作者: ogre_zl    時間: 2017-5-13 11:07
是跟51單片機結合的是吧?
作者: ogre_zl    時間: 2017-5-13 11:20
樓主有原理圖嗎?謝謝
作者: dragon19790000    時間: 2017-5-24 22:40
樓主,請問 如何使用按鍵操作,附件中只定義了 K1..K4 4個按鍵,沒有這四個按鍵的語句!
作者: bgq    時間: 2017-7-28 21:45
好東東!!!
作者: bgq    時間: 2017-7-28 21:46
好東東學習學習
作者: wpc592621802    時間: 2017-8-15 23:59
路過學習學習
作者: wangyong1983    時間: 2017-8-26 17:24
改完IO口后,屏幕能顯示,但是按遙控器不能切換頁面,遙控器一樣的,請教怎么回事。另外:sbit K1  = P3^7; //K1-設置
sbit K2  = P3^6; //K2-確認、返回
sbit K3  = P3^5; //K3-加
sbit K4  = P3^4; //K4-減  這個是定義什么的?
作者: bugstation    時間: 2017-9-20 11:07
好東西,謝謝分享,拿來看看
作者: bugstation    時間: 2017-9-20 11:55
這樣的屏怎么接???

作者: zdk123    時間: 2017-9-26 10:54
很好!  CPU卡可以嗎
作者: 申天宇wang    時間: 2017-9-27 20:40
學習學習
作者: 小金VIP    時間: 2017-12-1 19:20
大神!
作者: 小金VIP    時間: 2017-12-1 19:22
服了。
作者: 就是猥瑣    時間: 2018-2-28 10:13
朋友有一個事看不懂,這個模塊上沒有什么綠色的指示燈,而你的程序卻有,看不懂啊。
作者: 就是猥瑣    時間: 2018-3-1 19:36
之前問您的問題我懂了
作者: Hyp    時間: 2018-4-5 17:10
HELLO,居士!

   老師,我對您這個比較感興趣并且制作了PCB板,準備“盜用“”下做個課程設計,在這里跟您說一聲,如果您覺得不行,我立馬停做。在做的過程中我遇到了幾個問題,如果您能看的見的話,望看一下:
   Question 1 :  在使用充值功能時候,遙控輸入充值金額后,刷卡,卡接近RC522后,就出現閃屏,然后熄滅,直至再次給RC522供電才能重新開機工作,不能往卡里輸入信息;
   Question 2 :在使用消費功能時候,遙控輸入消費金額后,刷卡,卡接近RC522后,出現余額不足,這是否與Question 1為寫入數據有關;
   Quesiton 3  :  我看您在第一步讀取卡信息時候,里面已經有余額,這個是不是您事先在程序中寫好的呢?這個數據一旦寫入是不是就能解決上述兩個問題了呢?這個數據怎么在程序中實現的呢?
作者: zcy8520    時間: 2018-4-7 18:50
感謝分享,好東西!
作者: mamahuhu121    時間: 2018-4-8 12:37
大神力作
作者: jianren2    時間: 2018-4-29 08:07
多謝了  看看好用吧
作者: 1uYue    時間: 2018-5-17 18:03
可以,學習了
作者: 18207748450    時間: 2018-10-25 17:30
謝謝分享啊
作者: 空山新雨    時間: 2018-10-30 19:09
已經下載了,過來試試看。
作者: sonkouri    時間: 2018-11-6 08:32
好東西,感謝分享
作者: 1320719647    時間: 2018-12-17 13:29
屏幕一直不顯示是怎么回事呢

作者: TEACHER33    時間: 2019-3-5 16:12
已經下載了,過來試試看。
作者: 當然有    時間: 2019-3-24 22:32
求大神將紅外遙控改成矩陣鍵盤控制的程序分享下,感謝

作者: 北風搖曳    時間: 2019-4-23 20:55
試了試   程序沒問題  只要硬件電路沒問題  就能實現相應功能   謝樓主
作者: PYIsh520    時間: 2019-5-5 15:58
樓主能幫我寫一個刷一次卡,扣兩塊錢的程序嗎?類似公交車刷卡系統
作者: 北風搖曳    時間: 2019-5-6 00:04
北風搖曳 發表于 2019-4-23 20:55
試了試   程序沒問題  只要硬件電路沒問題  就能實現相應功能   謝樓主

就是上電  led一直亮  改一下初始化就好
作者: NIDIE12138    時間: 2019-6-25 08:39
學習學習

作者: 出手不凡    時間: 2019-6-25 14:02
ogre_zl 發表于 2017-5-13 11:20
樓主有原理圖嗎?謝謝

樓主真的好厲害。
作者: saj123456    時間: 2019-7-2 22:09
大神,好貼留個腳印
作者: 舞者人生    時間: 2019-12-16 08:20
參考,學習一下
作者: qiangzi777    時間: 2020-4-21 16:02

參考,學習一下
作者: 花-落    時間: 2020-5-18 10:27
謝謝大神分享
作者: yxdz1358    時間: 2021-6-10 16:52
看了很多關于RFID這方面的資料,個從覺得 這個資料是最好的,功能很全面,下載過來,學習一下,謝謝樓主無私的奉獻!!
作者: dzc3458    時間: 2021-9-6 13:37
bugstation 發表于 2017-9-20 11:55
**** 作者被禁止或刪除 內容自動屏蔽 ****

你打開12864.h這個頭文件,里面用來寫入字節的函數里面一定會有P0/P1/P2 = 某個變量,寫的P多少你就把D0~D7接在哪個端口上,rw rs E會在sbit里面,偏壓信號線串聯個電阻(我的1602用的2kΩ)接在GND上,VDD接5v正極,GND接負極,A是背光3.3v正極,k是負極
作者: KJ_15232829    時間: 2021-9-8 18:53
看樣子很不錯,下載來學習一下。多謝樓群
作者: QIAOZIROU    時間: 2021-11-21 21:30
樓主有原理圖嗎

作者: wgw020    時間: 2021-12-19 09:14
非常值得學習,好好學習一下,謝謝分享
作者: buhai    時間: 2024-10-21 20:29
非常好!!!感謝




歡迎光臨 (http://m.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 久久久久久久久国产精品 | 成人av播放 | 日韩不卡一区二区 | 日韩一区二区在线视频 | www一级片| 性生活毛片 | 天天做天天爽 | 国产成人免费在线视频 | 国产一区二区福利 | 天天看天天操 | www4h| 成人动漫在线看 | www.伊人| 欧美一级片在线 | 久久精品在线 | 欧美三级a做爰在线观看 | 欧美一级做性受免费大片免费 | 午夜激情在线观看 | 可以看的毛片 | 精品免费国产 | 久久国产精品免费 | 视频一区在线观看 | 在线播放h | 激情五月综合网 | 欧美专区在线观看 | 亚洲欧美中文字幕 | 91色视频 | 亚洲一级黄色 | 精品国产乱码久久久久久蜜臀网站 | 日日夜夜精品 | 久久国产精品免费视频 | 亚洲精彩视频 | 日韩黄色大片 | 久久视频免费 | 黄片毛片在线观看 | 巨骚综合| 精品小视频 | 这里只有精品视频 | 欧美一级特黄视频 | 国产精品入口 | 国产精品一区二区在线播放 |