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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1390|回復: 3
收起左側

請教一個遙控升降控制單片機程序上下需要按兩次的問題,謝謝大家

[復制鏈接]
ID:408861 發表于 2023-3-21 16:57 | 顯示全部樓層 |閱讀模式
大咖好,本人才疏學淺,業余嘗試自己寫寫簡單的程序,現在遇到一個困惑:
遙控升降過程中,電機從底部向上走,或者從頂部向下走,會被行程開關影響到停機的問題,我現在把我程序貼出,看能否指點一二,感謝!

單片機源程序如下:
#include<STC15.H>

sbit  A = P3^2;//遙控升
sbit  B1 = P3^3;//遙控停
sbit  C = P3^4;        //遙控降         
sbit  M1 = P1^0;//電機正
sbit  M2 = P1^1;//電機反
sbit  UP = P2^0;//上限位開關
sbit  DN = P2^1;//下限位開關

void main ()
{
                P1M0 = 0XFF;//配置為強輸出
                P1M1 = 0X00;//配置為強輸出
                P3M0 = 0X00;//配置為高阻輸入
               P3M1 = 0XFF;//配置為高阻輸入
               P2M0 = 0X00;//配置為準雙向口
               P2M1 = 0X00; //配置為準雙向口  
              A = 0;         //上電初始置低
              B1 = 0;        //上電初始置低
              C = 0;        //上電初始置低
              M1 = 0;        //上電初始置低
              M2 = 0;        //上電初始置低
        while (1)
         {         
                                if(A==1)        //當按下遙控升且同時上限位開關打開
                      {
                   M1=1;          //電機上升
                    M2=0;         
                         }
                         if(C==1)        //當按下遙控升且同時上限位開關打開
                      {
                    M1=0;          //電機下降
                    M2=1;         
                         }
               
         if(UP==0||DN==0||B1==1)  //當上限開關或者下限開關閉合或者遙控停
              {
                    M1=0;  //電機停
                    M2=0;
                                  }
                       
                while(UP==0) //當上限開關閉合后進入遙控降等待狀態
                        {

                        if(C==1)  //遙控降給信號
                       {
                          M1=0;          //電機下降
                          M2=1;}
                           }
                while(DN==0) //當下限開關閉合后進入遙控升等待狀態
                        {
                         if(A==1)
                          {
                          M1=1;          //電機上升
                          M2=0;
                          }      
                          
                        }
                        
                          }
}
         
回復

使用道具 舉報

ID:161164 發表于 2023-3-21 21:28 | 顯示全部樓層
你把按鍵引腳設為高阻
然后檢測高電平(按下)
那引腳有沒有加下拉電阻?
回復

使用道具 舉報

ID:844772 發表于 2023-3-22 15:04 | 顯示全部樓層
沒看懂你的問題,但你程序確實有問題,主要是if 和 while 判斷事項有重合且不能在時序上分開,比如在升的過程,如果被while(UP==0)截獲,那就停不下來了。
回復

使用道具 舉報

ID:123289 發表于 2023-3-22 16:41 | 顯示全部樓層
建議:
先畫個邏輯流程圖,走通流程后,按圖寫程序。
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

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