• 单片机的 D/A 和 A/D


    DAC

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

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

    D/A的工作方式分类

    1.单缓冲工作方式

    2.双缓冲工作方式

    3.直通工作方式

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

        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转换器。 ![](http://images2015.cnblogs.com/blog/1017814/201705/1017814-20170528152530188-861328304.png) ![](http://images2015.cnblogs.com/blog/1017814/201705/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。就是将相应的控制开打开将数据存入到缓冲中去。

  • 相关阅读:
    Gym-101128D:Dice Cup
    C++内联汇编,输出人物名字
    钩子
    列表控件ListBox关联的MFC中的类:CListBox
    高级列表控件ListCtrl关联的MFC中的类:CListCtrl
    菜单复选及窗口置顶
    MFC学习之EDIT控件初始化
    dbgprint_Mine 调试输出
    64位内联汇编
    win7下提权代码
  • 原文地址:https://www.cnblogs.com/gxcstyle/p/6915661.html
Copyright © 2020-2023  润新知