DA转换实验 - 图文

更新时间:2023-10-04 21:05:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

实验二 D/A转换

一、实验目的:

(1)了解D/A转换与单片机的接口方法; (2)了解D/A转换芯片0832的性能及编程方法; (3)了解单片机系统中扩展D/A转换芯片的基本方法;

二、实验内容:

利用0832输出一个从0V开始逐渐升至5V再降至0V的可变电压。

三、实验接线图:

四、实验程序框图:

五、实验步骤:

把0832译码线CS5接至FF80H,JX0接JX2,运行程序,数码管上显示不断加大或减小的数字量,用万用表测试D/A输出孔AOUT应也能测出不断加大或减小的电压值。

六、程序清单:

ORG 0000H LJMP SE13 ORG 05E0H

SE13: MOV SP,#53H

mov p2,#0ffh MOV A,#81H

MOV DPTR,#0FF23H MOVX @DPTR,A MOV 7EH,#00H MOV 7DH,#08H MOV 7CH,#03H

MOV 7BH,#02H ;显示缓冲区初值

LO20: MOV R6,#00H LO21: MOV DPTR,#0FF80H

MOV A,R6

MOVX @DPTR,A ;送0832转换 MOV R0,#79H LCALL PTDS

LCALL SSEE ;显示 LO22: PTDS: PTDS1: SSEE: SSE2: SSE1: MOV R2,#08H

LCALL DELYA INC R6 CJNE R6,#0FFH,LO21 MOV DPTR,#0FF80H

DEC R6

MOV A,R6 MOVX @DPTR,A MOV R0,#79H LCALL PTDS

LCALL SSEE MOV R2,#08H

LCALL DELYA CJNE R6,#00H,LO22 SJMP LO20 ;ORG 0620H

MOV R1,A LCALL PTDS1 MOV A,R1 SWAP A

ANL A,#0FH

MOV @R0,A INC R0 RET ORG 0D50H SETB RS1 MOV R5,#05H MOV 30H,#20H

MOV 31H,#7EH MOV R7,#06H MOV R1,#20H

MOV A,30H CPL A

MOVX @R1,A MOV R0,31H MOV A,@R0

;延时 ;加1

;不到FF继续加

;减1送0832转换 ;显示 ;延时

;不为0继续减 ;循环 ;拆送显示缓冲区

;换工作区

;字位送入 DDFF: DELYA: DELYB: DELYC: DELYD: MOV DPTR,#DDFF

MOVC A,@A+DPTR ;取字形代码 MOV R1,#21H

MOVX @R1,A ;字形送入 MOV A,30H

RR A ;右移 MOV 30H,A DEC 31H

MOV A,#0FFH

MOVX @R1,A ;关显示

DJNZ R7,SSE1 ;六位显示完了吗? DJNZ R5,SSE2 ;五次显示完了吗? CLR RS1

RET

DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H DB 88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH,89H,0DEH PUSH 02H PUSH 02H PUSH 02H

DJNZ R2,DELYD

LCALL SSEE ;调显示子程序 POP 02H

DJNZ R2,DELYC POP 02H

DJNZ R2,DELYB POP 02H

DJNZ R2,DELYA ;延时 RET END

七、实验结果

八、实验分析与结论

D/A转换是把数字量转化成模拟量的过程,本实验输出为模拟电压信号,本次实验生成的波形较为简单,也可试编程序生成各种波形,如方波,正弦波等,也可与键盘显示模块结合起来,构成一个简单的波形发生器,通过键盘输入各种参数,如频率,振幅(小于+5V),方波的占空比等。

九、思考:修改程序,使能产生锯齿波?

PORT EQU 0CFA0H ;定义DAC接口地址 CSEG AT 4000H LJMP START CSEG AT 4100H START:

MOV DPTR,#PORT+1 ;DAC输出寄存器端口地址送DPTR MOV A,#00H ;给A赋初值 LOOP:

MOV B,#0FFH ;置计数初值与B LOOP1:

MOV DPTR,#PORT ; DAC输入寄存器端口地址 MOVX @DPTR,A ;送出数据 INC DPTR ;地址加一 MOVX @DPTR,A ;启动转换 INC A ;数据加一

CJNE A,#0FFH,LOOP1 ;如果没到峰值,循环转换 MOV A,#00H ;赋A=0 DJNE B,LOOP ;x显示锯齿波 RET

本文来源:https://www.bwwdw.com/article/nk8d.html

Top