D/A转换器:数字量D和模拟量A之间的转换。
D——》A:((高电平-低电平)/2^8 )*n n:输出的八位对应的十六进制数据对应的十进制
基本原理:
性能指标:
1、分辨率
分辨率是指输入数字量的最低有效位(LSB)发生变化时,所对应的输出模拟量(电压或电流)的变化量。它反映了输出模拟量的最小变化值。
分辨率与输入数字量的位数有确定的关系,可以表示成FS/2n。
FS表示满量程输入值,n为二进制位数。对于5V的满量程,采用8位的DAC时,分辨率为5V/256=19.5mV;当采用12位的DAC时,分辨率则为5V/4096=1.22mV。显然,位数越多分辨率就越高。
2、线性度
线性度(也称非线性误差)是实际转换特性曲线与理想直线特性之间的最大偏差。常以相对于满量程的百分数表示。如±1%是指实际输出值与理论值之差在满刻度的±1%以内。
3、绝对精度和相对精度
绝对精度(简称精度)是指在整个刻度范围内,任一输入数码所对应的模拟量实际输出值与理论值之间的最大误差。绝对精度是由DAC的增益误差(当输入数码为全1时,实际输出值与理想输出值之差)、零点误差(数码输入为全0时,DAC的非零输出值)、非线性误差和噪声等引起的。绝对精度(即最大误差)应小于1个LSB。
相对精度与绝对精度表示同一含义,用最大误差相对于满刻度的百分比表示。
4、建立时间
建立时间是完成一次数字量和模拟量的转换所用的时间。
电流输出型DAC的建立时间短。电压输出型DAC的建立时间主要决定于运算放大器的响应时间。根据建立时间的长短,可以将DAC分成超高速(<1μS)、高速(10~1μS)、中速(100~10μS)、低速(≥100μS)几档。
应当注意,精度和分辨率具有一定的联系,但概念不同。DAC的位数多时,分辨率会提高,对应于影响精度的量化误差会减小。但其它误差(如温度漂移、线性不良等)的影响仍会使DAC的精度变差。
DAC0832:
这里使用的是:直通工作方式
当DAC0832芯片的片选信号、写信号、及传送控制信号的引脚全部接地,允许输入锁存信号ILE引脚接+5V时,DAC0832芯片就处于直通工作方式,数字量一旦输入,就直接进入DAC寄存器,进行D/A转换。
应用:
时序图:
code:
#include #define uchar unsigned char #define uint unsigned int sbit cs=P3^1; sbit wr=P3^4; //************************************************ //延时函数,在12MHz的晶振频率下 //大约50us的延时 //************************************************ void delay_50us(uint t) { uchar j; for(;t>0;t--) for(j=19;j>0;j--); } void main() { uchar a; P1=0x00;//关掉点阵 //时序图 cs=0; wr=0; while(1) { P0=a; delay_50us(100); a++; //00000000——11111111——00000000(高位自动丢失即可) } } A/D转换器: Vin:模拟量输入 START:开启标志。启动信号 EOC:转换完成中断信号 OE:输出使能 VREF:参考电压5v 计算:x/2^8 = v/v0 解得x ( v测得电压 v0标准电压一般是5v ) 技术指标: AGND:模拟地 DGND:数字地 INTR:中断 GUNAGMING:光敏电阻 应用: #include #define uchar unsigned char #define uint unsigned int sbit rs=P2^4; sbit rw=P2^5; sbit e=P2^6; //ADC sbit adcs=P3^5; sbit adrd=P3^0; sbit adwr=P3^3; sbit P23=P2^3; //基于数码管 uchar table1[]=" www.tlxmcu.com "; uchar table3[]="0123456789"; void delay_50us(uint t) { uchar j; for(;t>0;t--) for(j=19;j>0;j--); } void write_com(uchar com) { e=0; rs=0; rw=0; P0=com; delay_50us(10); e=1; delay_50us(20); e=0; } void write_data(uchar dat) { e=0; rs=1; rw=0; P0=dat; delay_50us(10); e=1; delay_50us(20); e=0; } void init(void) { delay_50us(300); write_com(0x38); delay_50us(100); write_com(0x38); delay_50us(100); write_com(0x38); write_com(0x38); write_com(0x08); write_com(0x01); write_com(0x06); write_com(0x0c); } void main() { uchar value; uchar k,l,m,n; uchar i; P23=1; P1=0x00; P23=0; P1=0xff; while(1) { adcs=0; adwr=0; delay_50us(2); adwr=1; adcs=1; delay_50us(10); //数据放入储存器中了 adcs=0; adrd=0; delay_50us(1); value=P1; //178 adrd=1; adcs=1; //读数据 k=value/100; //1 l=value%100; //78 m=l/10; //7 n=l%10; //8 table1[2]=table3[n]; table1[1]=table3[m]; table1[0]=table3[k]; //拆数据并存入数组 init(); write_com(0x80);//第一行 for(i=0;i<3;i++) { write_data(table1[i]); delay_50us(20); } //把table1数组显示出来,init()不需要再改动了,驱动已经写好 } }
上一篇:【C51自学笔记】实时时钟芯片DS1302
下一篇:【C51自学笔记】LCD1602
推荐阅读最新更新时间:2024-11-10 10:28
推荐帖子
- 安森美汽车热管理e- Compressor 应用 直播中!
- 安森美汽车热管理e-Compressor应用直播中!点击进入直播直播时间:12月19日(周二)上午10:00-11:30直播主题:安森美汽车热管理e-Compressor应用直播简介:随着汽车动力系统从传统内燃机走向混合动力及电动型号,e-Compressor不仅只用来操控车身冷暖空调以调适舱内温度,还能用于电车电池的热管理。因此,一款可靠及强固的功率芯片对行驶安全至关重要。本次在线研讨会将讨论安森美一系列应用于e-Compressor的A
- 橙色凯 汽车电子
- FPGA内实现除法是否很困难?
- 请问如何实现FPGA的除法运算,是否要占用很多资源?FPGA内实现除法是否很困难?要自己设计的话,除法器应该比较复杂在FPGA里,我一般用IP核,呵呵,懒人用懒办法啊~~~听说有这个方法:如果是常数除法,则本质上可变为乘法实现。如果除数是变量,那得看看文献了。记得很多教科书上有讲到,比如《数字信号处理的FPGA实现》-2.5和2.6节。英文版书籍可从论坛下载。----直接调用ip核也是省事的做法。受到vimicro点拨,发现dc中的designware库非常强大,包括各种整数
- xiaoxin1 FPGA/CPLD
- 求介绍几款带PCIE插槽的ARM开发板?
- 作开发要用到pcie据接口的网卡,问下大伙有带pcie接口的开发板吗?求介绍几款带PCIE插槽的ARM开发板?最近不是有Hikey的板子吗?基于96boards标准的ARM开发板,基本都有PCIE的插槽。价格稍微有点贵,不过性能都很不错的。 谢了,我调研一下
- hmj2008mhxy 嵌入式系统
- 这个灯居然也能亮
- 这个灯居然也能亮这是三极管的反向应用!放大倍数只有几倍!作为开关应用还是可以的!!不过最好还是不要这样用了,毕竟集电区和发射区掺杂浓度是不一样的,而且相差很大。。。。。这也是个放大电路,照样能用的
- 小丸子 电源技术
- 德州仪器-将运算放大器用作比较器—此举可行吗?
- 本帖最后由dontium于2015-1-2312:47编辑许多人偶尔会把运算放大器当比较器使用。一般而言,当您只需要一个简单的比较器,并且您在四运算放大器封装中还有一个“多余”运算放大器时,这种做法是可行的。稳定运算放大器运行所需的相位补偿意味着把运算放大器用作比较器时其速度会非常的低,但是如果对速度要求不高,则运算放大器可以满足需求。偶尔会有人问到我们运算放大器的这种使用方法。这种方法有时有效,有时却不如人们预期的那样效果好。为什么会出现这种情况呢?预知
- 德州仪器 模拟与混合信号
- 高抗干扰液晶驱动防静电LCD驱动芯片VK2C21抗噪段码驱动IC
- VK2C21是一个点阵式存储映射的LCD驱动器,可支持最大80点(20SEGx4COM)或者最大128点(16SEGx8COM)的LCD屏。单片机可通过I2C接口配置显示参数和读写显示数据,也可通过指令进入省电模式。其高抗干扰,低功耗的特性适用于水电气表以及工控仪表类产品。L63+05https://img.jishulink.com/202408/attachment/4649b7386c854264b647cf9351cc3c25.pnghttps://img.jishulink
- vinka杨桃 51单片机
设计资源 培训 开发板 精华推荐
- MAXREFDES1044:使用MAX30101的心率监测器
- EVAL-ADM1075MEBZ,ADM1075 热插拔控制器评估板
- 【CW32】无刷电机驱动器
- SPT7851 是一款用于无线的 10 位、20 MSPS ADC 模数转换器
- 使用 ROHM Semiconductor 的 BU4918 的参考设计
- 使用 ON Semiconductor 的 STK672-050 的参考设计
- 【RA】基于瑞萨MCU频谱灯+1051772A
- ULN2003步进电机驱动板
- 使用 ON Semiconductor 的 LA5774MP 的参考设计
- LTC3892EUH 高效、双路 5V/12V 输出同步降压型 DC/DC 控制器的典型应用电路