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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1789|回復: 10
打印 上一主題 下一主題
收起左側

求指導單片機程序思路 三個輸入IO口,檢測低電平

[復制鏈接]
跳轉到指定樓層
樓主
各位好 我是小白
現在情況是這樣的,
我有三個輸入IO口,檢測低電平
1.自動程序(電機自動正反轉)
2.電機正轉
3.電機飯莊

我在主函數while里邊用了三個 if 語句
如果1是低電平  執行循環程序
如果2是低電平  執行電機正轉
如果3是低電平  執行電機反轉

但是我現在遇到的問題是點完1按鈕后他只運行了一個循環就不動了 ,我的想法是要求他一直執行該循環語句  直到斷電

我知道問題點出在哪里 但是就是不知道如何解決,請大家幫幫忙 提點一下

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:1093559 發表于 2023-10-28 19:51 | 只看該作者
對了是32單片機
回復

使用道具 舉報

板凳
ID:771630 發表于 2023-10-28 23:10 | 只看該作者
if(按鈕x按下)
  記錄狀態為x

if(時間到了)
   switch(x)
     case 正轉
     case 反轉
     case if(不是反轉)反轉else正轉
時間可以用定時器定時,或者while里面添加一個固定時間的循環,然后記錄循環次數
回復

使用道具 舉報

地板
ID:624769 發表于 2023-10-29 01:35 | 只看該作者
unsigned char status;

void main()
{
    while(1)
    {
         if(P10 == 0)  status =0;
         if(P11 == 0)  status =1;
         if(P12 == 0)  status =2;
         switch(status)
         {
                case 0:
                //xxxxxxxxxxxxxxxxxxxxx
                break;
                case 1:
                //xxxxxxxxxxxxxxxxxxxxx
                break;
                case 2:
                //xxxxxxxxxxxxxxxxxxxxx
                break;
                default:
                break;
         }
    }
}
回復

使用道具 舉報

5#
ID:213173 發表于 2023-10-29 08:11 | 只看該作者
樓主如果用的是普通按鈕而不是自鎖按鈕,就需要用一個變量記憶當前按鈕操作狀態,用這個變量控制后續運行狀態。否則按鈕松手就只能運行一個循環。當再次判斷3個按鈕時就都是高電平,電機就不能持續既定工作狀態。另外還需要有退出機制,否則除了斷電停不下來。
回復

使用道具 舉報

6#
ID:1093559 發表于 2023-10-29 09:41 | 只看該作者
這是我昨天寫的另一個(附件) 今天發現新的問題 在沒有給B3輸入低電平的情況下,循環程序開機就執行了,按下復位功能后,過一會又直接跳入xunhuan這段程序了

1.png (91.14 KB, 下載次數: 36)

1.png

2.png (28.07 KB, 下載次數: 31)

2.png
回復

使用道具 舉報

7#
ID:1093559 發表于 2023-10-29 09:44 | 只看該作者
XLinliY.Zhang 發表于 2023-10-28 23:10
if(按鈕x按下)
  記錄狀態為x

和時間沒有關系的,就是跳入不了循環程序 后邊我自己試著寫另一個方法 雖然實驗成功了  但是發現了另一個問題 頭大了  您可以幫忙看看我下邊回復了一個帖子 那是另一種問題
回復

使用道具 舉報

8#
ID:195496 發表于 2023-10-29 11:32 | 只看該作者
這個不難,小問題,
回復

使用道具 舉報

9#
ID:1093559 發表于 2023-10-30 16:09 | 只看該作者
wulin 發表于 2023-10-29 08:11
樓主如果用的是普通按鈕而不是自鎖按鈕,就需要用一個變量記憶當前按鈕操作狀態,用這個變量控制后續運行狀 ...

是的 是的 我現在想要停下就直接拔電源         您有辦法推薦嗎  
回復

使用道具 舉報

10#
ID:1093559 發表于 2023-10-30 16:10 | 只看該作者
大漠落日 發表于 2023-10-29 11:32
這個不難,小問題,

有解決方案嗎 可以給點建議嗎
回復

使用道具 舉報

11#
ID:123289 發表于 2023-11-1 16:43 | 只看該作者
1、做個10ms中斷。
2、每次中斷讀入三個端口狀態存入NEW,與變量LAST(是上次讀入的數據,初化設置為全1)做比較。
2.1、NEW = LAST:什么也不做。
2.2、NEW <> LAST (有變化了),按照你的邏輯執行。(改變運行狀態,正、反、停。)
3、令 LAST = NEW,為下次比較輸入作依據。
更高級一點,加入按鍵防彈動:(這個不在此詳細說明)
加個計次,5次按鍵組合的數據相同,認為是真實按鍵狀態。低于5次不作數(彈動)。
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

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