第8章AT89系列单片机的接口扩展技术(IO扩展及应用,AD与DA转换)祥解.ppt

第8章AT89系列单片机的接口扩展技术(IO扩展及应用,AD与DA转换)祥解.ppt

  1. 1、本文档共105页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第8章AT89系列单片机的接口扩展技术(IO扩展及应用,AD与DA转换)祥解.ppt

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ◆典型A/D转换芯片ADC0809 (1)逐次逼近式A/D转换器转换原理 8.5 A/D、D/A转换器与单片机的接口技术 * ◆典型A/D转换芯片ADC0809 (2)ADC0809 ADC0809是美国国家半导体公司生产的一种8路模拟量输入8位数字量输出的逐次逼近型A/D器件。 主要技术指标和特性 : 分辨率为8位; 转换时间取决于芯片时钟频率,当CLK=500KHz时,转换时间为128us; +5V的单一电源供电; 模拟输入电压范围为单极性0~+5V; 具有可控三态输出锁存器; 启动转换控制为脉冲式(正脉冲),上升沿使内部所有寄存器清“0”,下降沿使A/D转换开始。 8.5 A/D、D/A转换器与单片机的接口技术 * ADC0809结构框图 8.5 A/D、D/A转换器与单片机的接口技术 * ADC0809引脚图 IN0~IN7:8路模拟量的输入端。 D0~D7:A/D转化后的数据输出端 A、B、C:模拟通道地址选择端 VREF(+)、VREF(-):基准参考电压。 CLK:时钟信号输入端。 ALE:地址锁存允许信号。 SC:启动转换信号。 EOC:转换结束信号。 OE:输出允许信号。 8.5 A/D、D/A转换器与单片机的接口技术 * 通道选择的地址编码如表8-8所示 8.5 A/D、D/A转换器与单片机的接口技术 * ◆单片机与ADC0809的接口电路 图8-28是ADC0809与AT89S52的连接示意图。由于ADC0809片内无时钟,可利用AT89S52提供的地址锁存允许信号ALE经D触发器二分频得到。 8.5 A/D、D/A转换器与单片机的接口技术 * ◆单片机与ADC0809的接口电路 图8-28是ADC0809与AT89S52的连接示意图。因为0809内部具有地址锁存器,也可以将A、B、C直接和P0.0、P0.1、P0.2相连。 8.5 A/D、D/A转换器与单片机的接口技术 假设在以图8-28所示电路为基础的测控系统中,巡回检测一遍8路模拟量输入,采用中断方式将读数依次存放在片外数据存储器A0H~A7H单元,其程序如下: 汇编语言程序: ORG 000H LJMP MAIN ORG OO13H LJMP INT11 ORG 0100H MAIN:MOV R0,#0A0H ;数据存储区首址 MOV R2,#08H ;8路计数值 SETB IT1 ;边沿触发方式 SETB EA ;中断允许 SETB EX1 ;允许外部中断1中断 MOV DPTR,#7FF8H ;A/D转换器地址 MOV A,#00H ;指向0通道 LOOP:MOVX @DPTR,A ;启动A/D转换 HERE:SJMP HERE ;等待中断 ORG 0200H ;中断服务程序 INT11:MOVX A,@DPTR ; 读取转换结果 MOVX @R0,A ;存数 INC DPTR ;指向下一个模拟通道 INC R0 ;指向数据存储区下一个单元 DJNE R2,NEXT ;8路没采集完转 CLR EA CLR EX1 RETI NEXT:MOV @DPTR,A ;启动下一路转换 RETI C语言程序: #include reg52.h #include absacc.h #define IN0=XBYTE[0x7ff8] #define AD0=PBYTE[0xa0] #define uchar unsigned char uchar xdata *addz; //定义指向通道的指针变量 uchar pata adcdata[8]; //定义存放转换结果的数组 uchar i; void main(void) { IT1=1; EA=1; EX1=1;

文档评论(0)

四娘 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档