汇编小问题

2019-03-24 19:42发布

求助,汇编小问题

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

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

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


不能用软件延时,因为在启动后延时期间停止键是无效的,起不到急停的作用,本人试过。
中断定时方法还没钻进去,求高手解答。
新手多多光照,学单片机半个月了。 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
16条回答
辛昕
1楼-- · 2019-03-25 23:10
嗯,这也是一种好的思路。
把按键用IO口模拟判断,然后把程序做在定时中断里或者主程序里不断查询。10ms一次的定时中断,在一定程度上可以简化消抖。

不过,建议还是中断完成,只是定时中断而不是 外部中断,用主程序,势必要不断查询,这样程序写起来别扭,也不流畅。

具体方法是,有些动作是没办法一次过完成的,有时还要加适当延时,比如说,消抖。
但是,这个延时未必,或者说大都数时候绝对不允许用 所谓的 软件延时完成,除非这个延时很短,否则程序流程会被卡住。

一种方法,我现在常用,在一个定时中断中,设立若干个静态计数器,每进一次就计一次数,然后再设立若干个不同阶段动作的标志,到什么时间就植什么标志,这样,每次,程序只是在定时中断到来之际查询,但他的效果却跟延时一样。
辛昕
2楼-- · 2019-03-26 00:21
 精彩回答 2  元偷偷看……
辛昕
3楼-- · 2019-03-26 04:39
这些都是机床上的名词,确切的说是液压机械。
上限下限是说 某个杆或者活动部件能活动的范围。

夹具么,夹具就是夹东西的,在机床上加工东西,就需要一些夹具来夹紧工件。
小小白
4楼-- · 2019-03-26 07:48
你你你。。。。。 不给撒!!
小小白
5楼-- · 2019-03-26 12:17
这个是机电一体化的活生生的例子啊!学过机械的在做电子就是不一样啊!感觉很多时候就是一个综合技能的比拼啊!特别是参加一些比赛的时候啊!平时要多做一些知识的积累啊!
abo6016
6楼-- · 2019-03-26 14:26
原帖由 辛昕 于 2011-10-19 10:40 发表
嗯,这也是一种好的思路。
把按键用IO口模拟判断,然后把程序做在定时中断里或者主程序里不断查询。10ms一次的定时中断,在一定程度上可以简化消抖。

不过,建议还是中断完成,只是定时中断而不是 外部中断,用主 ...


恩,版主的静态计时也是一种方法,不过因为有键盘,那不如用键盘状态来代替不是更好?在中断中加个键盘扫描程序,根据键值来驱动或者选择程序的运行,我现在就是用这种方法。一般键盘扫描20HZ就够用了,而且也没有消抖的问题。在main()中的死循环里加个switch程序,根据键值选择开始,停止,或者其他动作,简单方便。
顺便问下汇编里switch()应该怎么编?

一周热门 更多>