【2017年整理】第10章 AD转换器与DA转换器应用1

上传人:姜** 文档编号:1005831 上传时间:2017-05-25 格式:DOC 页数:10 大小:589.50KB
返回 下载 相关 举报
【2017年整理】第10章 AD转换器与DA转换器应用1_第1页
第1页 / 共10页
【2017年整理】第10章 AD转换器与DA转换器应用1_第2页
第2页 / 共10页
【2017年整理】第10章 AD转换器与DA转换器应用1_第3页
第3页 / 共10页
【2017年整理】第10章 AD转换器与DA转换器应用1_第4页
第4页 / 共10页
【2017年整理】第10章 AD转换器与DA转换器应用1_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《【2017年整理】第10章 AD转换器与DA转换器应用1》由会员分享,可在线阅读,更多相关《【2017年整理】第10章 AD转换器与DA转换器应用1(10页珍藏版)》请在金锄头文库上搜索。

1、第 10 章 A/D 转换器与 D/A 转换器应用D/A 转换器(Digit to Analog Converter,DAC)是一种能把数字量转换成模拟量的电子器件。A/D 转换器(Analog to Digit Converter,ADC)是一种能把模拟量转换成数字量的电子器件。在单片机控制系统中,经常需要用到 D/A 和 A/D 转换器。它们的功能及其在实时控制中的作用,如图 10-1 所示。图 10-1 单片机和被控实体间的接口示意图其中:被控系统的过程信号可以是电量(如电流、电压、功率和开关量等) ,也可以是非电量(如温度、压力、流速和密度等) ,其数值是随时间连续变化的。过程信号可以

2、由变送器和各类传感器变换成相应的模拟电量,然后经多路开关,输入到 A/D 转换器,由 A/D 转换器将其转换成相应的数字量送给单片机,单片机对过程信息进行相关的运算和处理。另一方面,单片机还把处理后的数字量送给 D/A 转换器,变换成相应的模拟量,对被控系统实施控制和调整,使被控系统处于最佳工作状态。上述分析表明:在单片机控制系统中,传感器和变送器主要用于数据采集,A/D 转换器把采集的模拟量转换成数字量,向单片机提供被控对象的各种实时参数,以便单片机对被控对象进行监视;D/A 转换器用于把单片机处理完毕的数字量转换成模拟量,作为控制信号的控制值,通过机械或电气手段对被控对象进行调整和控制。本

3、章介绍典型的 ADC、DAC 集成电路芯片,以及与单片机的硬件接口设计及软件设计。10.1 AT89S51 单片机与 ADC 的接口10.1.1 A/D 转换器简介A/D 转换器种类很多,但从原理上可分为四种:计数器式 A/D 转换器,双积分式 A/D 转换器,逐次逼近式 A/D 转换器和并行 A/D 转换器。计数器式 A/D 转换器结构很简单,但转换速度也很慢,所以很少采用。双积分式 A/D 转换器抗干扰能力强,转换精度也很高,但速度不够理想,常用于数字式测量仪表中。计算机中广泛采用逐次逼近式 A/D 转换器作为接口电路,它的结构不太复杂,转换速度也高。并行 A/D 转换器的转换速度最快,但

4、因结构复杂而造价较高,故只用于那些转换速度极高的场合。【逐次比较型 A/D 转换器,在精度、速度和价格上都适中,是最常用的A/D 转换器。 】现在部分的单片机片内集成了 A/D 转换器,在片内 A/D 转换器不能满足需要的情况下,还是需进行外扩。10.1.2 逐次比较型 A/D 转换原理逐次比较型 A/D 转换器也称为连续比较式 A/D 转换器。这是一种采用对分搜索原理来实现 A/D 转换的方法,逻辑框图如图 10-2:图 10-2 逐次比较型 A/D 转换示意框图转换原理:图中,Vx 为 A/D 转换器需转换的模拟输入电压;Vs 是“N 位D/A 转换网络”的输出电压,其值由“N 位寄存器”

5、中的内容决定,受控制电路控制;比较器对 Vx 和 Vs 电压进行比较,并把比较结果送给“控制电路” 。整个 A/D 转换是在逐次比较过程中形成,形成的数字量存放在 N 位寄存器中,先形成最高位,然后是次高位,一位位地形成到最低位。工作过程如下:“控制电路”从“启动”输入端收到 CPU 送来的“启动”脉冲后开始工作。先使“N 位寄存器”中的最高位置 “1”,其余位为零, “N位 D/A 转换网络”根据“N 位寄存器”中的内容产生 Vs 电压,其值为满量程Vx 的一半,并送入比较器进行比较。若 VxVs,则比较器输出逻辑“1” ,通过“控制电路”使“N 位寄存器”中最高位的“1”保留,表示输入模拟

6、电压 Vx 比满量程的一半还大;若 Vxunsigned char code LEDData=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;sbit OE = P10;sbit EOC = P11;sbit START = P12;sbit CLK = P13;void DelayMS(unsigned int count)unsigned char i;unsigned int j;for(j=0;junsigned char code LEDData=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7

7、f,0x6f;sbit OE = P10;sbit EOC = P11;sbit START = P12;sbit CLK = P13;sbit ADDA = P14;sbit ADDB = P15;sbit ADDC= P16;void DelayMS(unsigned int count)unsigned char i;unsigned int j;for(j=0;jcount;j+)for(i=0;i120;i+);void Display_Result(uchar d) / 应该学会这种取待显示数字的方法P2 = 0xF7; / F7=1111 0111,LED 上的“4” 引脚为低,

8、显示最低位P0 = LEDDatad%10; / 取个位数码DelayMS(5);P2 = 0xFB; / FB=1111 1011,LED 上的“3” 引脚为低,显示左起第二位P0 = LEDDatad%100/10; / 取十位数码DelayMS(5);P2 = 0xFD; /FD=1111 1101,LED 上的“2”引脚为低,显示右起第二位P0 = LEDDatad/100; / 取百位数码DelayMS(5);void main()TMOD = 0x02; / 02=0000 0010,定时器 T0,定时方式,模式 2TH0 = 0x14;TL0 = 0x14;【IE = 0x82;

9、 / 1000 0010,EA1,ET0 1】EA1;ET0;TR0 = 1; / 启动 T0【P1 = 0x3F; / 3f=0011 1111(P16=0,P15=1,P14=1,选择 IN3 通道)】ADDC0;【0113,选择通道 3】ADDB1;ADDA1;while(1)START = 0;ST ART= 1; / START 线上加一个正脉冲【正脉冲宽度应大于 100ns】START = 0; / START 线上加一个负脉冲,下降沿启动 ADCwhile(EOC = = 0); / 等待转换结束【查询转换是否结束】OE = 1; / 结束后,输出三态门打开,允许输出Display_Result(P3); / 转换数据从 P3 口输入,送 LED 上显示OE = 0; / 关闭输出三态门void Timer0_INT() interrupt 1 / 定时器 0 中断服务程序CLK = !CLK; / CLK 端上产生时钟信号。频率为 XX【作业:把上面的查询方式,改为中断方法实现,需要改变有些线的连接位置。做完的同学, 可以往 信箱发】

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号