一、實驗目的 (1)了解D/A轉換與單片機的接口方法; (2)了解D/A轉換芯片0832的性能及編程方法; (3)了解單片機系統(tǒng)中擴展D/A轉換芯片的基本方法。 二、實驗內容 利用0832輸出一個從0V開始逐漸升至5V再降至0V的可變電壓。
三、實驗原理圖 四、實驗程序框圖 file:///C:/Users/yuan/AppData/Local/Temp/msohtmlclip1/01/clip_image002.png 五、實驗步驟 1、用雙頭線將DAC0832數(shù)模轉換區(qū)的CS5端口接至系統(tǒng)接口區(qū)的8000H端口,WR端口接至系統(tǒng)接口區(qū)的/IOWR端口,AOUT輸出接電壓表或小直流電機DJ,用8芯線將DAC0832數(shù)模轉換區(qū)的JX2接至數(shù)據(jù)總線JX0; 2、運行程序HW10.ASM,數(shù)碼管上顯示不斷加大或減小的數(shù)字量,數(shù)字變化范圍00到FF,用萬用表測試D/A輸出孔AOUT應能測出不斷加大或減小的電壓值,電壓變化范圍0V到5V。 六、程序清單
ORG 0000H
LJMP SE13
ORG 05E0H
SE13: MOV SP,#53H
mov p2,#0ffh
MOV A,#43H
MOV DPTR,#0FF20H
MOVX @DPTR,A
MOV 7EH,#00H
MOV 7DH,#08H
MOV 7CH,#03H
MOV 7BH,#02H ;顯示緩沖區(qū)
LO20: MOV R6,#00H
LO21: MOV DPTR,#8000H
MOV A,R6
MOVX @DPTR,A ;送0832轉換
MOV R0,#79H
LCALL PTDS
LCALL SSEE ;顯示
MOV R2,#08H
LCALL DELYA ;延時
INC R6 ;加1
CJNE R6,#0FFH,LO21 ;不到FF繼續(xù)加
LO22: MOV DPTR,#8000H
DEC R6
MOV A,R6 ;減1送0832轉換
MOVX @DPTR,A
MOV R0,#79H
LCALL PTDS
LCALL SSEE ;顯示
MOV R2,#08H
LCALL DELYA ;延時
CJNE R6,#00H,LO22 ;不為0繼續(xù)減
SJMP LO20 ;循環(huán)
PTDS: MOV R1,A ;拆送顯示緩沖區(qū)
LCALL PTDS1
MOV A,R1
SWAP A
PTDS1: ANL A,#0FH
MOV @R0,A
INC R0
RET
SSEE: SETB RS1 ;換工作區(qū)
MOV R5,#05H
SSE2: MOV 30H,#20H
MOV 31H,#7EH
MOV R7,#06H
SSE1: MOV A,30H
CPL A
MOV DPTR,#0FF21H ;字位送入
MOVX @DPTR,A
MOV R0,31H
MOV A,@R0
MOV DPTR,#DDFF
MOVC A,@A+DPTR ;取字形代碼
MOV DPTR,#0FF22H ;字形送入
MOVX @DPTR,A
MOV A,30H
RR A ;右移
MOV 30H,A
DEC 31H
MOV A,#0FFH
MOV DPTR,#0FF22H ;關顯示
MOVX @DPTR,A
DJNZ R7,SSE1 ;六位顯示完了嗎?
DJNZ R5,SSE2
CLR RS1
RET
DDFF: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
DB 88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH,89H,0DEH
DELYA: PUSH 02H ;延時子程序
DELYB: PUSH 02H
DELYC: PUSH 02H
DELYD: DJNZ R2,DELYD
LCALL SSEE ;調顯示子程序
POP 02H
DJNZ R2,DELYC
POP 02H
DJNZ R2,DELYB
POP 02H
DJNZ R2,DELYA
RET
END
|