找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 2328|回復(fù): 1
收起左側(cè)

單片機(jī)D/A 0832轉(zhuǎn)換實(shí)驗(yàn)程序 匯編語言

[復(fù)制鏈接]
ID:340093 發(fā)表于 2020-6-5 19:44 | 顯示全部樓層 |閱讀模式
一、實(shí)驗(yàn)?zāi)康?/font>
(1)了解D/A轉(zhuǎn)換與單片機(jī)的接口方法;
(2)了解D/A轉(zhuǎn)換芯片0832的性能及編程方法;
(3)了解單片機(jī)系統(tǒng)中擴(kuò)展D/A轉(zhuǎn)換芯片的基本方法。
二、實(shí)驗(yàn)內(nèi)容  
利用0832輸出一個(gè)從0V開始逐漸升至5V再降至0V的可變電壓。

三、實(shí)驗(yàn)原理圖
四、實(shí)驗(yàn)程序框圖
file:///C:/Users/yuan/AppData/Local/Temp/msohtmlclip1/01/clip_image002.png
五、實(shí)驗(yàn)步驟  
1、用雙頭線將DAC0832數(shù)模轉(zhuǎn)換區(qū)的CS5端口接至系統(tǒng)接口區(qū)的8000H端口,WR端口接至系統(tǒng)接口區(qū)的/IOWR端口,AOUT輸出接電壓表或小直流電機(jī)DJ,用8芯線將DAC0832數(shù)模轉(zhuǎn)換區(qū)的JX2接至數(shù)據(jù)總線JX0;
2、運(yùn)行程序HW10.ASM,數(shù)碼管上顯示不斷加大或減小的數(shù)字量,數(shù)字變化范圍00到FF,用萬用表測(cè)試D/A輸出孔AOUT應(yīng)能測(cè)出不斷加大或減小的電壓值,電壓變化范圍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轉(zhuǎn)換
           MOV R0,#79H
           LCALL PTDS
           LCALL SSEE       ;顯示
           MOV R2,#08H
           LCALL DELYA     ;延時(shí)
           INC R6            ;加1
           CJNE R6,#0FFH,LO21  ;不到FF繼續(xù)加
LO22:     MOV DPTR,#8000H
           DEC R6
           MOV A,R6    ;減1送0832轉(zhuǎn)換
           MOVX @DPTR,A
           MOV R0,#79H
           LCALL PTDS
           LCALL SSEE      ;顯示
           MOV R2,#08H
           LCALL DELYA     ;延時(shí)
           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      ;關(guān)顯示
           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                ;延時(shí)子程序
DELYB: PUSH 02H
DELYC: PUSH 02H
DELYD: DJNZ R2,DELYD
           LCALL SSEE           ;調(diào)顯示子程序
           POP 02H
           DJNZ R2,DELYC
           POP 02H
           DJNZ R2,DELYB
           POP 02H
           DJNZ R2,DELYA
           RET
           END
1212.png
回復(fù)

使用道具 舉報(bào)

ID:1 發(fā)表于 2020-6-6 02:04 | 顯示全部樓層
本帖需要重新編輯補(bǔ)全電路原理圖,源碼,詳細(xì)說明與圖片即可獲得100+黑幣(帖子下方有編輯按鈕)
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表