实验五D/A转换实验一、实验目的1、了解D/A转换与单片机的接口方法2、了解D/A转换芯片0832的性能及编程方法3、了解单片机系统中扩展D/A转换芯片的基本方法二、实验说明本次实验使用DAC0832将数字信号转换为0~+5V的锯齿波电压。由于DAC0832的输出时电流型的,实际应用中往往需要的是电压输出信号,所以电路中需要采用运算放大器UA741来实现电流-电压的转换。输出电压值:,其中D为输出的数据字节,取值范围0~255;VREF为基准电压。只要改变输入DAC0832的数字量,输出的电压就会发生变化。255VDVREFoutt三、实验线路图四、实验步骤1、先建立文件夹“ex5”,然后建立“ex5”工程项目,最后建立源程序文件“ex5.c”,输入如下源程序;/*用DAC0832产生锯齿波电压*/#includereg51.h//包含单片机寄存器的头文件#includeabsacc.h//包含对片外存储器地址进行操作的头文件sbitCS=P2^7;//将位定义为P2.7引脚(片选端),地址为07FFFHCSsbitWR12=P3^6;//将、位定义为P3.6引脚1WR2WRvoidmain(void){unsignedchari;CS=0;//输出低电平以选中DAC0832WR12=0;//输出低电平以选中DAC0832while(1){for(i=0;i255;i++)XBYTE[0x7fff]=i;//将数据i送入片外地址07FFFH,实际上就是通过P0口将数据送入DAC0832}}2、用Proteus软件仿真经过Keil软件编译通过后,可利用Proteus软件仿真。在ProteusISIS编辑环境中绘制仿真电路图。打开配套实验5仿真原理图文件“ex5.DSN”,将编译好的“ex5.hex”文件载入AT89C51,启动仿真。再将示波器的电压幅值设置为1V/格,分辨率设置为0.5ms/格,即可看到锯齿波电压输出。五、思考题修改程序,使DAC0832转换输出产生方波或是正弦波。#includereg51.hvoiddelay(inti){unsignedcharj;while(i--)for(j=0;j120;j++);}voidmain(){while(1){P2=0xff;delay(10);P2=0x00;delay(10);}}