- 1、本文档共125页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第三章ADC和DAC资料
一、DAC组成 1、数字量输入端 2、模拟量输出端 3、基准电压 二、DAC分类 按数字输入端分类: 1、无数据锁存器 2、带单数据锁存器 3、带双数据锁存器 4、接收串行数字输入 三、模拟量输出方式 电压 电流(常用) 0832的工作方式 1. 单缓冲方式——使DAC0832的两个输入寄存器中有一个处于直通方式,而另一个处于受控的锁存方式,当然也可使两个寄存器同时选通及锁存。 适用于一路模拟量输出,或多路模拟量非同步输出; 2.双缓冲方式——输入寄存器和DAC寄存器分配有各自的地址,可分别选通,即DAC0832的两个锁存器都接成受控锁存方式。 适用于多个DAC0832同时输出; 由于两个锁存器分别占据两个地址,因此在程序中需要使用两条传送指令,才能完成一个数字量的模拟转换。假设第一输入寄存器地址为FEFFH,第二输入寄存器地址为FDFFH,则完成一次D/A转换的程序段应为: MOV A, #DATA ;转换数据送入A MOV DPTR,#FEFFH ;指向输入寄存器 MOVX @DPTR, A ;转换数据送输入寄存器 MOV DPTR,#FDFFH ;指向DAC寄存器 MOVX @DPTR, A ;数据进入DAC寄存器并进行D/A转换。 MOV R0, #40H MOV R2, #00H MOV R7, #08H LOOP: MOV DPTR, #0BFFFH MOV A, R2 MOVX @ DPTR, A MOV DPTR, #7FFFH MOV A, @R0 MOVX @DPTR, A ACALL DELAY INC R0 INC R2 DJNZ R7, LOOP RET 3. 直通方式——输入寄存器和DAC寄存器共用一个地址,同时选通输出。 适用于连续反馈控制线路。 判断转换是否结束,并读取转换结果方法有三: 1、查询EOC是否等于1 如P1.0=EOC,如下程序: … loop: jnb P1.0, loop mov a, P0 … 2、软件延时10us以上 由于AD转换一次至少需要10us的时间,可以延时10us之后,认为一次转换已经结束,直接从数据总线上读取转换结果。 如程序: MOVX @DPTR, A ;启动一次AD转换 CALL DELAY10us MOV A, P0 …… DELAY10us: …… 3、中断的应用 利用80C51内部中断源,由于INT1/INT0是低电平有效,所以由EOC出来的电平必须外加反相器,才可与INT1/INT0相连。 启动A/D转换只需使用1条MOVX指令。在此之前,要将P2.7清0并将末3位与所选择的通道号相对应的口地址送入数据指针DPTR中。 例如当ADDA、ADDB、ADDC分别与P0.0、P0.1、P0.2相连时,启动IN7的A/D转换指令如下: MOV DPTR,#7FFFH ;送入0809的口地址 MOV A,#07H ;P0.2-P0.0=111,选择IN7通道 MOVX @DPRT, A ;启动A/D转换 采用中断的方式对8路模拟输入信号进行A/D转换并把转换结果存入内部数据存储器。设数据存储器的首地址为30H,程序如下: 主要性能为: (1)逐次逼近ADC,可选择工作于12位,也可工作于8位。 (2)转换后的数据有两种读出方式: 12位一次读出; 8位、4位两次读出。 (3)具有可控三态输出缓冲器,逻辑电平为TTL电平。 (4)非线性误差:AD574AJ为±1LSB,AD574AK为±1/2LSB。 AD574编程特点: 1、CE=1,CS=0,R/C=0方启动转换; 2、转换开始后,STS=1; 3、转换结束后,STS=0; 4、采用中断或者查询法读取转换结果; 5、单片机分两次读取转换结果:先读高8位(CE=1, 12/8=0, R/C=1, A0=0),再读低4位(CE=1, 12/8=0, R/C=1, A0=1);
文档评论(0)