⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 使用RC531读卡芯片读取二代身份证的模块软件设计部分
💻 C
字号:
//------------------------------------------------------------------------*
//工 程 名:JB8_IO_SPI.prj                                                 *
//硬件连接:读写模块为标准DIP40封装                                        *
//说    明:                                                               *
//      (1)运行指示灯长闪烁3次表示初始化成功                              *
//      (2)运行指示灯短闪烁1次表示读卡成功                                *
//      (3)UID信息存储在内存中的Card_inform[]数组中,首字节表示电子标签类型*
//      (4)外部控制系统通过SPI接口与读写模块通信,每次交互1个字节。读写模  *
//         块作为SPI从机,响应SPI主机的从机选择信号,根据前一次接收的数据, *
//         发送相应的读写模块获取的电子标签UID信息(详见键盘中断处理函数)  *
//------------------------------------------------------------------------*

//总头文件
#include "Includes.h"

//主函数
void main()
{
    INT8U JB8_RSTState;         //JB8复位状态标志位 0-成功 ,1-失败
    INT8U CardA_OK,CardB_OK;
    INT8U i;
    INT8U UIDLen;
    INT8U UID[11];
    
    JB8_RSTState = 0;
    
    //初始化
    DisableMCUint();     //禁止总中断    
    MCUinit();           //芯片初始化
    LEDinit();           //运行指示灯初始化
    SPI0Init();          //SPI0初始化(与NE64通信)模拟从机    
    Card_inform[0] = 'A';//UID数据数组,Card_inform[0]:“A”-A卡,“B”-B卡 
    EnableKBint();       //开放键盘中断,响应从机选择   
    EnableMCUint();      //开总中断
    LED_Spark(3, 'L');   //运行指示灯长闪烁3次,表明初始化成功
    
    //总循环
    while (1)
    {
        //复位及初始化RC531
        JB8_RSTState = RFReset();    
		
        //ISO14443A 处理部分
		RC531_14443ABInit(1);                //按ISO14443A标准设置相关寄存器	 
		CardA_OK = ReadTag(1, &UIDLen, UID); //读TypeA卡
		if(CardA_OK == 0)
		{
		    //获取A卡UID成功,并记录UID信息
		    Card_inform[0] = 'A';
		    for(i = 0; i < 5; i++)
		        Card_inform[i + 1] = UID[i];
            LED_Spark(1, 'S');               //运行指示灯短闪烁一次,表明读卡成功
		}
		
        //ISO14443B 处理部分      
		RC531_14443ABInit(0);                //按ISO14443B标准设置相关寄存器	 
		CardB_OK = ReadTag(0, &UIDLen, UID); //读TypeB卡				
		if(CardB_OK == 0)
		{
		    //获取B卡卡号成功,并记录UID信息
		    Card_inform[0] = 'B';
		    for(i = 0; i < 10; i++)
		        Card_inform[i + 1] = UID[i];
            LED_Spark(1, 'S');               //运行指示灯短闪烁一次,表明读卡成功
		}					
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -