综合实验二DA转换实验.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
综合实验二DA转换实验.doc

实验二D/A转换实验 一、实验目的 1. 理解D/A转换芯片0832与单片机接口及编程方法。 2. 了解D/A转换的基本原理。 3. 了解单片机系统中扩展D/A转换的基本方法。 二、实验原理及内容 1.实验原理 DAC0832内部具有输入寄存器和DAC寄存器两级数据寄存器,它不需要外加其它电路便可以与单片机的数据总线相连。DAC0832引脚说明如下: D0~D7:8位数据输入。 Iout1和Iout2:DAC电流输出1和DAC电流输出2,Iout1和Iout2之和为一常量。 RFB:反馈信号输入端。DAC0832的输出是电流型的,为了取得电压输出需在电压输出端接运算放大器,RFB即为运算放大器的反馈电阻端。反馈电阻在片内。 ILE:允许输入锁存信号。 和:锁存输入数据的写信号和锁存输入寄存器输出数据的写信号。 :传送控制信号。 :片选信号。 DAC0832输出是电流型的,但实际应用中往往需要电压输出信号,所以电路中采用运算放大器来实现电流转换为电压。本实验系统上,采用参考电压为5V,所以当数字量输入在00H~FFH范围时电压输出量为0~+5V,这种方式称单极型输出,若电压输出为±5V,则称为双极型输出。实际应用中需要单极性输出,也需要双极型输出,所以电路应用两片运放LM741来实现两种极性的输出。 实验系统中原理图如图8-2所示。DAC0832与单片机接口:0832的D0~D7接单片机P0口;DAC0832的片选接单片机的P2.7,为了避免模块之间的冲突,P2.7通过跳线J505与DAC0832相连。DAC0832的WR信号接单片机的写信号WR,U506和U507是单运放LM741完成电流到电压和正负电压的转换。 图8-2 DAC0832应用原理图 单片机对DAC0832控制过程:使能、,向寄存器中写入需转换数据。 2.实验内容 1)将扩展板的电源J501与主板的电源接口J2或J14连接起来;将扩展板的信号接口J500与主板的信号接口J15或J13连接起来;将主板上的拨码开关5、6、7、8拨到ON; 2)在keil编程环境下编写程序,完成实验功能。本实验参考程序完成的实验功能是在主板数 码管上显示”2.7”V电压,同时使DAC0832的输出为2.7V电压。编程时,控制DAC0832的控制码为:,取其整数部分为138,16进制为0X8AH。在数码管上显示“2.7”字样。 3)编译生成HEX文件,将HEX文件下载到实验系统中。观察数码管上显示的数据;用万用表测量J502(OUTPUT)的电压值。 三、实验例程 2.7V直流电压输出实例: #includereg51.h #includeabsacc.h #define DAC0832 XBYTE[0X7FFF] //DAC0832使能P2.7 #define Vref 5 //参考电压Vref=5V unsigned char LED_seg[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//段码 unsigned char LED_seg1[10]={0X40,0X79,0X24,0X30,0X19,0X12,0X02,0X78,0X00,0X10};//段码 unsigned char LED_bit[4]={0x01,0x02,0x04,0x08}; //位码 void delay(unsigned long n) //延时函数 { for(;n0;n--); } unsigned LED_buf[4]={0,0,0,0,}; void convert(unsigned int n) //分解位函数 { unsigned char i=0; n=n/10; while(i4) { LED_buf[i]=(unsigned char)(n%10); n=n/10;i++; } } void display(void) //显示函数 { unsigned char i; for(i=0;i3;i++) { if(i==2)P0=LED_seg1[LED_buf[i]]; else P0=LED_seg[LED_buf[i]]; P1=LED_bit[i]; delay(100); } } void change(unsigned int a) //输出函数 { unsigned char i; i=(unsigned char)(a/100*255/Vref/10); DAC083

文档评论(0)

dzzj200808 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档