历史上的今天
今天是:2025年07月30日(星期三)
2021年07月30日 | 学习笔记 从零开始学单片机(4) D/A转化
2021-07-30 来源:eefocus
DAC0832是采用CMOS工艺制成的单片直流输出型8位数/模转换器。如图所示,它由倒T型R-2R电阻网络、模拟开关、运算放大器和参考电压VREF四大部分组成。运算放大器输出的模拟量V0为:
![]()
由上式可见,输出的模拟量 与输入的数字量 成正比,这就实现了从数字量到模拟量的转换。

一个8位D/A转换器有8个输入端(其中每个输入端是8位二进制数的一位),有一个模拟输出端。输入可有28=256个不同的二进制组态,输出为256个电压之一,即输出电压不是整个电压范围内任意值,而只能是256个可能值。下面的图是DAC0832的逻辑框图和引脚排列。

CS:片选信号,低电平有效,与ILE相配合,可以对写信号WR1是否有效起到控制作用
D0~D7:数字信号输入端。
ILE:输入寄存器允许,高电平有效。
CS:片选信号,低电平有效。
WR1:写信号1,低电平有效。
XFER:传送控制信号,低电平有效。
WR2:写信号2,低电平有效。
IOUT1、IOUT2:DAC电流输出端。
Rfb:是集成在片内的外接运放的反馈电阻。
Vref:基准电压(-10~10V)。
Vcc:是源电压(+5~+15V)。
AGND:模拟地 NGND:数字地,可与AGND接在一起使用。
DAC0832输出的是电流,一般要求输出是电压,所以还必须经过一个外接的运算放大器转换成电压。

试验原理图:
在这里,CS接P3.2,WR1接P3.6, WR2接地,XREF接地,ILE接+5V,使用OUT1输出电流,点亮发光二极
看起来好像挺复杂似的,其实只要看时序图就会发现非常的简单,下面就是时序图,按照时序图来编程序即可

以上是DAC0832的时序图,接下来我们就可以编程序了,让发光二极管显示两种亮度
#include
#include
sbit ADCS=P3^2;
sbit ADWR=P3^6;
void delay(unsigned int limit);
void AD0832(unsigned char outByte);
void main()
{
while(1)
{
AD0832(0x00);
delay(100);
AD0832(0x80);
delay(100);
AD0832(0xFF);
delay(100);
AD0832(0x80);
delay(100);
}
}
void AD0832(unsigned char outByte)
{
ADCS = 0;
//ILE=1;
P0 = outByte;
ADWR = 0;
_nop_();
ADWR = 1;
_nop_();
ADCS = 1;
//ILE=0;
}
void delay(unsigned int limit)
{
unsigned int j,k;
for(k=0; k }
史海拾趣
|
本帖最后由 paulhyde 于 2014-9-15 09:36 编辑 NEC芯片输出PWM信号已经解决了,用SPI模式.不过有点搞不懂为什么正转时CHnDCDIR输出的是高电平,设置反转时却输出低电平,和数据手册相反的.而且接上直流电机就连PWM信号都没了. 请高手指点一下,谢谢了 ...… 查看全部问答> |
|
审请LPC1114恩智浦Cortex开发板,用于成本敏感的低端金融设备控制系统开发 联系:tech1@fota.cn 办公电话:0571-87647777 转115 联系人:金工 [ 本帖最后由 haiqing05 于 2010-4-6 13:30 编辑 ]… 查看全部问答> |
|
想问一下Core OS\\Core OS Services\\USB Host Support下的内容已经Add to OS Desgin,但USB的键盘和鼠标还是没有用,并且开机时蜂鸣器长响,是什么原因? 另外,Device Drivers\\USB Function 和USB Host 之间的区别?… 查看全部问答> |
|
[100分!急!]在WinCE里用VC++.NET操作远程SQL Server2000问题 本人想在VS2005上用VC++.NET开发一个基于WinCE 5.0的操作远端的SQL Server2000的程序,怎么写啊. 1. 源代码和具体步骤? 2. 如何使用SQL CE 2,如何在WinCE 上装SQL CE 2? 3. WinCE 上操作远程SQLServer2000数据库非得装SQL CE吗? 4. 如何用V ...… 查看全部问答> |
|
LED怀表”这是一个DIY作品,作者觉得这可能是第一个LED怀表,来自Paul,其对祖父留下来的一个旧怀表进行改造,当然能用的也只有怀表的外壳。 怀表里面一共安装了133个LED,每一个都是手工焊接而成,LED可显示60秒、60分钟和12小时,另外还有一 ...… 查看全部问答> |
|
我下的iar ewarm5.30照别个说的方法怎么补能破解呢? 未命名.JPG (53.53 KB) 下载次数:7 2010-6-15 20:52 … 查看全部问答> |
|
帮忙看看2407点灯的程序吧,为什么lacc #8语句中输入>8的数时,在单步调试运行时,延时程序就跳不出来了,好像死机了似的。可是lacc #8语句中输入<=8的数就什么问题都没有。快帮忙看看吧,我都在这个问题上停留好长 ...… 查看全部问答> |




