欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1719|回復: 4
收起左側

關于單片機程序啟停控制問題

[復制鏈接]
ID:414469 發表于 2020-3-25 17:25 | 顯示全部樓層 |閱讀模式
WeChat 圖片_20200325171801.jpg WeChat 圖片_20200325171712.jpg
現在功能:每個程序給一個信號,相關程序就會執行.
問題: 各部件都是獨立運行(例如,我后面的程序還沒執行完,只要控制電機的點有信號,電機還是會轉,各部件之間無關聯性)
希望達到效果: 電機給信號后,后面各程序依次執行,且在執行完整個程序前,前面的程序即使給信號與只會等待不會執行.
例如(我程序還在執行第三步,我給一個信號給START 電機還是不會轉,直到后面的執行完電機才會轉動然后接著執行后面的程序)
請大神指點要如何修改. 感激

回復

使用道具 舉報

ID:688129 發表于 2020-3-25 19:34 | 顯示全部樓層
這種不考慮成本的話還是PLC方便,國產PLC100多些
回復

使用道具 舉報

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: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: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 ...

謝謝你詳細回答
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表