资源简介

51单片机125Khz ID卡读卡程序 51单片机 125Khz ID卡 C程序 解曼彻斯特码

资源截图

代码片段和文件信息

#include “..\config.h“

/*
manchester编码方式:0为10 1为01,如果与其相反则需要做相应的修改。
适用于125KHz非接触式ID卡,EM4100兼容格式ID卡(64bits Manchester编码)
MCU:stc12c54xx
crystal:11.0592M

使用资源:外部中断0(INT0)+PCA0
*/


/***********读卡变量定义*************************/
//uint8 tcount        ;// 定时中断计数
//uint8 count         ;//接收数据位数计数
uint8 count_data;     //
//uint8 t_count       ;//获得数据及校验变量。
uint16 wait_jump=500;
uint8 xdata temp_buf[16] ;//128个Machester位 55个数据位 缓冲区。
uint8 xdata effectdata[5] ;//5个数据缓冲区。相当于模块串行读的10 Bytes 数据。
uint8 xdata temp_buf_check[16];



void init_dev(void)
{
AUXR=0x80;    //T0不分频
WAKE_CLK0|=0x01;
CMOD = 0x80; //PCA 在空闲模式下停止 PCA 计数器工作
CCON = 0x00; //;CF = 0,清0 PCA 计数器溢出中断请求标志位
CCAP0L=Channe256uS_L;//给 PCA 模块0 的 CCAP0L 置初值
CCAP0H=Channe256uS_H;
CCAPM0=0X49; 
CCAP1L=0xff;//给 PCA 模块0 的 CCAP0L 置初值
CCAP1H=0xb3;
CCAPM1=0; 

SCON=0x50;//串口工作在方式1,允许接收。
TMOD = 0x22 ; //定时器1工作在方式2 for generator baud rate
TH1=0xFD;//11.0592M baud rate//串口用于调试方便,波特率9600
TL1=0xFD;
TH0  = 212;          //定时 4us
TL0  = 212;
//PT0=1;
IPH=0x19;
IP=0x59;
//ET1=1;
TR0=1;
TR1=1; 
//ES=1;
count_data = 0 ;
EX0 = 1 ;
CL = 0x00; //清0 PCA 计数器
CH = 0x00;     
//EPCA_LVD=1;//开 PCA 中断和 LVD(低压检测)中断共享的总中断控制位
CR=1;// 启动 PCA 计数器(CHCL)计数
EA = 1 ;//      开总中断
}

void  sent(uint8  i)

SBUF=i;
while(!TI);
TI=0;
} //这是串口发送程序



/*********************************************

函数名:Timer0_Serve

功能:  定时器0中断

参数:  无

*********************************************/

/*void Timer0_Serve() interrupt 1  //定时0中断

{        

         //RFID_PCM=(!RFID_PCM);


}*/


/*********************************************

函数名:PCA0_Serve

功能: 定时器1中断

参数: 无

*********************************************/

void PCA_Serve() interrupt 6 //定时0中断

{
uint8 i;
uint16 led_count_2;
uint8 door_open_time_i;
//test_pin=~test_pin;
wait_jump=400;
if (store_card_flag||store_card_21flag||store_maincard_flag||delete_card_flag)
{
led_count_2++;
check_count++;
if (led_count_2==100){led_count_2=0;led=~led;}
//if (ir_key_xing){led=0;ir_key_xing=0;store_card_flag=store_maincard_flag=delete_card_flag=0;}
if (check_count==6000)
{for (i=0;i<4;i++){pre_data[i]=0x00;}
led=0;check_count=0;store_card_flag=store_card_21flag=store_maincard_flag=delete_card_flag=0;}
}

if (CCF1)//50ms中断
{
CL = 0x00; //清0 PCA 计数器
CH = 0x00;    
CCF1=0;//清0 PCA 模块0中断请求标志位 
led_count++;
if (check_time){check_count++;}
if (check_count==200){check_count=0;check_time=0;}//门锁输入密码的超时10s退出
if (led_en&&led_count==5){led_count=0;led=~led;}//250ms闪一次灯
}
if (CCF0)//128us中断
{
if (door_open||alarm_start)
{
door_open_time_i++;
if (door_open_time_i==100){door_open_time_i=0;door_open_time_j++;}
if ((door_open_time_j>=byte_read(0x0005))&&door_open&&(door_mag==0))//刷卡不开门超时关门
{door_open_time_i=0;door_open_time_j=0;lock_open=1;}
if ((door_open_time_j>=byte_read(0x0005))&&door_open&

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      11938  2011-12-04 14:18  rfid\rfid.c

     文件       1520  2011-12-04 14:01  rfid\rfid.h

     目录          0  2011-11-26 15:33  rfid

----------- ---------  ---------- -----  ----

                13458                    3


评论

共有 条评论