<P> 自己写的程序,还没调通,请高手指点一下,哪里有问题。</P>
<P>#include <reg51.h> //P0口采用上拉电阻,24M晶振<BR> sbit P0_0=P0^0; //Data0<BR> sbit P0_1=P0^1; //Data1<BR> sbit P0_2=P0^2; //黄灯读进信息标志<BR> sbit P0_3=P0^3; //红灯 Data0输出显示<BR> sbit P0_4=P0^4; //绿灯 Data1输出显示<BR> void delay(); //读卡延时<BR> void delay1(); //输出延时<BR> <BR> void main()<BR> {<BR> int k;<BR> int i=0,s[26],m=26;<BR> delay();<BR> P0=0xFF;<BR> P0_3=0;<BR> P0_4=0;<BR> delay1(); //260ms<BR> P0_2=0;<BR> while(m) //等待全部卡号读完<BR> {<BR> if(P0_0==0) //Data0<BR> { P0_2=0;<BR> s=0;<BR> i++;<BR> m--;<BR> delay(); //163us<BR> P0=0xFF;<BR> }<BR> <BR> else if(P0_1==0) //Data1<BR> {<BR> P0_2=0;<BR> s=1;<BR> i++;<BR> m--;<BR> delay(); //163us<BR> P0=0xFF;<BR> }<BR> <BR> }<BR> <BR> for(k=0;k<26;k++) //卡号已知,由灯的闪亮位置来记录卡里0和1的个数,最后比较<BR> {<BR> if(s[k]==0)<BR> {<BR> P0_3=0;<BR> delay1();<BR> P0_3=1;<BR> delay1();<BR> }<BR> else <BR> { <BR> P0_4=0;<BR> delay1();<BR> P0_4=1;<BR> delay1();<BR> }<BR> <BR> }<BR> }<BR> <BR> void delay1() <BR> {<BR> int j;<BR> for(j=3;j>2;j++)<BR> ;<BR> }<BR> <BR> void delay()<BR> {<BR> int j;<BR> for(j=0;j<40;j++)<BR> ; <BR> }<BR></P> |
|