數(shù)字電位器與單片機(jī)接口及程序設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
隨著集成芯片技術(shù)與計(jì)算機(jī)技術(shù)的發(fā)展,儀器儀表的智能化程度不斷提高,許多原先采用手工調(diào)節(jié)的操作,已由計(jì)算機(jī)取而代之。數(shù)字電位器便是其中一例,它不僅在一定程度上取代了機(jī)械電位器,而且具有無噪聲,抗振動(dòng).尺寸小,壽命長等優(yōu)點(diǎn)。最重要的是它由計(jì)算機(jī)控制,調(diào)節(jié)由編程實(shí)現(xiàn),從而實(shí)現(xiàn)操作的自動(dòng)化及智能化。
一、AD8402與8031的接口電路設(shè)計(jì)及注意事項(xiàng)
AD8402是一種2通道256個(gè)分支節(jié)點(diǎn)的數(shù)字電位器,也稱數(shù)控可變電阻器。它實(shí)質(zhì)上是一種特殊形式的數(shù)/模轉(zhuǎn)換器,但其模擬量輸出不是電壓或電流,而是電阻或電阻比率,所以又稱RDAC。它含有一個(gè)標(biāo)準(zhǔn)三線串行控制接口,輸入時(shí)序如圖1所示。
AD8402可根據(jù)地址位A1、A0的值選擇相應(yīng)的RDAC,并將8位數(shù)據(jù)存人鎖存器,根據(jù)鎖存器的值改變RDAC的滑壁位置。
8031串行接口的四種工作方式(方式0~3)中,無一種時(shí)序與之相匹配。因此,必須使用8031的Pl口中的任意三根位線(如P1.0~P1.2)與之接口,電路如圖2所示。
由于AD8402的CLK端可使用50 MHz的時(shí)鐘,而8031的晶振最高只有12 MHz,這個(gè)時(shí)鐘脈沖對(duì)AD8402來講顯得太寬了。這不但要求時(shí)鐘的前沿十分干凈,而且方波不應(yīng)有尖峰,否則會(huì)使誤碼數(shù)據(jù)傳人寄存器。這種錯(cuò)誤不易察覺,我們?cè)钍芷浜Α=鉀Q的辦法是進(jìn)行濾波,濾掉干擾。電容的容量要合適,電容值太大,暫態(tài)時(shí)間過長,得不到應(yīng)有高度的上升沿;電容值太小,干擾不能濾除。由8031的Pl口內(nèi)部結(jié)構(gòu)(如圖3所示)可知,內(nèi)部有上拉電阻R,設(shè)其值為1 kΩ,濾波的截止頻率fo=l/RC≤50 MHz,可得C≥0.02nF。又由8031的PI口發(fā)出脈沖最小寬度為2μs,即C≤2 nF,C值為0.02~2 nF(晶振為6MHz)。我們?cè)诰д駷? MHz的8031系統(tǒng)中,采用1 nF的濾波電容,收到了很好的效果。
另外,在使用AD8402時(shí)還應(yīng)注意的是,其RDAC各端不能使用負(fù)電壓。例如用作分壓器時(shí),不能按圖4(a)所示,將負(fù)電壓Vss直接接在B端或A端或W端上,那樣數(shù)字電位器不能正常工作??砂凑?qǐng)D3 -67(b)或3-67(c)的方式連接,雖然在vP上不會(huì)得到V ss~VDD的全范圍分壓,但適當(dāng)選取R.、Rz的值便可得到可正可負(fù)的分壓值。
此外,AD8402固定端A與B之間的電阻分為3種類型:10kΩ、50 kΩ,和100 kΩ。如有其他需要可與廠家聯(lián)系,但這樣十分不方便??梢酝ㄟ^一些電阻網(wǎng)絡(luò)來實(shí)現(xiàn),如一個(gè)10 kΩ的電阻與一個(gè)10 kΩ的電阻的RDAC并聯(lián),可以得到有256個(gè)分支節(jié)點(diǎn)的5kΩ的電位器,只是線性度差一些。
二、AD8402的編程
下面一段簡短的程序可以實(shí)現(xiàn)AD8402的基本操作。它可作為一個(gè)子程序供系統(tǒng)調(diào)用。
程序中位RDAC一01置0時(shí),對(duì)RDAC1操作;置1時(shí),對(duì)RDAC2操作。位RDAC_*=O時(shí),按照RDAC_ AVLUE的值調(diào)節(jié)AD8402中的RDAC; RDAC_*-1時(shí),將根據(jù)位RDAC_十-的值移動(dòng)電位器的滑臂。程序如下: