欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標(biāo)題: 紅外遙控RC522芯片RFID公交卡、飯卡刷卡系統(tǒng)應(yīng)用(附源碼) [打印本頁(yè)]

作者: 51hei學(xué)習(xí)技術(shù)中    時(shí)間: 2016-10-20 22:17
標(biāo)題: 紅外遙控RC522芯片RFID公交卡、飯卡刷卡系統(tǒng)應(yīng)用(附源碼)


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

一、功能簡(jiǎn)介:
1.
有讀卡信息(卡類型、類號(hào)、余額),初始化卡,充值和扣款功能。
2.多級(jí)菜單操作,菜單有反白高度顯示。
3.全遙控操作,通過(guò)遙控鍵盤控制讀、寫卡,并可輸入讀、寫數(shù)值。
4.自動(dòng)設(shè)定數(shù)據(jù)范圍,超范圍自動(dòng)提示。
5.可應(yīng)用于公交卡刷卡和飯卡刷卡等類似應(yīng)用。
   
1.系統(tǒng)組成                                      2. 歡迎界面
   
3.主菜單                                         4.卡信息二級(jí)子菜單
   
5.讀卡信息                                      6. 輸入充值額
   
7.充值刷卡                                      8. 輸入消費(fèi)額
   
9.消費(fèi)刷卡                                      10. 余額超范圍提示
二、系統(tǒng)組成:
                    1.MCU:STC12C5A60S2 ,11.0592MHz
                 2.12864帶中文字庫(kù)液晶
                 3.RFID讀卡模塊:RC522,+ S50卡
                 4.紅外遙控038接收頭,CARMP3遙控器,不同遙控器鍵值不同,若用不同品牌遙控器需修改鍵值   
                 5.LED指示燈(或?yàn)榉澍Q器)
                        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             //數(shù)據(jù)口
                        sbit LCM_RS  =  P2^0;            //寄存器選擇輸入
                        sbit LCM_RW  =  P2^1;            //液晶讀/寫控制
                        sbit LCM_EN  =  P2^2;            //液晶使能控制
                        sbit LCM_PSB =  P2^3;            //串/并方式
                        
                        紅外遙控接法:
                        sbit IRIN = P3^2; //紅外接收器數(shù)據(jù)線
                        遙控器功能鍵說(shuō)明:prev為退格鍵,next為切換鍵,play為確認(rèn)鍵,0-9為相應(yīng)數(shù)字鍵        100+為小數(shù)點(diǎn)鍵

   
          注意:務(wù)必確保RC522供電為3.3V,接5V必?zé)。。⊥瑫r(shí),為了系統(tǒng)運(yùn)行穩(wěn)定,整個(gè)系統(tǒng)最好單獨(dú)供電,用usb供電可能電流不足!
下面是主程序預(yù)覽:
  1. /************** 全遙控操作RFID刷卡系統(tǒng)************/
  2. /*
  3.    硬件:1.MCU:STC12C5A60S2 ,11.0592MHz
  4.           2.12864帶中文字庫(kù)液晶
  5.           3.RFID讀卡模塊:RC522,+ S50卡
  6.                   4.紅外遙控038接收頭,CARMP3遙控器,不同遙控器鍵值不同,若用不同品牌遙控器需修改鍵值   
  7.                   5.LED指示燈(或?yàn)榉澍Q器)
  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             //數(shù)據(jù)口
  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; //紅外接收器數(shù)據(jù)線
  27.                         遙控器功能鍵說(shuō)明:prev為退格鍵,next為切換鍵,play為確認(rèn)鍵,0-9為相應(yīng)數(shù)字鍵        100+為小數(shù)點(diǎn)鍵
  28.                         
  29.                         注意:務(wù)必確保RC522供電為3.3V,接5V必?zé)。。?br />

  30.         功能: 1.多級(jí)菜單操作,菜單有反白高度顯示。
  31.                2.全遙控操作,通過(guò)遙控鍵盤控制讀、寫卡,并可輸入讀、寫數(shù)值。
  32.                    3.有讀卡信息(卡類型、類號(hào)、余額),初始化卡,充值和扣款功能。
  33.                    4.自動(dòng)設(shè)定數(shù)據(jù)范圍,超范圍自動(dòng)提示。        
  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字節(jié)金額(低字節(jié)在前)+4字節(jié)金額取反+4字節(jié)金額+1字節(jié)塊地址+1字節(jié)塊地址取反+1字節(jié)塊地址+1字節(jié)塊地址取反
  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. //系統(tǒng)初始化
  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 外部中斷 相當(dāng)于EA=1; EX0=1;
  70.     TCON = 0x01;  //觸發(fā)方式為脈沖負(fù)邊沿觸發(fā)   相當(dāng)于IT0=1;
  71.     IRIN=1;       //紅外接收器數(shù)據(jù)初始化
  72.         lcm_init();
  73.     InitializeSystem( );
  74.         write12864GDRAM(bmp12864);//顯示開(kāi)機(jī)畫(huà)面
  75.         Delay100ms(20);//延時(shí)
  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. /*-----------------當(dāng)是主菜單調(diào)時(shí)狀態(tài) 本鍵用于調(diào)整下一項(xiàng)---------------------------*/               
  90.                         if(key_manue==1&&w==1&& menu2==0)   //w為主菜單狀態(tài)位,menu2為子菜單狀態(tài)參數(shù)
  91.                         {
  92.                                   key_manue=0;
  93.                                 e++;
  94.                                 if (e >= 3 ) {e = 0;}                                             
  95.                                 mainmenu(e);                     //主菜單調(diào)整                                
  96.                         }
  97. /*------------------------當(dāng)是子菜單時(shí)調(diào)整信息顯示子菜單-----------------------*/
  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. /*---------------------當(dāng)是子菜單時(shí)調(diào)整充值子菜單------------------------------*/
  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. /*---------------------當(dāng)是子菜單時(shí)調(diào)整消費(fèi)子菜單-------------------------------*/
  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. /*--------------紅外遙控確認(rèn)功能----------------------------------------*/               
  125.                 if (key_ok==1)                    
  126.                 {
  127.                         DelayM(8);
  128. /*---------------------主菜單時(shí)選項(xiàng)選擇確認(rèn)功能-----------------------------------*/
  129.                         if(key_ok==1&&w==1&&menu2==0)
  130.                         {                        
  131.                                 key_ok=0;
  132.                                 menu2=1;
  133.                                 w=0;
  134.                                 switch(e) //進(jìn)入相應(yīng)子菜單
  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. /*---------------------子菜單時(shí)選項(xiàng)選擇確認(rèn)功能-----------------------------------*/
  149.                         if(key_ok==1&&w==0&&menu2==1)
  150.                         {                        
  151.                                 key_ok=0;
  152.                                 switch(e) //各子菜單確認(rèn)鍵功能定義
  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. /*--------------紅外遙控確認(rèn)功能----------------------------------------*/

  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. }

復(fù)制代碼


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

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

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

作者: TEACHER33    時(shí)間: 2019-3-5 16:12
已經(jīng)下載了,過(guò)來(lái)試試看。
作者: 當(dāng)然有    時(shí)間: 2019-3-24 22:32
求大神將紅外遙控改成矩陣鍵盤控制的程序分享下,感謝

作者: 北風(fēng)搖曳    時(shí)間: 2019-4-23 20:55
試了試   程序沒(méi)問(wèn)題  只要硬件電路沒(méi)問(wèn)題  就能實(shí)現(xiàn)相應(yīng)功能   謝樓主
作者: PYIsh520    時(shí)間: 2019-5-5 15:58
樓主能幫我寫一個(gè)刷一次卡,扣兩塊錢的程序嗎?類似公交車刷卡系統(tǒng)
作者: 北風(fēng)搖曳    時(shí)間: 2019-5-6 00:04
北風(fēng)搖曳 發(fā)表于 2019-4-23 20:55
試了試   程序沒(méi)問(wèn)題  只要硬件電路沒(méi)問(wèn)題  就能實(shí)現(xiàn)相應(yīng)功能   謝樓主

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

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

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

參考,學(xué)習(xí)一下
作者: 花-落    時(shí)間: 2020-5-18 10:27
謝謝大神分享
作者: yxdz1358    時(shí)間: 2021-6-10 16:52
看了很多關(guān)于RFID這方面的資料,個(gè)從覺(jué)得 這個(gè)資料是最好的,功能很全面,下載過(guò)來(lái),學(xué)習(xí)一下,謝謝樓主無(wú)私的奉獻(xiàn)!!
作者: dzc3458    時(shí)間: 2021-9-6 13:37
bugstation 發(fā)表于 2017-9-20 11:55
**** 作者被禁止或刪除 內(nèi)容自動(dòng)屏蔽 ****

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

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




歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1