久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3513|回復: 8
打印 上一主題 下一主題
收起左側

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

[復制鏈接]
跳轉到指定樓層
樓主
ID:915738 發表于 2021-5-5 01:23 來自觸屏版 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
由于本論壇禁止直接求程序,禁止伸手黨,所以向大家請教一下大致的實現方法與思路,理清頭緒后我自己來寫程序去實現,謝謝大家

各位大神,求一個“通過檢測按鍵次數進入下一個子函數的程序。”大概就是單片機接按鍵后,每按一下就能切換一個LED燈效的程序,能切換三種燈效就行了,燈效我能自己寫,想要的是一個除了燈效外的程序殼子。就是我只要自己添加上燈效代碼就能運行的那種。我用的是STC8G1K08A-36I-SOP8宏晶單片機, 應該是P5.5管腳會定義為按鍵腳。跪謝大神
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
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 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

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

評分

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

查看全部評分

回復

使用道具 舉報

6#
ID:915738 發表于 2021-5-5 09:46 來自觸屏版 | 只看該作者
18701931930 發表于 2021-5-5 08:02
大概思路如下:

#include "STC8G.H"

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

使用道具 舉報

7#
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 口模式
回復

使用道具 舉報

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

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

使用道具 舉報

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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 99精品国产一区二区青青牛奶 | 亚洲第一天堂无码专区 | 拍拍无遮挡人做人爱视频免费观看 | 亚洲免费人成在线视频观看 | 久久久久亚洲 | 91福利网 | 免费在线观看一级毛片 | 久久伦理中文字幕 | 国产高清在线观看 | 欧美日韩一区二区在线观看 | 91九色porny首页最多播放 | 免费视频久久久久 | 久久在线| 日韩图区 | www.日韩| 欧美视频一区二区三区 | 国内精品久久精品 | 亚洲成人在线视频播放 | 91精品国产欧美一区二区成人 | 亚洲美女视频 | 久视频在线 | 日韩一级电影免费观看 | 日本a∨精品中文字幕在线 亚洲91视频 | 日本黄色大片免费 | 天天天天天天天干 | a级在线免费视频 | 中文字幕一区二区三区不卡 | 国产99热精品 | 精品欧美一区二区精品久久 | 国产在线观看一区 | 婷婷久久综合 | 国内自拍视频在线观看 | 欧美日韩中文国产一区发布 | 一区二区三区亚洲 | 国产成人精品免费视频大全最热 | 在线色网 | 91电影院| 国产精品成人在线 | 一级毛片视频 | 九九亚洲| 久久精品视频网站 |