找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

关于单片机程序启停控制问题

查看数: 1115 | 评论数: 4 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2020-3-25 17:25

正文摘要:

现在功能:每个程序给一个信号,相关程序就会执行. 问题: 各部件都是独立运行(例如,我后面的程序还没执行完,只要控制电机的点有信号,电机还是会转,各部件之间无关联性) 希望达到效果: 电机给信号后,后面各 ...

回复

ID:414469 发表于 2020-3-29 11:22
game灬boy 发表于 2020-3-26 13:59
定义三个标志位如int a,b,c;初值为1,0,0。当a=1;时执行第一步执行完第一步后将a置0并且将b置1;当b=1 ...

謝謝你詳細回答
ID:367369 发表于 2020-3-26 13:59
定义三个标志位如int a,b,c;初值为1,0,0。当a=1;时执行第一步执行完第一步后将a置0并且将b置1;当b=1时执行第二步执行完第二步后将b置0并且将c置1;当c=1时执行第二步执行完第二步后将c置0并且将a置1;这样就会按照第一第二第三步执行了
例如:
int a=1;
int b=0;
int c=0;
if(a==1&&START==0)
{
P0=0x00;
a=0;
b=1;
}
if(b==1&&START==0)
{
P0=0x01;
b=0;
c=1;
}
if(c==1&&START==0)
{
P0=0x02;
c=0;
a=1;
}
这段代码在给相同信号START=0时;会因为abc的值执行不同程序

评分

参与人数 1黑币 +50 收起 理由
admin + 50 回帖助人的奖励!

查看全部评分

ID:123289 发表于 2020-3-26 12:27
再写一个GL程序,管理你的N个功能程序。
1、程序以GL运行为主,即只在GL中循环运行。
2、每个GL循环里依序执行(调取)你的N个功能程序。
3、每个功能程序只请允许运行0.1秒或更短(越短越好。这就考验你的逻辑能力了,估计你无法做到),如果某个功能某个动作执行超过0.1秒,就拆开某个动作(如何拆是关键)。再下一轮继续完成。
如此就OK了。0.1秒只是个象征性的界限,实际会更短。因为0.1秒对于单片机来说,可运行数万条指令了。

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

ID:688129 发表于 2020-3-25 19:34
这种不考虑成本的话还是PLC方便,国产PLC100多些

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表