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

標題: 請教師傅們一個時間推遲的51單片機程序 [打印本頁]

作者: lujuguo    時間: 2023-1-17 02:39
標題: 請教師傅們一個時間推遲的51單片機程序
就是按鈕點動后要延時2秒后再執(zhí)行這個點動的時間,萬分感激大家的幫忙
作者: ldc2000    時間: 2023-1-17 02:39
lztopic 發(fā)表于 2023-2-5 13:39
注意:需要包含"intrins.h"頭文件以使用_nop_()函數(shù)進行延時。

你這應該修改一下,照你這么寫,樓主得一直按著按鍵,直到2秒后事件執(zhí)行。上面的延時短點,用于消抖,在執(zhí)行事件前面加個延時2000毫秒才是樓主想要的
直接在你這上改了
#include <reg52.h>
#include <intrins.h>

sbit button = P1^0;  // Define button as sbit type, connected to P1.0

void delay_ms(unsigned int time)
{
    unsigned int i, j;
    for (i = 0; i < time; i++)
        for (j = 0; j < 110; j++);
}

void main()
{
    while (1)
    {
        if (button == 0)
        {
            delay_ms(10);  // 消抖
            if (button == 0)
            {
                   delay_ms(2000);  // 等2秒再執(zhí)行下一步
                // Perform the set program
                // ...
            }
        }
    }
}

作者: hi等你    時間: 2023-1-17 15:27
我讀了幾遍都沒看懂樓主的目的,點動之后延時2秒再執(zhí)行這個點動?的時間?如果連自己語言都沒法整理完善讓別人能讀懂,編程很難
作者: munuc_w    時間: 2023-1-17 15:29
沒看懂,什么是“執(zhí)行這個點動的時間”?如果是點動事件發(fā)生,再延時2秒執(zhí)行這個事件,那延時2秒就可以了,很簡單的。定時器延時不夠,再附加軟件計數(shù)。
作者: angmall    時間: 2023-1-17 17:03
什么是“執(zhí)行這個點動的時間”?

是連問題都問不明白,還是我的理解能力下降了?
提出問題也是一門學問,如何能清晰的表述,是解決問題的關鍵

作者: xianfajushi    時間: 2023-1-18 07:25
很簡單的,在需要延時的地方插入延時判斷代碼一直循環(huán)比較到2秒后退出循環(huán)即可.
作者: suncat0504    時間: 2023-1-18 21:51
就是按鈕點動后要延時2秒后再執(zhí)行這個點動的時間----就是按鈕點動后要延時2秒后再執(zhí)行這個點動的事件?
看你代碼對按鍵的訪問是中斷的,還是輪詢的。加標志以及延時處理。
作者: 君工創(chuàng)    時間: 2023-1-19 11:50
估計樓主是想,點按鍵后,經(jīng)過2秒鐘的延時后再執(zhí)行設定的程序。
作者: 未來可期l    時間: 2023-1-20 09:49
加兩秒延時
作者: jizhongbiao    時間: 2023-1-20 13:57
開一個硬件定時器,定時2S在中斷中置位一個flag,然后在main里面循環(huán)查詢flag是否置位就行
作者: man1234567    時間: 2023-1-25 08:58
看得出樓主只是想活躍一下過年氣氛,因為這個問題本身不值500
作者: lztopic    時間: 2023-2-5 13:36
  1. #include <reg52.h>
  2. #include <intrins.h>

  3. sbit button = P1^0;  // Define button as sbit type, connected to P1.0

  4. void delay_ms(unsigned int time)
  5. {
  6.     unsigned int i, j;
  7.     for (i = 0; i < time; i++)
  8.         for (j = 0; j < 110; j++);
  9. }

  10. void main()
  11. {
  12.     while (1)
  13.     {
  14.         if (button == 0)
  15.         {
  16.             delay_ms(2000);  // Wait for 2 seconds
  17.             if (button == 0)
  18.             {
  19.                 // Perform the set program
  20.                 // ...
  21.             }
  22.         }
  23.     }
  24. }
復制代碼


注意:需要包含"intrins.h"頭文件以使用_nop_()函數(shù)進行延時。
作者: lztopic    時間: 2023-2-5 13:39
  1. #include <reg52.h>
  2. #include <intrins.h>

  3. sbit button = P1^0;  // Define button as sbit type, connected to P1.0

  4. void delay_ms(unsigned int time)
  5. {
  6.     unsigned int i, j;
  7.     for (i = 0; i < time; i++)
  8.         for (j = 0; j < 110; j++);
  9. }

  10. void main()
  11. {
  12.     while (1)
  13.     {
  14.         if (button == 0)
  15.         {
  16.             delay_ms(2000);  // Wait for 2 seconds
  17.             if (button == 0)
  18.             {
  19.                 // Perform the set program
  20.                 // ...
  21.             }
  22.         }
  23.     }
  24. }
復制代碼

注意:需要包含"intrins.h"頭文件以使用_nop_()函數(shù)進行延時。

作者: ldc2000    時間: 2023-2-5 14:15
快,把500黑幣給我和12樓一人一半
作者: 鄭漢松    時間: 2023-2-7 17:31
delay_ms(2000);
作者: lujuguo    時間: 2023-2-28 11:40
ldc2000 發(fā)表于 2023-1-17 02:39
你這應該修改一下,照你這么寫,樓主得一直按著按鍵,直到2秒后事件執(zhí)行。上面的延時短點,用于消抖,在 ...

你好,這個代碼要是BUTTON不是0,那后面就不能執(zhí)行下去,我的意思是點動按鈕后,按鍵已經(jīng)釋放了后延時2秒后再執(zhí)行這個點動時間,比如點動時間0.1秒,那就是釋放了后延時2秒再輸出0,.1秒,0.3秒釋放后延時2秒后輸出0.3秒




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