色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

用一條IO口實現兩個按鍵功能

聚豐開發 ? 2018-10-24 11:24 ? 次閱讀

注:本文是作者以前發表在其個人博客,現在發布到“聚豐開發”專欄



之前去到一個朋友那里,提到現在客戶對成本要求非常之高,尤其是玩具行業,已經是一分一厘的去計算產品成本。朋友感慨為了省成本,方案商是絞盡腦汁地去想各種實現方法,說遇到過為了節省成本,硬是用單片機一條IO實現了兩個按鍵的功能,讓他頗為詫異,好久都沒想明白原理。


一條IO實現兩個按鍵,聽上去確實挺新奇,既然別人能夠實現,我想我也應該可以做到,看來得找找實現的方法。我有一個習慣,遇到某些問題的時候,會在睡覺前想解決方法,想著想著就會睡著了,問題的答案有沒有找到則不一定。



我知道有用一條IO實現多個按鍵的方法,這樣的方法大多是選用的IO支持ADC功能,用電阻分壓后通過讀電壓判斷鍵值。如果IO不支持ADC功能,也不是不行,可以用電容充放電的方法實現ADC,從而用普通IO間接進行測量。(參見我之前關于鍵盤掃描的文章)

這樣用一條IO實現兩個按鍵給我的第一感覺是可能需要利用到電容充放電原理,于是在半夢半醒之中找到了實現的方法。



先看上圖左邊部分,如果MCU_IO1為雙向IO口,假設單片機程序按以下流程處理,看看會得到什么樣的結果?

1.MCU_IO1設定為輸出,輸出高電平一段時間,此時電容C1會充電,最后C1上的電壓接近電源電壓。


2.MCU_IO1設定為輸入,如果J1、J2均不按下,此時MCU_IO1可以理解成一個阻值很大的電阻接地,電容C1上的電荷會通過這個電阻逐漸釋放掉,這樣C1上的電壓會逐漸降低到零。因為C1上的電壓下降需要一個過程,當MCU_IO1設為輸入后馬上讀一下MCU_IO1的狀態,此時會讀到什么結果?顯然是高電平狀態1。


3.再將MCU_IO1設定為輸出,輸出低電平一段時間,顯然不管電容C1處于什么狀態,只要MCU_IO1輸出低電平時間足夠長,最后C1上的電壓應該接近零。


4.再將MCU_IO1設定為輸入,如果J1、J2同樣不按下,MCU_IO1讀到的是低電平狀態0。

如果J1按下,再來看看這四步,此時電容C1已經被強制接到電源上,MCU_IO1對其的充放電已經不起作用,在步驟2中MCU_IO1讀到的狀態依然是1,但在步驟4中MCU_IO1讀到的狀態就不再是0,而是變為1。

如果J2按下,同樣看這四步,此時電容C1被強制接到地,MCU_IO1對其充放電也失去作用,在步驟2中MCU_IO1讀到的狀態變為0,但在步驟4中MCU_IO1讀到的狀態保持為1。

到這里我想大家應該已經明白了實現方法,根據此四步中讀到的MCU_IO1狀態,就可以判斷出J1、J2是否按下。

既然已經找到方法,是不是就萬事大吉了呢?不然,我們還得回過頭去看看此方法是不是足夠可靠。如果J1按下,電容C1直接接到電源上,當MCU_IO1輸出低時,MCU_IO1輸出的低電平直接與電源短路,弄不好就會燒壞MCU_IO1,同理當J2按下時MCU_IO1輸出高也存在同樣的問題。


還有比這更嚴重的問題,如果用戶同時按下J1和J2,哈!居然是電源和地直接短路,這樣的后果很可能就是整個產品的電源部分一股青煙了事,就別想產品還能不能工作了。

不用擔心,看一看前面電路圖中的右半部分,在開關J3和J4上分別串聯了一個220歐的電阻,這個電路不管J3和J4如何按,都不會出現短路的情況,按前面的四個步驟即可判斷出J3和J4有沒有按下,不過如果J3和J4同時按下并不能進行識別判斷。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 單片機
    +關注

    關注

    6035

    文章

    44553

    瀏覽量

    634735
收藏 人收藏

    評論

    相關推薦

    使用片TLV320ADC3101芯片接到同一條i2s總線上,能實現音頻數據的同時采集嗎?

    我想 請問下,使用片TLV320ADC3101芯片接到同 一條 i2s總線上,能實現音頻數據的同時采集嗎?目前只實現
    發表于 10-24 07:03

    想使用typec接口實現數據與音頻體的功能,有推薦的芯片嗎?

    目前我們產品有路音頻模擬信號,路usb信號,現在想使用typec接口實現數據與音頻體的功能,想問下ti有這方面的芯片嗎
    發表于 10-22 06:39

    雙穩態電路的兩個穩定狀態是什么

    兩個不同的狀態之。這兩個狀態通常被稱為“高電平”和“低電平”,或者“0”和“1”。當外部輸入信號作用于雙穩態電路時,電路可以從穩定狀態
    的頭像 發表于 08-11 15:00 ?1339次閱讀

    遲滯比較器的輸出為一條直線的原因

    ,如果遲滯比較器的輸出為一條直線,這可能是由于多種原因造成的。 遲滯比較器的工作原理 在討論遲滯比較器輸出為一條直線的原因之前,我們首先需要了解其工作原理。遲滯比較器通常由運算放大
    的頭像 發表于 07-11 09:36 ?838次閱讀

    CW32數字電壓電流表軟件教程-實驗二:按鍵檢測

    3.1.獨立按鍵基礎知識 3.1.1.獨立按鍵結構組成 獨立按鍵實際上是非自鎖的輕觸開關,有左右兩個
    的頭像 發表于 05-31 15:16 ?855次閱讀
    CW32數字電壓電流表軟件教程-實驗二:<b class='flag-5'>按鍵</b>檢測

    STM32矩陣按鍵造成IO口的損壞的原因?

    看了網上的4*4矩陣按鍵,不帶外部中斷,可實現多個按鍵同時按下。發現行線都配置成GPIO_Mode_Out_PP推挽輸出,我認為當同一個列線上有兩個
    發表于 05-17 06:02

    兩個STM32的IO口連接到起,其中IO口被燒壞的原因?

    如題:兩個STM32的IO口連接到起,單片機IO設置為輸出模式(發送數據),另
    發表于 04-24 07:53

    節省IO的小技巧:GD32 MCU如何使用GPIO實現串口半雙工收發

    般情況串口的接受和發送分別需要使用TX和RX兩個引腳來實現,但在些UART的實際應用中,通信雙方身份為主機和從機,數據流是半雙工的,那么當IO
    的頭像 發表于 03-15 09:39 ?1863次閱讀
    節省<b class='flag-5'>IO</b>的小技巧:GD32 MCU如何使用<b class='flag-5'>一</b><b class='flag-5'>個</b>GPIO<b class='flag-5'>實現</b>串口半雙工收發

    arcgis中如何關聯兩個屬性表

    在ArcGIS中,關聯兩個屬性表是重要的操作,可以通過此操作將兩個表中的數據關聯起來,以便進行分析和查詢。下面是詳細介紹如何在ArcGIS中實現
    的頭像 發表于 02-25 11:01 ?4194次閱讀

    USB使用兩條CC線,是否可以在任何CC線路上的2PD源之間進行選擇?

    我知道USB PD通常只使用一條CC線,但是如果使用兩條CC線,是否可以在者之間切換并發送數據包或決定連接到哪一條,同時存在兩個Rd下拉?
    發表于 02-23 08:05

    沒有電位器,兩個按鈕可以實現變頻器調速嗎?

    沒有電位器,兩個按鈕可以實現變頻器調速嗎? 變頻器是種廣泛應用于電機調速的設備,它能夠調節電機的轉速,提高電機的效率,并且降低能耗。電位器是變頻器調速中常用的組件,但是在某些情況下
    的頭像 發表于 02-18 16:55 ?1779次閱讀

    兩個電位器地控制變頻器,如何接線?

    兩個電位器地控制變頻器,如何接線? 接線方式如下: 1. 首先,明確需要使用的電器設備。在這個場景中,我們需要兩個電位器(即可變電阻器
    的頭像 發表于 02-05 10:13 ?5232次閱讀

    想用TC275控制兩個永磁電機,GPT12能不能實現兩個QEP功能

    想用TC275控制兩個永磁電機,不知道GPT12能不能實現兩個QEP功能,供路電機使用
    發表于 02-05 07:14

    UCB_SWAP配置信息共16,寫入一條有效配置后,上一條需寫1使配置無效是為什么?

    死鎖。 綜上,UCB_SWAP寫入一條有效配置后,上一條需寫1使配置無效具體作用是什么。 有了解該功能大佬幫忙解釋下,感謝! Infineon-AURIX_TC3xx_Part1-UserManual-v02_00-EN.pdf
    發表于 01-24 08:31

    面朝歐洲,邁上“云橋”,走一條無憂絲路

    在云橋上走一條無憂絲路,去到歐羅巴的春天
    的頭像 發表于 01-10 09:44 ?1353次閱讀
    面朝歐洲,邁上“云橋”,走<b class='flag-5'>一條</b>無憂絲路
    主站蜘蛛池模板: 亚洲精品m在线观看| 51成人精品午夜福利AV免费七| 国产中文字幕乱码免费| 美女扒开尿口直播| 亚洲AV 中文字幕 国产 欧美| caoporen超碰在线视频| 久久精品美女| 午夜勾魂曲| 成人免费观看www视频| 萝莉御姐被吸奶| 亚洲精品视频免费在线观看| 成人精品视频在线| 免费又黄又硬又爽大片| 亚洲人成www在线播放| 国产精品久久大陆| 热久久综合这里只有精品电影| 这里只有精品网| 国内高清在线观看视频| 天天久久影视色香综合网| 拔擦拔擦8X永久华人免费播放器| 久久综合老色鬼网站| 亚洲午夜AV久久久精品影院色戒| 国产精品免费观看视频播放| 日本特殊精油按摩| yy4408午夜场理论片| 欧美成人无码A区在线观看免费 | 国产高清视频在线播放www色| 欧美老妇与zozoz0交| 45分钟做受片免费观看| 久久国产精品永久网站| 亚洲欧美中文字幕5发布| 国产亚洲AV精品无码麻豆| 天堂在线亚洲精品专区| 高清国语自产拍免费| 日本综艺大尺度无删减版在线| japanesematur乱儿| 欧美高清18| avav去吧| 欧美巨大巨粗黑人性AAAAAA| av老司机色爱区综合| 欧美成人无码视频午夜福利|