精华内容
下载资源
问答
  • DAC0832输出与显示实验
    2022-04-06 09:36:36

    实验要求:

    1. 画出完整电路;
    2. 通过按键控制步进电机(或直流电机)正反转,加减速功能。
    3. 增加两个指示灯,显示电机当前正反转状态

    参考电路:

    参考程序:

    #include<reg52.h>

    #define uint unsigned int 
    #define uchar unsigned char

    uchar num;
    uchar temp=0,a=0;

    void main(    )
    {    
        TMOD=0x01;//模式设置0000 0001采用的是定时器0(M1=0,M0=1)
        TH0=(65536-10000)/256;  //每一步定时10ms
        TL0=(65526-10000)%256;
        EA=1;  //开总中断
        ET0=1; //开定时器0中断
        TR0=1; //开定时器0
        while(1)
        {
            if(a==0)//输出三角波上升沿部分
            {
                P2=temp;//输出数据
                temp++;//三角波上升沿
                if(temp==100)//到达最大值
                    a=1;//上升结束准备进入下降沿部分
            }
            if(a==1)//输出下降沿波形部分
            {
                P2=temp;//输出数据
                temp--;//三角波下降沿
                if(temp==0)//到达最小值
                    a=0;//进入下一周期
            }
        }
    }
    void timer0() interrupt 1
    {    
        TH0=(65536-10000)/256;  //每一步定时10ms
        TL0=(65526-10000)%256;
        P2 = temp;
    }
     

     

    更多相关内容
  • DAC0832内部工作原理探索DAC0832输出电压的方法

    万次阅读 多人点赞 2018-04-29 13:14:46
    2,开发环境:Keil uv53、参考文献:http://www.dzsc.com/dzbbs/20060112/200765185329109342.html最近在通过51单片机利用DAC0832方波,发现信号无输出DAC0832这款DA芯片虽然物美价廉,使用直通方式的话几乎不需要...
    开发环境(蓝色粗体字为特别注意内容)
    1,开发板:STC12C5A60S2,DAC0832。
    2,开发环境:Keil uv5

    3、参考文献:http://www.dzsc.com/dzbbs/20060112/200765185329109342.html

    最近在通过51单片机利用DAC0832方波,发现信号无输出,DAC0832这款DA芯片虽然物美价廉,使用直通方式的话几乎不需要外接元件就能够输出电流,使用起来着实方便,但是这款芯片是电流输出,这一点着实坑人!!!一般应用中主要是电压输出为主,所以一般应用中会在IO1,IO2输出引脚接一个运放,来把电流输出转化为电压输出,但是这样问题就来了,由DAC0832的datasheet我们知道,按照直通方式的标准用法:


    实际使用方式如下:


    我们知道输出电压

    Vout=-(Iout1*Rfb)
        =-Vref(DIGITAL_INPUT)10/256

    Vref为参考电压,其中Rfb为DAC0832内部反馈电阻,10表示数字量的10进制表示,DIGITAL_INPUT表示D0到D7的输入数字量,一共8位可以表示0-255。

    由此我们可以知道Vref取VCC的时候,运放应该是输出负电压的,其值为-Vref~0,这一点很关键,上面的电路图我没有仿真过,也没有动手实验过(因为需要用到正负电源,我手头没有正负电源),网上的大部分资料的基本原理也是基于以上电路的,因此电路应该是没问题的。

    但是,当你运放的电源不是正负电源的话,就会发生非常奇怪的种种问题,以前调试了好几天最后不得不放弃,现在被迫向这个难题发起挑战,下面我们来一步一步分析一下。

    单电源使用电路图如下:


    上面的电路图我们可以发现运放358的4脚接地,这一点很关键。说明该运放使用单电源供电,即输出总是大于0,不可能输出负电压的,于是乎就遇到了类似大多数网友所遇到的问题------DAC0832无输出的问题。此时如果我们用示波器观察Io1引脚的波形,我们可以看到运放如下波形(我利用单片机输出方波,VCC=5V)


    从示波器,我们可以看到输出几乎为0v,这也就印证了运放单电源供电方式无法输出负电压,于是我们测量IO1引脚,可以看到有信号输出:


    虽然有信号输出,但是方波显然不太对劲,幅度为1.5V左右。

    单片机程序如下:

    unsigned int Count = 0; //计数器
    unsigned int Squ_Per = 256;
    Square_wave(Squ_Per, &Count);
    Count += 4;
    
    
    #define DATA P2
    void Square_wave(unsigned int Per, unsigned int *Count)
    {
    	//DATA=0x5f;
    	if(*Count >= Per) *Count = 0;
    	if(*Count < Per / 2)
    	{
    		DATA = 0x00;
    	}
    	else
    	{
    		DATA = 0xFF;
    	}
    
    }

    如果,Io1接上一个LED,可以通过设置P2口的数值来改变LED的亮度,利用这种方式也可以检验DAC0832是否正常工作。电路如下:


    回到我们一开始的问题,本文的目的是从DAC0832的数模变换原理来探索出利用单电源使得芯片输出满足要求的电压信号的使用方式。因此我们不得不深入了解DAC0832的工作方式,这方面的资料,网上有很多,但是都是抄来抄去的,理解起来比较费劲,大家也可以作为参考资料看看。下面我们从datasheet里面分析。该datasheet我已经放到文章后面的下载连接里了,需要的朋友可以点击下载。


    由于该芯片是8位的,可以理解为控制着8个小开关,如上如图,为了更加直观,我们画成下面这样:

    当某一位数据为0的时候,该位对应的小开关打向左边(和Iout2连接),为1的时候则打向右边。从芯片内部的这个结构,我们很容易就能够理解DAC0832电流输出方式的工作原理,根据此原理,我们稍微调整一下思路,略施小计,做一下小小的改动,就能够让这玩意输出电压,而不是讨厌的电流,关键就在于Io1接上一个稳压二极管,设稳压二极管的击穿电压为Vdc,则DAC0832的输出电压为

    Vdc*(DIGITAL_INPUT)/256

    下图是我接上一个3.3v的稳压二极管,但是测试发现,Io1引脚的电压却是2.0v左右,测试该引脚波形如下:

    看来还真的得使用高精度稳压二极管。

    输出波形如下:


    基本可以,但是很奇怪,有个细节需要注意一下,从示波器上看,波形不是0~2v而是200mv~1.8v!!!!!

    查了半天,最后发现是D5引脚和单片机P2.7的连线断路!!!!!!!大哭

    把线路连接起来之后就正常了:)


    这下就完美了:)))))

    电源不纯净,有点纹波:


    我示波器接地的时候也有20mv左右的幅度,电源不纯净的原因,所以低电平是正常的。

    例如我们需要输出0~5V则我们可以接上一个5V的稳压二极管,直接就能够输出我们所需要的电压,这种使用方式甚至连运放都可以省掉。很是巧妙,芯片输出正电压以后,后面就好办了,该怎么处理就怎么处理,加个单电源同相放大器就行,这样就能够实现单电压工作,电路图,以及相关资料我已经打包,供需要的朋友下载。

    DAC0832+LM358 +5v单电源使用方式相关资料

    展开全文
  • 其次OP的失调电压也会被OP自己放大,并加到测量的输出结果中去。 使用电流——电压转换电路可以避免上面两点不足。电路结构如图13。输入电流直接接入OP的求和点(反相输入端),由KCL定理可知,OP输出端将通过R1

    1.使用OP-AMP电路将电压转换为电流

    在这里插入图片描述
    输出引脚将连接到 LM358 OPAMP,它们将连接到 DC0832。输出将通过60 Ω电阻连接到RFB引脚。电阻的值将根据电路而变化。输出电压将等于VREF上给出的功率。VREF将描述最大输出电压(VREF是A/D的基准电压,是A/D测量电压的标准,VREF精度高,A/D转换精度才有保障。)。OPAMP不仅将电流转换为电压。它还会增加OP-AMP输出引脚的电压电平,这就是为什么电阻器将用于获得确切电压的原因。电压将在 VCC 上提供,接地将在 GN 引脚上提供。控制引脚将按 ILE 接地。它需要高电平才能给出输出。输出电压将为5V,但只有当我们的数字输入为总高电平时才会发生这种情况。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BMbBpBpw-1645432954279)(C:\Users\86156\Desktop\picture\image-20220221163605456.png)]

    利用OP进行电流测量,有两种方法。利用电流在电阻上的压降,再进行电压放大,或者直接将电流注入OP的求和点。这样的电路,转换得到的电压信号可以直接加在OP放大的输入端上。这种转换方式有两个不妥的地方:首先电阻的加入将会破坏电路原来的状态,带来测量上的误差。其次OP的失调电压也会被OP自己放大,并加到测量的输出结果中去。

    使用电流——电压转换电路可以避免上面两点不足。电路结构如图13。输入电流直接接入OP的求和点(反相输入端),由KCL定理可知,OP输出端将通过R1向这个点(求和点)提供同样大小的电流以达到平衡,电路的增益(这里叫跨导似乎更好——译者)由R1决定。本电路唯一的误差来源于输入偏置电流Ibias,该电流作为误差,和输入电流IIN做了代数叠加。

    DAC0832 在变形虫 2 中的示例

    您可能会注意到,当我们应用所有高电平逻辑时,输出为5伏,等于VREF电压。由于使用了运算放大器转换,输出电压超过5V。为了使其完美,使用60欧姆电阻使输出等于5伏。电阻的大小每次都取决于运算放大器的功率。电压值因功率不同而变化

    电流——电压转换电路的用途不限于电流的测量上,还可以用在例如后面的光电池放大电路中。在设计中唯一需要注意的是电路的增益的选择,增益的选择要做到使得偏置电流所带来的误差达到最小。由于信号源的电压和内阻通常是不恒定的,OP必须对单位增益做补偿。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RP8z7Kpb-1645432954280)(C:\Users\86156\Desktop\picture\image-20220221163759987.png)]

    展开全文
  • AT89C51通过DAC0832输出正弦波proteus仿真源文件(含C程序源码),采用AT89C51+0832+op07输出正弦波,包含proteus工程源文件,单片机C语言程序。proteus8.6可正常打开,仿真。
  • 利用 DAC0832 输出模拟电压

    千次阅读 2016-01-25 12:01:45
    以前,做而论道写过一篇关于 DAC0832 的博文,网址链接是:...后来,时常有人留言或私信,提出怎样利用单片机来驱动 DAC0832 输出周期电压波形、以及如何编程的问题。其实,用单片机输出数字量,还真是

    以前,做而论道写过一篇关于 DAC0832 的博文,网址链接是:


    http://hi.baidu.com/do_sermon/item/7935ea093ec1c617addc7098


    当时,为了直观的说明 DAC0832 的基本功能,就使用了拨动开关来输入数字量。


    后来,时常有人留言或私信,提出怎样利用单片机来驱动 DAC0832 输出周期电压波形、以及如何编程的问题。


    其实,用单片机输出数字量,还真是很简单方便的。


    电路,也不用像课本里面画的那么复杂,用任意一个单片机的并行口连接到 DAC0832 的数据输入口即可。


    用 P1 口,驱动 0832 的电路如下:


    利用 DAC0832 输出模拟电压 - 非著名博主 - 电子信息角落


    图片链接:http://xiangce.baidu.com/picture/detail/6b6fcb9227f2bf7890e03718dd1dca4037e1b783


    按照这个电路,写入、执行下列的小程序,可以看到输出的锯齿波电压的波形图如下所示:


        ORG   0000H

        JMP   START

    START:

    ;------------------------------------------

        MOV   R2,  #0

    LOOP:

        MOV   P1,  R2      ;输出

        CALL  DELAY        ;延时

        INC   R2

        SJMP  LOOP

    ;---------------

    DELAY:                 ;延时子程序

        MOV   R6,  #2;1;127

    DEL1:

        MOV   R7,  #200

    DEL2:

        DJNZ  R7,  DEL2    ;内循环200遍

        DJNZ  R6,  DEL1    ;外循环127遍

        RET

    ;------------------------------------------

    END


    利用 DAC0832 输出模拟电压 - 非著名博主 - 电子信息角落


    看波形,还是稍微有些失真呵。


    同样还是这个电路,执行下列的程序,看看,会出现什么波形?


        ORG   0000H

        JMP   START

    START:

    ;------------------------------------------

    SINE:

        MOV   R1, #00H

        MOV   DPTR, #SINTAB

    LOOP:

        MOV   A, R1

        MOVC  A, @A + DPTR  ;取数据

        MOV   P1, A         ;输出,D/A 转换

        INC   R1

        CALL  DELAY         ;延时

        SJMP  LOOP

    ;---------------

    SINTAB:                 ;正弦波数据表

        DB  07FH, 083H, 086H, 089H, 08CH, 08FH, 092H, 095H

        DB  098H, 09BH, 09EH, 0A1H, 0A4H, 0A7H, 0AAH, 0ADH

        DB  0B0H, 0B3H, 0B6H, 0B9H, 0BBH, 0BEH, 0C1H, 0C3H

        DB  0C6H, 0C9H, 0CBH, 0CEH, 0D0H, 0D2H, 0D5H, 0D7H

        DB  0D9H, 0DBH, 0DEH, 0E0H, 0E2H, 0E4H, 0E5H, 0E7H

        DB  0E9H, 0EBH, 0ECH, 0EEH, 0EFH, 0F1H, 0F2H, 0F4H

        DB  0F5H, 0F6H, 0F7H, 0F8H, 0F9H, 0FAH, 0FBH, 0FBH

        DB  0FCH, 0FDH, 0FDH, 0FDH, 0FEH, 0FEH, 0FEH, 0FEH

        DB  0FFH, 0FEH, 0FEH, 0FEH, 0FEH, 0FDH, 0FDH, 0FDH

        DB  0FCH, 0FBH, 0FBH, 0FAH, 0F9H, 0F8H, 0F7H, 0F6H

        DB  0F5H, 0F4H, 0F2H, 0F1H, 0EFH, 0EEH, 0ECH, 0EBH

        DB  0E9H, 0E7H, 0E5H, 0E4H, 0E2H, 0E0H, 0DEH, 0DBH

        DB  0D9H, 0D7H, 0D5H, 0D2H, 0D0H, 0CEH, 0CBH, 0C9H

        DB  0C6H, 0C3H, 0C1H, 0BEH, 0BBH, 0B9H, 0B6H, 0B3H

        DB  0B0H, 0ADH, 0AAH, 0A7H, 0A4H, 0A1H, 09EH, 09BH

        DB  098H, 095H, 092H, 08FH, 08CH, 089H, 086H, 083H

        DB  7FH, 7CH, 79H, 76H, 73H, 70H, 6DH, 6AH

        DB  67H, 64H, 61H, 5EH, 5BH, 58H, 55H, 52H

        DB  4FH, 4CH, 49H, 46H, 44H, 41H, 3EH, 3BH

        DB  39H, 36H, 34H, 31H, 2FH, 2CH, 2AH, 28H

        DB  26H, 23H, 21H, 1FH, 1DH, 1BH, 19H, 18H

        DB  16H, 14H, 12H, 11H, 0FH, 0EH, 0DH, 0BH

        DB  0AH, 09H, 08H, 07H, 06H, 05H, 04H, 03H

        DB  03H, 02H, 02H, 01H, 01H, 01H, 01H, 00H

        DB  00H, 00H, 01H, 01H, 01H, 01H, 02H, 02H

        DB  03H, 03H, 04H, 05H, 06H, 07H, 08H, 09H

        DB  0AH, 0BH, 0DH, 0EH, 0FH, 11H, 12H, 14H

        DB  16H, 18H, 19H, 1BH, 1DH, 1FH, 21H, 23H

        DB  26H, 28H, 2AH, 2CH, 2FH, 31H, 34H, 36H

        DB  39H, 3BH, 3EH, 41H, 44H, 46H, 49H, 4CH

        DB  4FH, 52H, 55H, 58H, 5BH, 5EH, 61H, 64H

        DB  67H, 6AH, 6DH, 70H, 73H, 76H, 79H, 7CH

    ;---------------

    DELAY:                  ;延时子程序

        MOV   R6,   #1;127

    DEL1:

        MOV   R7,   #200

    DEL2:

        DJNZ  R7,   DEL2    ;内循环200遍

        DJNZ  R6,   DEL1    ;外循环127遍

        RET

    ;------------------------------------------

    END


    利用 DAC0832 输出模拟电压 - 非著名博主 - 电子信息角落


    确实是个正弦波。


    想要改变波形的形状,修改程序中的数据表内容即可。


    想要改变波形的周期,修改程序中的延时子程序即可。



    展开全文
  • 根据对DAC0832的数据锁存器和DAC寄存器的不同的控制方式,DAC0832有三种工作方式:直通方式、单缓冲方式和双缓冲方式。
  • DAC0832产生锯齿波电压
  • DAC0830的芯片手册中可以了解到,输出IOUT1是与施加的参考电压和数字输入字的乘积成正比的电流。 为了实现应用的多功能性,第二个输出IOUT2作为电流提供,与数字输入的补码成正比。 数字输入为所施加的8位二...
  • 单片机实验:利用DAC0832输出一个幅值为5,周期为1KHZ的连续方波
  • 以下仅是本人结合《STM32F10xx参考手册》和编程经验写的心得,错漏疏失在所难免,欢迎读者批评指正,不胜感激!
  • 【Proteus仿真】51单片机+DAC0832+数码管制作0-25V电压可调
  • 它提供一种4倍VREF标称输出电压范围,例如,如果某项设计需要-8 V~+8 V输出电压范围,这属于一种非工业标准4 V参考电压,它没有考虑到DAC的零点误差和满度误差,并且可能会影响输出电压范围。  为了克服这个问题...
  • 为了使DAC完全可行,我们需要控制所有5个控制引脚。引脚ILE应为高电平,其他控制引脚CS、WR1、WR2和XFER应为低电平,以使DAC正常工作。 1.电路图 2.代码 #include<reg51.h> #include<absacc.h> void ...
  • DAC0832转换器

    千次阅读 多人点赞 2020-05-26 09:39:24
    D/A转换器的直接输出是电流量,若片内有输出放大器,则能输出电压量,并能实现单极性或双极性电压输出。D/A转换器的转换速度较快,一般其电流建立时间为1μs。有些D/A转换器具有其它功能,如能输出多路模拟量、输出...
  • 用51单片机控制DAC0832输出锯齿波在PROTUSE中仿真,非常简单。 程序: #include #include void main() { unsigned char k; while (1) { _nop_(); _nop_(); for (k = 255; k > 0; k--) { P1 = k; _nop_()...
  • 电路图仿真文件及完整的源代码下载地址:http://www.51hei.com/bbs/dpj-20395-1.html下面是汇编程序源码,可以用按键来控制org 0000hajmp mainorg0030hmain:mov a,#00hclr p1.0clr p1.1jnb p3.0, zhengxuanjnb p3.1,...
  • 压缩包含源代码和仿真,代码通俗易懂 输出电压范围0.1-5V,步进0.1V 1602屏显示电压设置值 4*4矩阵键盘设置 键盘输入0.1再按= 就输出0.1V
  • 硬件包括单片机、输入/输出设备、以及外围应用电路等组成的系统,软件是主要是工作的程序通过编写程序来控制输入的信号。二、设计任务分析1.该设计包括硬件和软件设计两个部分。模块划分为数据采集、按键设定、报警 ...
  • DAC0832产生锯齿波电压 #include<reg51.h> //包含单片机寄存器的头文件 #include<absacc.h> //包含对片外存储器地址进行操作的头文件 sbit CS=P2^7; //将CS位定义为P2.7引脚 sbit WR12=P3^6; //将WR12位定义为P3.6...
  • dac0832的应用电路仿真 dac输出电流,经放大器转换为电压,然后驱动一个发光二极管, 并且放光二极管在最亮与最暗时候,由蜂鸣器报警 电压表可以读出模拟电压的读数 c源程序跟hex文件齐全+Proteus仿真
  • 原理框图如下图所示,采用8051单片机产生波形,D/A转换器将其转化为模拟电压,再经过放大器放大。...电源部分输出+5V,+15V,-15V电压供给系统,另外还制作+5.12V直流稳压电源做DAC0832的VERF的基准电压
  • (注:题目来源,小蜜蜂老师) ... DAC的输出模式有3种。... 模式3中,数码管左边显示“-3-”,数码管右边显示PCF8591芯片AIN3通道的实时输入电压,并将该电压作为DAC的输出参数,使DAC输出电压和PCF85...
  • DAC0832单电源使用方式,本人辛苦研究了好几天,终于探索出一种全新DAC0832单电源使用方式...芯片输出电压Vout=Vdc*(DIGITAL_INPUT/256),其中Vdc为稳压二极管的击穿电压,独乐乐不如众乐乐,特分享给大家,拿走不谢。
  • 利用c51单片机和DAC0832产生矩形波
  • 各种DAC输出电压详细版

    千次阅读 2020-08-17 23:59:34
    输出电压 之后的更低位的电流源的电流依次减半。 书上的芯片把IREFI_{REF}IREF​的运算放大器包含在芯片内了,只要提供电阻RRR_RRR​和VREFV_{REF}VREF​就行了. 开关树型 权电容型 总结 ..
  • 51单片机用DAC0832产生锯齿波proteus源文件(含C源码),DAC0832外接UA741运放,产生锯齿波电压
  • STM32F0xx_DAC输出电压配置详细过程 验证通过
  • DAC可以将单片机输出的数字量转换成模拟量,产生波形 以下是代码和效果图 #include<reg51.h> #define uchar unsigned char const tab[]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff...
  • 信号发生器(包含正弦波、方波、三角波)频率、幅度可调。特点:碍于开发板DAC0832接口VREF接VCC,利用代码实现幅度调节而又不失去精准度。文件包含仿真+源码。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 6,669
精华内容 2,667
关键字:

dac0832输出电压

友情链接: statisticspicture.rar