第4章模拟量输入出通道.ppt

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

图4-18 用定时法读A/D转换数的接口 设CPU时钟为12 MHz, 那么接口程序清单如下:  ADC8: MOV R1, #30H ; 数据区首地址#30H→R3  MOV R2, #08H ; 8路输入  MOV DPTR,#7F00H ; DPTR指向0809 in0通道地址 START: MOVX @DPTR, A ; 启动A/D转换 MOV R6, #00H ; 延时256 μs TIME: DJNZ R6, TIME MOVX A, @DPTR ; 延时时间到,读入数据 MOV @R1,A ; 存A/D转换数据 INC R1 ; 数据区地址加1 INC DPTR ; 口地址加1 DJNZ R2, START ; 下一通道A/D转换 RET (3) 用中断法读A/D转换数的接口如图4-19所示。 本例中用EOC向CPU发中断请求, 在中断服务程序中读入数据。 图4-19 用中断法读A/D转换的接口 其参考程序清单如下: ORG 0000H  AJMPMAIN ORG 0003H ; INT0中断矢量 AJMP INT0 ; 转INT0中断程序入口 主程序 ORG 0100H MAIN: MOV R0, #30H ; 片内RAM首地址 MOV R2, #08H ; 转换8路A/D SETB IT0 ; INT0边沿触发  SETB EA ; 开中断 SETB EX0 ; 允许INT0中断 MOV DPTR, #7F00H; 选IN0通道地址 MOVX @DPTR, A ; 启动A/D转换 WAIT: SJMP WAIT ; 等待中断 以下为INT0中断服务程序: ORG 0200H INT0: MOVX A, @DPTR ; 读A/D转换结果 MOV @R0, A ; 存数 INC R0 ; 更新存储单元地址 INC DPTR ; 更新通道地址 MOVX @DPTR, A ; 启动A/D转换 DJNZ R2, LOOP ; 巡回未完继续 CLR EX0 ; 采集完,关中断 LOOP: RETI ; 中断返回 图4-20给出了12位A/D转换器AD574与8031单片机的接口电路。根据接线图,可知:(1) AD574的CS片选端接锁存器的Q7端,A0端接锁存器的Q1端,R/C端接锁存器的Q0端,8031的WR和RD经与非门同AD574的CE端相接,因此,AD574启动12位A/D转换的地址为FF7CH;读高8位数据的地址为FF7DH;读低4位数据的地址为FF7FH。    (2) 12/8接地表示8031要分两次从AD574读出A/D转换后的12位数字量。    (3) 图中,BIF OFF的接法表示10Vin或20Vin被设定为双极性电压输入。若要使10Vin或20Vin被设定为单极性电压输入, 接线方式需作相应改变。   例4-3 在图4-20中,试编写程序,使AD574进行12位A/D转换,并把转换后的12位数字量存入内部20H和21H单元。 设20H单元存放高8位,21H单元存放低4位。 图4-20 AD574与8031接口电路 解 程序清单如下: ? ORG 0000H  MOV R0, #20H ; 数据区首地址 MOV DPTR, #0FF7CH MOVX @DPTR, A   ; 启动A/D转换 LOOP: JB P1.0, LOO

文档评论(0)

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

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

1亿VIP精品文档

相关文档