- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
泉州信息学院 第9章?D/A转换器 教学目的: 了解D/A转换在单片机系统的作用和意义。 2. 理解D/A转换器的分辩率、转换精度、线性度等主要性能指标的含义,了解DAC0832的内部结构,掌握DAC0832的单极性输出、双极性输出以及直通、单缓冲、双缓冲等工作方式,能设计相关的接口电路并编写相应的C51源程序。 重点难点: DAC0832的时序及编程; A/D转换器(Analog to Digital Converter)则相反,它能 把模拟量转换成相应数字量。 D/A转换器(Digital to Analog Converter)是一种能把数字量转换成模拟量的电子器件。 D/A转换器的性能指标 分辨率(Resolution):D/A转换器能分辨的最小输出模拟增量,取决于输入数字量的二进制位数。一个n位的DAC所能分辨的最小电压增量定义为满量程值的2-n倍。 转换精度(Conversion Accuracy):指满量程时DAC的实际模拟输出值和理论值的接近程度。对T型电阻网络的DAC,其转换精度和参考电压VREF、电阻值和电子开关的误差有关。 偏移量误差(Offset Error):指输入数字量为零时,输出模拟量对零的偏移值。这种误差通常可以通过DAC的外接VREF和电位计加以调整。 线性度(Linearity):DAC的实际转换特性曲线和理想直线之间的最大偏移差。通常,线性度不应超出 ±1LSB。 除上述指标外,转换速度(Conversion Rate)和温度灵敏度(Temperature Sensitivity)也是DAC的重要技术参数。 1、基本特性参数 8位分辨率 单一电源供电,+5V~+15V 可双缓冲、单缓冲、直接数字输入 电流稳定时间1.μs 只需要在满量程下调整其线性度 低功耗 9.1. 典型8位D/A转换DAC0832 2、引脚功能 ① DI0~DI7:8位数据输入端。 ② ILE:输入数据允许锁存信号,高电平有效。 ③ CS:片选端,低电平有效。 ④ WR1:输入寄存器写选通信号,低电平有效。 WR2:DAC寄存器写选通信号,低电平有效。 ⑤ XFER:数据传送信号,低电平有效。 ⑥ IOUT1、IOUT2:电流输出端。 ⑦ RFB:反馈电流输入端。 ⑧ UREF:基准电压输入端。 ⑨ Vcc:正电源端;AGND:模拟地;DGND:数字地. DAC 0832工作方式 用软件指令控制这5个控制端:ILE、CS、WR1、WR2、XFER,可实现三种工作方式: ⑴ 直通工作方式:5个控制端均有效,直接D/A; ⑵ 单缓冲工作方式:5个控制端一次选通; ⑶ 双缓冲工作方式:5个控制端分二次选通。 9.1.2 单片机DAC0832接口电路设计 双缓冲方式电路特点 常用于需要多路输出的场合; CS,WR1,WR2,XFER分别控制; 动作过程: 数据读入 模拟量同步输出 2、单缓冲方式 单缓冲方式特点 常用于单路输出的场合; CS,WR1,WR2,XFER分组控制; 9.2.4 DAC0832应用实例 1)直通方式 所有控制信号接到地电平,直接连通。 2)单缓冲方式 例9-2-1 DAC0832用作波形发生器 按上页的图接线,分别写出产生锯齿波和方波的程序。 解:在图9-2-5中,运算放大器OA输出端VOUT直接反馈到RFB,故这种接线产生的模拟输出电压是单极性的。 源程序如下: #pragma db oe sb #includereg51.h #includeabsacc.h #define DAC0832 XBYTE[0x7fff] /* 定义DAC0832端口地址 */ #define uchar unsigned char void delay(uchar t) { /* 延时函数 */ while(t--); } 源程序 void saw(void) { /* 锯齿波发生函数 */ uchar i; for (i=0;i255;i++) { DAC0832=i; } } void square(void) { /* 方波发生函数 */ DAC0832=0x00; delay(0x10); DAC0832=0xff; delay(0x10); } 源程序 void main(void) { uchar i,j; i=j=0xff; while(i--) {
文档评论(0)