欢迎来到天天文库
浏览记录
ID:5633158
大小:1.48 MB
页数:34页
时间:2017-11-14
《第8章 单片机典型外围接口技术》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、单片机原理、接口及应用第8章单片机典型外围接口刘尊民内容提要★A/D、D/A接口技术★A/D接口技术★D/A接口技术8.1A/D、D/A接口技术在前章并行接口中,解决了数字量或开关量的检测和控制,然而很多应用系统中,测控的对象是模拟量,计算机只能处理数字量,因此必须进行数字量和模拟量之间的转换,这就需要使用A/D或D/A接口。A/D和D/A接口又有串行接口和并行接口之分。本章主要介绍并行D/A和A/D转换接口。8.1.1A/D接口技术8.1.1.1A/D概述模数AD转换器是一种用来将连续的模拟信号转换成二进制数的器件。一个完整的A/D变换器通常包括这样的一些输入、输出信号:模拟输入信号和参
2、考电压;数字输出信号;启动转换信号;转换结束信号;数据输出允许信号等。高速A/D一般还应有采样保持电路,以孔径误差(在A/D转换的孔径时间内,因输入模拟量的变动减少所引起输出的不确定性误差)。A/D转换器的主要技术指标有:①分辨率输出数字量变化一个相邻数码所需输入模拟电压的变化量。通常用位数表示,对n位的A/D转换器,分辨率为满刻度电压的1/2n。②转换误差指一个实际的A/D转换器量化值与一个理想的A/D转换器量化值之间的最大偏差,通常以最低有效位的倍数给出。转换误差和分辨率一起共同描述A/D转换器的转换精度。值得一提的是,转换误差或转换精度的概念在国内外不同的参考文献上含义或形式可能会有
3、所不一样,读者在阅读时应该注意类别区别。③转换时间与转换速率A/D转换器完成一次转换所需要的时间为A/D的转换时间。转换时间的倒数为转换速率,即1秒种完成转换的次数。如何选择AD器件AD转换器位数8位以下,9-12位,13位以上量化误差转换速度线性度量程AD转换对电源的要求AD中,电源电路要单独考虑。稳定的电源选择基准源基准芯片MAX6190/1/2/4/5/8(1.25,2.048,2.5,4.5,5,4.096)ADC0809是逐次逼近型八位A/D转换器,片内有八路模拟开关,可对八路模拟电压量实现分时转换。典型转换速度100μs。片内带有三态输出缓冲器,可直接与单片机的数据总线相连接。
4、ADC0809的引脚见图,其信号意义如下:8.1ADC0809引脚图转换结束信号EOC根据不同的方式和单片机的连结方式不同:采用延时方式EOC悬空,在启动转换后延时100μs,再读转换结果;采用查询方式可将EOC接并行口(P1或P3)的某线,检测EOC变高后,再读入转换结果。采用中断方式可将EOC经非门反相接到单片机的中断请求端,一旦转换完成EOC变为高电平,向8XX51提出中断请求,进入中断服务后读入转换结果。如图10.12是一个中断方式的接口电路。初始化程序:(中断方式)MOVR0,#0A0H;数据存储区首地址MOVR2,#08H;8路计数器SETBIT1;边沿触发方式SETBEA;中
5、断允许SETBEX1;允许外部中断1中断MOVDPTR,#0FEF8H;指向ADC0809首地址LOOP:MOVX@DPTR,A;启动A/D转换HERE:SJMPHERE;等待中断DJNZR2,LOOP;巡回,未完继续CLREA;结束,关中断SJMP$;结束停止设有一个8路模拟量输入的巡回检测系统,采样数据依次存放在外部RAM0A0H~0A7H单元中,ADC0809的8个通道地址为0FEF8H~0FEFFH。中断服务程序:MOVXA,@DPTR;读数MOVX@R0,A;存数INCDPTR;指向下一模拟通道INCR0;指向数据存储区下一单元RETIC51程序:#include6、h>#include#defineucharunsignedchar#defineIN0XBYTE[0xFEF8]/*设置ADC0809的通道0地址*/sbitad_busy=P3^3;/*即EOC状态*/voidad0809(ucharidata*x)/*采样结果放指针中的A/D采集函数*/{uchari;ucharxdata*ad_adr;ad_adr=&IN0;for(i=0;i<8;i++)/*处理8通道*/{*ad_adr=0;/*启动转换*/i=i;/*延时等待EOC变低*/i=i;while(ad_busy==0);/*查询等待转换结束*/x[i]=*ad_7、adr;/*存转换结果*/ad_adr++;/*下一通道*/}}voidmain(void){staticucharidataad[10];ad0809(ad);/*采样ADC0809通道的值*/}MAX1978通道,12位并行AD软件选择量程±10,±5,0-10,0-5100ksps程序流程TLC254312位,11路AD串行AD转换芯片采样率为66kbps有转换结束输出EOC可编程的MSB或LSB前导可编程输出数据
6、h>#include#defineucharunsignedchar#defineIN0XBYTE[0xFEF8]/*设置ADC0809的通道0地址*/sbitad_busy=P3^3;/*即EOC状态*/voidad0809(ucharidata*x)/*采样结果放指针中的A/D采集函数*/{uchari;ucharxdata*ad_adr;ad_adr=&IN0;for(i=0;i<8;i++)/*处理8通道*/{*ad_adr=0;/*启动转换*/i=i;/*延时等待EOC变低*/i=i;while(ad_busy==0);/*查询等待转换结束*/x[i]=*ad_
7、adr;/*存转换结果*/ad_adr++;/*下一通道*/}}voidmain(void){staticucharidataad[10];ad0809(ad);/*采样ADC0809通道的值*/}MAX1978通道,12位并行AD软件选择量程±10,±5,0-10,0-5100ksps程序流程TLC254312位,11路AD串行AD转换芯片采样率为66kbps有转换结束输出EOC可编程的MSB或LSB前导可编程输出数据
此文档下载收益归作者所有