单片机接口技术74系列和ad转换

上传人:F****n 文档编号:88194272 上传时间:2019-04-20 格式:PPT 页数:55 大小:837.50KB
返回 下载 相关 举报
单片机接口技术74系列和ad转换_第1页
第1页 / 共55页
单片机接口技术74系列和ad转换_第2页
第2页 / 共55页
单片机接口技术74系列和ad转换_第3页
第3页 / 共55页
单片机接口技术74系列和ad转换_第4页
第4页 / 共55页
单片机接口技术74系列和ad转换_第5页
第5页 / 共55页
点击查看更多>>
资源描述

《单片机接口技术74系列和ad转换》由会员分享,可在线阅读,更多相关《单片机接口技术74系列和ad转换(55页珍藏版)》请在金锄头文库上搜索。

1、74系列的三态门电路和各种8位锁存器芯片也是51系列单片机应用中常用的扩展器件,作为固定的1个输入口或输出口,这一节以典型的74HC245和74HC377为例介绍它们的接口技术。,6.6 74系列器件的接口技术和应用,6.6.1 用74HC245扩展并行输入口 74HC245是一种三态门电路,逻辑符号如图6-40(a)所示。 DIR为数据传送方向选择端,DIR=1,(A1A8)(B1B8),DIR=0,(B1B8)(A1A8)。 G为使能端,G=1禁止传送,G=0允许传送。 图6-41是89C52紧凑系统中扩展一片74HC245的一种接口电路。采用线选法,口地址为0BFH。对0BFH读即读出输

2、入设备(如开关)的数据。, 6.6 74系列器件的接口技术和应用,图6-40a 图6-40b,图6-41,6.6.2 用74HC377扩展并行输出口 74HC377是一种8D锁存器,逻辑符号如图6-40(b)所示。E为使能端,CLK为时钟端。 当E为低电平,CLK端上升沿将D0D7上数据打入锁存器Q0Q7。图6-41是89C52紧凑系统中扩展一片74HC377的一种接口电路。E端接A7,CLK接CLK接WR。口地址也是7FH。对7FH写即将数据输出到输出设备(如指示灯), 6.6 74系列器件的接口技术和应用,除口的输入输出功能固定外,245和377相当于8155或8255A工作于非选通(基本

3、方式)的一个8位平行口,与设备的接口方法和数据传送也类似。, 6.6 74系列器件的接口技术和应用,6.7.1 8路过位A/D ADC0809/0808的接口和编程 一、ADC0809/0808结构 逐次比较式8路模拟输入、8位输出的A/D转换器。, 6.7 A/D器件接口技术,图6-42 a结构框图,图6-42 b 管脚图, 6.7 A/D器件接口技术,二、引脚功能 IN0IN7:8路模拟信号输入引脚; A、B、C:通路地址输入引脚,CBA=07,分别选择IN0IN7对应一路; ALE:通路地址锁存信号输入引脚,ALE的上升沿锁存通路地址; START:启动信号输入引脚,START上升沿清内

4、部寄存器,下降沿启动A/D;, 6.7 A/D器件接口技术,CLK:时钟输入引脚,不高于640kHz转换时间为128us; EOC:状态输出引脚,A/D转换结束,EOC上升为高电平; OE:数据允许输出线,高电平有效; D0D7:8位数字量输出端,三态数据输出,OE为高电平时数据输出,OE为低电平时呈高阻抗(浮空)。,三、0809操作过程和接口方法,单片机如何来控制ADC?,首先选择0809的一个模拟输入通道,再产生一个启动信号给0809的START脚,对选中通道转换。,转换结束后,0809发出转换结束EOC信号,该信号可供查询,也可向单片机发出中断请求; 加到OE端高电平把转换完毕的数字量读

5、出。,根据以上操作过程(时序),图6-43给出了一种89C52与0809的一种接口电路,设Fosc=6MHz,ALE经2分频后约500kHz,作为0809的时钟信号。 通路地址分别为78H7FH。EOC的连接根据程序设计方法确定。, 6.7 A/D器件接口技术,图6-43,例6.10ADC0809程序设计 对0809操作包括启动A/D,读A/D结果,下面为读8路A/D的函数: #includereg52.h #includeabsacc.h #define uint unsigned int #define uchar unsigned char #define AD_0809 PBYTE0x

6、78 uchar AD_BUF8;, 6.7 A/D器件接口技术,s_r_ad_8() uchar pdata *ptr; uchar x,i; for(i=0;i8;i+) ptr=,6.7.2 12位A/D AD574的接口和编程 一、AD574的结构特点 AD574是具有三态输出总线的高速(1035us)高精度(0.05%)A/D转换器,可以直接和MCU接口。AD574内部含有12位逐次逼近式A/D转换器、时钟电路、基准电源电路、三态数据锁存器缓冲等,外部几乎不需接什么器件就可以工作。AD574可工作于单极性或双极性输入方式,12位数字量结果可以一次并行输出(适合16位MCU),也可以分

7、两个字节输出(适合8位MCU)。图6-44给出了AD574的管脚图,相应的单极性和双极性方式连线图见图6-45。,28脚双列直插式封装,引脚如图6-45。,图6-45,引脚的功能如下:,CS*:片选信号端。,CE: 片启动信号。,R/C*:读出/转换控制信号。,12/8*:数据输出格式选择。,1: 12条数据线同时输出转换结果,,0: 转换结果为两个单字节输出,即只有高8位或低4位有效。,A0:字节选择控制线。分为转换期间、读出期间,在转换期间:,0: 进行12位转换(转换时间为25s);,1: 进行8位转换(转换时间为16s) 。,在读出期间:,0:高8位数据有效;,1:低4位数据有效,中间

8、4位为“0” ,高4位为三态。,因此当两次读出12位数据时,12位数据遵循左对齐原则,如下所示:,上述五个控制信号组合的真值表如表11-4所示:,AD574控制真值表,STS:转换结束状态引脚。,转换完成时为低电平。可作为状态信息被CPU查询,也可用它的下跳沿向CPU发出中断申请,通知A/D转换已完成,可读取转换结果。,2. AD574的工作特性,工作状态由CE、CS*、R/C*、12/8*、A0五个控制信号决定,当CE=1,CS*=0同时满足,才处于转换状态。,AD574处于工作状态时,R/C*=0,启动A/D转换;R/C*=1为数据读出。12/8*和A0端用来控制转换字长和数据格式。A0=

9、0按12位转换方式启动转换;A0=1按8位转换方式启动转换。 当AD574处于数据读出(R/C*=1)状态时,A0和12/8*成为数,据输出格式控制端。12/8*=1对应12位并行输出;12/8*=0对应8位的双字节输出。其中A0=0时输出高8位。A0=1时输出低4位,并以4个0补足尾随的4位。,注意:12/8*端与TTL电平不兼容,故只能直接接+5V或地。另外A0在数据输出期间不能变化。,3. AD574的单极性和双极性输入特性,图6-45(a)为单极性转换电路,可实现:010V或020V的转换。,图6-45(b)为双极性转换电路,可实现:-5+5V或-10+10V的转换。,图6-45 AD

10、574单极性和双极性方式连接图,图6-46,例6.11 AD574程序设计 #include “reg52.h“ #include “absacc.h“ #define uint unsigned int #define uchar unsigned char #define AD_574 PBYTE0x7c #define AD_H PBYTE0x7d #define AD_L PBYTE0x7f uint s_r_ad() uchar i; uint x; AD_574=0x7c; for(i=0;i50;i+);,x=AD_H; i=AD_L; i=4; x=x4; x+=i; retu

11、rn x; main( ) uint a; a=s_r_ad(); for(;); ,I2CBUS和SPI是最常见的串行扩展接口,对于无这种接口的89C52等单片机,可以用软件模拟串行通信时序,用于扩展EEPROM、RAM、LCD驱动器、A/D等串行接口的外围器件,特别适用于51系列的最小系统。, 6.9 模拟串行扩展技术,6.9.1 12C时序模拟 I2CBUS是多主机串行总线,时序较复杂。但对于只用于扩展I2C外围器件的单主机系统,没有总线的竞争和同步,主机只对从器件读/写操作,则时序简单得多。, 6.9 模拟串行扩展技术,一、单主机I2时序 由图5-7(I2C总线上数据传送过程)可见,传

12、送中含有启始位、数据位、应答位和停止位。这些位的传送时序如图6-52所示。最大速率为100kbit/s,时钟线SCL低电平时间大于4.7us,高电平时间大于4us., 6.9 模拟串行扩展技术,图6-52,例6.13 I2C时序模拟程序 #include“reg52.h“ #define uint unsigned int #define uchar unsigned char sbit SDA=p12; sbit SCL=p13;, 6.9 模拟串行扩展技术,start() uchar m; /启动 SDA=0; SCL=1; SDA=1; for(m=5;0;m-); /延时5 SCL=0

13、; for(m=4;m;m-); /延时4us SCL=0; ,stop( ) /停止 uchar m; SDA=0; SCL=0; for(m=2;m0;m-); /延时2us SCL=1; for(m=5;m0;m-); /延时5us SDA=1; , 6.9 模拟串行扩展技术,t_byte(uchar a) /串行发送1个字节 uchar i,n; /从高位开始 bit s; fot(i=0;i0;n-); SCL=0; a=1; ,SDA=1; /准备接收应答位(SDA为输入) SCL=1; for(n=2;n0;n-); s=SDA; /接收应答位 SCL=0; return s;

14、, 6.9 模拟串行扩展技术,uchar r_byte() /串行接收1个字节 uchar i,j,a; SDA=1; for(i=0,a=0;i8;i+) SCL=1; for(j=0;j2;j+);延时间位时间 a=1; if(SDA=1) a+=1; SCL=0; ,SDA=0; /发送应答位 for(j=0;j2;j+); SCL=1; for(j=0;j5;j+); SCL=0; SDA=1; return a; ,main() uchar a,b; start(); a=0xaa; t_byte(a); b=r_byte(); stop(); for(;) ,二、I2C通信 图6-

15、53为89C52和I2C外围器件的一种接口方法。I2C器件虽都采用I2C标准时序,但器件功能、结构是不同的。用I2C时序模拟方法,实现89C52和从器件通信时,应根据器件说明和89C52的时钟频率,修改例5.165.19中延时参数,按规定和硬件的设计,对从器件寻址、控制以及数据传送。若通信出错可以停止后再启动。, 6.9 模拟串行扩展技术,图6-53,6.9.2 SPI时序 一、SPI采用全双工三线同步传送方式,波特率可达6MHz。数据线MOSI、MISO和时钟线SCK,时序有图6-54所示的4种,应用中根据SPI器件说明确定一种时序。, 6.9 模拟串行扩展技术,图6-54,a,b,由图6-54可见,模拟SPI输出时序时,先将MOSI置为1或0以后,SCK发一个正脉冲或负脉冲即可。SPI输入时,参考SPI接口器件芯片手册,确定SCK脉冲极性,由移位相位确定采样时间。, 6.9 模拟串行扩展技术,例6.14 SPI时序模拟 #includereg52.h #define uint unsigned int #define uchar unsigned char sbit SCK=p14; sbit MOSI=p15; sbit MISD=p16;, 6.9 模拟串行扩展技术,ts_byte(uchar a) /发送1字节 uchar I; SCK=0; for(

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

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