千家论坛_弱电智能化技术与工程讨论(建筑智能,家居智能,人工智能)

门禁/对讲/一卡通
收藏本版 |订阅

门禁/对讲/一卡通 今日: 1847 |主题: 18133

发新帖
打印 上一主题 下一主题

[讨论]请教一下韦根协议高手,看看我的程序,哪里有...

[复制链接]
xjj0925 发布于: 2006-1-18 16:47 936 次浏览 1 位用户参与讨论
跳转到指定楼层
<P> 自己写的程序,还没调通,请高手指点一下,哪里有问题。</P>
<P>#include &lt;reg51.h&gt;  //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&lt;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&gt;2;j++)<BR> ;<BR> }<BR>  <BR> void delay()<BR> {<BR> int j;<BR> for(j=0;j&lt;40;j++)<BR>        ; <BR> }<BR></P>
回复

使用道具 举报

已有1人评论

新浪微博达人勋

千家认证

沙发
佛山诺臣科技 发表于 2006-1-19 15:42:00
通信协议我不熟悉,但是 我看你的 延时程序就不对,因为不同的CPU,运行速度不同,因此不能这样延时的.
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆 千家通行证登陆

本版积分规则

千家智客微信号
千家智客微信
玩物说商城
玩物说商城