• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

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

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

    作者: 時間:2007-08-01 來源:網絡 收藏

    概述

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


    硬件

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

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

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

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

    圖1. PIC12F508接口電路

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

    固件

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

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

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

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

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

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

    http://files.dalsemi.com/system_extension/AppNotes/AN4011
    功能說明

    本工程的固件和硬件在設置DS1803/DS1805電位器時允許進行多種不同的操作。開關和LED的功能如下:

    結論

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

    有關該應用筆記的問題/說明/建議,請發送email至MixedSignal.Apps@dalsemi.com。



    關鍵詞: 電位 阻值 信號 評估

    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 临邑县| 黄平县| 仁化县| 四川省| 静宁县| 奉化市| 桑日县| 高阳县| 峨边| 建湖县| 达日县| 贡觉县| 奉节县| 敦煌市| 大渡口区| 互助| 沙雅县| 辉县市| 毕节市| 新河县| 永定县| 四平市| 逊克县| 乌恰县| 绵阳市| 珲春市| 静安区| 定日县| 江西省| 东乡县| 涡阳县| 揭阳市| 淄博市| 荃湾区| 牡丹江市| 尖扎县| 辽阳市| 九江县| 沧州市| 汽车| 札达县|