实验二十一并行D/A转换实验(2学时)
一、实验目的
掌握D/A芯片DAC0382与单片机的接口方法及ADC0832芯片的性能;了解单片机系统扩展D/A转换的基本方法。
二、实验要求
使用实验仪上的DAC0832 D/A转换器,产生一个正弦波形;了解单片机系统中扩展D/A转换的基本方法。
三、实验仪器和设备
1、硬件:计算机,DP-51PRO单片机综合仿真试验仪
2、软件:Keil软件uVision3
四、实验内容
1、由于DAC0832为电流输出,为了取得电压输出,需在电流输出端Iout1、Iout2分别连接上运算放大器LM324的B-、B+。使Rfd与LM324的BOUT连接,Rfd即为运算放大器的负反馈电阻端。由于Vref=5V,所以由运算放大器输出的电压(测试点BOUT)为电压(0~-5V)。图21-1为DP-51PRO运放区电路。
2、正确连接硬件电路后编写程序,使用查表的方法使单片机控制DAC0832产生一个电压值0~-5V之间的正弦波形。图21-2为DP-51PRO仿真仪上的并行D/A转换模块电路。实验原理如图21-3所示,实验流程图如图21-4所示。
图21-1 LM324 运放电路
U7
图21-2 DAC0832电路图
TP
图21-3 实验二十原理图
五、实验方法和步骤
1、使用导线把A2区J58接口的W R引脚与B6区的J37接口的WR1、WR2相连。
2、使用导线把A2区J63接口的A15引脚与B6区的J37接口的C S、XFER相连。
3、使用导线把B6区J10接口的ILE、Vref和VCC相连。
4、使用导线把B6区J11接口的IOUT1与C9区J71接口的B-相连。
5、使用导线把B6区J11接口的IOUT2与C9区J71接口的B+相连,同时也与GND相连。
6、使用导线把B6区J10接口的Rfb与C9区J71接口的BOUT相连。
7、使用导线C9区J71接口的
V+与C9区J19接口的+12V相连。
8、使用导线C9区J72接口的V-与C9区J19接口的-12V相连。
9、运行已经编写好的程序。
10、使用示波器观察LM324的BOUT口输出的
波形。
六、实验预习要求
阅读B6区并行数模转换实验模块的内容,理解本实验硬件结构(如图21-2所示),可以先把程序编好,然后在Keil C51环境下进行软件仿真。阅读DAC0832相关资料,了解DAC0832的使用方法。
七、实验参考程序
;*********************************************************
; File: adc0832.asm
;功能:使用DAC输出控制实现正弦波发生器,DAC数据采用查表方法
;得到。
;*********************************************************
DAC0832 EQU 6000H
ORG 8000H
AJMP START
ORG 8100H
START: MOV SP,#60H
MOV R0,#0 ;定义指向正弦波DAC数据的指针,
; 因为有361个数据,所以用了R0 MOV R1,#0 ;和R1两个寄存器。
LOOP: MOV A,R0
MOV DPTR,# SINE_DATA
CJNE R1,#1,LOW_TAB
INC DPH ;判断指针的高位字节R1是否为1,
; 若是,则DPH加1
LOW_TAB:
MOVC A,@A+DPTR ;取出正弦波DAC数据
MOV DPTR,#DAC0832
MOVX @DPTR,A ;启动DA转换
INC R0 ;指针低8位加1处理
CJNE R1,#1,INC_LOW
CJNE R0,#105,INC_OK
MOV R0,#0 ;若已经取完数据并输出,
;则重新设置指针
MOV R1,#0
SJMP INC_OK
INC_LOW:
CJNE R0,#0,INC_OK ;判断是否要进位
MOV R1,#1
INC_OK:
ACALL DELAY ;延时子程序中不能修改R0、DPTR
AJMP LOOP
;**********************************************
;通过设置延时时间的长短来改变锯齿波的周期
;*********************************************
DELAY:
MOV R7,#10
DJNZ R7,$
RET
;***********************************
;正弦波数据表,8位DAC的数据
;***********************************
SINE_DATA: DB 128, 130, 132, 135, 137, 139, 141, 144, 146, 148
DB 150, 152, 155, 157, 159, 161, 163, 165, 168, 170
DB 172, 174, 176, 178, 180, 182, 184, 186, 188, 190
DB 192, 194, 196, 198, 200, 201, 203, 205, 207, 209
DB 210, 212, 214, 215, 217, 219, 220, 222, 223, 225
DB 226, 227, 229, 230, 232, 233, 234, 235, 237, 238
DB 239, 240, 241, 242, 243, 244, 245, 246, 247, 247
DB 248, 249, 250, 250, 251, 252, 252, 253, 253, 254
DB 254, 254, 255, 255, 255, 255, 255, 255, 255, 255
DB 255, 255, 255, 255, 255, 255, 255, 255, 255, 254
DB 254, 254, 253, 253, 252, 252, 251, 250, 250, 249
DB 248, 247, 247, 246, 245, 244, 243, 242, 241, 240
DB 239, 238, 237, 235, 234, 233, 232, 230, 229, 227
DB 226, 225, 223, 222, 220, 219, 217, 215, 214, 212
DB 210, 209, 207, 205, 203, 201, 200, 198, 196, 194
DB 192, 190, 188, 186, 184, 182, 180, 178, 176, 174
DB 172, 170, 168, 165, 163, 161, 159, 157, 155, 152
DB 150, 148, 146, 144, 141, 139, 137, 135, 132, 130
DB 128, 126, 124, 121, 119, 117, 115, 112, 110, 108
DB 106, 104, 101, 99, 97, 95, 93, 91, 88, 86
DB 84, 82, 80, 78, 76, 74, 72, 70, 68, 66
DB 64, 62, 60, 58, 56, 55, 53, 51, 49, 47
DB 46, 44, 42, 41, 39, 37, 36, 34, 33, 31
DB 30, 29, 27, 26, 24, 23, 22, 21, 19, 18
DB 17, 16, 15, 14, 13, 12, 11, 10, 9, 9
DB 8, 7, 6, 6, 5, 4, 4, 3, 3, 2
DB 2, 2, 1, 1, 1, 0, 0, 0, 0, 0
DB 0, 0, 0, 0, 0, 0, 1, 1, 1, 2
DB 2, 2, 3, 3, 4, 4, 5, 6, 6, 7
DB 8, 9, 9, 10, 11, 12, 13, 14, 15, 16
DB 17, 18, 19, 21, 22, 23, 24, 26, 27, 29
DB 30, 31, 33, 34, 36, 37, 39, 41, 42, 44
DB 46, 47, 49, 51, 53, 55, 56, 58, 60, 62
DB 64, 66, 68, 70, 72, 74, 76, 78, 80, 82
DB 84, 86, 88, 91, 93, 95, 97, 99, 101, 104
DB 106, 108, 110, 112, 115, 117, 119, 121, 124, 126
DB 128
END
八、实验思考题
1、使用DAC0832产生一个锯齿波、三角波、方波。
2、产生的波形可以通过按键改变频率和峰值。