单片机教程网

电脑版
提示:原网页已由神马搜索转码, 内容由www.51hei.com提供.
查看:5911|回复:7
打印上一主题下一主题

STC89C52单片机RC522射频读写卡器以及OLED显示源程序

 [复制链接]
跳转到指定楼层
楼主
ID:438036发表于 2019-8-8 09:24|只看该作者|只看大图回帖奖励
使用STC89C52单片机,RC522模块采用模拟SPI通信,OLED12864采用模拟IIC通信,实现对M1卡的读写以及显示,不需要原理图,程序里有引脚定义。


单片机源程序如下:
  1. #include< stc8.h>
  2. #include< main.h>
  3. #include< stdio.h>
  4. #include "mfrc522.h"    
  5. #include "oled12864.h"
  6. #include "codetab.h"
  7. #include "intrins.h"

  8. unsigned char code DefaultKey[6] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
  9. unsigned char idata TagType[2];
  10. unsigned char idata SelectedSnr[4];

  11. /////////////////////////////////////////////////////////////////////
  12. //系统初始化
  13. /////////////////////////////////////////////////////////////////////
  14. void InitializeSystem()
  15. {
  16.      P0 = 0xFF; P1 = 0xFF; P3 = 0xFF; P5 = 0xFF;
  17.     
  18.      PcdReset();                                                                                             //RC522复位
  19.      PcdAntennaOff();                                                                                 //关闭RC522天线
  20.      PcdAntennaOn();                                                                                   //打开RC522天线
  21.   M500PcdConfigISOType( 'A' );                                                         //设置RC522工作方式
  22. }

  23.   void main( )
  24. {
  25.      char idata status,word_number;
  26.      unsigned char idata snr, buf[16];  

  27.   InitializeSystem( );             //系统初始化
  28.     
  29.      OLED_Init();                                                     //OLED初始化
  30.      OLED_Fill(0xff);                                             //全屏亮
  31.      delayms(100);
  32.      OLED_Fill(0x00);                                             //全屏灭
  33.      delayms(100);
  34.     
  35.   while (1)
  36.    {
  37.          status= PcdRequest(REQ_ALL,TagType);                     //RC522开始寻卡
  38.          if(!status)
  39.          {
  40.              status = PcdAnticoll(SelectedSnr);       //防冲撞
  41.              if(!status)
  42.              {
  43.                  status=PcdSelect(SelectedSnr);                         //选择卡片
  44.                  if(!status)
  45.                  {
  46.                      snr = 0;                                                                                                                       //选择卡片扇区0
  47.        status = PcdAuthState(KEYA, (snr*4+3), DefaultKey, SelectedSnr);         //校验0扇区密码,密码位于每一扇区第3块
  48.                      {
  49.                          if(!status)
  50.                          {
  51.                              status = PcdRead((snr*4+1), buf);                                   //读卡,读取0扇区1块数据到buf[16]
  52.                              for(word_number=0; word_number<3; word_number++)    
  53.                              {
  54.                                  OLED_P16x16Ch(40+word_number*16,0,word_number); //通过16*16点阵来显示汉字 -- word_number表示字表数组的位置
  55.                              }
  56.                              OLED_P8x16Str(50,3,buf);                   //将卡号在OLED上显示出来
  57.                              delayms(800);
  58.                              OLED_CLS();                                                                                 //清屏
  59.                             
  60.                              if(!status)
  61.                              {
  62.                                  WaitCardOff();                                                         //等待IC卡离开
  63.                              }
  64.                          }
  65.                      }
  66.                  }
  67.              }
  68.          }    
  69.      }
  70. }
复制代码

所有资料51hei提供下载:
写卡.zip(111.22 KB, 下载次数: 107)
读卡 OLED12864.zip(133.88 KB, 下载次数: 101)
读卡.zip(89.8 KB, 下载次数: 89)


评分

黑币 +50
收起理由
+ 50
共享资料的黑币奖励!

查看全部评分

沙发
ID:384820发表于 2019-8-25 00:23|只看该作者
谢谢楼主分享,下载学习学习,不明白了再请教楼主,谢谢。
板凳
ID:106121发表于 2019-9-4 16:56|只看该作者
学习一下 顶起来!
地板
ID:627279发表于 2019-12-24 16:51|只看该作者
学习一下,顶
5#
ID:111676发表于 2019-12-27 15:46|只看该作者
学习一下 顶起来!
6#
ID:689820发表于 2024-1-27 08:36|只看该作者
下载中,学习,谢谢楼主
7#
ID:1123408发表于 2024-6-2 20:48|只看该作者
luoxiao8302 发表于 2024-1-27 08:36
下载中,学习,谢谢楼主

学习一下 下载了
8#
ID:193383发表于 2024-6-30 09:09|只看该作者
下载了希望能成功

手机版|小黑屋|51黑电子论坛|51黑电子论坛6群QQ管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网