- 1、本文档共46页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
微机接口与编程第六章模拟量输入输出2(AD)
2003.5.16 §6.3 A/D (模/数)转换器 逐次逼近型 A/D 转换器 ADC0809: 8通道(8路)输入 8位字长 逐位逼近型 转换时间100μs 内置三态输出缓冲器 1.原理及工作时序 ADC0809 8模入8位逐次逼近型A/D转换器件 模拟电压IN7 ~ IN0 : 分时选一转换 ADDC~ADDA 输入地址: 控制8选1 ALE : 输入地址锁存信号 START 输入: 正脉冲启动转换, 前沿清除逐次比较寄存器, 后沿启动转换 EOC 输出: =0正在转换,=1转换结束 OE=1 输入: 将转换结果送出,用于读转换结果 D7~0数据输出: 平时为三态, OE=1时输出数据 P339 图6.22 ADC0809 工作时序 P343 图6.26 典型的A/D转换器与CPU接口框图 2. 接口及驱动程序 习题集P39 附录四 ADC0809 应用举例 用到两个地址(范围): Y0(200~207H ):写ADD/读状态 Y1( 208~20FH):写启动信号/读转换结果 只读端口和只写端口合用地址 对模拟电压IN3采集一次的程序段 mov DX, 203H out DX, AL ; 选IN3 mov DX, 208H out DX, AL ; 启动转换 Poll: mov DX, 200H in AL, DX test AL, 1 ; 检查EOC jz Poll mov DX, 208H in AL, DX ; 读转换结果 模拟输入端Ini : 单路输入 多路输入 多路输入时,地址线不能接死,要通过一个接口芯片与数据总线连接。接口芯片可以选用: 可直接连到DB上,或通过另外一个输入接口与DB相连; 两种方法均需占用一个I/O地址 独立连接:用两个信号分别进行控制——需占用两个I/O端口或两个I/O线; 统一连接:用一个脉冲信号的上升沿进行地址锁存,下降沿实现启动转换——只需占用一个I/O端口或一个I/O线。 ADC0809与系统的连接例 软件延时等待(比如延时1ms) 此时不用EOC信号,CPU效率最低 软件查询EOC状态。 EOC作为中断申请信号,接到8259的IN端。 在中断服务程序中读入转换结果,效率较高 操作方式 启动有12位/8位两种(取决于A0) 输出有三种(取决于12/8 和A0两个信号) : 12/8接+5V :12位输出 12/8接地:高8位/低4位输出(取决于A0) A0=0 由D11~D4输出高8位(D3~D0高阻) A0=1 由D3~D0输出低4位 (D7~D4全0、D11~D8高阻) R/C=0 启动转换,R/C=1 读转换结果 STS=1 正在转换,STS=0 转换完成 AD1674与8088CPU接口框图 (P345 图6.29 接口举例) 图6.29接口电路的查询方式下转换程序 (P346 ) Start: mov DX, DR0 out DX, AL ; 使R/C=0, 启动A/D转换 mov DX, DR3 Stest: in AL, DX ; 读STS状态 and AL, 80H jnz Stest ; 未转换完,再测试 mov DX, DR1 in AL, DX ; 转换完,读入高4位 mov BH, AL ; BH?高4位 mov DX, DR2 in AL, DX ; 读入低8位 mov BL, AL ; BL?低8位,得BX?转换结果
文档评论(0)