1024手机基地看电影,午夜福利视频导航,国产精品福利在线一区,亚洲欧美日韩另类成人,在线观看午夜日本理论片,成年超爽免费网站,国产精品成人免费,精品动作一级毛片,成人免费观看网站,97精品伊人久久大香蕉

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2931|回復: 14
收起左側

單片機按鍵程序,弄了幾天了,實在搞不出來才問的

[復制鏈接]
ID:777834 發表于 2020-9-30 22:47 來自觸屏版 | 顯示全部樓層 |閱讀模式
各位大神,幫忙寫個簡單的按鍵程序,我弄了幾天了,實在搞不出來才問的,新手,哈哈。謝謝啦。
要求是這樣的:S1表示檢測開關,S2表示按鍵開關。當S1檢測到0時,S2可以按3次,按了3次之后如果S1還檢測到0,那S2還是可以再按3下。如果S1不為0了,那么S2就不能按了,只有S1再次為0,S2才能再按3下...
大家幫幫忙,謝謝啦~
回復

使用道具 舉報

ID:777834 發表于 2020-9-30 22:51 來自觸屏版 | 顯示全部樓層
版主,網絡問題,把前面一樣的帖子刪啦,謝謝
回復

使用道具 舉報

ID:777834 發表于 2020-9-30 23:00 來自觸屏版 | 顯示全部樓層
版主,網絡問題,重發帖了幾遍,把前邊的帖子刪啦,謝謝
回復

使用道具 舉報

ID:332444 發表于 2020-10-1 05:24 | 顯示全部樓層
while(!s1)if(!s2)...試看
回復

使用道具 舉報

ID:777834 發表于 2020-10-1 12:36 來自觸屏版 | 顯示全部樓層
xianfajushi 發表于 2020-10-1 05:24
while(!s1)if(!s2)...試看

您好,不能用while
回復

使用道具 舉報

ID:825088 發表于 2020-10-1 13:14 | 顯示全部樓層
令s2按得計數為i.while(s1==0),if(i<6),i++(響應)else(不響應)
回復

使用道具 舉報

ID:777834 發表于 2020-10-1 14:29 來自觸屏版 | 顯示全部樓層
大家幫幫忙咯
回復

使用道具 舉報

ID:777834 發表于 2020-10-1 15:03 來自觸屏版 | 顯示全部樓層
SaPmon 發表于 2020-10-1 13:14
令s2按得計數為i.while(s1==0),if(i

可以幫寫出來一下嗎,謝謝啦
回復

使用道具 舉報

ID:777834 發表于 2020-10-1 16:40 來自觸屏版 | 顯示全部樓層
大家路過幫幫啦
回復

使用道具 舉報

ID:160500 發表于 2020-10-1 16:57 | 顯示全部樓層
  int S2_AN = 0;//按下S2次數
  while (1)
  {
    if (S1 == 0)
    {
      S2_AN = 0;
      while (S2_AN < 3) //按下3次退出
      {
        if (S2 == 0)  S2_AN++;
      }
    }
  }
回復

使用道具 舉報

ID:777834 發表于 2020-10-1 23:39 來自觸屏版 | 顯示全部樓層
liuzx66 發表于 2020-10-1 16:57
int S2_AN = 0;//按下S2次數
  while (1)
  {

您好,試了下,不行喲,可以不用while嗎?程序會卡住
回復

使用道具 舉報

ID:213173 發表于 2020-10-2 07:10 | 顯示全部樓層
本帖最后由 wulin 于 2020-10-2 07:37 編輯

        基本邏輯關系

        unsigned char num=0;
        bit sign=0;

        if(S1==0)
        {
                sign=1;
        }
        if(S2==0 && sign==1 && num<3)
        {
                num++;
                if(num==1)
                        //任務1
                if(num==2)
                        //任務2
                if(num>=3)
                {
                        //任務3
                        sign=0;       
                        num=0;
                }
                while(!S2);//S2松手
        }
回復

使用道具 舉報

ID:149799 發表于 2020-10-2 08:13 | 顯示全部樓層
把S2_AN改為S2-AN試試,有師傅說可以。
回復

使用道具 舉報

ID:584814 發表于 2020-10-2 09:53 | 顯示全部樓層
按表述的邏輯分析,S1=0時S2可按3下,再次測S1=0時S2還可以按3下,只有S1非0時S2不可按......
所以就是S1非0時S2不事按,其他都是腦筋急轉彎
你甚至可以寫成S1=0時S2可按5下,再次測S1=0時S2還可以按1下,再次測S1=0時S2還可以按9下,........
回復

使用道具 舉報

ID:160500 發表于 2020-10-2 11:53 | 顯示全部樓層
jianuli 發表于 2020-10-1 23:39
您好,試了下,不行喲,可以不用while嗎?程序會卡住

你的按鍵處理程序沒有處理好,這個只是給你參考,是不能直接拿來用的。要根據你的實際情況改一下
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

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