新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 用一只引腳為微控制器輸入并行數據

用一只引腳為微控制器輸入并行數據

作者: 時間:2016-12-02 來源:網絡 收藏
與UART的復雜相比,用微控制器的單一輸入引腳來輸入多個信息比特更簡單,事實證明這很有用。這種方案允許掃描鍵盤、模式開關或任何變化較慢的數字數據。參考文獻1詳細說明了一種用單一引腳輸出信號的方法。來自開關組S1的數據首先到達IC3,后者是NXPSemiconductors公司的74HC165并串轉換器(圖1)。把數據加載到移位寄存器中,這需要PL線路上的一個脈沖(引腳1)。線路CK在微控制器引腳線路上把一個長脈沖作為輸出發(fā)送出去,由此完成上述脈沖。R2和C2引入延時,并且一旦脈沖超過該延時,PL線路就變?yōu)榈碗娖剑瑪祿患虞d。



  PL信號上升后,微控制器的I/O端口上的較短脈沖在移位寄存器的時鐘輸入端CP(不是在PL輸入端)產生脈沖。這些時鐘脈沖的持續(xù)時間必須足夠長,應超過延時R1C1,但不能超過R2C2。這些時鐘脈沖使數據移位,使得8比特在移位寄存器輸出端QQ順序出現。



  如果微控制器的數據方向短暫地改變,以便借助高阻抗輸入,那么上述移位寄存器數據會占支配地位,這是由于R1、R2、R3的相對值所致,R3值低得多。高阻抗狀態(tài)存在的時間必須短于R1C1時間常數(圖2)。微控制器現在讀取單一數據比特。三個不同周期的作用產生了三種功能:加載、時鐘、數據讀取。微控制器改變端口方向、讀取引腳數據、把引腳方向重設為輸出所需的時間決定了時序。例如,1ms微控制器需要10ms。

  為避免假CP脈沖,該時間常數必須低于0.33R1C1,因此R1C1可以是30ms,而R2C2可以是200ms。這些設置允許在大約1ms內完成一次8比特讀取。為實現更快操作,可把RC繼電器換成精密可再觸發(fā)單穩(wěn)多頻振蕩器(如NXP公司的74HC123)和邏輯門??捎酶嘁莆患拇嫫鲾U充此方案,來讀取數十個信號。

  請注意:74HC165移位寄存器中的內部邏輯阻止CP信號在LD處于有效狀態(tài)時使數據移位。電阻器R4確保LD和CP的正確順序。二極管D1和D2使每個電容迅速放電,來“復位”R1C1和R2C2的延時功能。


評論


技術專區(qū)

關閉