矩形波電壓發(fā)生器
采用單緩沖方式,口地址設(shè)為FEFFH.
參考程序如下:
????????? ORG?? 1100H
START:??? MOV?? DPTR , #00FEH?? ;送DAC0832口地址
LOOP:???? MOV?? A , #dataH???? ;送高電平數(shù)據(jù)
????????? MOVX? @ DPTR , A
????????? LCALL?? DELAYH?????? ;調(diào)用延時(shí)子程序
????????? MOV?? A , #dataL???? ;送低電平數(shù)據(jù)
????????? MOVX? @ DPTR , A
????????? LCALL?? DELAYL?????? ;調(diào)用延時(shí)子程序
????????? SJMP??? LCALL
執(zhí)行上述程序就可得到如圖9.5所示的矩形波。
圖9.5 D/A轉(zhuǎn)換產(chǎn)生的矩形波
幾點(diǎn)說明:
(1)以上程序產(chǎn)生的是矩形波,其低點(diǎn)平的寬度由延時(shí)子程序DELAYL所延時(shí)的時(shí)間來決定,高電平的寬度則由DELAYH所延時(shí)的時(shí)間決定。
(2)? 改變延時(shí)子程序DELAYL和的DELAYH延時(shí)時(shí)間,就可改變矩形波上下沿的寬度。若DELAYL=DELAYH(兩者延時(shí)一樣),則輸出的是方波。
(3)? 改變上限值或下限值便可改變矩形波的幅值;單極性輸出時(shí)為0~-5V或0~+5V;雙極性輸出時(shí)為-5V~+5V。
【例9.3】三角波電壓發(fā)生器
利用DAC0832產(chǎn)生三角波的參考程序如下:?
????? MOV?????? A , #00H????? ;取下限值
????? MOVX??? DPTR , #FEFFH? ;指向0832口地址??? SS1: MOVX????? @DPTR , A???? ;輸出
????? NOP???????????????????? ;延時(shí)
????? NOP
????? NOP
SS2:? INC?????? A??????? ;轉(zhuǎn)換值增量
????? JNZ????? SS1?????? ;未到峰值,則繼續(xù)
SS3:? DEC?????? A??????? ;已到峰值,則取后沿
????? MOVX????? @DPTR , A???? ;輸出
????? NOP??????????????? ;延時(shí)
????? NOP
????? NOP
????? JNZ?????? SS3????? ;未到谷值,則繼續(xù)
????? SJMP????? SS2????? ;已到谷值,則反復(fù)
評(píng)論
查看更多