汇编小问题

2019-03-24 19:42发布

求助,汇编小问题

p3.0=启动
p3.1=停止
p3.2=上限
p3.3=下限

p1.0=夹具
p1.1=进退
p1.2=电机
启动--输出夹具--延时0。5s--输出电机,进退--下限--延时1s--关进退--上限--关夹具,电机

停止-- 马上停止--夹具电机保持停止前原状--上限位--关电机,关夹具
             启动无效          并马上停止进退


不能用软件延时,因为在启动后延时期间停止键是无效的,起不到急停的作用,本人试过。
中断定时方法还没钻进去,求高手解答。
新手多多光照,学单片机半个月了。 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
16条回答
辛昕
2019-03-25 17:27
这个是液压的玩意吧。
延时必然不能用软件延时,否则急停不了,这个不用试都能知道。

启动 和 停止 是两个功能,停止 就是你急停以后要求执行的一系列动作对吧?

沙发说的对,我补充一下他没说完的。
把停止键连到外部中断,然后在 外部中断服务程序里 写你 停止以后那一系列的动作对应的代码就OK了。

至于说 中断不会玩,这就是编程问题了,好说好说,把代码贴上来,大家伙给你瞧瞧.....

不过,关于使用外部中断的方法,我觉得还需要更进一步讨论,外部中断这个玩意,好处是有的,在这里用也非常合适,但是考虑到 抖动误触发等问题——特别是你这个是机械按键——我就试过,刚开始的时候,拼命进入中断,本来一次按键进入了N次。
如果你这东西真的是液压机构,那就危险了。

因为 按键抖动是一回事,另外不好说在什么时候这个开关上会产生什么毛刺之类的东西,极可能误触发,急停倒是安全的,虽然说老停机很烦。
要是启动键那就麻烦了。

具体这些机床上是如何做的我不清楚,我提供一个思路是,
不要简单的一次外部中断就触发。
把外部中断设置成 电平触发,然后,适当延时——这里延时的方法可以是,让它多次进中断,进一次就计数加1,要加到一定数额才能确定是一个中断。

至于数额多大,两种方法:
1 实际调试
2 分析计算,每次进入中断至少花了多少时间,再来估计。

实际上,两种方法结合起来用,第二种粗侧,第一种细调,当然更快的方法是直接第一种,猜呗。

一周热门 更多>