学习笔记 从零开始学单片机(4) D/A转化
来源:互联网 发布:深圳太极软件 编辑:程序博客网 时间:2024/04/29 06:59
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<limit; k++)
for(j=0; j<1000; j++);
}
- 学习笔记 从零开始学单片机(4) D/A转化
- 学习笔记 从零开始学单片机(5) A/D转化
- 学习笔记 从零开始学单片机(2) 全八段数码管显示
- 学习笔记 从零开始学单片机(3) 定时器
- 学习笔记 从零开始学单片机(6) 键盘接口
- 学习笔记 从零开始学单片机(7) 液晶接口
- 学习笔记 从零开始学单片机(8) 蜂鸣器唱歌
- 学习笔记 从零开始学单片机(9) 串口通信
- 学习笔记 从零开始学单片机(0) 系统结构
- 学习笔记 从零开始学单片机(1) 建立实验环境
- 从零开始学单片机全过程之(二)
- 嵌入式学习笔记(13)——51单片机之D/A转换器
- 嵌入式学习笔记(14)——51单片机之A/D转换器
- mysql5.6从零开始学学习笔记之一(索引)
- 从零开始学单片机全过程(一)
- 从零开始学单片机全过程(三)
- 从零开始学单片机全过程(四)
- 【51单片机】A/D(1)
- 如何诊断Windows CE的应用程序崩溃(续) (转载)
- 搭建你的持续集成服务器
- 我是主考官:他为什么没有被录取
- 计算阶乘n!末尾所含0的个数
- 我是主考官:招聘像抽奖
- 学习笔记 从零开始学单片机(4) D/A转化
- GPU图形绘制管线
- 我是主考官1:必删的简历
- 我是主考官2:初步的电话沟通
- 我是主考官3:两次弃用的变态笔试题
- 理解复杂的C/C++声明 const, typedef , 函数指针
- 我是主考官:与答白卷的同学聊聊
- 我是主考官:应聘者给我的圈套
- 重构手法:Inline Temp