您现在所在的是:

单片机论坛

回帖:0个,阅读:795 [上一页] [1] [下一页]
994
careyyip
文章数:30
年度积分:50
历史总积分:994
注册时间:2007/12/24
发站内信
发表于:2008/1/8 16:54:00
#0楼
各位老师,
   你们好!有个问题小的思考了很久了还是不得其解。如下图所示,我想控制电机,让物件从A端到B端,电机启动,物件从A→B,电机停止,物件自动从B→A;A、B两端均有检测开关。我的程序中,键盘采用查询方式的函数返回值num0=keyscan(),x1代表A端开关,x2代表B端开关,y12代表电机,数字1代表有效(电机启动或物件到位),数字0代表无效(电机停止或物件未到位);我希望实现的动作是,当物件在A时,我按下按键,物件往B走,到B后自动返回到A,停止。由于我程序采用是先扫描输入端,将传感器信号送入bit变量Xn保存,再进行处理,处理完后结果送入bit变量Yn保存,最后将Yn结果刷新到输出端,所以程序中不能有延时等待的情况出现,例如while(x2!=1);这种语句。我写的程序如下:
while(1)
{
  num0=keyscan();
  输入扫描程序……
  if(num0==1&&x1==1)
     y12=1;
  if(x2=1)
  {
     y12=0;
     num0=0;
  }
  输出刷新程序……
}
但实际上的结果是当物件回到A后,又往B走,也就是说,num0并没有被清除为0;当我按下其它按键时,num0才等于其它值(不为1),此时物件回A后才停下来。
   请问各位老师有没有什么比较好的办法能够解决这个自动清零的问题啊?我已经试了很多方法了,都不行!谢谢了!
图

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2024 Gkong.com, All Rights Reserved

31.2002