MCS-51與串行D/A轉(zhuǎn)換器的接口設(shè)計
改變數(shù)據(jù)發(fā)送順序的程序如下:
OUTDA:MOV A,DBH??;取高位
SWAP ;高4位和低4位交換
MOV DBH,A
MOV A,DBL ;取低位
ANL A,#OFOH ;截取高4位
SWAP ;高4位和低4位交換
ORL A,DBH ;合成,(DBH)=D11 D10 D9 D8 D7 D6 D5 D4
LCALL ASMBB ;順序轉(zhuǎn)換
MOV DBH,A ??;存結(jié)果(DBH)=D4 D5 D6 D7 D8 D9 D10 D11
MOV A,DBL ;取低位
ANL A,#OFH ;截取低4位
SWAP ;交換,(A)=D3 D2 D1 D0 0 0 0 0
LCALL ASMBB ??;順序轉(zhuǎn)換
MOV DBL,A ;存結(jié)果(A)=0 0 0 0 D0 D1 D2 D3
MOV A, DBH
MOV SBUF,A??;發(fā)送高8位
JNB TI $ ;等待發(fā)送完成
CLR TI ?。话l(fā)送完畢,清標志
MOV A,DBL
MOV SBUF,A ;發(fā)送低4位
JNB TI $ ;等待
CLR TI ;發(fā)送完畢
CLR P1.0 ;A寄存器加載到B寄存器
NOP
SETB P1.0 ??;恢復(fù)
REF
……
ASMBB: MOV R6,#00H
MOV R7,#08H
CLR C
ALO: RLC A
XCH A,R6
RRC A
XCH A,R6
DJNZ R7,AL0
XCH A,R6
RET
以上這種方式的單片機串行通訊口與AD7543的接口電路,其波特率固定為CPU時鐘頻率的1/12,如果CPU的頻率為6MHz,那么波特率為50kbps,位周期為20μs,顯然,這種連接方法只能用于高速系統(tǒng)。
3.2 AD7543與單片機普通輸入輸出口線的連接
AD7543可以用8031的P1口實現(xiàn)數(shù)據(jù)傳送。這種方法的波特率可調(diào),傳輸速度由程序控制。電路與圖2相同,僅把8031的數(shù)據(jù)輸出端由RXD引腳改為P1.1,將移位脈沖輸出端由TXD改為P1.2口線,P1.0仍為加載脈沖輸出。其程序如下:
FS: MOV R7,#04H
MOV A,DBH;數(shù)據(jù)高4位
SWAP
LOOP1: RLC A
MOV P1.0 ;輸出
LCALL PULSE ;移位脈沖輸出
DJNZ R7,LOOP1 ;4位未完繼續(xù)
MOV R7,#08H
MOV A,DBLH ;數(shù)據(jù)低8位
LOOP2: RLC A
MOV P1.0 C ;輸出
LCALL PULSE ;移位脈沖輸出
DJNZ R7,LOOP2 ;8位未完繼續(xù)
CLR P1.1 ;輸出加載脈沖
NOP
SETB P1.1
RET ;傳送完畢
PULSE: SETB P1.1 ;輸出高電平
MOV R3,#4
PULS1: DJNZ R3,PULS1
CLR P1.1;輸出低電平
MOV R3,#4
PULS2:DJNZ R3,PULS2
RET
其中FS為AD7543驅(qū)動程序,子程序PULSE為移位脈沖形成程序,改變R3的數(shù)值可以改變移位脈沖的頻率。從而改變串行通訊波特率。本文引用地址:http://www.ex-cimer.com/article/188674.htm
電度表相關(guān)文章:電度表原理
評論