MFRC522电路原理图与单片机测试程序

发布者:一直333最新更新时间:2019-12-11 来源: 51hei关键字:MFRC522  单片机  测试程序 手机看文章 扫描二维码
随时随地手机看文章

MFRC522电路原理图:
 

天线部分:
 


单片机+MFRC522测试源程序如下:

/**********************RC522实验开发板例程************************

*  CPU:STC89C52RC

*  晶振:11.0592MHZ


******************************************************************/

//实验目的:

/*-----------------------------------------------

  名称:MF RC522

  内容:通过标准程序静态显示字符

  引脚定义如下:

sbit     MF522_NSS  = P1^7;                        //SDA

sbit     MF522_SCK  = P1^6;

sbit     MF522_SI   = P1^5;

sbit     MF522_SO   = P1^4;

sbit     MF522_RST  = P1^3;                  

//蜂鸣器OR指示灯

sbit     LED_GREEN  =    P2^3; 

------------------------------------------------*/

#include "lpcreg.h"

#include "main.h"

#include "mfrc522.h"

#include   

#include

unsigned char code data1[16] = {0x12,0x34,0x56,0x78,0xED,0xCB,0xA9,0x87,0x12,0x34,0x56,0x78,0x01,0xFE,0x01,0xFE};

//M1卡的某一块写为如下格式,则该块为钱包,可接收扣款和充值命令

//4字节金额(低字节在前)+4字节金额取反+4字节金额+1字节块地址+1字节块地址取反+1字节块地址+1字节块地址取反 

unsigned char code data2[4]  = {0,0,0,0x01};

unsigned char code DefaultKey[6] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}; 



unsigned char g_ucTempbuf[20];                        

void delay1(unsigned int z)

{

        unsigned int x,y;

        for(x=z;x>0;x--)

        for(y=110;y>0;y--);        

}  



void main( )

{    

     unsigned char status,i;

          unsigned int temp;

     InitializeSystem( );

     PcdReset();

     PcdAntennaOff(); 

     PcdAntennaOn(); 

     while ( 1 )

     {   



         status = PcdRequest(PICC_REQALL, g_ucTempbuf);//寻卡

         if (status != MI_OK)

         {    

              InitializeSystem( );

     PcdReset();

     PcdAntennaOff(); 

     PcdAntennaOn(); 

                          continue;

         }

                             

                        printf("卡的类型:");

            for(i=0;i<2;i++)

                                        {

                                                temp=g_ucTempbuf[i];

                                                printf("%X",temp);

                                                

                                        }

                        

         status = PcdAnticoll(g_ucTempbuf);//防冲撞

         if (status != MI_OK)

         {    continue;    }


         

                                        ////////以下为超级终端打印出的内容////////////////////////

                                

                                        printf("卡序列号:");        //超级终端显示,

                                        for(i=0;i<4;i++)

                                        {

                                                temp=g_ucTempbuf[i];

                                                printf("%X",temp);

                                                

                                        }


                                        ///////////////////////////////////////////////////////////


         status = PcdSelect(g_ucTempbuf);//选定卡片

         if (status != MI_OK)

         {    continue;    }

         

         status = PcdAuthState(PICC_AUTHENT1A, 1, DefaultKey, g_ucTempbuf);//验证卡片密码

         if (status != MI_OK)

         {    continue;    }

         

         status = PcdWrite(1, data1);//写块

         if (status != MI_OK)

         {    continue;    }

while(1)

                {

         status = PcdRequest(PICC_REQALL, g_ucTempbuf);//寻卡

         if (status != MI_OK)

         {   

                 InitializeSystem( );

     PcdReset();

     PcdAntennaOff(); 

     PcdAntennaOn(); 

                          continue;

         }

                 status = PcdAnticoll(g_ucTempbuf);//防冲撞

         if (status != MI_OK)

         {    continue;    }

                status = PcdSelect(g_ucTempbuf);//选定卡片

         if (status != MI_OK)

         {    continue;    }

         

         status = PcdAuthState(PICC_AUTHENT1A, 1, DefaultKey, g_ucTempbuf);//验证卡片密码

         if (status != MI_OK)

         {    continue;    }



         status = PcdValue(PICC_DECREMENT,1,data2);//扣款

         if (status != MI_OK)

         {    continue;    }

                 

         status = PcdBakValue(1, 2);//块备份

         if (status != MI_OK)

         {    continue;    }

         

         status = PcdRead(2, g_ucTempbuf);//读块

         if (status != MI_OK)

         {    continue;    }

                printf("卡读块:");        //超级终端显示,

         for(i=0;i<16;i++)

                                        {

                                                temp=g_ucTempbuf[i];

                                                printf("%X",temp);

                                                

                                        }


                 printf("n");

                LED_GREEN = 0;

                delay1(100);

                LED_GREEN = 1;

                delay1(100);

                LED_GREEN = 0;

                delay1(200);

                LED_GREEN = 1;                                                          

[1] [2]
关键字:MFRC522  单片机  测试程序 引用地址:MFRC522电路原理图与单片机测试程序

上一篇:数码管显示时钟可设置断电记忆
下一篇:简单做的基于51单片机的数码管时钟

推荐阅读最新更新时间:2024-11-07 16:54

基于单片机的医学信号检测仪的设计应用
1 引 言 传统的检测仪器大多由硬件电路来完成,不仅功能单一,而且开发周期长,不易维护。随着微电子技术和信息技术的高速发展,医学检测仪器正向组合式、多功能、智能化和微型化方向发展。 现代数字部件的快速发展为医学检测仪提供了强有力的支持,医学检测仪器都无一例外地采用了微处理器来增强其功能。广泛地应用微处理器芯片能增强仪器的智能化程度,提高其稳定性和数据处理的精确性,使医学信号的采集、处理、通信一体化,并具有自诊断、自校验等一系列优点。 ATMEL公司新推出的AT90系列AVR单片机是很引人注目的一款微处理器。这种芯片基于新的RISC(Reduced Instruction Set Computer)结构,在设计上采用了流水线的
[单片机]
基于<font color='red'>单片机</font>的医学信号检测仪的设计应用
单片机学习:单片机编程入门一
单片机教程:单片机编程入门一 1、单片机是什么? 一台能够工作的计算机要有这样几个部份构成:CPU(进行运算、控制)、RAM(数据存储)、ROM(程序存储)、输入/输出设备(例如:串行口、并行输出口等)。在个人计算机上这些部份被分成若干块芯片,安装一个称之为主板的印刷线路板上。而在单片机中,这些部份,全部被做到一块集成电路芯片中了,所以就称为单片(单芯片)机,而且有一些单片机中除了上述部份外,还集成了其它部份如A/D,D/A等。 天!PC中的CPU一块就要卖几千块钱,这么多东西做在一起,还不得买个天价!再说这块芯片也得非常大了。 不,价格并不高,从几元人民币到几十元人民币,体积也不大,一般用40脚封装,当然功能多一些单片
[单片机]
基于单片机的数据采集设计
1、设计要求   利用实验仪上的0809做A/ D转换实验,实验仪上的W1电位器提供模拟量输入。编制程序,将模拟量转换成数字量,通过发光二极管L1—L8显示。   2、设计说明   A/ D转换器大致分有三类:一是双积分A/ D转换器,优点是精度高,抗干扰性好,价格便宜,但速度慢;二是逐次逼近式A/ D转换器,精度、速度、价格适中;三是并行A/ D转换器,速度快,价格也昂贵。 实验用ADC0809属第二类,是8位A/ D转换器。每采集一次一般需100μs。由于ADC0809 A/ D转换器转换结束后会自动产生EOC信号(高电平有效),取反后将其与8031的INT0相连,可以用中断方式读取A/ D转换结果。   3、数据采集
[单片机]
基于<font color='red'>单片机</font>的数据采集设计
基于ATmega16单片机的干式变压器智能温度控制器设计
1工作原理   温控仪由温度监测、信号处理、输出控制三部分组成。系统框图如图1所示,它通过预埋在 变压器三相绕组中的三只铂电阻 传感器 获取绕组温度值,经信号调理电路处理后直接送入控制器的A/D转换输入端。微控制器根据信号数据及设定的各种控制参数,按照嵌入的软件控 制规律执行计算与处理,自动显示变压器绕组的温度值、输出相应的控制信号、控制风机的启停,并根据当前状态输出正常、报警和跳闸信号等,同时将各种数据通过RS-485传到上位机实现集中监控。   温控仪控制核心采用ATmegal6单片机,它是一款基于AVR RISC的低功耗CMOS 8位单片机,在 一个时钟周期内执行一条指令,可以取得1MIPS/MHz的性能,因此具有实
[单片机]
基于ATmega16<font color='red'>单片机</font>的干式变压器智能温度控制器设计
数字电路中Multisim10单片机的应用
  引言   单片机体积小,质量轻,具有很强的灵活性,而且价格也不高,从而得到越来越广泛的应用。其中以Inter公司推出的8051 /8052芯片最基础、最普及、最常用。8051 /8052在小、中型开发场合应用很广,已成为单片机领域的标准。   在电子仿真软件Multisim10中,也引入了单片机仿真内容,且它的模块型号就是最常见和应用广泛的8051 /8052。在Multisim10中, 8051 /8052 不但可以用汇编语言编写程序,同时也支持C语言编写程序,拓展了单片机8051 /8052的使用,使虚拟仿真显得更加灵活和实用。   下面以一个具体的11进制计数器应用例子来说明(用C语言编写程序) ,详细介绍如
[单片机]
单片机与模糊控制的温控仪设计与实现
摘要:温度是科学技术中最基本的物理量之一,在工业生产和生活中,常常是表征对象和过程状态的重要参数,其控制具有非线性、时滞性和不确定性,用传统的控制达不到好的控制效果。设计一种以单片机MSP430F149为系统的核心部件,并将模糊控制算法应用到其中的温控仪上,温度控制范围为常温0~100℃,设定温度值与测量温度值实时显示,控制精度可达±0.5℃。该系统采用恒泷供电,电路较简单,成本低,温度控制精度高,可以广泛应用于需要进行恒温控制的生产和生活中。   0 引言   温度控制对于工业和日常生活等领域都具有广阔的应用前景,很多应用领域,需要精度较高的恒温控制,由于其控制具有非线性、时滞性和不确定性,用传统的控制达不到好的控制效果。模糊控
[模拟电子]
<font color='red'>单片机</font>与模糊控制的温控仪设计与实现
串行接口键盘控制器SK5278及其在单片机系统中的应用
摘要:SK5278是一种可管理16个按键的键盘控制器,该器件内部具有去抖动处理电路,可直接输出按键的键值编码,并采用串行方式与单片机或微处理器进行接口,使用该器件可简化单片机系统软硬件的键盘接口。文中给出了该器件的特点、管脚说明和使用方法,并以AT89C2051单片机为例给出了相应的接口电路及相应程序。 关键词:键盘控制 串行接口 单片机 SK5278 对于以单片机为核心构成的智能仪器、仪表、工控设备及家用电器而言,构成人机交互的键盘接口电路是必不可少的,而相应的键盘管理软硬件设计却比较麻烦。简单的矩阵键盘存在着占用CPU软硬件资源多、响应速度慢、监控软件编制复杂等问题,专用的键盘接口器件如INTE8279、HD7219又往往
[单片机]
e络盟使STM32F4 Discovery MCU开发套件实现无线网络连接
e络盟近日宣布提供用于意法半导体(ST)STM32F4 Discovery微控制器开发套件的Discover Wi-Fi开发板,以实现无线连接。Discover Wi-Fi开发板采用Murata SN8200无线网络控制器模块,可提供板载Wi-Fi功能及网络软件栈,是各种高性能、低功耗无线解决方案的完美选择。 Discover Wi-Fi开发板插入意法半导体的STM32F4 Discovery套件后,借助UART和SPI命令接口以及工作频段在2.4 GHz的 IEEE802.11b/g/n标准可提供一系列的广泛功能。Discover Wi-Fi开发板还配备源代码、文档及软件演示,有利于快速启动无线网络项目。 亚太区用户现可
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved