熱門: 51單片機(jī) | 24小時(shí)必答區(qū) | 單片機(jī)教程 | 單片機(jī)DIY制作 | STM32 | Cortex M3 | 模數(shù)電子 | 電子DIY制作 | 音響/功放 | 拆機(jī)樂園 | Arduino | 嵌入式OS | 程序設(shè)計(jì)
![]() |
也可以 |
3個(gè)IO口這樣能接6個(gè)按鍵,是查理復(fù)用接法的上限,并不是51單片機(jī)能力的上限。 用電阻電壓法理論上可以單口無限,實(shí)際單口接三五個(gè)也很常見。 |
太陽雨ZW 發(fā)表于 2025-1-17 11:01 也是哈,就DIY樂呵樂呵,真做項(xiàng)目不要再考慮用它了。 |
xiaobendan001 發(fā)表于 2025-1-17 09:54 我要這東西做什么哎。。。 手里還的幾十個(gè)8G1K08A的,當(dāng)時(shí)剛出來沒多久就買了,放在手里吃灰呢。。 |
devcang 發(fā)表于 2025-1-14 15:38 也可以接10個(gè)按鍵,7個(gè)加B1-B2,B2-B3,B1-B3三個(gè)。 |
單片機(jī)學(xué)習(xí)習(xí) 發(fā)表于 2025-1-16 20:55 3個(gè)口帶ADC,沒有搞懂 |
zhuls 發(fā)表于 2025-1-17 09:16 手中還有過去買的幾十個(gè),放著浪費(fèi)了,現(xiàn)在用來做些小制做利用下。 |
zhuls 發(fā)表于 2025-1-17 09:16 我手里還有一點(diǎn)庫存呢,你要不? ![]() |
太陽雨ZW 發(fā)表于 2025-1-15 13:31 AT89C2051,可以說是史前文物了! 現(xiàn)在哪家上新項(xiàng)目還用這料? 現(xiàn)在新出的20腳MCU,哪個(gè)性能配置比不過它?除了固有的庫存,全新貨還貴的要人命。。 |
可以,但是那3個(gè)I/O必須帶ADC功能 |
太陽雨ZW 發(fā)表于 2025-1-14 00:49 3個(gè)IO不需要節(jié)任何別的零件,可以節(jié)6個(gè)按鍵: IO1、IO2、IO3分別對地接一個(gè)按鍵。 IO1-IO2、IO1-IO3、IO2-IO3接3個(gè)按鍵。 |
zhuls 發(fā)表于 2025-1-14 15:49 用的是AT89C2051,不帶ADC |
太陽雨ZW 發(fā)表于 2025-1-14 16:48 5樓提醒了我,代碼可以簡化為
|
這是都對地接,如果接兩個(gè)IO之間,是不是還能更多? |
這樣就很完善了,學(xué)習(xí)了。 |
注意按鍵不要同時(shí)按下多個(gè)就行 |
邏輯上沒啥問題。 但對于現(xiàn)在的MCU來說,意義不大, 6個(gè)4148不是錢? 為什么不用AD口來測按鍵?還能少兩個(gè)IO。 要知道硬件成本遠(yuǎn)大于軟件成本。 |
再加3只二極管,可以7個(gè)按鈕 |
邏輯像是 3 排列,取2個(gè)、和取1個(gè)。 這硬件電路沒有問題,測試過。 程序中,可以使用掃描,也可以用3個(gè)中斷、再判斷哪個(gè)按鈕 |
不知道什么原理 ,為何不用ADC口 |
|
可以,也可以再接第7個(gè)開關(guān)同時(shí)拉低三個(gè)I/O口。 也可以只用3個(gè)開關(guān)組合使用。 二進(jìn)制的 000-111 。 |
判斷B1、B2、B3的電平高低 b1低且b2、b3高對應(yīng)sw1,b2低且b1、b3高對應(yīng)sw3,b3低且b1、b2高對應(yīng)sw5,b1、b2低且b3高對應(yīng)sw2...... |
這樣寫可以實(shí)用吧,消抖用按鍵并電容, char key() { B1=1; B2=1; B3=1; if(B1==0)return 1; else if(B1==0&&B2==0)return 2; else if(B2==0)return 3; else if(B2==0&&B3==0)return 4; else if(B3==0)return 5; else if(B3==0&&B1==0)return 6; else return 0; } |
太陽雨ZW 發(fā)表于 2025-1-14 00:49 什么亂七八糟的,來搞笑的吧 |
Powered by 單片機(jī)教程網(wǎng)