娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

單片機RFID高頻RC632讀卡程序,14443A,B.15693,都有

發布者:ping777最新更新時間:2019-10-25 來源: 51hei關鍵字:單片機  RFID高頻  RC632  讀卡程序  14443A 手機看文章 掃描二維碼
隨時隨地手機看文章

這是51單片機并行口rc632讀卡程序

單片機源程序如下:

#include

#include

#include

#include "main.h"

#include "slrc632.h"

#include "iso14443a.h"

#include "iso14443b.h"

#include "iso15693.h" 


/*Declare SFR associated with the IAP */

sfr  IAP_DATA     =   0xE2;      //Flash data register

sfr  IAP_ADDRH    =   0xE3;            //Flash address HIGH

sfr  IAP_ADDRL    =   0xE4;            //Flash address LOW

sfr  IAP_CMD      =   0xE5;            //Flash command register

sfr  IAP_TRIG     =   0xE6;            //Flash command trigger

sfr  IAP_CONTR    =   0xE7;            //Flash control register


//硬件版本號         

unsigned char code hardmodel[12]  = {"SL601F-0512"};  


bit g_bReceOk;                                              //正確接收到上位機指令標志

bit g_bReceAA;                                              //接收到上位機發送的AA字節標志

bit g_bRc632Ok;                                             //RC632復位正常標志

bit g_bIblock;


void outputconvery ();


unsigned char Readcard_flag,start_flag=0,startnum=0;

unsigned int  idata g_cReceNum;                            //接收到上位機的字節數

unsigned int  data g_cCommand;                              //接收到的命令碼

unsigned char data g_cSNR[4];                               //M1卡序列號

unsigned char g_cIcdevH;                                    //設備標記

unsigned char g_cIcdevL;                                    //設備標記

unsigned char g_cFWI;                                       //

unsigned char idata  g_cCidNad,huankuaiflag=0;                                    //

unsigned char idata g_cReceBuf[64];                         //和上位機通訊時的緩沖區

unsigned char idata canshu[5]={0x00,0x00,0x00,0x10,0x01};//0:扇區,1:塊,2-3:卡號首尾位置,4:讀卡方式

unsigned char idata key[6]={0xFF,0xFF,0xFF,0xFF,0xFF,0xFF};//密碼

unsigned char idata canshuflag=0,timenum=0,UID[4];

struct TranSciveBuffer{unsigned char MfCommand;

                       unsigned int  MfLength;

                       unsigned char MfData[64];

                      };


/***************************定時器0初始化********************************/

void timer0init (void)//22.1184MHZ,20ms

{        

        TH0=0x70; 

        TL0=0x00;

        ET0=1;

        TR0=1;

        TMOD=0x21;

}


/*****************************定時器0中斷函數********************************/

void timer0(void) interrupt 1

{

        TH0=0x70; 

        TL0=0x00;

        timenum++;

        if(timenum==100)  canshuflag=1,timenum=0;

}

        

void gonggongdaima(void)

{

        IAP_TRIG = 0x46;//發送46h到觸發寄存器

        IAP_TRIG = 0xB9;//發送B9h到觸發寄存器

        _nop_();//延時

        IAP_CONTR = 0;//關閉IAP功能

        IAP_CMD = 0;//清空命令寄存器

        IAP_TRIG = 0;//清空命令觸發寄存器

        IAP_ADDRH = 0;//清空地址高位

        IAP_ADDRL = 0;//清空地址低位

}

/**************************字節讀函數***************************************/

unsigned char Byte_Read(unsigned int add)

{

        IAP_DATA = 0x00;//清空數據

        IAP_CONTR = 0x81;//打開IAP,設置操作等待時間 

        IAP_CMD = 0x01;//字節讀命令

        IAP_ADDRH = add>>8;//設置高8位地址

        IAP_ADDRL = add&0x00ff;//設置低8位地址

        gonggongdaima();

        return (IAP_DATA);//返回讀到的數據

}


/*****************************字節編程函數*****************************/

void Byte_Program(unsigned int add, unsigned char dat)

{

        IAP_CONTR = 0x81;//打開IAP,設置操作等待時間 

        IAP_CMD = 0x02;//字節編程命令

        IAP_ADDRH = add>>8;//設置高8位地址

        IAP_ADDRL = add&0x00ff;//設置低8位地址

        IAP_DATA = dat;//要編程的數據先送進IAP_DATA寄存器

        gonggongdaima();

}


/*****************************扇區擦除函數****************************/

void Sector_Erase(unsigned int add)

{

        IAP_CONTR = 0x81;//打開IAP,設置操作等待時間 

        IAP_CMD = 0x03;//扇區擦除命令

        IAP_ADDRH = add>>8;//設置高8位地址

        IAP_ADDRL = add&0x00ff;//設置低8位地?

        gonggongdaima();

}



/****************************讀取參數函數************************/

void Read_canshu(void)

{

        canshu[0]=Byte_Read(0x8000);

        canshu[1]=Byte_Read(0x8001);

        canshu[2]=Byte_Read(0x8002);

        canshu[3]=Byte_Read(0x8003);

        canshu[4]=Byte_Read(0x8004);

}        

void Read_Akey(void)

{

        key[0]=Byte_Read(0x8200);

        key[1]=Byte_Read(0x8201);

        key[2]=Byte_Read(0x8202);

        key[3]=Byte_Read(0x8203);

        key[4]=Byte_Read(0x8204);

        key[5]=Byte_Read(0x8205);

}        

void Read_Bkey(void)

{

        key[0]=Byte_Read(0x8400);

        key[1]=Byte_Read(0x8401);

        key[2]=Byte_Read(0x8402);

        key[3]=Byte_Read(0x8403);

        key[4]=Byte_Read(0x8404);

        key[5]=Byte_Read(0x8405);

}


/****************************保存參數函數****************************/

void Save_canshu(void)

{

        Sector_Erase(0x8000);//擦除扇區

        Byte_Program(0x8000,canshu[0]);

        Byte_Program(0x8001,canshu[1]);

        Byte_Program(0x8002,canshu[2]);

        Byte_Program(0x8003,canshu[3]);

        Byte_Program(0x8004,canshu[4]);

}

void Save_Akey(void)

{

        Sector_Erase(0x8200);//擦除扇區

        Byte_Program(0x8200,key[0]);

        Byte_Program(0x8201,key[1]);

        Byte_Program(0x8202,key[2]);

        Byte_Program(0x8203,key[3]);

        Byte_Program(0x8204,key[4]);

        Byte_Program(0x8205,key[5]);

}

void Save_Bkey(void)

{        

        Sector_Erase(0x8400);//擦除扇區

        Byte_Program(0x8400,key[0]);

        Byte_Program(0x8401,key[1]);

        Byte_Program(0x8402,key[2]);

        Byte_Program(0x8403,key[3]);

        Byte_Program(0x8404,key[4]);

        Byte_Program(0x8405,key[5]);

}                                                                                    


void delay(unsigned int i)

{

   unsigned char j;

   while(i--) for(j=0;j<200;j++);

}


void BEEP(unsigned char i)

{

  unsigned char k;

        k=100;

  sond =  0;

        redled = 1;

        blueled =  0;

        delay(k);

        sond =1;

        blueled = 1;

        redled = 0;   

}


void REDON(void)

{

    redled =  1;

}


void REDOFF(void)

{

    redled =  0;

}

void BLUEON(void)

{

    blueled =  1;

}


void BLUEOFF(void)

{

    blueled =  0;

}



                                          

void main( )

{      

                InitializeSystem( );

                Rc632Ready( ); 

                PcdConfigISOType( '1' );

                BEEP(2);                 

                DelayMs(1000);

                RC632_CE=0;

[1] [2] [3] [4] [5] [6]
關鍵字:單片機  RFID高頻  RC632  讀卡程序  14443A 引用地址:單片機RFID高頻RC632讀卡程序,14443A,B.15693,都有

上一篇:51單片機pwm調制 產生多路分頻信號 倍頻
下一篇:基于51單片機8音鍵電子琴DIY制作

小廣播
設計資源 培訓 開發板 精華推薦

最新單片機文章
何立民專欄 單片機及嵌入式寶典

北京航空航天大學教授,20余年來致力于單片機與嵌入式系統推廣工作。

隨便看看

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京B2-20211791 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 蒙城县| 新兴县| 阜康市| 宜黄县| 金山区| 德格县| 莆田市| 南华县| 鄂伦春自治旗| 仪陇县| 灵丘县| 庆安县| 当阳市| 田林县| 怀集县| 平江县| 张家界市| 武鸣县| 新乡市| 南漳县| 开化县| 义乌市| 汽车| 白城市| 乌拉特前旗| 富锦市| 辽中县| 永宁县| 砚山县| 莎车县| 广河县| 武威市| 秦安县| 海南省| 芒康县| 南昌县| 新建县| 义马市| 洞头县| 含山县| 安图县|