<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 模擬技術(shù) > 設計應用 > 構建DS1803/DS1805數字電位器的按鍵控制器

構建DS1803/DS1805數字電位器的按鍵控制器

作者: 時(shí)間:2007-08-01 來(lái)源:網(wǎng)絡(luò ) 收藏

概述

本應用筆記介紹了一種使用幾個(gè)按鍵和一個(gè)微控制器控制DS1803或DS1805的簡(jiǎn)易方法。Microchip PIC12F509微控制器用于連接四個(gè)開(kāi)關(guān)和數字器,僅需極少的元件。


硬件

該應用的硬件原理圖如圖1、圖2所示。PIC12F509有6個(gè)I/O口,用于SDA、SCL輸出控制、一個(gè)LED和4個(gè)開(kāi)關(guān)的接收。

圖1 給出了PIC12F509的內部控制原理圖,R1 、R2和R3為上拉電阻,使用PIC12F509時(shí)無(wú)需安裝這些電阻。圖2是DS1803的電路連接,跳線(xiàn)用于選擇地址引腳、分離共用的VCC (VDD)以及斷開(kāi)SDA、SCL連接。

3個(gè)開(kāi)關(guān)為觸摸式按鍵,用于增(UP)/減(DWN)和中間值(MID)控制。當按鍵按下時(shí),微控制器通用I/O (GP0、GP1、GP3)中的一路拉低。由于這些I/O均有內部上拉(可選擇),在器件已進(jìn)入低電流SLEEP模式時(shí)可以產(chǎn)生中斷喚醒,做出正確的I/O識別。另外一路輸入開(kāi)關(guān)為雙刀雙擲配置,用于觸發(fā)GP2,用來(lái)選擇POT0或POT1的編程。

SDA、SCL和LED輸出分別分配由GP5、 GP4和GP0控制。 SDA和SCL具有4.7kΩ上拉電阻,直接連接到數字器的通信引腳。LED 和MID瞬時(shí)開(kāi)關(guān)均采用GP0引腳控制。GP0引腳在大部分時(shí)間內作為輸入,MID按鍵可將其拉至低電平。但如果一個(gè)或兩個(gè)其它觸摸式按鍵被按下,該引腳輸出低電平,使LED點(diǎn)亮。通過(guò)這種方式,LED在MID按鍵按下時(shí)點(diǎn)亮,或在其它按鍵按下時(shí)由PIC點(diǎn)亮。

圖1. PIC12F508接口電路

圖2. DS1803數字電位器與PIC控制器的連接

固件

本工程固件用匯編語(yǔ)言編寫(xiě),在MPLAB IDE (7.31版本)上編譯。目前此工具由Microchip免費提供,整個(gè)程序包括:程序空間(閃存)低于512個(gè)指令,數據空間(RAM)為11位置數據。

程序分為5塊:初始化、讀數據、UP、DWN和MID。由于這款PIC不提供任何中斷,固件簡(jiǎn)單地循環(huán)運行,連續檢測輸入引腳。程序通過(guò)內部延時(shí)和邏輯流程自動(dòng)完成開(kāi)關(guān)去抖。

PIC上電或喚醒后(如果SLEEP使能)執行一次初始化程序。初始化程序執行完畢后,工作寄存器、標志位和變量均被置為已知狀態(tài)。這些指令執行完畢后,其它幾個(gè)程序可以連續循環(huán),檢測開(kāi)關(guān)狀態(tài),通過(guò)I2C接口讀、寫(xiě)新的電位器值。

只有在RD_FLAG置位后,才能通過(guò)I2C讀取電位器值。該標志位在初始化時(shí)被置位,按鍵按下時(shí)可調用電位器寄存器的寫(xiě)操作,寫(xiě)入一個(gè)新的數值。只有在電位器數值發(fā)生變化或上電時(shí)才進(jìn)行I2C讀操作,所以在增、減控制和中點(diǎn)設置按鍵均沒(méi)有按下時(shí),總線(xiàn)不會(huì )出現多余的通信。例如,如果數字電位器用于控制電源的參數,連接按鍵以實(shí)現在線(xiàn)編程。執行I2C寫(xiě)操作之前,可讀取當前的電位器值。每當I2C寫(xiě)操作完成后,RD_FLAG重新置位,產(chǎn)生I2C讀操作讀取新的電位器值。

讀程序后按順序執行UP、DWN和MID指令。執行每個(gè)子程序時(shí)將相應的引腳拉至低電平。如果相應的引腳為高電平,將迅速退出子程序,不產(chǎn)生任何I2C通信。如果檢測到低電平,則運行流程圖所示程序。

可從Dallas Semiconductor的FTP網(wǎng)站下載固件流程圖(PDF)、源代碼(ASM)和可執行指令(HEX),獲取本工程設計的完整說(shuō)明。

http://files.dalsemi.com/system_extension/AppNotes/AN4011
功能說(shuō)明

本工程的固件和硬件在設置DS1803/DS1805電位器時(shí)允許進(jìn)行多種不同的操作。開(kāi)關(guān)和LED的功能如下:

結論

本應用筆記介紹了DS1803或DS1805電位器的使用和控制方法。系統將按鍵輸入轉換為I2C指令,完成增、減和中點(diǎn)設置。本設計無(wú)需計算機主機,只需要少量的外部元件即可實(shí)現電位器控制。

有關(guān)該應用筆記的問(wèn)題/說(shuō)明/建議,請發(fā)送email至MixedSignal.Apps@dalsemi.com。



關(guān)鍵詞: 電位 阻值 信號 評估

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>