单片机的 D/A 和 A/D

DAC

D/A(数/模)转换器输入的是数字量,经转换后输出的是模拟量。转换过程是先将D/A转换器的各位二进制数按其权值大小转换为相应的模拟分量,然后再以叠加方法把各模拟分量相加,其和就是D/A转换的结果。

D/A的结构原理图如下:

1017814-20170528143010125-770464708.png

D/A的工作方式分类

1.单缓冲工作方式
2.双缓冲工作方式
3.直通工作方式

单片机的工作的原理是,CS与WR1控制着第一缓冲区的输入,WR2与XFER控制着第二缓冲区的输入。
1017814-20170528145241141-2025957181.png

    MOV DPTR ,#0DFFFH
    MOV A,#data1
    MOVX @DPTR,A
    MOV DPTR ,#7FFFH
    MOVX @DPTR,A

上述代码是用于双缓冲工作方式的,其中DPTR的两次赋值别是控制不同的缓冲区(这里是以0有效所编写的代码),DPTR第一次赋值为#0DFFFH是为了启动第一个缓冲区,将数据保存起来,第二赋值是启动第二个缓冲区,将数据进行转换。




ADC的结构

ADC是一种8路模拟输入8路数字输出的逐次比较型A/D转换器。

1017814-20170528152530188-861328304.png
1017814-20170528153038078-1302269268.png

单片机如何控制ADC?

首先选择ADC一个模拟输入通道,然后产生一个启动信号给ADC的START脚,对选中通道进行转换。当转换结束后,ADC发出转换结束信号EOC,该信号可供查询,也可作为单片机发出的中断请求信号;EOC信号有效后,执行读操作:MOVX A,@DPTR,,单片机发出RD信号加到OE端,把转换完毕的数字量读到单片机中。

个人总结:

在进行A/D转换还是D/A转换的时候,首先需要找到相应的"地址"(所谓的地址就是使相应组件进行工作的控制信号),例如:如果需要将一个数字量转换为一个模拟量,首先需要啊使一级缓冲和二级缓冲分别有效(一级缓冲用到的有CS和WR1,二级缓冲用到的有XFER和WR2),这里还是以0有效为例,启动第一缓存的DPTR为0DFFFH,启动第二缓冲的DPTR为7FFFH。就是将相应的控制开打开将数据存入到缓冲中去。

转载于:https://www.cnblogs.com/gxcstyle/p/6915661.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值