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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3817|回復: 8
收起左側

求一個單片機檢測按鍵控制LED運行程序的編寫思路

[復制鏈接]
ID:915738 發表于 2021-5-5 01:23 來自觸屏版 | 顯示全部樓層 |閱讀模式
由于本論壇禁止直接求程序,禁止伸手黨,所以向大家請教一下大致的實現方法與思路,理清頭緒后我自己來寫程序去實現,謝謝大家

各位大神,求一個“通過檢測按鍵次數進入下一個子函數的程序。”大概就是單片機接按鍵后,每按一下就能切換一個LED燈效的程序,能切換三種燈效就行了,燈效我能自己寫,想要的是一個除了燈效外的程序殼子。就是我只要自己添加上燈效代碼就能運行的那種。我用的是STC8G1K08A-36I-SOP8宏晶單片機, 應該是P5.5管腳會定義為按鍵腳。跪謝大神
回復

使用道具 舉報

ID:554500 發表于 2021-5-5 08:02 | 顯示全部樓層
大概思路如下:

#include "STC8G.H"

sbit key=P5^5;  //低電平觸發按鍵

char cnt=0;  //按下按鍵次數

//按鍵掃描,只支持單次調節,不能連續,防止按鍵抖動
void key_scan()
{
        static char i=0,j=0;
       
        if(key==0)
        {
                if(i==0)
                {
                        if(key==0&&j++>10)  //防止按鍵抖動
                        {
                                i=1;
                                cnt++;
                                if(cnt==3)   //只有3種狀態,所以這里要清零
                                        cnt=0;
                        }
                }
        }
        else
        {
                i=0;  //按鍵釋放后清零
                j=0;
        }
}

//LED燈狀態
void LED_state()
{
        switch(cnt)
        {
                case 0 :  break;  //狀態0
                case 1 :  break;  //狀態1
                case 2 :  break;  //狀態2
        }
}



void main()
{

while(1)
{
         key_scan();
         LED_state();
}
}

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

ID:592807 發表于 2021-5-5 08:27 | 顯示全部樓層
void Del_key(void)
{
static key_flag = 0;
key_flag+=1;
if(key_flag > 3){key_flag = 1;}
switch(key_flag)
{
case 1:break;
case 2:breal;
case 3:break;
default:break;
}

}

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

ID:390416 發表于 2021-5-5 09:06 | 顯示全部樓層
搞個變量 按鍵按一下 變量增加1  然后 SWITCH 語句 執行不同的程序段  如果你有需要 加我一下 發給你參考

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

ID:569384 發表于 2021-5-5 09:27 | 顯示全部樓層
樓主應該是懂一點的,我個人認為應該這種最基礎的東西應該自己先嘗試寫一下,不行了再把代碼發出來提問。

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

ID:915738 發表于 2021-5-5 09:46 來自觸屏版 | 顯示全部樓層
18701931930 發表于 2021-5-5 08:02
大概思路如下:

#include "STC8G.H"

跪謝大佬的回復,我LDE燈效的代碼要放在哪才能運行。我是玩高達模型的,沒接觸過單片機,現在只會簡單的做出燈效,很多基礎知識都不懂,大佬別嫌煩。再次跪謝大佬
回復

使用道具 舉報

ID:554500 發表于 2021-5-6 10:00 | 顯示全部樓層
小冰箱 發表于 2021-5-5 09:46
跪謝大佬的回復,我LDE燈效的代碼要放在哪才能運行。我是玩高達模型的,沒接觸過單片機,現在只會簡單的 ...


//LED燈狀態
void LED_state()
{
        switch(cnt)
        {
                case 0 :  break;  //狀態0
                case 1 :  break;  //狀態1
                case 2 :  break;  //狀態2
        }
}

這個函數里面
這個程序不完整的,只是單純的給你個思路。
注意:除 P3.0 和 P3.1 外,其余所有 I/O 口上電后的狀態均為高阻輸入狀態,用戶在使
用 I/O 口時必須先設置 I/O 口模式
回復

使用道具 舉報

ID:723547 發表于 2021-5-6 11:18 | 顯示全部樓層
小冰箱 發表于 2021-5-5 09:46
跪謝大佬的回復,我LDE燈效的代碼要放在哪才能運行。我是玩高達模型的,沒接觸過單片機,現在只會簡單的 ...

樓主沒接觸過單片機,而且目前的需求純粹的電路也能實現,建議樓主選用純電路,一個多檔開關,輕松搞定
回復

使用道具 舉報

ID:889094 發表于 2021-5-6 23:27 | 顯示全部樓層
如果想用單片機,樓主起碼應該用幾個小時把單片機的基本程序流程看一下,然后再來說程序的事,前面各位給的思路已經很清楚了,想拿來用總得有一點基礎才好,補一下吧,不然怎么教會你?
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

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