- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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
您可能关注的文档
最近下载
- 2025年全国中小学校党组织书记网络培训示范班在线考试题库及答案.docx VIP
- 2025既有建筑消防改造设计指南.docx VIP
- 甘肃省乡镇卫生院名单2021版1549家(中心卫生院453+卫生院1096)1.docx VIP
- 2024年广州白云高新区投资集团有限公司人员招聘笔试备考题库及答案解析.docx VIP
- 全球变化课件01-地球系统与全球变化.ppt VIP
- 注册土木工程师(水利水电工程)预测试题.pdf VIP
- 2023年广州白云产业投资集团有限公司人员招聘考试参考题库及答案解析.docx VIP
- 2025年吉林省中考语文试卷真题(含答案).docx
- 中医康复临床实践指南脑卒中.docx VIP
- 建立公司危化品应急救援队伍的意义与方法.pptx VIP
文档评论(0)