打印
[程序源码]

请教关于RFID刷卡问题(用U2270B读取EM4100卡片数据)

[复制链接]
2068|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 2012CMD 于 2015-1-7 21:12 编辑

先上个电路图,射频卡和电路均为125KHz

EM4100卡片数据如下图所示

下面是我的测试卡片是否存在的程序
while(1)
{
//依靠EM4100数据卡最后一位数据为0(0→1跳变)判断起点
               while(1=Manchester_IN)//等低电平
               while(0==Manchester_IN); //当电平由低向高跳变时启动计时器0
               reset_timer0();
               //检测9个1(1→0跳变)
               while(1==Manchester_IN);
               TIMER0_OFF;
               //必须先读取低位,后读取高位
               low=TMR0L;high=TMR0H;
               time=( (high<<8)+low )*1/5;
               //判断第一个1(1→0跳变)是不是在规定时间内(0110,连续两个1共512us)
               if( (490<time) && (time<520) )
               {
                    time=0;
                    for(i=0;i<8;i++)
                    {
                        while(0==Manchester_IN); //当电平由低向高跳变时启动计时器0
                        reset_timer0();
                        while(1==Manchester_IN);
                        TIMER0_OFF;
                        low=TMR0L;high=TMR0H;
                        time=( (high<<8)+low )*1/5;
                        //检测电平跳变时间时候在规定时间内(256us)
                        if( (230<time) && (time<290) )
                            buzzer_beep();
                        time=0;
                    }
               }
               else
                   continue;
            }
        }
其中reset_timer0如下
void reset_timer0(void)
{
    //打开timer0
    T0CON|=(1<<7);
    TMR0L=0;
    TMR0H=0;
}
现在问题是就算没有刷卡也会执行那个buzzer_beep函数,就是说不刷卡也会检测到011111111(卡片末尾的0和开始的9个1这种情况),不知道怎么回事??
另外还有几个问题想问问各位
①在不刷卡的时候,RF_OUTPUT引脚也会有乱七八糟的波形这个是正常的不???
②刷卡的时候一个周期64/(125Khz)=512us,比如1(1→0下跳变)就是512us,那么如果只收到一个1或者0就为256us,我上面的时间判断是不是正确的??

:)有点多,麻烦各位了




相关帖子

沙发
wzh8158| | 2016-11-6 21:14 | 只看该作者
这个研究得怎么样了?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

20

主题

80

帖子

0

粉丝