欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標(biāo)題:
利用MSP430單片機(jī)編寫的RC522的例程
[打印本頁]
作者:
_少年放肆的夢
時間:
2017-4-30 11:38
標(biāo)題:
利用MSP430單片機(jī)編寫的RC522的例程
利用MSP-430編寫的RC522的例程
0.png
(58.93 KB, 下載次數(shù): 126)
下載附件
2017-5-1 04:55 上傳
完整源碼下載:
MSP430F149讀寫卡參考例程.7z
(47.33 KB, 下載次數(shù): 15)
2017-4-30 11:35 上傳
點擊文件名下載附件
利用MSP430讀寫RC522的例程
下載積分: 黑幣 -5
部分單片機(jī)代碼預(yù)覽:
//
//===========================================================================//
#include "msp430x14x.h"
#include "PIN_DEF.H"
#include "RC522.H"
#include "UART0_Func.c"
#include "ctype.h"
#include "BoardConfig.h"
unsigned char UID[5],Temp[4] ;
unsigned char RF_Buffer[18] ;
unsigned char Password_Buffer[6]={0xFF,0xFF,0xFF,0xFF,0xFF,0xFF} ; // Mifare One 缺省密碼
char MBRX[30] ;
char MBKeyTP[30] ;
char Event ;
unsigned char DISP_MODE,i ; // 編輯控件顯示模式
unsigned char des_on = 0 ; // DES加密標(biāo)志
void Key_TP_Task(void) ;
//***************************************************************************//
// //
// 初始化主時鐘: MCLK = XT1×(FLL_FACTOR+1) //
// //
//***************************************************************************//
void Init_CLK(void)
{
unsigned int qq;
WDTCTL = WDTPW + WDTHOLD ; // 關(guān)看門狗
BCSCTL1 &= ~XT2OFF; //打開XT2高速晶體振蕩器
do
{
IFG1 &= ~OFIFG; //Clear oscFault flag清除振蕩器失效標(biāo)志
for(qq=0xff;qq>0;qq--);
}while((IFG1&OFIFG)); //oscFault flag still set
BCSCTL2 |= SELM_2; //MCLK=XT2
//BCSCTL2 |= DIVM_0; //控制MCLK不分頻,默認(rèn)
BCSCTL2 |= SELS; //SMCLK=XT2
//BCSCTL2 |= DIVS_0; //控制SMCLK不分頻,默認(rèn)
}
void Delay(unsigned int time)
{
unsigned int i,k ;
for(i=0;i<255;i++)
for(k=0;k<time;k++)
_NOP() ;
}
void Auto_Reader(void)
{
while(1)
{
if(PcdRequest(0x52,Temp)==MI_OK)
{
if(Temp[0]==0x04&&Temp[1]==0x00)
PutString("MFOne-S50");
else if(Temp[0]==0x02&&Temp[1]==0x00)
PutString("MFOne-S70");
else if(Temp[0]==0x44&&Temp[1]==0x00)
PutString("MF-UltraLight");
else if(Temp[0]==0x08&&Temp[1]==0x00)
PutString("MF-Pro");
else if(Temp[0]==0x44&&Temp[1]==0x03)
PutString("MF Desire");
else
PutString("Unknown");
if(PcdAnticoll(UID)==MI_OK)
{
PutString0("Card Id is:");
tochar(UID[0]);
tochar(UID[1]);
tochar(UID[2]);
tochar(UID[3]);
while (!(IFG1 & UTXIFG0));
TXBUF0 = '\n'; //發(fā)送換行指令
RED_LED_ON ;
Delay(200) ;
RED_LED_OFF ;
Delay(200) ;
}
}
else GRE_LED_OFF ;
}
}
void Find_Card(void)
{
if(PcdRequest(0x52,Temp)==MI_OK)
{
if(Temp[0]==0x04&&Temp[1]==0x00)
PutString("MFOne-S50");
else if(Temp[0]==0x02&&Temp[1]==0x00)
PutString("MFOne-S70");
else if(Temp[0]==0x44&&Temp[1]==0x00)
PutString("MF-UltraLight");
else if(Temp[0]==0x08&&Temp[1]==0x00)
PutString("MF-Pro");
else if(Temp[0]==0x44&&Temp[1]==0x03)
PutString("MF Desire");
else
PutString("Unknown");
PutString("SUCCESS!");
}
else PutString("Faile!");
}
void Init_Port(void)
{
P4DIR = RF_LPCTL + RF_SS + RF_SCLK + RF_DATA_OUT ;
P2DIR |= BIT0+RF_LPCTL + RF_SS + RF_SCLK + RF_DATA_OUT;
P1DIR = RF_LPCTL + RF_SS + RF_SCLK + RF_DATA_OUT ;
}
/*******************************************
函數(shù)名稱:HandleConfigMenu
功 能:處理PC的配置函數(shù)
參 數(shù):inputvalue--接收到的來自PC機(jī)的字符
返回值 :無
********************************************/
void HandleConfigMenu(uchar inputvalue)
{
switch(toupper(inputvalue))
{
case 'A':
Auto_Reader();
break;
case 'F':
Find_Card();
break;
default:
DisplayConfigMenu();
}
}
void main( void )
{
WDTCTL = WDTPW + WDTHOLD ; // 關(guān)看門狗
BoardConfig(0xf0);
Init_Port();
InitUART();
_EINT() ;
PcdReset();//復(fù)位RC522
PcdAntennaOn();//開啟天線發(fā)射
DisplayConfigMenu();
while(1)
{
Send1Char('>');
Send1Char('\n');
i=Get1Char();
HandleConfigMenu(i);
}
}
復(fù)制代碼
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1