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

標題: 求分析兩個觸發開關的單片機程序 [打印本頁]

作者: yong761228    時間: 2019-7-12 13:26
標題: 求分析兩個觸發開關的單片機程序
各位師傅,您們好:兩個觸發開關程序寫不好,請大家指點一下:

開關K1和K2
1.      如果先觸發一下K1,K1=0
    D1=1; D0=0;
    這個過程中觸發一下K2,K2=0
D1=0; D2=0;
2.      如果先觸發K2,K2=0
D1=0; D0=1;
這個過程中觸發一下K1,K1=0
D1=0; D2=0;
兩個開關沒有順序,先觸發誰,就執行下面的結果,例如如果1執行完后再次觸發K1,就繼續1的功能,如果是再次觸發K2,就執行K2的功能,同理2執行也是一樣的。師傅幫我看看下面的程序錯在什么地方,謝謝。
If((K1==0)&&(flag1==0))
{
  delay(10); flag2=1;
   If(K1==0)
   {
     D1=1; D0=0;
     if(K2==0)
      {
       delay(10);
        D1=0; D0=0;flag2=0;K1=1;K2=1;
           }
    }
}
If((K2==0)&&(flag2==0))
{
  delay(10); flag1=1;
   If(K2==0)
   {
     D1=0; D0=1;
     if(K1==0)
      {
       delay(10);
        D1=0;D0=0;flag1=0;K1=1;K2=1;
           }
    }
}

作者: yong761228    時間: 2019-7-12 14:43
可能我描述有點問題,就是一個電機正反轉,觸發K1,電機正轉,電機到了K2的位置,觸發一下K2,電機就停止了,這個時候觸發K1還是正轉,如果觸發K2就是反轉,到達對面觸發開關就停止。
作者: yong761228    時間: 2019-7-13 06:56
謝謝大家,我通過兩天時間的研究,自己已經完成,謝謝。
作者: xianfajushi    時間: 2019-7-13 07:21
寫個大概的邏輯,要外出辦事,得空做個栗子
if(!kg&&!k1&&k2)kg=fx=true;
if(!kg&&k1&&!k2)kg=!fx=false;
if(kg)if((!k1||!k2))kg=false;
if(kg)if(fx)正轉esle反轉
作者: xianfajushi    時間: 2019-7-13 14:15



作者: yong761228    時間: 2019-7-13 19:54
xianfajushi 發表于 2019-7-13 14:15

非常感謝,我試試看。
作者: yong761228    時間: 2019-7-13 20:35
xianfajushi 發表于 2019-7-13 14:15

師傅您好,我測試您的程序,可以啟動,但是到達對面觸發開關后,不能停止,就是觸發K1,電機是正轉,觸發K2不停止,斷電開電,觸發K2后一直反轉,但是觸發K1后不停止。您再看看,您的程序專業性比較強,我要慢慢消化,非常感謝。
作者: cjm82    時間: 2019-7-14 01:22
可以考慮這個電路,把兩開關各經過1個電容,二極管接到同一個外中斷上,當任意一個開關閉合,外中斷上必然產生下降沿,進入中斷,然后在中斷函數里看一下到底是哪個IO口被拉低就行了

QQ截圖20190714011555.png (23.24 KB, 下載次數: 60)

QQ截圖20190714011555.png

作者: yong761228    時間: 2019-7-14 06:18
cjm82 發表于 2019-7-14 01:22
可以考慮這個電路,把兩開關各經過1個電容,二極管接到同一個外中斷上,當任意一個開關閉合,外中斷上必然產生 ...

非常感謝,但是您的方法我更加難寫出來,我現在的方法是根據流程圖,一步一步寫的,程序雖然比較長,可以用的。
作者: xianfajushi    時間: 2019-7-14 08:12
這個論壇遲滯,不像其他論壇即時可看到回帖,待我看到我的回帖內容,同時也看到樓主內容,不是說已經自己解決了?后面做栗子只是為了驗證我的思路,同時仿真也是通過的,可惜這個論壇無法上傳MP4文件,否則可以看仿真效果了,明天弄個錄像上傳,要說明的是用仿真驗證我的邏輯按鈕就不寫消抖了,因為仿真不用消抖,到實際機器上就要按標準的進行按鈕消抖,同時要釋放按鈕,不知道你的是否一直按住按鈕?如果一直按住按鈕的話,就要去掉檢測按鈕釋放的代碼。
作者: admin520    時間: 2019-7-14 09:15
一些有用的代碼

51黑論壇_c源文件.rar

2.33 KB, 下載次數: 5


作者: yong761228    時間: 2019-7-14 15:26
xianfajushi 發表于 2019-7-14 08:12
這個論壇遲滯,不像其他論壇即時可看到回帖,待我看到我的回帖內容,同時也看到樓主內容,不是說已經自己解 ...

您好,這個開關是觸發一下,需要按鈕消抖的,我寫好程序了,我只是看看您們的方法,非常感謝。
作者: yong761228    時間: 2019-7-14 15:30
admin520 發表于 2019-7-14 09:15
一些有用的代碼

非常感謝。
作者: 2667358111    時間: 2019-7-14 23:31
if(!kg&&!k1&&k2)kg=fx=true;
if(!kg&&k1&&!k2)kg=!fx=false;
if(kg)if((!k1||!k2))kg=false;
if(kg)if(fx)正轉esle反轉
作者: xianfajushi    時間: 2019-7-15 09:21
我只保證我的邏輯思路代碼通過驗證是正確執行的并符合提問,做了仿真同時用2個LED指示作為驗證電的通斷,而不保證仿真中的電機定子轉動慣性及你實際電機定子轉動的原因是蝦米.


作者: yong761228    時間: 2019-7-15 12:44
xianfajushi 發表于 2019-7-15 09:21
我只保證我的邏輯思路代碼通過驗證是正確執行的并符合提問,做了仿真同時用2個LED指示作為驗證電的通斷,而不 ...

非常感謝。




歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1