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

📄 main.c

📁 RFID读卡器TRH031开发源码
💻 C
字号:
/***********************************************************
* Company	:	3ALOGICS                                   *
* Writer	:	Suk-Byoung Chea                            *
* Version	:	0.1                                        *
*               2005. 04. 21                               *
*                                                          *
*                                                          *
*                                                          *
************************************************************/
#define _SET_GLOBAL_
#include "common.h"
#include "base.h"
#include <stdio.h>
#include <stdlib.h>

void TRH031M_Init(void)
{	
	Write(0x3f,0xff);
	Line1_Display();
	//String_Out("AnyREAD !! ");
	Line2_Display();
	//String_Out("TRH031M !!");
	//Delay_ms(1000);
	Lcd_Clear();
	return;
}

void main(void)
{

	//interrupt_init();
	Lcd_Initial();
	serial_init();

	TRH031M_Init();  // Interface set : Dummy Read
	Reset_TRH031M();
	AREG_Set();
    RFOFF();
	RFON();
	Delay(20);
  
        Instruction_Out(0x01);             //LCD CLEAR                       
		Delay_ms(100);
		Instruction_Out(0x80);  // Position : 1st Line
	    String_Out("   WELCOME !! ");
	    Instruction_Out(0xC0);  // Position : 2nd Line
	    String_Out(" ANYREAD KIT !! ");	

    Write(0x26, 0x02);
    Write(0x1C, 0x18);
	Write(0x1F, 0x85); // AThresh high/ Athersh low 
    
	AutoMode = 0xAF;

    SEL = 0x00;	
	
	while(1)
	{   
		if(RI==1) FunctionRun();
		else if (AutoMode == 0xAA) { 
			AutoRun_A();
 	    }
		else if (AutoMode == 0xAB) { 
			AutoRun_B();
 	    }
		else if (AutoMode == 0xAD) { 
			AutoRun_15693();
 	    }
		else if (AutoMode == 0xAF) { 
			AutoRun_ALL();
 	    }
			
		//else if (SEL == 0x00 && RxFlag == FALSE && INT0_EX == 0x01) exec_ex0();
	}
}


void FunctionRun(void)
{
    	
	if(SEL == 0x00)
	{	
		DASEL[0] = SBUF;
		RI = 0;

		if (DASEL[0] == 0xC0)
			{
				SEL = 0x01;
			}
		else if (DASEL[0] == 0xC1)
			{
				SEL = 0x01;
		}
		else {
			 switch(DASEL[0])
			{		   				
					case  0xA0     	:     	AREG_Set();  											
											break;    
					case  0xA1     	:     	Exec_REQA();  											
											break;    
					case  0xA2     	:     	Exec_RDID(); 											
											break;     
					case  0xA3     	:     	Exec_REQA_RDID();           		    						
											break;   
  					case  0xAA     	:     	AutoMode = 0xAA;  // A AutoRun Mode 		    					
											break;    
					case  0xAB     	:     	AutoMode = 0xAB;  // B AutoRun Mode 		    					
											break;   	
 					case  0xAD     	:     	AutoMode = 0xAD;  // 15693 AutoRun Mode 	    					
											break;   								    
 					case  0xAF     	:     	AutoMode = 0xAF;  // ALL AutoRun Mode 	    					
											break;   										
 					case  0xAC     	:     	AutoMode = 0x00;  // AutoRun Mode Clear.		    					
											break;   
					case  0xB0     	:     	BREG_Set(); 	
											break;  
  					case  0xB1     	:     	Exec_REQB(); 	
											break;  
					case  0xD0      :       REG15693_Set();
	   										break; 
					case  0xE0      :       TagIt_Set();
	   										break; 
					case  0xD1      :       Exec_15693();
	   										break; 
					case  0xE1      :       Exec_TagIt();
	   										break; 
					case  0xF0      :       FIFO_Read();
	   										break; 
					default:   	break;
			  } 
		 }
	 }
    else if(SEL == 0x01)
	{
		DASEL[1] = SBUF;
		RI = 0;
		if (DASEL[0] == 0xC0)
		{			
				printf("Regiter Read[%02X] = %02X\n ", (int)DASEL[1], (int)Read(DASEL[1]));
				SEL = 0x00;
		}
		else {	SEL = 0x02;	}
	 }
	else if ( SEL == 0x02 ) 
	{
		DASEL[2] = SBUF;
		RI = 0;
		Write( DASEL[1], DASEL[2] );
		printf("Register Write : [%02X] <= %02X\n ", (int)DASEL[1], (int)DASEL[2]);
		SEL = 0x00;		
	 }
	  
}

void AutoRun_A(void)
{ 	
	AREG_Set();
	Exec_REQA_RDID_Auto();
}

void AutoRun_B(void)
{
	BREG_Set();
	Exec_REQB_Auto();
}

void AutoRun_15693(void)
{
	REG15693_Set();
	Exec_15693_Auto();
}

void AutoRun_ALL(void)
{   	
	AREG_Set();
	Exec_REQA_RDID_Auto();
	BREG_Set();
	Exec_REQB_Auto();
	REG15693_Set();
	Exec_15693_Auto();
	TagIt_Set();
	Exec_TagIt();
}

⌨️ 快捷键说明

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