如何用用DAC0832產(chǎn)生鋸齒波電路
鋸齒波電壓發(fā)生器
在一些控制應(yīng)用中,需要有一個線性增長的電壓(鋸齒波)來控制檢測過程、移動記錄筆或移動電子束等。對此可通過在DAC0832的輸出端接運算放大器,由運算放大器產(chǎn)生鋸齒波來實現(xiàn),其電路連接圖如圖9.4所示。
圖9.4 用DAC0832產(chǎn)生鋸齒波電路
圖中的DAC0832工作于單緩沖方式,其中輸入寄存器受控,而DAC寄存器直通。假定輸入寄存器地址為7FFFH,產(chǎn)生鋸齒波的程序清單如下:
MOV A, #00H ;取下限值
MOV DPTR,#7FFFH;指向0832口地址
MM: MOVX @DPTR,A;輸出
INC A;延時
NOP
NOP
NOP
SJMP MM;反復(fù)
執(zhí)行上述程序就可得到如圖9.5所示的鋸齒波。
圖9.5 D/A 轉(zhuǎn)換產(chǎn)生的鋸齒波
幾點說明:
(1)程序每循環(huán)一次,A加1,因此實際上鋸齒波的上升邊是由256個小階梯構(gòu)成的,但由于階梯很小,所以宏觀上看就如圖中所畫的先行增長鋸齒波。
(2)可通過循環(huán)程序段的機(jī)器周期數(shù),計算出鋸齒波的周期。并可根據(jù)需要,通過延時的方法來改變波形周期。若要改變鋸齒波的頻率,可在AJMP MM指令前加入延遲程序即可。延時較短時可用NOP指令實現(xiàn)(本程序就是如此),需要延時較長時,可以使用一個延長子程序。延遲時間不同,波形周期不同,鋸齒波的斜率就不同。
(3)通過A加1,可得到正向的鋸齒波,反之A減1可得到負(fù)向的鋸齒波。
(4) 程序中A的變化范圍是0~255,因此得到的鋸齒波是滿幅度的。如要求得到非滿幅鋸齒波,可通過計算求的數(shù)字量的處置和終值,然后在程序中通過置初值和終值的方法實現(xiàn)。
DIY機(jī)械鍵盤相關(guān)社區(qū):機(jī)械鍵盤DIY
評論