




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第十章51单片机与A/D、D/A接口与编程
单片机与ADDA接口及编程第1页10.1MCS-51单片机与ADC接口10.1.1A/D转换器概述一.A/D转换器类型及原理A/D转换器(ADC)作用是把模拟量转换成数字量,方便于计算机进行处理。伴随超大规模集成电路技术飞速发展,现在有很多类型A/D转换器芯片,不一样芯片,它们内部结构不一样,转换原理也不一样,各种A/D转换芯片依据转换原理可分为计数型A/D转换器、逐次比较式、双重积分型和并行式A/D转换器等;按转换方法可分为直接A/D转换器和间接A/D转换器;按其分辨率可分为4~16位A/D转换器芯片。1.计数型A/D转换器计数型A/D转换器由D/A转换器、计数器和比较器组成,工作时,计数器由零开始计数,每计一次数后,计数值送往D/A转换器进行转换,并将生成模拟信号与输入模拟信号在比较器内进行比较,单片机与ADDA接口及编程第2页若前者小于后者,则计数值加1,重复D/A转换及比较过程,依这类推,直到当D/A转换后模拟信号与输入模拟信号相同,则停顿计数,这时,计数器中当前值就为输入模拟量对应数字量。这种A/D转换器结构简单、原理清楚,但它转换速度与精度之间存在矛盾,当提升精度时,转换速度就慢,当提升速度时,转换精度就低,所以在实际中极少使用。
2.逐次迫近型A/D转换器逐次迫近型A/D转换器是由一个比较器、D/A转换器、存放器及控制电路组成部分。与计数型相同,也要进行比较以得到转换数字量,但逐次迫近型是用一个存放器从高位到低位依次开始逐位试探比较。转换过程以下:开始时存放器各位清0,转换时,先将最高位置1,送D/A转换器转换,转换结果与输入模拟量比较,假如转换模拟量比输入模拟量小,则1保留,假如转换模拟量比输入模拟量大,则1不保留,然后从第二位依次重复上述过程直至最低位,最终存放器中内容就是输入模拟量对应数字量。一个n位逐次迫近型A/D转换器转换只须要比较n次,转换时间只取决于位数和时钟周期。逐次迫近型A/D转换器转换速度快,在实际中广泛使用。单片机与ADDA接口及编程第3页
双重积分型A/D转换器将输入电压先变换成与其平均值成正比时间间隔,然后再把此时间间隔转换成数字量,它属于间接型转换器。它转换过程分为采样和比较两个过程。采样即用积分器对输入模拟电压进行固定时间积分,输入模拟电压值越大,采样值越大,比较就是用基准电压对积分器进行反向积分,直至积分器值为0,因为基准电压值固定,所以采样值越大,反向积分时积分时间越长,积分时间与输入电压值成正比,最终把积分时间转换成数字量,则该数字量就为输入模拟量对应数字量。因为在转换过程中进行了两次积分,所以称为双重积分型。双重积分型A/D转换器转换精度高,稳定性好,测量是输入电压在一段时间平均值,而不是输入电压瞬间值,所以它抗干扰能力强,不过转换速度慢,双重积分型A/D转换器在工业上应用也比较广泛。3.双重积分型A/D转换器二.A/D转换器主要性能指标1.分辨率2.转换时间3.量程4.转换精度单片机与ADDA接口及编程第4页10.1.2ADC0809与MCS-51接口一.ADC0809芯片ADC0809是CMOS单片型逐次迫近型A/D转换器,含有8路模拟量输入通道,有转换起停控制,模拟输入电压范围为0~+5V,转换时间为100s,它内部结构如图所表示。IN0IN1IN2IN3IN4IN5IN6IN7ADDAADDBADDCALE通道选择开关地址锁存和译码定时和控制逐次迫近存放器SAR8位三态锁存缓冲器DACOEEOCCLOCKSTARTVCCGNDVREF+VREF-ADC0809D0D1D2D3D4D5D6D7单片机与ADDA接口及编程第5页二.ADC0809引脚ADC0809芯片有28个引脚,采取双列直插式封装,如图。0809单片机与ADDA接口及编程第6页其中:IN0~IN7:8路模拟量输入端。D0~D7:8位数字量输出端。ADDA、ADDB、ADDC:3位地址输入线,用于选择8路模拟通道中一路,选择情况见表。
ADDCADDBADDA选择通道000IN0001IN1010IN2011IN3100IN4101IN5110IN6111IN7ALE:地址锁存允许信号,输入,高电平有效。START:A/D转换开启信号,输入,高电平有效。单片机与ADDA接口及编程第7页EOC:A/D转换结束信号,输出。当开启转换时,该引脚为低电平,当A/D转换结束时,该线脚输出高电平。OE:数据输出允许信号,输入,高电平有效。当转换结束后,假如从该引脚输入高电平,则打开输出三态门,输出锁存器数据从D0~D7送出。CLK:时钟脉冲输入端。要求时钟频率不高于640KHZ.REF+、REF-:基准电压输入端。Vcc:电源,接+5V电源。GND:地。三.ADC0809工作流程单片机与ADDA接口及编程第8页ADC0809工作流程如图所表示:1.输入3位地址,并使ALE=1,将地址存入地址锁存器中,经地址译码器译码从8路模拟通道中选通一路模拟量送到比较器。2.送START一高脉冲,START上升沿使逐次迫近存放器复位,下降沿开启A/D转换,并使EOC信号为低电平。3.当转换结束时,转换结果送入到输出三态锁存器,并使EOC信号回到高电平,通知CPU已转换结束。4.当CPU执行一读数据指令,使OE为高电平,则从输出端D0~D1读出数据。四.ADC0809与MCS-51单片机接口下列图是一个ADC0809与8051一个接口电路图。1.硬件连接单片机与ADDA接口及编程第9页P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7ALEWR
P2.7RDINTO+++5VGNDD0D1D2D3D4D5D6D7ADDAADDBADDCCLKALESTARTOEEOCIN0IN1IN2IN3IN4IN5IN6IN7
VREF+VREF-ADC08098051分频器2.软件编程设上面接口电路用于一个8路模拟量输入巡回检测系统,使用中止方式采样数据,把采样转换所得数字量按序存于片内RAM30H~37H单元中。采样完一遍后停顿采集。单片机与ADDA接口及编程第10页汇编语言编程:ORG0003HLJMPINT0ORG0100H;主程序MOVR0,#30H;设置数据存放区指针MOVR2,#08H;设置8路采样计数值SETBIT0;设置外部中止0为边缘触发方式SETBEA;CPU开放中止SETBEX0;允许外部中止0中止MOVDPTR,#0000H;送入口地址并指向IN0LOOP:MOVX@DPTR,A;开启A/D转换,A值无意义HERE:SJMPHERE;等候中止ORG0200H;中止服务程序INT0:MOVXA,@DPTR;读取转换后数字量MOV@R0,A;存入片内RAM单元INCDPTR;指向下一模拟通道INCR0;指向下一个数据存放单元DJNZR2,NEXT;8路未转换完,则继续CLREA;已转换完,则关中止CLREX0;禁止外部中止0中止RETI;中止返回NEXT:MOVX@DPTR,A;再次开启A/D转换RETI;中止返回单片机与ADDA接口及编程第11页C语言编程:#include<reg51.h>#include<absacc.h>//定义绝对地址访问#defineucharunsignedchar#defineIN0XBYTE[0x0000]//定义IN0为通道0地址staticuchardatax[8];//定义8个单元数组,存放结果ucharxdata*ad_adr;//定义指向通道指针uchari=0;voidmain(void){IT0=1;//初始化EX0=1;EA=1;i=0;ad_adr=&IN0;//指针指向通道0*ad_adr=i;//开启通道0转换for(;;){;}//等候中止}单片机与ADDA接口及编程第12页voidint_adc(void)interrupt0//中止函数{x[i]=*ad_adr;//接收当前通道转换结果i++;ad_adr++;//指向下一个通道if(i<8){*ad_adr=i;//8个通道未转换完,开启下一个通道返回}else{EA=0;EX0=0;//8个通道转换完,关中止返回}}单片机与ADDA接口及编程第13页10.2MCS-51单片机与DAC接口10.2.1D/A转换器概述一.D/A转换器性能指标1.分辨率。2.精度3.线性度4.温度灵敏度5.建立时间二.D/A转换分类D/A转换器品种繁多、性能各异。按输入数字量位数分:8位、10位、12位和16位等;按输入数码分:二进制方式和BCD码方式;按传送数字量方式分:并行方式和串行方式;按输出形式分:电流输出型和电压输出型,电压输出型又有单极性和双极性;按与单片机接口分:带输入锁存和不带输入锁存。下面介绍几个惯用D/A转换芯片。单片机与ADDA接口及编程第14页三.D/A转换器与单处机连接1.数据线连接D/A转换器与单片机数据线连接主要考虑两个问题:一是位数,当高于8位D/A转换器与8位数据总线MCS-51单片机接口时,MCS-51单片机数据必须分时输出,这时必须考虑数据分时传送格式和输出电压“毛刺”问题;二是D/A转换器有没有输入锁存器问题,当D/A转换器内部没有输入锁存器时,必须在单片机与D/A转换器之间增设锁存器或I/O接口。
2.地址线连接普通D/A转换器只有片选信号,而没有地址线。这时单片机地址线采取全译码或部分译码,经译码器输出来控制D/A转换器片选信号,也可由某一位I/O线来控制D/A转换器片选信号。
3.控制线连接D/A转换器主要有片选信号、写信号及开启转换信号等,普通由单片机相关引脚或译码器提供。
单片机与ADDA接口及编程第15页10.2.2MCS-51与8位DAC0832接口一.DAC0832芯片
DAC0832是一个电流型D/A转换器,数字输入端含有双重缓冲功效,能够双缓冲、单缓冲或直通方式输入,它内部结构如图。
与与与DI0~DI7ILECSWR1WR2XFER输入寄存器DAC寄存器D/A转换器LE1LE2VREFRfbIOUT1IOUT2AGNDVCCDGNDDAC0832单片机与ADDA接口及编程第16页二.DAC0832引脚DAC0832有20引脚,采取双列直插式封装,如图所表示。CSWR1AGNDDI3DI2DI2DI0VREFRFBDGNDVCCILEWR2XFERDI4DI5DI6DI7IOUT1IOUT21234567891020191817161514131211其中:DI0~DI7(DI0为最低位):8位数字量输入端。ILE:数据允许控制输入线,高电平有效。:片选信号。
:写信号线1。0832单片机与ADDA接口及编程第17页:写信号线2。
:数据传送控制信号输入线,低电平有效。
IOUT1:模拟电流输出线1。它是数字量输入为“1”模拟电流输出端。IOUT2:模拟电流输出线2,它是数字量输入为“0”模拟电流输出端,采取单极性输出时,IOUT2经常接地。Rfb:片内反馈电阻引出线,反馈电阻制作在芯片内部,用作外接运算放大器反馈电阻。VREF:基准电压输入线。电压范围为-10V~+10V。VCC:工作电源输入端,可接+5V~+15V电源。AGND:模拟地。DGND:数字地。三.DAC0832工作方式DAC0832有三种方式:直通方式、单缓冲方式和双缓冲方式。1.直通方式:单片机与ADDA接口及编程第18页、、、直接接地,ILE接电源,DAC0832工作于直通方式,此时,8位输入存放器和8位DAC存放器都直接处于导通状态,8位数字量抵达DI0~DI7,就马上进行D/A转换,从输出端得到转换模拟量。
当引脚2.单缓冲方式:当连接引脚、、、,使得两个锁存器一个处于直通状态,另一个处于受控制状态,或者两个被控制同时导通,DAC0832就工作于单缓冲方式,比如下列图就是一种单缓冲方式连接对于下列图单缓冲连接,只要数据DAC0832写入8位输入锁存器,就马上开始转换,转换结果经过输出端输出。单片机与ADDA接口及编程第19页Vout-VCCILECSWR1DI0~DI7WR2XFERDGNDAGNDVREFRfbIOUT1IOUT2+5V--5V--A+-P2.7WRP0.0~P0.780513.双缓冲方式:当8位输入锁存器和8位DAC存放器分开控制导通时,DAC0832工作于双缓冲方式,双缓冲方式时单片机对DAC0832操作分两步,第一步,使8位输入锁存器导通,将8位数字量写入8位输入锁存器中;第二步,使8位DAC存放器导通,8位数字量从8位输入锁存器送入8位DAC存放器。第二步只使DAC存放器导通,在数据输入端写入数据无意义。下列图就是一个双缓冲方式连接。单片机与ADDA接口及编程第20页P2.7P2.6WRP0.0~P0.78051
Vout-VCCILECSXFERWR1WR2DI0~DI7DGNDAGNDVREFRfbIOUT1IOUT2+5V--5V--A+-四.DAC0832应用D/A转换器在实际中经常作为波形发生器使用,经过它能够产生各种各样波形。它基本原理以下:利用D/A转换器输出模拟量与输入数字量成正比这一特点,经过程序控制CPU向D/A转换器送出随时间呈一定规律改变数字,则D/A转换器输出端就能够输出随时间按一定规律改变波形。单片机与ADDA接口及编程第21页【例10-1】依据上面单缓冲方式图编程从DAC0832输出端分别产生锯齿波、三角波和方波。依据单缓冲方式图连接,DAC0832口地址为7FFFH。汇编语言编程:锯齿波MOVDPTR,#7FFFHCLRALOOP:MOVX@DPTR,AINCASJMPLOOP三角波:MOVDPTR,#7FFFHCLRALOOP1:MOVX@DPTR,AINCACJNEA,#0FFH,LOOP1LOOP1:MOVX@DPTR,ADECAJNZLOOP2SJMPLOOP1方波:MOVDPTR,#7FFFHLOOP:MOVA,#00HMOVX@DPTR,AACALLDELAYMOVA,#FFHMOVX@DPTR,AACALLDELAYSJMPLOOPDELAY:MOVR7,#0FFHDJNZR7,$RET单片机与ADDA接口及编程第22页C语言编程:锯齿波:#include<absacc.h>//定义绝对地址访问#defineucharunsignedchar#defineDAC0832XBYTE[0x7FFF]voidmain(){uchari;while(1){for(i=0;i<0xff;i++){DAC0832=i;}}}单片机与ADDA接口及编程第23页三角波:#include<absacc.h>//定义绝对地址访问#defineucharunsignedchar#defineDAC0832XBYTE[0x7FFF]voidmain(){uchari;while(1){for(i=0;i<0xff;i++){DAC0832=i;}
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 家国情怀素养在高中历史教学中的培养研究
- 创业股权分配合同范例
- 农村蔬菜出租合同范本
- 休闲农庄转让合同范本
- 养殖饲料专项借款合同范例
- 16949采购合同范例
- 企业课程采购合同范例
- 中医内科师承合同范例
- 净水设备批发采购合同范例
- lng采购合同范例
- 中华英才网行测
- 《铁路轨道维护》课件-起道作业
- WS 308-2019 医疗机构消防安全管理
- (高鸿业)微观经济学习题解析+微观经济学题库解析
- 《尿11-脱氢血栓烷B2与其他危险因素的交互效应在急性冠脉综合征患者中的研究》
- 咨询公司项目风险控制方案
- 校园食品安全培训课件
- 开关柜更换改造施工方案
- 《眼科常用眼药及护》课件
- 污水处理厂防水防腐工程施工方案
- 幕墙作业安全技术交底
评论
0/150
提交评论