华南农业大学工程学院电类实验分室
51实验指导书 第31页
华南农业大学工程学院电类实验分室
实验8 D/A转换实验
一、实验目的:
1. 了解D/A转换的基本原理。
1. 了解D/A转换芯片0832的性能及编程方法。 2. 了解单片机系统中扩展D/A转换的基本方法。 二、实验设备:
CPU挂箱、8031CPU模块 三、实验内容:
利用DAC0832,编制程序产生锯齿波、三角波、正弦波。三种波形轮流显示。 四、实验原理:
D/A转换是把数字量转换成模拟量的变换,从D/A输出的是模拟电压信号。产生锯齿波和三角波只需由A存放的数字量的增减来控制;要产生正弦波,较简单的手段是造一张正弦数字量表。取值范围为一个周期,采样点越多,精度就越高。
本实验中,输入寄存器占偶地址端口,DAC寄存器占较高的奇地址端口。两个寄存器均对数据独立进行锁存。因而要把一个数据通过0832输出,要经两次锁存。典型程序段如下:
MOV DPTR,#PORT MOV A,#DATA MOVX @DPTR,A INC DPTR MOVX @DPTR,A
其中第二次I/O写是一个虚拟写过程,其目的只是产生一个WR信号。启动D/A。 五、实验电路:
51实验指导书 第32页
华南农业大学工程学院电类实验分室
六、实验步骤:
1、 DAC0832的片选CS0832接CS0,输出端OUT接示波器探头。 2、 将短路端子DS的1、2短路
七、程序框图
主程序MAIN 锯齿波显示子程序:PRG1
51实验指导书 第33页
华南农业大学工程学院电类实验分室
三角波显示子程序:PRG2 正弦波显示子程序:PRG3
中断子程序:DELAY
八、参考程序
PORT EQU 0CFA0H CSEG AT 4000H
LJMP START CSEG AT 4100H
START: MOV R1,#02H ;置计数初值于R1 ACALL PRG1 ;显示锯齿波
MOV R1,#01H ;置计数初值于R1 ACALL PRG2 ;显示三角波
51实验指导书 第34页
华南农业大学工程学院电类实验分室
MOV R1,#01H ;置计数初值于R1 ACALL PRG3 ;显示正弦波
LJMP START ;转START循环显示 PRG1:
RET ;产生锯齿波 PRG2:
RET :产生三角波 PRG3: MOV B,#00H
LP3: MOV DPTR,#DATA0
MOV R4,#0FFH ;FFH为DATA0表中的数据个数 LP4: MOVX A,@DPTR ;从表中取数据 MOV R3,DPH MOV R5,DPL
MOV DPTR,#PORT MOVX @DPTR,A INC DPTR
MOVX @DPTR,A MOV DPH,R3 MOV DPL,R5
INC DPTR ;地址下移 DJNZ R4,LP4 DJNZ B,LP3 DJNZ R1,PRG3 RET
DATA0: DB 80H,83H,86H,89H,8DH,90H,93H,96H DB 99H,9CH,9FH,0A2H,0A5H,0A8H,0ABH,0AEH DB 0B1H,0B4H,0B7H,0BAH,0BCH,0BFH,0C2H,0C5H DB 0C7H,0CAH,0CCH,0CFH,0D1H,0D4H,0D6H,0D8H DB 0DAH,0DDH,0DFH,0E1H,0E3H,0E5H,0E7H,0E9H DB 0EAH,0ECH,0EEH,0EFH,0F1H,0F2H,0F4H,0F5H
51实验指导书 第35页