對于只需要不到鍵盤或數(shù)字鍵盤的應(yīng)用,這個簡單的電路使用單個多通道1-Wire可尋址開關(guān)(DS2408)和幾個外部元件來監(jiān)視多個按鈕開關(guān)。
鍵盤和數(shù)字小鍵盤通常為電子設(shè)備提供用戶界面,但許多應(yīng)用只需要少量按鈕。對于這些,您可以通過一對電線監(jiān)控多個按鈕(圖1)。
圖1.該電路連接到微控制器,僅使用兩根電線即可監(jiān)控8個按鈕。
多通道、1-Wire可尋址開關(guān)(U1、DS2408)提供輸入/輸出端口P0–P7,在本應(yīng)用中用作輸入。高值電阻器(R帕金森)將這些端口接地以確保定義的邏輯狀態(tài)(0),D1–C1形成本地電源,從1-Wire通信線路竊取能量。當您按下按鈕時,它將相應(yīng)的端口連接到本地電源電壓,相當于邏輯1。這種狀態(tài)變化設(shè)置端口的活動鎖存器(參見數(shù)據(jù)手冊)。
條件搜索輪詢
作為1-Wire從器件,U1不啟動通信。相反,主機(通常為微控制器)輪詢1-Wire線路。為了最大限度地降低開銷,U1支持稱為“條件搜索”的1-Wire網(wǎng)絡(luò)功能。但是,在使用該功能之前,必須根據(jù)應(yīng)用程序的需要配置 U1。這包括定義合格輸入端口(通道選擇),指定合格端口的極性(通道極性選擇),在端口的引腳或活動鎖存器之間進行選擇,以及指定設(shè)備是響應(yīng)單個端口的活動(OR)還是所有端口的活動(AND)。
配置示例
例如,如果八個端口中的任何一個檢測到活動,則考慮 U1 將執(zhí)行條件搜索。此條件需要以下配置設(shè)置:通道選擇掩碼(地址 008Bh)= 11111111b(1 表示選擇了端口);通道極性選擇寄存器(地址008Ch)= 11111111b(1表示電平必須高);控制/狀態(tài)寄存器(地址 008Dh) = 00000001b(選擇端口的活動鎖存器作為源,并指定 OR 作為條件搜索詞,即單個端口上的活動)。
上電后,必須使用寫入條件搜索寄存器命令將配置數(shù)據(jù)加載到 U1 中。要用作輸入,PIO 輸出鎖存器必須設(shè)置為 1。通道訪問寫入命令(以 FFh 作為 PIO 輸出數(shù)據(jù)字節(jié))將端口定義為輸入。隨后,“重置活動閂鎖”命令的發(fā)出將完成配置。U1 現(xiàn)在已準備好處理按鈕活動。
軟件大綱
配置U1后,上電時的應(yīng)用軟件進入無限循環(huán),其中1-Wire復位后跟條件搜索命令。如果沒有按鈕活動,則 U1 沒有響應(yīng),如條件搜索命令代碼后面的兩個位的“邏輯 1”所示。在這種情況下,微控制器取消條件搜索并重新開始。
如果 U1 響應(yīng)條件搜索,則前兩位將為 1 和 0,以真形式和反轉(zhuǎn)形式表示設(shè)備家族代碼 (29h) 的最低有效位。在這種情況下,微控制器應(yīng)完成條件搜索流程,該流程由192位序列組成(參見數(shù)據(jù)手冊)。接下來,微控制器通過使用PIO活動鎖存器狀態(tài)寄存器的地址(地址008Ah)發(fā)出讀取PIO寄存器命令來讀取寄存器的數(shù)據(jù)。然后,微控制器發(fā)出1-Wire復位,然后發(fā)出恢復和復位活動鎖存器命令。然后,它返回到無限循環(huán),輪詢下一個按鈕事件。
如果U1響應(yīng)且未連接其他1-Wire從機,微控制器可在讀取前2位后取消條件搜索,發(fā)出1-Wire復位,然后發(fā)出Skip ROM命令,然后讀取PIO活動鎖存器狀態(tài)寄存器。接下來,它必須發(fā)出1-Wire復位,然后發(fā)出跳過ROM和復位活動鎖存器命令,然后返回無限循環(huán)。
按下了哪個按鈕?
從PIO活動鎖存器狀態(tài)寄存器讀取的代碼包含答案。如果按下 PB1,則數(shù)據(jù)為 00000001b,對于 PB2,數(shù)據(jù)為 00000010b,依此類推。8 位中至少有一個為 1。如果自上次“重置活動閂鎖”命令以來按下了多個按鈕,則幾個位將為 1。然后,應(yīng)用軟件必須決定此類條件是否有效。 (在最簡單的情況下(8 個代碼中的 1 個),軟件會將所有設(shè)置了多個位的代碼視為無效。
超過 8 個按鈕
這個概念可以擴展到8個以上的按鈕。您可以將其他按鈕與同時激活的兩個端口相關(guān)聯(lián),而不是將一個按鈕與一個端口相關(guān)聯(lián)(2/8 代碼)。這些附加按鈕 (PBn) 的連接如圖 2 所示(x, y = 0 到 7, x ≠ y)。如果 Px 或 Py 被另一個按鈕激活,二極管會阻止該活動傳播到其他端口。同樣,應(yīng)用軟件必須檢查從PIO活動鎖存器狀態(tài)寄存器讀取的代碼,以確定其是否有效。這個概念的理論極限是 255 個按鈕,每個額外的按鈕需要組合 2、3、4、5、6、7 或 8 個二極管。當每增加一個按鈕的二極管成本開始超過收益時,你會發(fā)現(xiàn)再增加一個DS2408更具成本效益。
圖2.如果使用二極管將其他按鈕(最多 28 個)連接到兩個端口,則可以對其進行監(jiān)控。
審核編輯:郭婷
-
電源
+關(guān)注
關(guān)注
185文章
18375瀏覽量
256433 -
電阻器
+關(guān)注
關(guān)注
21文章
4047瀏覽量
63591 -
鎖存器
+關(guān)注
關(guān)注
8文章
926瀏覽量
42414
發(fā)布評論請先 登錄
兩根線重疊繞制的共模電感和兩根線各自占磁環(huán)一邊繞制的共模電感效果有什么區(qū)別
請問485通訊中能把多個通訊設(shè)備直接并聯(lián)在A,B兩根線上嗎?
如何去接外接制動電阻的兩根線
耳機子兩根線斷了有沒有正負
四線直流碳刷電機轉(zhuǎn)子兩根線定子的兩根線怎么接才能轉(zhuǎn)呢?
不是兩根內(nèi)存就能實現(xiàn)雙通道
為什么兩根相線之間的電壓是380V

評論