文档介绍:韦根6协议及示例程序
韦根6协议及示例程序
1 / 81
韦根6协议及示例程序
韦 根 协 议 — — I D 卡 号 读 取
2010-03-3120:52
近来在做门禁系统,第一次听闻韦根协议。我第一阶段要做的事情就是用韦根读卡出接到MCU的两个IO脚上,采纳
韦根6协议及示例程序
韦根6协议及示例程序
2 / 82
韦根6协议及示例程序
查问的方式接收数据,但这样接收其实不行靠。比较好的方法是将
接到MCU的两此中止引脚上,采纳中止的方式接收数据。如图:
Data0和
Data1
韦根6协议及示例程序
韦根6协议及示例程序
7 / 77
韦根6协议及示例程序
示例程序:
韦根6协议及示例程序
韦根6协议及示例程序
7 / 77
韦根6协议及示例程序
#include<>
#include<>
#include<>
#defineDELAY_TIME60/* 经实验,不要小于 50!不然可能造成时序杂乱
#defineTRUE1
#defineFALSE0
#defineucharunsignedchar
#defineuintunsignedint
sbitDATA1=P3^2;// 韦根读卡器的 DATA1接单片机的 P3^2
sbitDATA0=P3^3;// 韦根读卡器的 DATA0接单片机的 P3^3
bitEven;// 偶查验位
bitOdd;// 奇查验位
bitCheakEven=0;// 偶查验
*/
韦根6协议及示例程序
韦根6协议及示例程序
7 / 77
韦根6协议及示例程序
bitCheakOdd=1;// 奇查验
ucharCnt=0;//
ucharWG[26]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};//
韦根6协议及示例程序
韦根6协议及示例程序
7 / 87
韦根6协议及示例程序
接收韦根数
韦根6协议及示例程序
韦根6协议及示例程序
7 / 87
韦根6协议及示例程序
据26位
ucharWGstr[3]={0,0,0};// 存韦根ID卡卡号的 HID和PID码,此中HID码为8位即一字节,
PID码16位两字节
uchari;
ucharj=0;
voidInit()
{
EA=0;
TMOD=0x20;
TL1=0xfd;
TH1=0xfd;//
设置波特率为
9600的准时器1为方式2以及初始值
PCON=0x00;
SCON=0xd8;
//设置串口方式
IT0=1;
//
设置外面中止
0为降落沿触发方式
IT1=1;
//
设置外面中止
1为降落沿触发方式
EX0=1;
//
开外面中止0
EX1=1;
//
开外面中止1
TR1=1;
//
开准时器1
EA=1;
//
开所有中止
}
voidWeigand(uchar*str)// 把26位韦根数据变换为 3字节数据储存
{
uchark;
for(k=0;k<26;k++)
{
韦