欢迎来到天天文库
浏览记录
ID:51135301
大小:482.00 KB
页数:24页
时间:2020-03-19
《单片机AD与DA转换.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、本章内容A/D转换器接口D/A转换器接口第6章A/D与D/A转换接口A/D转换器接口A/D转换器是实现模拟量向数字量转换的器件,按转换原理可分为四种:计数式A/D转换器、双积分式A/D转换器、逐次逼近式A/D转换器和并行式A/D转换器。目前最常用的A/D转换器是双积分式A/D转换器和逐次逼近式A/D转换器。前者的主要优点是转换精度高,抗干扰性能好,价格便宜,但转换速度较慢,一般用于速度要求不高的场合。后者是一种速度较快、精度较高的转换器,其转换时间大约在几微秒到几百微秒之间。A/D转换器接口AD
2、C0809是一个8位8通道的逐次逼近式AD转换器。A/D转换器接口通道选择表地址码选择的通道CBA000001010011100101110111IN0IN1IN2IN3IN4IN5IN6IN7A/D转换器接口CLK:时钟信号,可由单片机ALE信号分频得到。转换步骤ALE信号上升沿有效,锁存地址并选中相应通道。ST信号有效,开始转换。A/D转换期间ST为低电平。EOC信号输出高电平,表示转换结束。OE信号有效,允许输出转换结果。A/D转换器接口ADC0809引脚图A/D转换器接口ADC0809引
3、脚图(1)IN7〜IN0:8个模拟量输入通道。(2)ADDA、ADDB、ADDC:地址线。(3)ALE:地址锁存允许信号。对应ALE上升沿,ADDA、ADDB和ADDC地址状态送入地址锁存器中,经译码后输出选择模拟信号输入通道。(4)START:转换启动信号。对应START上跳沿时,所有内部寄存器清0;对应START下跳沿,开始进行A/D转换;在A/D转换期间,START应保持低电平。(5)D7~D0:数据输出线,为三态缓冲输出形式,可以和单片机的数据线直接相连。A/D转换器接口ADC0809引
4、脚图(6)OE:输出允许信号,用于控制三态输出锁存器向单片机输出转换得到的数据。当OE=0时,输出数据线呈高电阻;当OE=1时,输出转换得到的数据。(7)CLK:时钟信号。ADC0809的内部没有时钟电路,所需时钟信号由外界提供,因此有时钟信号引脚。通常使用频率为500kHz的时钟信号(8)EOC——转换结束状态信号。启动转换后,系统自动设置EOC=0,转换完成后,EOC=1。该状态信号既可作为查询的状态标志,又可以作为中断请求信号使用。(9)Vref:参考电源。参考电压用来与输入的模拟信号进行
5、比较,作为逐次逼近的基准,其典型值为+5V(Vref(+)=+5V,Vref(-)=0V)。A/D转换器接口单片机系统扩展三总线A/D转换器接口单片机系统扩展三总线地址锁存器74LS373是带三态缓冲输出的8D锁存器。由于单片机的数据线与地址线的低8位共用P0口,因此必须用地址锁存器将地址信号和数据信号区分开。74LS373的锁存控制端G直接与单片机的锁存控制信号ALE相连,在ALE的下降沿锁存低8位地址。高8位地址由P2口直接提供。系统扩展中常用的控制线有以下三条::控制程序存储器的读操作,在
6、执行指令的取指阶段和从程序存储器中取数据时有效。:控制数据存储器的读操作,从外部数据存储器或I/O端口中读取数据时有效。:控制数据存储器的写操作,向外部数据存储器或I/O端口中写数据时有效。A/D转换器接口ADC0809与8031单片机的连接A/D转换器接口ADC0809的通道地址表...............单片机P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0P0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.0A15A14A13A12A11A10A9A8A7A6
7、A5A4A3A2A1A00809×××××××ST×××××CBAIN0×××××××0×××××000IN1×××××××0×××××001IN7×××××××0×××××111A/D转换器接口单片机与A/D转换器接口程序设计,主要有以下四个步骤:启动A/D转换,START引脚得到下降沿。查询EOC引脚状态,EOC引脚由0变1,表示A/D转换过程结束。允许读数,将OE引脚设置为1状态。读取A/D转换结果。...............D/A转换器接口#include//该头
8、文件中定义XBYTE关键字#include#defineucharunsignedchar#defineIN0XBYTE[0xfef8]//设置AD0809的通道0地址sbitad_busy=P3^3;//定义EOC状态voidad0809(ucharidata*x){uchari;ucharxdata*ad_adr;//定义指向外部RAM的指针ad_adr=&IN0;//通道0的地址送ad_adrfor(i=0;i<8;i++)//处理8通道{*ad_adr=0;//写外部I
此文档下载收益归作者所有