请懂韦根协议的朋友过来看看!
我自己写的程序,但不好使,韦根26的协议。
请高手看后指点下。或email:xjj0925@126.com
提出意见
#include <reg51.h> //P0口采用上拉电阻,24M晶振
sbit P0_0=P0^0; //Data0
sbit P0_1=P0^1; //Data1
sbit P0_2=P0^2; //黄灯读进信息标志
sbit P0_3=P0^3; //红灯 Data0输出显示
sbit P0_4=P0^4; //绿灯 Data1输出显示
void delay(); //读卡延时
void delay1(); //输出延时
void main()
{
int k;
int i=0,s[26],m=26;
delay();
P0=0xFF;
P0_3=0;
P0_4=0;
delay1(); //260ms
P0_2=0;
while(m) //等待全部卡号读完
{
if(P0_0==0) //Data0
{ P0_2=0;
s[i]=0;
i++;
m--;
delay(); //163us
P0=0xFF;
}
else if(P0_1==0) //Data1
{
P0_2=0;
s[i]=1;
i++;
m--;
delay(); //163us
P0=0xFF;
}
}
for(k=0;k <26;k++) //卡号已知,由灯的闪亮位置来记录卡里0和1的个数,最后比较
{
if(s[k]==0)
{
P0_3=0;
delay1();
P0_3=1;
delay1();
}
else
{
P0_4=0;
delay1();
P0_4=1;
delay1();
}
}
}
void delay1()
{
int j;
for(j=3;j> 2;j++)
;
}
void delay()
{
int j;
for(j=0;j <40;j++)
;
}
发表时间:2006年1月18日16:50:09