XX性欧美肥妇精品久久久久久,51精品国自产在线,国产欧美日韩,日韩中文字幕

0 賣盤信息
BOM詢價(jià)
您現(xiàn)在的位置: 首頁(yè) > 電子資訊 >電路圖 > 51單片機(jī)實(shí)現(xiàn)4個(gè)按鍵控制8個(gè)LED燈四種狀態(tài)

51單片機(jī)實(shí)現(xiàn)4個(gè)按鍵控制8個(gè)LED燈四種狀態(tài)

來(lái)源: zhihu
2021-12-07
類別:電路圖
eye 175
文章創(chuàng)建人 拍明

原標(biāo)題:51單片機(jī)實(shí)現(xiàn)4個(gè)按鍵控制8個(gè)LED燈四種狀態(tài)

在51單片機(jī)上實(shí)現(xiàn)4個(gè)按鍵控制8個(gè)LED燈以顯示四種不同的狀態(tài),我們首先需要明確一點(diǎn):雖然我們有4個(gè)按鍵,但通常不會(huì)讓每一個(gè)按鍵都獨(dú)立控制一種狀態(tài)(除非這些狀態(tài)是互斥的,即一次只能顯示一種狀態(tài)),因?yàn)檫@樣會(huì)使得按鍵和狀態(tài)之間的映射變得復(fù)雜且難以管理。相反,我們可以讓一個(gè)或多個(gè)按鍵用來(lái)在四種狀態(tài)之間循環(huán)切換。

以下是一個(gè)簡(jiǎn)化的實(shí)現(xiàn)方案,其中我們假設(shè):

  • 按鍵1(例如連接到P2.0)用于在四種狀態(tài)之間循環(huán)切換。

  • 其他按鍵(如果有需要)可以保留作為后續(xù)功能的擴(kuò)展,或者在這個(gè)示例中不使用。

  • 8個(gè)LED燈連接到P1端口的8個(gè)引腳。

硬件連接

  • 將8個(gè)LED的正極分別連接到P1.0到P1.7。

  • 將LED的負(fù)極通過(guò)適當(dāng)?shù)南蘖麟娮柽B接到地。

  • 將按鍵1的一端連接到P2.0,另一端通過(guò)上拉電阻連接到VCC(或啟用單片機(jī)的內(nèi)部上拉電阻)。

軟件設(shè)計(jì)

1. 初始化

  • 設(shè)置P1為輸出模式,用于控制LED燈。

  • 設(shè)置P2的相應(yīng)引腳(P2.0)為輸入模式,并啟用內(nèi)部上拉電阻(如果可用)。

2. 按鍵掃描和狀態(tài)控制

  • 編寫一個(gè)循環(huán),不斷檢查P2.0的狀態(tài)。

  • 如果檢測(cè)到按鍵被按下(即P2.0從高電平變?yōu)榈碗娖剑瑒t執(zhí)行狀態(tài)切換。

  • 使用一個(gè)變量(如currentState)來(lái)跟蹤當(dāng)前狀態(tài),并根據(jù)這個(gè)變量設(shè)置P1端口的輸出。

image.png

示例代碼

c復(fù)制代碼


#include <reg51.h>  



#define LED P1  

#define KEY_BUTTON P2_0 // 假設(shè)P2_0是P2.0的宏定義  



// 定義四種LED燈的狀態(tài)  

unsigned char statePatterns[4] = {

0x01, // 狀態(tài)1: 第一個(gè)LED亮  

0x05, // 狀態(tài)2: 第一個(gè)和第三個(gè)LED亮  

0x0A, // 狀態(tài)3: 第二個(gè)和第四個(gè)LED亮  

0xFF  // 狀態(tài)4: 所有LED亮  

};



unsigned char currentState = 0; // 當(dāng)前狀態(tài)索引,從0開(kāi)始  



void delay(unsigned int ms) {

// 簡(jiǎn)單的延時(shí)函數(shù),用于消抖  

unsigned int i, j;

for (i = 0; i < ms; i++)

for (j = 0; j < 120; j++);

}



void main() {

LED = 0x00; // 初始時(shí)所有LED熄滅  

while (1) {

if (!KEY_BUTTON) { // 檢測(cè)按鍵是否被按下  

delay(10); // 消抖延時(shí)  

if (!KEY_BUTTON) {

// 按鍵確實(shí)被按下,切換狀態(tài)  

currentState = (currentState + 1) % 4; // 循環(huán)切換狀態(tài)  

LED = statePatterns[currentState]; // 更新LED顯示  

while (!KEY_BUTTON); // 等待按鍵釋放  

}

}

}

}



// 注意:P2_0需要根據(jù)你的硬件連接和編譯器環(huán)境來(lái)正確定義。  

// 如果編譯器不支持直接通過(guò)位地址訪問(wèn)P2.0,你可能需要定義一個(gè)宏或使用位操作來(lái)訪問(wèn)它。

注意

  • 上面的代碼中,P2_0是一個(gè)假設(shè)的宏定義,用于訪問(wèn)P2端口的第0位。在實(shí)際應(yīng)用中,你可能需要根據(jù)你的編譯器和硬件環(huán)境來(lái)定義它。例如,如果編譯器支持直接位地址訪問(wèn),你可以這樣定義它:#define P2_0 (*((bit *)0x90))(但請(qǐng)注意,這個(gè)地址(0x90)可能需要根據(jù)你的單片機(jī)型號(hào)進(jìn)行調(diào)整)。然而,在許多情況下,簡(jiǎn)單地使用P2^0P2 & 0x01來(lái)檢查P2.0的狀態(tài)就足夠了。

  • 延時(shí)函數(shù)delay是一個(gè)簡(jiǎn)單的循環(huán)延時(shí),用于消抖。它的準(zhǔn)確性取決于單片機(jī)的時(shí)鐘頻率和編譯器的優(yōu)化設(shè)置。在實(shí)際應(yīng)用中,你可能需要使用更精確的定時(shí)器延時(shí)。

  • 在這個(gè)示例中,我們只使用了一個(gè)按鍵來(lái)循環(huán)切換四種狀態(tài)。如果你想要使用其他按鍵來(lái)控制不同的功能,你可以通過(guò)添加更多的條件語(yǔ)句來(lái)擴(kuò)展這個(gè)邏輯。



責(zé)任編輯:David

【免責(zé)聲明】

1、本文內(nèi)容、數(shù)據(jù)、圖表等來(lái)源于網(wǎng)絡(luò)引用或其他公開(kāi)資料,版權(quán)歸屬原作者、原發(fā)表出處。若版權(quán)所有方對(duì)本文的引用持有異議,請(qǐng)聯(lián)系拍明芯城(marketing@iczoom.com),本方將及時(shí)處理。

2、本文的引用僅供讀者交流學(xué)習(xí)使用,不涉及商業(yè)目的。

3、本文內(nèi)容僅代表作者觀點(diǎn),拍明芯城不對(duì)內(nèi)容的準(zhǔn)確性、可靠性或完整性提供明示或暗示的保證。讀者閱讀本文后做出的決定或行為,是基于自主意愿和獨(dú)立判斷做出的,請(qǐng)讀者明確相關(guān)結(jié)果。

4、如需轉(zhuǎn)載本方擁有版權(quán)的文章,請(qǐng)聯(lián)系拍明芯城(marketing@iczoom.com)注明“轉(zhuǎn)載原因”。未經(jīng)允許私自轉(zhuǎn)載拍明芯城將保留追究其法律責(zé)任的權(quán)利。

拍明芯城擁有對(duì)此聲明的最終解釋權(quán)。

標(biāo)簽: 51單片機(jī) LED燈

相關(guān)資訊

XX性欧美肥妇精品久久久久久,51精品国自产在线,国产欧美日韩,日韩中文字幕

          蜜桃臀人妻丰满熟妇av无| 男人女人真曰批的视频下载| 半夜把亲妺妺C高潮了| 成人在线视频网站| 国产午夜精品久久久久免费视| 亚洲经典 熟女少妇| 97国产精品视频人人做人人爱| 色哟哟国产精品色哟哟| 麻豆freexxxx性91精品| 国产精品美女久久久久AV爽李琼| 在线国产一区二区三区| 国产伦理一区| 欧美日韩另类一区| 欧美性XXXXX极品少妇| av一级片在线观看| 亚洲国产一区二区精品专区| 成全视频大全高清全集免费观看| chinese极品粉嫩videos尤物| 少妇真人直播APP| 久久久国产精品| 久久精品国产亚洲av孟若羽| 岛国av网址| 7777精品伊人久久久大香线蕉| 神马午夜福利在线| www..com黄片| A片无码免费久久久秀色| 寂寞少妇做SPA按摩无码| 国产三级在线观看视频| 超碰人人精品| 国产黄色录像| 久久久久久久久久精| 国产精品毛片久久人完整版| 国产 日本 欧美 一区二区| 夫の目前侵犯 中文字幕| 国产精品99久久久久久宅男| 尤物视频在线观看免费| 最近2018中文字幕免费看手机| www激情五月| 色综合久久av| 亚洲熟女少妇一区二区| 夜爽8888视频在线观看|