數(shù)控電位器與Plcl6cxx單片機(jī)的接口技術(shù)
1x9268器件描述
1X9268是Xicor公司生產(chǎn)的,把2個(gè)E2POT數(shù)控電位器集成在單芯片的CMOS集成電路上的一種數(shù)控電位器。它包含兩個(gè)電阻陣列,每個(gè)電阻陣列包含255個(gè)電阻單元,在每個(gè)單元之間和二個(gè)端點(diǎn)都有可以被滑動(dòng)單元訪問的抽頭點(diǎn)?;瑒?dòng)單元在陣列中的位置,由用戶通過二線串行總線接口控制。每個(gè)電阻陣列,與1個(gè)滑動(dòng)端計(jì)數(shù)寄存器(WCR)和4個(gè)8位數(shù)據(jù)寄存器(R0~R3)聯(lián)系在一起,這4個(gè)數(shù)據(jù)寄存器可以由用戶直接寫入或讀出?;瑒?dòng)端計(jì)數(shù)寄存器的內(nèi)容,控制滑動(dòng)端在電阻陣列中的位置。
數(shù)據(jù)寄存器可以由用戶讀出和寫入。數(shù)據(jù)寄存器的內(nèi)容可以傳輸?shù)交瑒?dòng)端計(jì)數(shù)寄存器,以設(shè)置滑動(dòng)端的位置。當(dāng)前滑動(dòng)端的位置可以被傳輸?shù)脚c它相聯(lián)系的任一個(gè)數(shù)據(jù)寄存器。X9268功能方框圖如圖l所示。
2 X9268的工作原理
X9268支持雙向的定向規(guī)約,是一個(gè)從屬器件。它的高四位地址為0101,即為器件的類型辨識(shí)符,低四位地址由A3~AO輸入端的狀態(tài)來定義。在SDA線上的數(shù)據(jù),只有在SDL為低時(shí)才能改變狀態(tài)。當(dāng)SCL為高時(shí),SDA狀態(tài)的改變用來表示開始和終止條件。開始條件,SCL為高時(shí),SDA由高到低的跳變;終止條件,SCL為高時(shí),SDA由低到高的跳變。送給X9628的所有命令都由開始條件引導(dǎo),在其后輸出X9268的從器件地址。X9268把串行數(shù)據(jù)流與該器件的地址比較,若比較成功,則作出一個(gè)應(yīng)答響應(yīng)。送到X9268的下一個(gè)字節(jié)包括指令及寄存器指針的信息。高四位為指令,接著二位(RB和RA)用來選擇4十寄存器中的一個(gè),接下來的一位始終為O,最低位(PO)用來選擇2個(gè)電位器中的一個(gè)。
9條指令中的4條以發(fā)送指令字節(jié)作為結(jié)束。這些二字節(jié)指令在WCR與數(shù)據(jù)寄存器中的一個(gè)之間交換數(shù)據(jù);4條指令位三字節(jié)指令在主機(jī)與X9268之間傳輸數(shù)據(jù),其中包括主機(jī)與WCR之間傳輸數(shù)據(jù)和主機(jī)與其中的一個(gè)數(shù)據(jù)寄存器之間傳輸數(shù)據(jù);還有一條增加/減少指令。三類指令的指令序列及文字說明見圖2及表1。
X9268包括2個(gè)WCR,每個(gè)E2POT電位器各有一個(gè),WCR可以被認(rèn)為是一個(gè)8位并行和串行裝載的帶有譯碼的計(jì)數(shù)器,用來選擇電阻陣列的256選1開關(guān)。WCR是一個(gè)易失性存儲(chǔ)器,若斷電其內(nèi)容將失去。雖然該寄存器將在上電時(shí)自動(dòng)裝入RO中的值,但必須注意這個(gè)值可能與斷電時(shí)的值不同。
每個(gè)電位器有4個(gè)非易失性數(shù)據(jù)寄存器。這些寄存器可以被主機(jī)直接讀出或?qū)懭耄覕?shù)據(jù)可以在4個(gè)數(shù)據(jù)存儲(chǔ)器中任一個(gè)和WCR之間傳輸。需注意的是,在這些數(shù)據(jù)寄存器中任何一個(gè)改變數(shù)據(jù)的操作都是非易失性的操作,將花去10ms的時(shí)間(最大)。
3 X9628與Plcl6cxx單片機(jī)的接口電路及程序
圖3為PIC16C72與X9628的接口電路,與此對(duì)應(yīng),給出了X9268所有命令的程序清單。在MAIN主函數(shù)中,先將40寫入E2POT#2的WCR(即滑動(dòng)端位置為#40),然后將滑動(dòng)端抽頭減少15個(gè)脈沖的位置,即此時(shí)WCR的值減少到25(即滑動(dòng)端位置為#25)。隨后,其它命令也都是相同的過程。
程序清單見本刊網(wǎng)絡(luò)補(bǔ)充版www.dpj.com.cn。(單片機(jī)為P1C16C72,晶振頻率為4CMHz)
評(píng)論