0.png (57.84 KB, 下載次數: 259)
下載附件
2016-10-20 22:18 上傳
全部源碼下載:
RC-522 S50 038 12864刷卡程序.zip
(225.13 KB, 下載次數: 932)
2016-10-20 22:16 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
一、功能簡介:
1.有讀卡信息(卡類型、類號、余額),初始化卡,充值和扣款功能。
2.多級菜單操作,菜單有反白高度顯示。
3.全遙控操作,通過遙控鍵盤控制讀、寫卡,并可輸入讀、寫數值。
4.自動設定數據范圍,超范圍自動提示。
5.可應用于公交卡刷卡和飯卡刷卡等類似應用。
124026wsexsfs3qsp3eess.jpg.thumb.jpg (28.02 KB, 下載次數: 198)
下載附件
2016-10-20 22:15 上傳
124142taw4f8nz4kgeqkgu.jpg.thumb.jpg (27.71 KB, 下載次數: 193)
下載附件
2016-10-20 22:15 上傳
1.系統組成 2. 歡迎界面
124145lygxwdwwjj0dmggs.jpg.thumb.jpg (26.9 KB, 下載次數: 194)
下載附件
2016-10-20 22:15 上傳
124159hj4rrf1yro4mb4ff.jpg.thumb.jpg (25.65 KB, 下載次數: 196)
下載附件
2016-10-20 22:15 上傳
3.主菜單 4.卡信息二級子菜單
124200md428113cm61l1ds.jpg.thumb.jpg (26.05 KB, 下載次數: 212)
下載附件
2016-10-20 22:15 上傳
124200rzohj9clifoulpjh.jpg.thumb.jpg (27.95 KB, 下載次數: 192)
下載附件
2016-10-20 22:15 上傳
5.讀卡信息 6. 輸入充值額
124201pcma2zsher9smram.jpg.thumb.jpg (28.58 KB, 下載次數: 190)
下載附件
2016-10-20 22:15 上傳
124201osbdmds3mvjdw4d4.jpg.thumb.jpg (28.5 KB, 下載次數: 223)
下載附件
2016-10-20 22:15 上傳
7.充值刷卡 8. 輸入消費額
124202suvsn918mlrmdxx1.jpg.thumb.jpg (28.67 KB, 下載次數: 201)
下載附件
2016-10-20 22:15 上傳
124203idx4b05ut5rfmvd7.jpg.thumb.jpg (29.04 KB, 下載次數: 222)
下載附件
2016-10-20 22:15 上傳
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供電可能電流不足!
下面是主程序預覽:
- /************** 全遙控操作RFID刷卡系統************/
- /*
- 硬件: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必燒!!!
- 功能: 1.多級菜單操作,菜單有反白高度顯示。
- 2.全遙控操作,通過遙控鍵盤控制讀、寫卡,并可輸入讀、寫數值。
- 3.有讀卡信息(卡類型、類號、余額),初始化卡,充值和扣款功能。
- 4.自動設定數據范圍,超范圍自動提示。
-
- 出品:聚龍居士
- */
- /****************************************/
- #include "reg52.h"
- #include "main.h"
- #include "mfrc522.h"
- #include "string.h"
- #include "12864.h"
- #include "hw.h"
- #include "set.h"
- #include "delay.h"
- //M1卡的某一塊寫為如下格式,則該塊為錢包,可接收扣款和充值命令
- //4字節金額(低字節在前)+4字節金額取反+4字節金額+1字節塊地址+1字節塊地址取反+1字節塊地址+1字節塊地址取反
- unsigned char code data1[16] = {0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x01,0xFE,0x01,0xFE};
- uchar g_ucTempbuf[20];
- sfr AUXR = 0x8E;
- /////////////////////////////////////////////////////////////////////
- //系統初始化
- /////////////////////////////////////////////////////////////////////
- void InitializeSystem()
- {
- LED_GREEN = 1;
- PcdReset();
- PcdAntennaOff();
- PcdAntennaOn();
- M500PcdConfigISOType( 'A' );
- LED_GREEN = 0;
- delay_10ms();
- LED_GREEN = 1;
- delay_10ms();
- LED_GREEN = 0;
- }
- void main( )
- {
- IE = 0x81; //允許總中斷中斷,使能 INT0 外部中斷 相當于EA=1; EX0=1;
- TCON = 0x01; //觸發方式為脈沖負邊沿觸發 相當于IT0=1;
- IRIN=1; //紅外接收器數據初始化
- lcm_init();
- InitializeSystem( );
- write12864GDRAM(bmp12864);//顯示開機畫面
- Delay100ms(20);//延時
- Clean_12864_GDRAM();
- lcm_init();
- display_welcome();
- Delay100ms(20);
- mainmenu(0);
- w=1;
- menu2=0;
- while(1)
- {
- /*-----------------------------紅外遙控切換功能---------------------------*/
- if (key_manue==1)
- {
- DelayM(8);
- /*-----------------當是主菜單調時狀態 本鍵用于調整下一項---------------------------*/
- if(key_manue==1&&w==1&& menu2==0) //w為主菜單狀態位,menu2為子菜單狀態參數
- {
- key_manue=0;
- e++;
- if (e >= 3 ) {e = 0;}
- mainmenu(e); //主菜單調整
- }
- /*------------------------當是子菜單時調整信息顯示子菜單-----------------------*/
- if(key_manue==1&&w == 0 &&menu2==1&&e==0)
- {
- key_manue=0;
- d++;
- if(d>=3){d=0;}
- set_info(d);
- }
- /*---------------------當是子菜單時調整充值子菜單------------------------------*/
- if(key_manue==1&&w == 0&&menu2==1&&e==1)
- {
- key_manue=0;
- t++;
- if(t>=2){t=0;}
- set_inch(t);
- }
- /*---------------------當是子菜單時調整消費子菜單-------------------------------*/
- if(key_manue==1&&w == 0&&menu2==1&&e==2)
- {
- key_manue=0;
- a++;
- if(a>=2){a=0;}
- set_cons(a);
- }
- key_manue=0;
- }
- /*-----------------------------紅外遙控切換功能---------------------------*/
- /*--------------紅外遙控確認功能----------------------------------------*/
- if (key_ok==1)
- {
- DelayM(8);
- /*---------------------主菜單時選項選擇確認功能-----------------------------------*/
- if(key_ok==1&&w==1&&menu2==0)
- {
- key_ok=0;
- menu2=1;
- w=0;
- switch(e) //進入相應子菜單
- {
- case 0:
- d=0;
- set_info(d);
- break;
- case 1: t=0;
- set_inch(t);
- break;
- case 2: a=0;
- set_cons(a);
- break;
- }
- }
- /*---------------------子菜單時選項選擇確認功能-----------------------------------*/
- if(key_ok==1&&w==0&&menu2==1)
- {
- key_ok=0;
- switch(e) //各子菜單確認鍵功能定義
- {
-
- case 0:
- if(d==0)
- { info();}
- if(d==1)
- { initcard();}
- if(d==2)
- { menu2=0; w=1; mainmenu(0);}
- break;
- case 1:
- if(t==0)
- {incharg();}
- if(t==1)
- {menu2=0;w=1;mainmenu(1);}
- break;
- case 2:
- if(a==0)
- {consume();}
- if(a==1)
- {menu2=0;w=1;mainmenu(2);}
- break;
- }
- }
- key_ok=0;
- }
- /*--------------紅外遙控確認功能----------------------------------------*/
- /*---------------------遙控鍵盤輸入功能-----------------------------------*/
- 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)
- {
- DelayM(8);
- 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)
- {
- if(w==0&&menu2==1)
- {
- set_inch_input();
- key0=0;
- key1=0;
- key2=0;
- key3=0;
- key4=0;
- key5=0;
- key6=0;
- key7=0;
- key8=0;
- key9=0;
- key_back=0;
- key_dot=0;
- }
- }
- }
- /*---------------------遙控鍵盤輸入功能-----------------------------------*/
- }
- }
復制代碼
|