第11章 STC89C52与AD、DA转换器的接口.ppt

  1. 1、本文档共69页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
当CE=1, =?0同时满足时,AD1674才能处于工作状态。当AD1674处于工作状态时,R/ =?0时启动A/D转换;R/ =1时读出转换结果。 12/ 和A0端用来控制转换字长和数据格式。 A0=0时启动转换,按完整的12位A/D转换方式工作; A0=1启动转换,则按8位A/D转换方式工作。 当AD1674处于数据读出工作状态(R/ =?1)时,A0和12/ 成为数据输出格式控制端。 2.AD1674的工作特性 12/ =1时,对应12位并行输出; 12/ =0时,则对应8位双字节输出。其中A0=0时输出高8位,A0?=?1时输出低4位,并以4个0补足尾随的4位。注意,A0在转换结果数据输出期间不能变化。 如要求AD1674以独立方式工作,只要将CE、12/ 端接入+5V, 和A0接至0V,将R/ 作为数据读出和启动转换控制。R/ =1时,数据输出端出现被转换后的数据; R/ =0时,即启动一次A/D转换。在延时0.5?s后,STS?=?1表示转换正在进行。经过一个转换周期后,STS跳回低电平,表示A/D转换完毕,可读取新的转换数据。 注意,只有在CE?=?1且 =?0时才启动转换,在启动信号有效前,R/ 必须为低电平,否则将产生读取数据的操作。 3.AD1674的单极性和双极性输入的电路 通过改变AD1674引脚8、10、12的外接电路,可使AD1674实现单极性输入和双极性输入模拟信号的转换。由于AD1674片内含有高精度的基准电压源和时钟电路,因此AD1674无需任何外加电路和时钟信号的情况下即可完成A/D转换,使用非常方便。 (1)单极性输入电路 图11-8(a)为单极性输入电路,可实现输入信号0~10V或0~20V的转换。当输入信号为0~10V时,应从10VIN引脚输入(引脚13);输入信号为0~20V时,应从20VIN引脚输入(引脚14)。 AD1674模拟输入电路的外部接法 注意:单片机系统模拟信号的地线应与AGND 相连,使其地线的接触电阻尽可能小。 输出的转换结果D的计算公式为: D=4096VIN / VFS 或 VIN= D·VFS /4096 其中VIN为模拟输入电压,VFS为满量程电压。 若从10VIN脚输入,VFS=10V,LSB=10/4096≈24mV; 若从20VIN脚输入;VFS=20V,1LSB=20/4096≈49mV。 图中的电位器RP2用于调零,即当VIN=0时,输出数字量D为全0。 * (2)双极性输入电路 图11-8(b)为双极性转换电路,可实现输入信号?10~+10V或0~+20V的转换。图中电位器RP1用于调零。 双极性输入时,输出的转换结果D与模拟输入电压VIN之间的关系为: D=2048(1+VIN / VFS) 或 VIN=(D / 2048–1)VFS /2 例如,当模拟信号从10VIN引脚输入,则VFS=10V,若读得D=FFFH,即111111111111B=4095,代入式中,可求得VIN=4.9976V。 转换结果的高8位从DB11~DB4输出,低4位从DB3~DB0输出,即A0=0时,读取结果的高8位;当A0=1时,读取结果的低4位。若遵循左对齐的原则,DB3~DB0应接单片机的P0.7~P0.4。 4.STC89C52单片机与AD1674的接口 STS引脚接单片机的P1.0引脚,采用查询方式读取转换结果。当单片机执行对外部数据存储器写指令,使CE=1, =0,R/ =0,A0=0时,启动A/D转换。当单片机查询到P1.0引脚为低电平时,转换结束,单片机使CE=1, =0,R/ =1,A0=0,读取结果高8位;CE=1, = 0, R/ =1,A0=1,读取结果的低4位。 该接口电路完成一次A/D转换的查询方式的程序如下(高8位转换结果存入R2中,低4位存入R3中,遵循左对齐原则): AD1674: MOV R0,0F8H ;端口地址送R0 MOVX @R0,A ;启动AD1674进行转换 SETB P1.0 ;置P1.0为输入 LOOP: NOP JB P1.0,LOOP ;查询转换是否结束 INC R0 ;使R/ =1,准备读取结果 MOVX A,@R0 ;读取高8位转换结果 MOV R2,A ;高8位转换结果存入R2中 INC R0 ;使R/ =1, A0=1 INC R0 MOVX A,@R0 ;读取低4位转换结果 MOV R3,A

文档评论(0)

开心就好 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档