单片机原理及应用张岩张鑫电子课件07第7章节MCS51单片机的输入输出通道接口.ppt

单片机原理及应用张岩张鑫电子课件07第7章节MCS51单片机的输入输出通道接口.ppt

  1. 1、本文档共43页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
3. 量化误差 由A/D转换器的有限分辨率而引起的误差,即有限分辨率A/D转换器的阶梯状转移特性曲线与理想无限分辨率A/D转换器的转移特性曲线(直线)之间的最大偏差称为量化误差。通常是1 个或半个最小数字量的模拟变化量,表示为1LSB,1/2LSB。 4. 线性度 线性度是指实际A/D转换器的转移函数与理想直线的最大偏差,不包括量化误差、偏移误差(输入信号为零时,输出信号不为零的值)和满刻度误差(满刻度输出时,对应的输入信号与理想输入信号值之差)3种误差。 5.量程 量程是指A/D能够转换的电压范围,如0~5V,-10~+10V等。 6. 其他指标 除以上性能指标外,A/D转换器还有内部/外部电压基准、失调(零点)温度系数、增益温度系数,以及电源电压变化抑制比等性能指标。 7.3.2 A/D转换器的分类 7.3.3 ADC0809转换器的接口 1. ADC0809的特点 ADC0809是NS公司生产的逐次逼近型A/D转换器。ADC0809具有以下特点: ① 分辨率为8位; ② 误差±1LSB,无漏码; ③ 转换时间为100 us(当外部时钟频率fc =640kHz时); ④ 很容易与微处理器连接; ⑤ 单一电源+5 V,量程为0~5 V; ⑥ 无须零位或满量程调整; ⑦ 带有锁存控制逻辑的8通道多路转换开关,便于选择8路中的任一路进行转换; ⑧ DIP28封装; ⑨ 使用5 V或采用经调整模拟间距的电压基准工作; ⑩ 带锁存器的三态数据输出。 2. ADC0809引脚功能 IN0—IN7:8通道模拟量输入端 2-8—2-1: 8位数字量输出端 C、B、A:接地址锁存器的低三位地址 ALE: 地址锁存允许控制信号 START:清0内寄存器,启动转换 OE: 允许读A/D结果,高有效 CLK:时钟输入端,范围为10kHz~1200kHz,典型值640kHz EOC:转换结束时为高 Vcc:+5V Vref+:参考电压,+5V Vref-:0V IN7~IN0:8路模拟量输入。ADC0809一次只能选通IN7~IN0中的某一路进行转换,选通的通道由ALE上升沿时送入的C、B、A引脚信号决定。 3. 接口与编程 ADC0809典型应用如图7.12所示。由于ADC0809输出含三态锁存,因此,其数据输出可以直接连接MCS-51的数据总线P0口(无三态锁存的芯片是不允许直接连数据总线的)。可通过外部中断或查询方式读取A/D转换结果。 【例7.3】 假设ADC0809与MCS-51的硬件连接如图7.12所示,要求采用中断方法,进行8路A/D转换,将IN0~IN7转换结果分别存入片内RAM的30H~37H地址单元中。 解:程序清单如下: ORG 0000H LJMP MAIN ; 转主程序 ORG 0003H ; 中断服务入口地址 LJMP INT0F ; 中断服务 ORG 0100H MAIN: MOV R0, #30H ; 内部数据指针指向30H单元 MOV DPTR, #7FF8H ; 指向P2.7口,且选通IN0 SETB IT0 ; 设置 下降沿触发 SETB EX0 ; 允许 中断 SETB EA ; 开总中断允许 MOVX @DPTR, A ; 启动A/D转换 LJMP $ ; 等待转换结束中断 中断服务程序: INT0F: MOVX A, @DPTR ; 取A/D转换结果 MOV @R0, A ; 存结果 INC R0 ; 内部指针下移 INC DPTR ; 外部指针下移指向下一路 CJNE R0,#38H,NEXT ; 未转换完8路,继续转换 CLR EX0 ; 关 中断允许 RETI ; 中断返回 NEXT: MOVX @DPTR, A ; 启动下一路A/D转换 RETI ; 中断返回 END C51程序:#includereg51.h #includeabsacc.h #define ACSD XBYTE[0x7ff8] #define ram30H DBYTE[0x0030] unsigned char xdata *p; unsigned char data *q; unsigned char a,k; void main(void) { p=0x7ff8; q=0x30; k=0; IT0=1; EX0=1; EA=1; *p=0x00; //启动AD转换 while(1); } void AD_INT0( ) interrupt

文档评论(0)

开心农场 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档