Proteus仿真之DAC(DAC0832)

1.数模/模数转换的目的:生活中常见的物理量如温度、流量、压力、位移、速度等都是一种模拟量。但是,计算机只能处理0、1的数字量,此时就需要将模拟量转为数字量。与此同时,MCU对模拟量设备进行控制时,如控制电动调节阀、模拟记录仪等,需要将MCU输出的数字量转为模拟量。

2.DAC简介:数模转换器DAC(Digital to Analog Converter)是一种能够将数字信号转换成正比的电压或者电流信号,即模拟信号。

3.数模转换器DAC0832:DAC0832是一种常见的模数转换器,其结构图如下。

Proteus仿真之DAC(DAC0832)_第1张图片

 DAC0832与单片机有三种接线方式,本文中采用的是直通方式。具体的操作可自行查看DAC0832的数据手册。

4.本文中是利用DAC0832生成三角波。需要注意的时,在DAC0932后面需要连接一个运算放大器将电流信号转为电压信号。DAC0832与AT89C52的电路图如下:

Proteus仿真之DAC(DAC0832)_第2张图片

 5.代码如下:

#include 
#include 

#define uint unsigned int
#define uchar unsigned char
#define DAC0832 XBYTE[0x7fff]								//定义端口地址

void DelayMS(uint ms)
{
	uchar i;
	while(ms--)
	{
		for(i = 0;i < 120;i++)
		{
			;
		}
	}
}

void main()
{
	uchar i,k;
	
	while(1)
	{
		if(k == 0)
		{
			i++;
			DAC0832 = i;
//			DAC0832 = 1;
			if(i == 255)
			{
				k = ~k;
			}
//			k = ~k;
			DelayMS(1);
		}
		else
		{
			i--;
			DAC0832 = i;
			//DAC0832 = -1;
			if(i == 0)
			{
				k = ~k;
			}
//			k = ~k;
			DelayMS(1);
		}
	}
}

6.运行结果:

Proteus仿真之DAC(DAC0832)_第3张图片

7.总结:DAC与ADC转换在MCU中是十分重要的。因为计算机只能处理0、1的数字量,所以需要将输入的模拟量转为数字量。同理,计算机只能输出0、1的数字量,对于需要模拟量控制的设备,需要将计算机输出的数字量转为模拟量。

你可能感兴趣的:(Proteus仿真,proteus,数模转换器,DAC,DAC0832,三角波)