资源描述:
《曼彻斯特解码程序》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、曼彻斯特解码1、变量定义52、Manchest初始化53、Manchest解码信号翻转64、过滤错误的卡号75、获取正确的卡号86、Manchest获取卡号数据97、通过中断采样获取刷卡数据121、变量定义#defineTH1_370US_H0XFE//晶振11.0592MHZ,12T模式#defineTL1_370US_L0XAB#defineSIGNAL_FLIP_TIME10//每隔100ms翻转一次读卡信号#defineREPEAT_TIME5//500ms后重复读卡#defineCLEAR_CARD_TIME2
2、0//2S后清除卡号数据#defineMANCHEST_TIME5sbitPULSE=P3^2;sbitRFEN=P3^5;//曼彻斯特解码脉冲信号sbitMANCHEST0=P3^2;//wiegand0sbitMANCHEST1=P3^3;//wiegand1ucharcodeCheckingTab[32]={//接收到10组卡号的偶校验0X00,0X01,0X01,0X00,0X01,0X00,0X00,0X01,//这里数值是低五位的偶校验值0X01,0X00,0X00,0X01,0X00,0X01,0X01,0
3、X00,0X01,0X00,0X00,0X01,0X00,0X01,0X01,0X00,0X00,0X01,0X01,0X00,0X01,0X00,0X00,0X01};ucharWGCardBuf[5];//卡号ucharCopyCardBuf[5];//备份卡号ucharManchestBuf[11];//暂存接收到的11组数据ucharidatag_ucManchestTime=MANCHEST_TIME;//ucharidatag_ucDWithCardTime=0;//隔500ms处理该卡号ucharidata
4、g_ucPreambleFlag=0;ucharidatag_ucERAgainTimer=0;//每隔100ms翻转一次RFENucharidatag_ucStoreGroupCnt=0;//接收到几组数据,这里为11组才可能正确ucharidatag_ucEGroupBitCnt=0;//每组数据有5个为,5=4位卡号+1位偶校验ucharidatag_ucPreambleCount=0;//9位为1的引导码ucharidatag_ucRemvoeCardTime=0;//隔多久清除以前的卡号数据,这里为3s2、Ma
5、nchest初始化/********************************************************************函数原型:ManchestInit功能:曼彻斯特解码变量初始化输入:无输出:无说明:无*--------------------------------------------------------------------*修改时间
6、修改者
7、备注*------------------------------------------------------------
8、--------*2012-02-14OscarFirst********************************************************************/voidManchestInit(void)//初始化读卡参数{RFEN=1;g_ucPreambleFlag=0;g_ucStoreGroupCnt=0;g_ucEGroupBitCnt=5;g_ucPreambleCount=9;g_ucERAgainTimer=SIGNAL_FLIP_TIME;}3、Manchest解码信
9、号翻转/********************************************************************函数原型:ProcessManchestSignal功能:manchest解码的翻转信号输入:无输出:无说明:无*--------------------------------------------------------------------*修改时间
10、修改者
11、备注*-----------------------------------------------------
12、---------------*2012-02-14OscarFirst********************************************************************/voidProcessManchestSignal(void){if((g_ucDWithCardTime!