為DS1845/DS1855數(shù)字電位器構(gòu)建按鍵接口
出處:coldra 發(fā)布于:2009-06-15 14:54:29
摘要:本應(yīng)用筆記介紹如何使用簡單的微控制器構(gòu)建一個與DS1845/DS1855非易失數(shù)字電位器連接的簡單接口。按鍵按下的操作被轉(zhuǎn)換成I?C命令,向上或向下調(diào)節(jié)數(shù)字電位器的抽頭位置。
引言
本應(yīng)用筆記介紹了一種DS1845或DS1855非易失數(shù)字電位器的簡單接口方案,利用Microchip?的PIC12F509實現(xiàn)。
硬件設(shè)置
圖1所示原理圖描述了按鍵與微控制器的連接,也說明了I?C接口的實現(xiàn)方案。
三個瞬態(tài)按鍵開關(guān)分別用于遞增(UP)、遞減(DWN)和中間值(MID)設(shè)置。按下按鍵時,開關(guān)迫使對應(yīng)的微控制器通用I/O (GP0、GP1和GP3)口置低。因為微控制器內(nèi)部有上拉電阻(可選),可以確切選擇這些I/O口。如果微控制器工作在低電流休眠模式,IO口的電平變化也能產(chǎn)生喚醒中斷信號。另一輸入開關(guān)為單刀雙擲開關(guān),連接到微控制器的GP2引腳,通過軟件編程選擇POT0和POT1。
SDA、SCL和LED連接到GP5、GP4和GP0。SDA和SCL具有4.7kΩ上拉電阻,直接與數(shù)字電位器的通信接口連接。LED和MID瞬態(tài)開關(guān)共用GP0引腳。大部分時間段,GP0作為輸入引腳,按下MID按鍵時將GP0拉低。然而,如果按下其它開關(guān)的任何一個或兩個同時按下,PIC?輸出低電平,點亮LED。這種情況下,LED將在MID按下時被點亮,其它按鍵按下時,LED由PIC驅(qū)動。R1、R2、R3可選,使用PIC12F509時并不需要這些電阻。
圖2給出了*估DS1845/DS1855時的特定連接方式。跳線器用來選擇地址總線,隔離開所使用的電源VCC (VDD)以及SDA和SCL。

圖1. PIC12F509接口電路

圖2. DS1845/DS1855數(shù)字電位器與PIC控制器的連接
固件說明
這個項目的固件采用匯編語言編寫,由MPLAB IDE (7.31版)進(jìn)行編譯。該編譯軟件可以從Microchip獲得。整個軟件占用的指令空間低于512字節(jié)(閃存),數(shù)據(jù)空間低于14字節(jié)(RAM)。
指令分為5個模塊:初始化、讀操作、遞增調(diào)節(jié)、遞減調(diào)節(jié)、中間值設(shè)置。固件簡單地以連續(xù)輪詢檢測輸入引腳進(jìn)行循環(huán)。因為軟件的固有延遲和軟件處理邏輯限制,采用了開關(guān)去抖,減少噪聲引起開關(guān)的誤操作。
一旦PIC電源上電或從休眠狀態(tài)喚醒(如果休眠狀態(tài)使能),將運(yùn)行初始化模塊。初始化模塊運(yùn)行后,為相應(yīng)的寄存器、標(biāo)志位及變量賦值。執(zhí)行這些指令后,從循環(huán)中調(diào)用讀操作或?qū)懖僮鳎ㄟ^I?C接口與數(shù)字電位器通信。
數(shù)字電位器的I?C讀操作僅發(fā)生在RD_FLAG標(biāo)志置位時。初始化期間標(biāo)志位被置位,此后,任何按鍵操作將改寫數(shù)字電位器的數(shù)值。數(shù)字電位器的電阻值改變后或器件開啟后,執(zhí)行I?C讀操作;如果沒有按下UP、DWN或MID按鍵,總線上不會發(fā)生通信操作。例如:如果數(shù)字電位器用來控制電源校準(zhǔn),這時接通按鍵控制器可實現(xiàn)在線編程。當(dāng)前的數(shù)字電位器抽頭位置將在執(zhí)行I?C寫命令之前讀取。I?C寫指令完成后,RD_FLAG將重新置位,通過I?C讀取新的數(shù)字電位器數(shù)值。
運(yùn)行UP、DWN和MID模塊后將執(zhí)行讀操作。運(yùn)行這些模塊時,對應(yīng)的引腳被拉至低電平;一旦檢測到引腳的高電平狀態(tài),將立即退出相應(yīng)的程序模塊,不會產(chǎn)生任何I?C通信。如果檢測到低電平狀態(tài),軟件將按照邏輯流程執(zhí)行相應(yīng)的程序模塊。
可以從Maxim的FTP網(wǎng)站程序源代碼(.asm文件)。
功能說明
該項目固件和硬件提供幾種不同操作,對DS1845/DS1855數(shù)字電位器的抽頭位置進(jìn)行編程。開關(guān)和LED的功能如下:
POT0/1 (選擇觸發(fā)開關(guān)) 該開關(guān)選擇下一個循環(huán)需要控制的數(shù)字電位器。改變開關(guān)S4的狀態(tài)選擇POT0或POT1,這將產(chǎn)生I?C讀操作,不會影響LED。
點擊MID、UP或DWN按鍵(< 400ms) 按下其中一個按鍵,所選擇的數(shù)字電位器的抽頭位置將遞增(UP)、遞減(DWN)或設(shè)置為中間值(MID)。執(zhí)行I?C寫操作時,LED將馬上點亮;I?C讀操作將在下一循環(huán)產(chǎn)生。
按下并保持UP或DWN按鍵(> 400ms) 按下并保持UP或DWN按鍵時,所選擇的數(shù)字電位器將進(jìn)入快速遞增或遞減模式。數(shù)字電位器的抽頭位置將連續(xù)變化,直到釋放按鍵或達(dá)到/值。執(zhí)行I?C寫操作時,LED將點亮,并在釋放按鍵之前保持點亮狀態(tài)。釋放按鍵后,將在下一循環(huán)執(zhí)行I?C讀操作。
按下并保持UP按鍵,然后點擊DWN按鍵 按下并保持UP按鍵,所選擇的數(shù)字電位器的抽頭位置將開始遞增。然后,在UP按鍵仍處于按下狀態(tài)時,點擊DWN按鍵,抽頭位置將直接置于電阻位置。LED始終處于點亮狀態(tài),直到釋放按鍵。釋放按鍵后,將在下一循環(huán)執(zhí)行I?C讀操作。
按下并保持DWN按鍵,然后點擊UP按鍵 按下并保持DWN按鍵,所選擇的數(shù)字電位器的抽頭位置開始遞減。在DWN按鍵按下的同時,點擊UP按鍵,所選擇電位器抽頭位置將直接置于電阻值0x00。LED始終處于點亮狀態(tài),直到釋放按鍵。釋放按鍵后,將在下一循環(huán)執(zhí)行I?C讀操作。
LED閃爍3次 PIC上電初始化或當(dāng)看門狗定時器(使能情況下)引起系統(tǒng)復(fù)位時,LED將閃爍3次。
LED連續(xù)快速閃爍 發(fā)生I?C通信故障時,LED將連續(xù)閃爍。故障解除后,LED將恢復(fù)正常狀態(tài)。通過檢測器件地址是否正確、是否連接了I?C總線進(jìn)行故障排查。
結(jié)論
本應(yīng)用筆記介紹了一種DS1845/DS1855接口方案,利用簡單的高性價比控制器實現(xiàn)。按鍵輸入將被轉(zhuǎn)化成I?C命令,無需主機(jī)控制,即可實現(xiàn)數(shù)字電位器的遞增、遞減調(diào)節(jié),或?qū)⑵湓O(shè)置在數(shù)字電位器的中間值。
版權(quán)與免責(zé)聲明
凡本網(wǎng)注明“出處:維庫電子市場網(wǎng)”的所有作品,版權(quán)均屬于維庫電子市場網(wǎng),轉(zhuǎn)載請必須注明維庫電子市場網(wǎng),http://m.58mhw.cn,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點或證實其內(nèi)容的真實性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個人從本網(wǎng)轉(zhuǎn)載時,必須保留本網(wǎng)注明的作品出處,并自負(fù)版權(quán)等法律責(zé)任。
如涉及作品內(nèi)容、版權(quán)等問題,請在作品發(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。
- 什么是氫氧燃料電池,氫氧燃料電池的知識介紹2025/8/29 16:58:56
- SQL核心知識點總結(jié)2025/8/11 16:51:36
- 等電位端子箱是什么_等電位端子箱的作用2025/8/1 11:36:41
- 基于PID控制和重復(fù)控制的復(fù)合控制策略2025/7/29 16:58:24
- 什么是樹莓派?一文快速了解樹莓派基礎(chǔ)知識2025/6/18 16:30:52









