使用STC89C52單片機,RC522模塊采用模擬SPI通信,OLED12864采用模擬IIC通信,實現對M1卡的讀寫以及顯示,不需要原理圖,程序里有引腳定義。
51hei圖片20190808092108.png (241.56 KB, 下載次數: 52)
下載附件
2019-8-8 09:21 上傳
51hei圖片20190808092058.png (186.54 KB, 下載次數: 42)
下載附件
2019-8-8 09:21 上傳
單片機源程序如下:
- #include <stc8.h>
- #include <main.h>
- #include <stdio.h>
- #include "mfrc522.h"
- #include "oled12864.h"
- #include "codetab.h"
- #include "intrins.h"
- unsigned char code DefaultKey[6] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
- unsigned char idata TagType[2];
- unsigned char idata SelectedSnr[4];
- /////////////////////////////////////////////////////////////////////
- //系統初始化
- /////////////////////////////////////////////////////////////////////
- void InitializeSystem()
- {
- P0 = 0xFF; P1 = 0xFF; P3 = 0xFF; P5 = 0xFF;
-
- PcdReset(); //RC522復位
- PcdAntennaOff(); //關閉RC522天線
- PcdAntennaOn(); //打開RC522天線
- M500PcdConfigISOType( 'A' ); //設置RC522工作方式
- }
- void main( )
- {
- char idata status,word_number;
- unsigned char idata snr, buf[16];
- InitializeSystem( ); //系統初始化
-
- OLED_Init(); //OLED初始化
- OLED_Fill(0xff); //全屏亮
- delayms(100);
- OLED_Fill(0x00); //全屏滅
- delayms(100);
-
- while (1)
- {
- status= PcdRequest(REQ_ALL,TagType); //RC522開始尋卡
- if(!status)
- {
- status = PcdAnticoll(SelectedSnr); //防沖撞
- if(!status)
- {
- status=PcdSelect(SelectedSnr); //選擇卡片
- if(!status)
- {
- snr = 0; //選擇卡片扇區0
- status = PcdAuthState(KEYA, (snr*4+3), DefaultKey, SelectedSnr); //校驗0扇區密碼,密碼位于每一扇區第3塊
- {
- if(!status)
- {
- status = PcdRead((snr*4+1), buf); //讀卡,讀取0扇區1塊數據到buf[16]
- for(word_number=0; word_number<3; word_number++)
- {
- OLED_P16x16Ch(40+word_number*16,0,word_number); //通過16*16點陣來顯示漢字 -- word_number表示字表數組的位置
- }
- OLED_P8x16Str(50,3,buf); //將卡號在OLED上顯示出來
- delayms(800);
- OLED_CLS(); //清屏
-
- if(!status)
- {
- WaitCardOff(); //等待IC卡離開
- }
- }
- }
- }
- }
- }
- }
- }
復制代碼
所有資料51hei提供下載:
寫卡.zip
(111.22 KB, 下載次數: 122)
2019-8-8 09:23 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
讀卡 OLED12864.zip
(133.88 KB, 下載次數: 114)
2019-8-8 09:23 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
讀卡.zip
(89.8 KB, 下載次數: 101)
2019-8-8 09:23 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|