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

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

發(fā)布者:ping777最新更新時間:2019-10-25 來源: 51hei關(guān)鍵字:單片機  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;                                              //正確接收到上位機指令標(biāo)志

bit g_bReceAA;                                              //接收到上位機發(fā)送的AA字節(jié)標(biāo)志

bit g_bRc632Ok;                                             //RC632復(fù)位正常標(biāo)志

bit g_bIblock;


void outputconvery ();


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

unsigned int  idata g_cReceNum;                            //接收到上位機的字節(jié)數(shù)

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

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

unsigned char g_cIcdevH;                                    //設(shè)備標(biāo)記

unsigned char g_cIcdevL;                                    //設(shè)備標(biāo)記

unsigned char g_cFWI;                                       //

unsigned char idata  g_cCidNad,huankuaiflag=0;                                    //

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

unsigned char idata canshu[5]={0x00,0x00,0x00,0x10,0x01};//0:扇區(qū),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中斷函數(shù)********************************/

void timer0(void) interrupt 1

{

        TH0=0x70; 

        TL0=0x00;

        timenum++;

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

}

        

void gonggongdaima(void)

{

        IAP_TRIG = 0x46;//發(fā)送46h到觸發(fā)寄存器

        IAP_TRIG = 0xB9;//發(fā)送B9h到觸發(fā)寄存器

        _nop_();//延時

        IAP_CONTR = 0;//關(guān)閉IAP功能

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

        IAP_TRIG = 0;//清空命令觸發(fā)寄存器

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

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

}

/**************************字節(jié)讀函數(shù)***************************************/

unsigned char Byte_Read(unsigned int add)

{

        IAP_DATA = 0x00;//清空數(shù)據(jù)

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

        IAP_CMD = 0x01;//字節(jié)讀命令

        IAP_ADDRH = add>>8;//設(shè)置高8位地址

        IAP_ADDRL = add&0x00ff;//設(shè)置低8位地址

        gonggongdaima();

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

}


/*****************************字節(jié)編程函數(shù)*****************************/

void Byte_Program(unsigned int add, unsigned char dat)

{

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

        IAP_CMD = 0x02;//字節(jié)編程命令

        IAP_ADDRH = add>>8;//設(shè)置高8位地址

        IAP_ADDRL = add&0x00ff;//設(shè)置低8位地址

        IAP_DATA = dat;//要編程的數(shù)據(jù)先送進IAP_DATA寄存器

        gonggongdaima();

}


/*****************************扇區(qū)擦除函數(shù)****************************/

void Sector_Erase(unsigned int add)

{

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

        IAP_CMD = 0x03;//扇區(qū)擦除命令

        IAP_ADDRH = add>>8;//設(shè)置高8位地址

        IAP_ADDRL = add&0x00ff;//設(shè)置低8位地?

        gonggongdaima();

}



/****************************讀取參數(shù)函數(shù)************************/

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);

}


/****************************保存參數(shù)函數(shù)****************************/

void Save_canshu(void)

{

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

        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);//擦除扇區(qū)

        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);//擦除扇區(qū)

        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]
關(guān)鍵字:單片機  RFID高頻  RC632  讀卡程序  14443A 引用地址:單片機RFID高頻RC632讀卡程序,14443A,B.15693,都有

上一篇:51單片機pwm調(diào)制 產(chǎn)生多路分頻信號 倍頻
下一篇:基于51單片機8音鍵電子琴DIY制作

小廣播
設(shè)計資源 培訓(xùn) 開發(fā)板 精華推薦

最新單片機文章
隨便看看

 
EEWorld訂閱號

 
EEWorld服務(wù)號

 
汽車開發(fā)圈

 
機器人開發(fā)圈

電子工程世界版權(quán)所有 京B2-20211791 京ICP備10001474號-1 電信業(yè)務(wù)審批[2006]字第258號函 京公網(wǎng)安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 紫阳县| 舟山市| 长沙县| 安仁县| 栾城县| 西丰县| 利川市| 临夏市| 瑞昌市| 太原市| 夏河县| 长阳| 潞城市| 连云港市| 遂宁市| 旺苍县| 荣昌县| 喜德县| 元谋县| 察雅县| 玛沁县| 兰州市| 佛学| 娱乐| 舟曲县| 封开县| 阳谷县| 郸城县| 闽清县| 延寿县| 曲周县| 达尔| 新龙县| 平乐县| 博兴县| 曲阳县| 浦北县| 常熟市| 卓资县| 错那县| 涟水县|