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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

3個IO口這樣能接6個按鍵嗎?

  [復制鏈接]
跳轉到指定樓層
樓主
請完善程序

3個IO口接6個按鍵.pdf

95.02 KB, 下載次數: 0

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:1136941 發表于 2025-1-14 00:49 | 只看該作者

有興趣完善程序

3個IO口接6個按鍵_1.jpg (341.96 KB, 下載次數: 0)

3個IO口接6個按鍵_1.jpg
回復

使用道具 舉報

板凳
ID:526108 發表于 2025-1-14 10:28 | 只看該作者

什么亂七八糟的,來搞笑的吧
回復

使用道具 舉報

地板
ID:1136941 發表于 2025-1-14 10:47 | 只看該作者
這樣寫可以實用吧,消抖用按鍵并電容,
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;
}
回復

使用道具 舉報

5#
ID:1003477 發表于 2025-1-14 13:47 | 只看該作者
判斷B1、B2、B3的電平高低   b1低且b2、b3高對應sw1,b2低且b1、b3高對應sw3,b3低且b1、b2高對應sw5,b1、b2低且b3高對應sw2......
回復

使用道具 舉報

6#
ID:476244 發表于 2025-1-14 14:00 | 只看該作者
可以,也可以再接第7個開關同時拉低三個I/O口。
也可以只用3個開關組合使用。
二進制的 000-111 。
回復

使用道具 舉報

7#
ID:161164 發表于 2025-1-14 14:46 | 只看該作者

  1. sbit Pin_B1 = P3^2;
  2. sbit Pin_B2 = P3^3;
  3. sbit Pin_B3 = P3^4;
  4. u8 KeyVal = 0;//用完清零
  5. void key_Proc()//多鍵短按,1ms中斷內運行
  6. {
  7.         static u8 Delay_XD=0; //消抖計數
  8.         static bit ons = 0;
  9.         if(!Pin_B1 || !Pin_B2 || !Pin_B3)
  10.         {
  11.                 if(++Delay_XD>=20 && !ons) //消抖
  12.                 {
  13.                         ons = 1;
  14.                         if(!Pin_B1 && !Pin_B2)
  15.                         {
  16.                                 KeyVal = SW2;
  17.                         }else if(!Pin_B2 && !Pin_B3)
  18.                         {
  19.                                 KeyVal = SW4;
  20.                         }else if(!Pin_B1 && !Pin_B3)
  21.                         {
  22.                                 KeyVal = SW6;
  23.                         }else{
  24.                                 if(!Pin_B1)
  25.                                 {
  26.                                         KeyVal = SW1;
  27.                                 }
  28.                                 if(!Pin_B2)
  29.                                 {
  30.                                         KeyVal = SW3;
  31.                                 }
  32.                                 if(!Pin_B3
  33.                                 {
  34.                                         KeyVal = SW5;
  35.                                 }                               
  36.                         }
  37.                 }
  38.         }
  39.         else //按鍵抬起
  40.         {
  41.                 Delay_XD=0; //Delay_XD清0
  42.                 ons = 0;
  43.         }
  44. }
復制代碼


回復

使用道具 舉報

8#
ID:1143011 發表于 2025-1-14 15:24 | 只看該作者
不知道什么原理 ,為何不用ADC口
回復

使用道具 舉報

9#
ID:277550 發表于 2025-1-14 15:26 | 只看該作者
邏輯像是 3 排列,取2個、和取1個。

這硬件電路沒有問題,測試過。
程序中,可以使用掃描,也可以用3個中斷、再判斷哪個按鈕
回復

使用道具 舉報

10#
ID:277550 發表于 2025-1-14 15:38 | 只看該作者
再加3只二極管,可以7個按鈕
回復

使用道具 舉報

11#
ID:69038 發表于 2025-1-14 15:49 | 只看該作者
邏輯上沒啥問題。
但對于現在的MCU來說,意義不大,
6個4148不是錢?
為什么不用AD口來測按鍵?還能少兩個IO。
要知道硬件成本遠大于軟件成本。
回復

使用道具 舉報

12#
ID:446156 發表于 2025-1-14 16:37 | 只看該作者
注意按鍵不要同時按下多個就行
回復

使用道具 舉報

13#
ID:1136941 發表于 2025-1-14 16:48 | 只看該作者

這樣就很完善了,學習了。
回復

使用道具 舉報

14#
ID:1109793 發表于 2025-1-14 18:50 | 只看該作者
這是都對地接,如果接兩個IO之間,是不是還能更多?
回復

使用道具 舉報

15#
ID:161164 發表于 2025-1-15 09:44 | 只看該作者
太陽雨ZW 發表于 2025-1-14 16:48
這樣就很完善了,學習了。

5樓提醒了我,代碼可以簡化為

  1. sbit Pin_B1 = P3^2;
  2. sbit Pin_B2 = P3^3;
  3. sbit Pin_B3 = P3^4;
  4. u8 KeyVal = 0;//用完清零
  5. void key_Proc()//多鍵短按,1ms中斷內運行
  6. {
  7.         static u8 Delay_XD=0; //消抖計數
  8.         static bit ons = 0;
  9.         u8 KeyTemp = 0;
  10.         if(!Pin_B1)KeyTemp |= 0x01;
  11.         if(!Pin_B2)KeyTemp |= 0x02;
  12.         if(!Pin_B3)KeyTemp |= 0x04;
  13.         if(KeyTemp)
  14.         {
  15.                 if(++Delay_XD>=20 && !ons) //消抖
  16.                 {
  17.                         ons = 1;
  18.                         KeyVal = KeyTemp;
  19.                 }
  20.         }
  21.         else //按鍵抬起
  22.         {
  23.                 Delay_XD=0; //Delay_XD清0
  24.                 ons = 0;
  25.         }
  26. }
復制代碼
回復

使用道具 舉報

16#
ID:1136941 發表于 2025-1-15 13:31 | 只看該作者
zhuls 發表于 2025-1-14 15:49
邏輯上沒啥問題。
但對于現在的MCU來說,意義不大,
6個4148不是錢?

用的是AT89C2051,不帶ADC
回復

使用道具 舉報

17#
ID:1034262 發表于 2025-1-16 13:17 | 只看該作者

3個IO不需要節任何別的零件,可以節6個按鍵:
IO1、IO2、IO3分別對地接一個按鍵。
IO1-IO2、IO1-IO3、IO2-IO3接3個按鍵。
回復

使用道具 舉報

18#
ID:264021 發表于 2025-1-16 20:55 | 只看該作者
可以,但是那3個I/O必須帶ADC功能
回復

使用道具 舉報

19#
ID:69038 發表于 2025-1-17 09:16 | 只看該作者
太陽雨ZW 發表于 2025-1-15 13:31
用的是AT89C2051,不帶ADC

AT89C2051,可以說是史前文物了!
現在哪家上新項目還用這料?
現在新出的20腳MCU,哪個性能配置比不過它?除了固有的庫存,全新貨還貴的要人命。。
回復

使用道具 舉報

20#
ID:1109793 發表于 2025-1-17 09:54 | 只看該作者
zhuls 發表于 2025-1-17 09:16
AT89C2051,可以說是史前文物了!
現在哪家上新項目還用這料?
現在新出的20腳MCU,哪個性能配置比不過 ...

我手里還有一點庫存呢,你要不?
回復

使用道具 舉報

21#
ID:1136941 發表于 2025-1-17 11:01 | 只看該作者
zhuls 發表于 2025-1-17 09:16
AT89C2051,可以說是史前文物了!
現在哪家上新項目還用這料?
現在新出的20腳MCU,哪個性能配置比不過 ...

手中還有過去買的幾十個,放著浪費了,現在用來做些小制做利用下。
回復

使用道具 舉報

22#
ID:1136941 發表于 2025-1-17 11:05 | 只看該作者
單片機學習習 發表于 2025-1-16 20:55
可以,但是那3個I/O必須帶ADC功能

3個口帶ADC,沒有搞懂
回復

使用道具 舉報

23#
ID:1136941 發表于 2025-1-17 12:15 | 只看該作者
devcang 發表于 2025-1-14 15:38
再加3只二極管,可以7個按鈕

也可以接10個按鍵,7個加B1-B2,B2-B3,B1-B3三個。
回復

使用道具 舉報

24#
ID:69038 發表于 2025-1-17 14:27 | 只看該作者
xiaobendan001 發表于 2025-1-17 09:54
我手里還有一點庫存呢,你要不?

我要這東西做什么哎。。。
手里還的幾十個8G1K08A的,當時剛出來沒多久就買了,放在手里吃灰呢。。
回復

使用道具 舉報

25#
ID:69038 發表于 2025-1-17 14:29 | 只看該作者
太陽雨ZW 發表于 2025-1-17 11:01
手中還有過去買的幾十個,放著浪費了,現在用來做些小制做利用下。

也是哈,就DIY樂呵樂呵,真做項目不要再考慮用它了。
回復

使用道具 舉報

26#
ID:584814 發表于 2025-1-20 11:39 | 只看該作者
3個IO口這樣能接6個按鍵,是查理復用接法的上限,并不是51單片機能力的上限。
用電阻電壓法理論上可以單口無限,實際單口接三五個也很常見。
回復

使用道具 舉報

27#
ID:1143230 發表于 2025-1-20 14:02 | 只看該作者
也可以
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久久成人一区二区免费影院 | av影音资源 | 精品视频99 | 日韩一二三区视频 | 羞羞视频免费在线观看 | 超碰8| 国产精品一区二区久久 | 91精品久久久久久久 | 亚洲精品毛片av | 亚洲综合久久久 | 精品欧美一区二区久久久伦 | 亚洲欧美在线观看 | 亚洲色综合 | 99这里只有精品视频 | 国产二区在线播放 | 九九久久精品 | 精品国产91亚洲一区二区三区www | 狠狠躁夜夜躁人人爽天天高潮 | 一区二区欧美在线 | a毛片视频网站 | 日韩高清黄色 | 久久国产精品免费一区二区三区 | 午夜精品久久久久久久久久久久久 | 欧美精品一区免费 | 日韩欧美视频网站 | 欧美性乱 | 日韩一区二区三区精品 | 午夜在线视频 | 久久久久久国产精品三区 | 免费特黄视频 | 国产精品久久久99 | 久久久久黑人 | 黄篇网址 | 日韩在线视频一区二区三区 | 久久综合九色综合欧美狠狠 | 久久人体| www.久久久久久久久久久 | 久久精片 | 黄色日批视频 | 国产黄色小视频 | www亚洲精品 |