hc05与单片机连接图_单片机科普:单片机的IO口不够用了怎么办?如何扩展单片机的IO口...
單片機是一種可編程器件,在各種消費類電子、工業電子、汽車電子等行業應用廣泛,目前開發產品的構架就是以單片機為核心,根據不同的功能搭建不同的外設電路。同樣的功能,每個人、每個團隊所做的技術方案都不會相同,但是單片機加外設的構架不會變。足可以看出單片機在電子設計中的重要性。
1-華為榮耀體脂秤電路板-芯海的單片機
在設計單片機電路的過程中,往往會遇到這種情況:單片機的GPIO口不夠用,但是又不是缺很多,如果要更換更多引腳的單片機可能會貴一些,如果是老產品的話,還要涉及到代碼的移植,比較方法。有沒有擴展方法?答案是肯定的。
有很多的芯片都可以實現單片機GPIO口的擴展功能,下面和大家分析幾種常用的擴展方法。
1.輸入擴展1-矩陣按鍵
對于單片機的按鍵輸入,大學課程里有專門的講解,按鍵輸入可以分為獨立式按鍵和矩陣式按鍵兩類。獨立式按鍵占用單片機IO口比較嚴重,而矩陣式按鍵就是利用較少的IO口實現較多的按鍵檢測,也屬于GPIO口擴展的范疇。
2-輸入擴展-矩陣式按鍵
上圖中(上拉電阻為畫出),就是利用了單片機的八個GPIO口,擴展了4×4的矩陣式按鍵。四行鍵盤分別連接單片機的4個IO口,四列鍵盤分別連接單片機的另外4個IO口,總共占用了8個IO口,擴展出16個按鍵輸入。
矩陣式按鍵的工作原理
在編程時一般采用掃描的方式,先將列設置為輸入狀態,將列設置為輸出狀態,并依次輸出低電平,此時依次掃描列的輸入狀態,如果檢測到低電平則說明有按鍵按下并記錄狀態,否則無按鍵事件發生。再將行設置為輸入狀態,將列設置為輸出狀態,并依次輸出低電平,此時依次掃描行的輸入狀態,如果檢測到低電平則說明有按鍵按下并記錄狀態,否則無按鍵事件發生。經過以上兩次判斷,就可以得出是否有按鍵發生,并可確定出按鍵的編號。
矩陣式按鍵的優缺點分析
矩陣式按鍵可以實現單片機IO口的擴展,但是只能用作輸入,如果占用7個IO,可以擴展處3×4的矩陣。但是其缺點非常明顯,程序需要不停的掃描端口的狀態,比較浪費單片機的資源,實時性效率較低。4×4按鍵的實物圖如下圖所示。
3-矩陣式按鍵-實物圖
2.輸入擴展2-電阻采樣型擴展
采用單片機的AD采樣功能也可以實現輸入按鍵的擴展,通過設置不同的電阻,按下鍵時,單片機采到不同的電壓值,由此來識別按鍵。這種擴展形式有兩種方法可以實現:電阻并聯型和電阻串聯型。
電阻并聯型擴展按鍵的實現原理
通過電阻分壓的原理,每個按鍵和一個不同阻值的電阻串聯,再并聯后和一個定值電阻串聯,公共點接到單片機的AD采樣端口。設置后電阻,以區分不同的分壓值,使每個按鍵按下后,所得到的電壓值都不同,單片機采集該電壓就可以確定按鍵的編號。電阻并聯型按鍵的原理圖如圖4所示。
4-電阻并聯型擴展輸入
另一種方式就是電阻串聯型,前一個電阻依次和后邊的電阻串聯,按下鍵后所有的電阻都參與分壓,該種方式的電路原理圖如圖5所示。
5-電阻串聯型擴展輸入
電阻采樣型擴展方法的優缺點分析
這種方式的最大優點就是通過一個AD采樣口就可以實現多個按鍵的輸入,價格便宜。但是缺點太明顯:1)接入的按鍵越多,對AD采樣的結果要求越精準;2)不能接入過多的按鍵,因為必須要計算電阻的阻值,必須保證,每個按鍵動作都有不同的電壓值可以區分;3)多于兩個的按鍵同時按下時較難區分,既要考慮單個按鍵發生時的電壓值,又要考慮多個按鍵時的電壓值,導致電阻值難以設計。
3.輸入/輸出擴展3-邏輯芯片實現
74系列邏輯芯片非常經典,而且功能強大,也可以實現對單片機IO口的擴展。常用的擴展芯片有74HC138、74HC165、74HC595、74HC164、74HC148等。這類數字芯片可以使用較少的單片機IO,即可實現多路輸入或者多路輸出,但是需要根據芯片的時序圖或者真值表進行編程。
邏輯芯片實現擴展輸出
以74HC164為例,介紹如何通過邏輯芯片實現單片機IO口的擴展輸出,74HC164是串入并出的移位寄存器,占用單片機3個IO口就可以實現8個IO口的輸出。與該芯片類似的芯片是74HC595,該芯片是帶鎖存的移位寄存器,并且可以級聯擴展,即通過3個IO口就能實現多個八路輸出的擴展。典型電路原理圖 如6所示。
6-數字芯片實現輸出擴展
邏輯芯片實現擴展輸入
以74HC165為例,介紹如何通過邏輯芯片實現輸入擴展,74HC165是并入串出的移位寄存器,單片74HC165可以擴展8路輸入,只需要占用單片機3個IO口。并且可以級聯,實現多個8路輸入的擴展。典型的74HC165的擴展電路圖如下圖所示。
7-數字芯片實現輸入擴展
邏輯芯片實現擴展的優缺點分析
邏輯芯片實現輸入輸出IO口的擴展時,其硬件電路非常簡單,電路原理非常清晰,關鍵是價格非常便宜,國產邏輯芯片價格只有幾毛錢。其稍微復雜的地方是真值表和時序圖。以上介紹的邏輯芯片都是需要通過編程來實現擴展的,程序雖然不復雜,但如果是第一次使用,可能需要費一番功夫的。
4.模擬口的擴展-多路選擇開關實現
在設計產品的時候,可能要用到多路AD采樣端口,如實現多路PT100溫度采樣。單片機雖然有多路AD采樣通道,但是多通道的AD采樣在程序的時序上稍微復雜,或者所剩與AD口不足,這時候就要擴展,對于采樣類擴展選用多路選擇開關是一個不錯的選擇。以HCF4051為例介紹。
單片機使用三個IO口作為HCF4051的通道選擇控制端,一個AD采樣口接第3引腳,可以實現8路模擬量的采集。其實現電路原理圖如圖8所示。
8-模擬口的擴展
除了用這種多路選擇開關實現外,還可以使用專用的模擬量擴展芯片,如ADS1015,這類芯片即可以作為四通道的單端采樣使用,又可以當作兩通道的差分采樣使用,其與單片機的接口為IIC接口。
模擬口擴展的優缺點分析
使用4051之類的多路選擇開關,雖然只占用一個AD采樣口,但是只能使用多路輪詢的方式采集每一個通道,導致采樣周期過長,而且采樣的時序不好控制;采用ADS1015類的采樣芯片,由于是通過IIC與單片機通訊的,所以采樣時許容易控制,但是價格比較貴。
電子設計的特點就是實現同一個功能的技術方案有很多,每個人的方案可能都不一樣,在擴展IO時,每個人使用的方法也不一樣,以上只是一個簡單的總結,還有很多的方法沒有總結到。如果大家有其他的方法可以留言討論。
總結
以上是生活随笔為你收集整理的hc05与单片机连接图_单片机科普:单片机的IO口不够用了怎么办?如何扩展单片机的IO口...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: db2查询表结构语句_SQL语句大全,赶
- 下一篇: 消息队列 策略_消息队列技术点梳理(思维