当前位置:首页 > > 充电吧
[导读]以前,做而论道写过一篇关于 DAC0832 的博文当时,为了直观的说明 DAC0832 的基本功能,就使用了拨动开关来输入数字量。后来,时常有人留言或私信,提出怎样利用单片机来驱动 DAC0832 输

以前,做而论道写过一篇关于 DAC0832 的博文


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


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


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


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


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



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


    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



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


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


    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



确实是个正弦波。


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


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



本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

最近帮别人设计一个毕业设计,做一个多种信号发生器(四种波形:方波、三角波、锯齿波、梯形波),现在贴上来给大家参考,如果有错误的地方,望指出~

关键字: 51单片机 dac0832 信号发生器

程序框图 程序ORG 05E0H05E0 758153 SE13: MOV SP,#53H05E3 757E00 MOV 7EH,#00H05E6 757D08 MOV 7DH,#08H05E9 757C03 MOV...

关键字: dac0832 转换程序

以前,做而论道写过一篇关于 DAC0832 的博文当时,为了直观的说明 DAC0832 的基本功能,就使用了拨动开关来输入数字量。后来,时常有人留言或私信,提出怎样利用单片机来驱动 DAC0832 输

关键字: dac0832 单片机 模拟电压

用 51 单片机和 DAC0832 做波形发生器, LM324 放大怎么没有波形呢 ?楼主的电路,给 LM324 仅加上了 +12V 的电源。LM324,可以单电源使用,也可以用正负双电源。对于本电路

关键字: 51 dac0832 单片机 波形发生器

1 引言 在A/D转换器中,比较器重要性能指标是工作速度、精度、功耗、输入失调电压、正反馈时产生的回程噪声等,这些指标影响和制约着整个A/D转换器的性能。高速比较器

关键字: 模拟电压 比较器 电源技术解析 锁存器 a/d转换器

该数控直流恒流源采用模块化,通过开关和按钮的设置,配合INTEL AT89C55单片机的编程实现数字控制,数字显示,同时用DAC0832实现D/A转换,输出模拟控制电压,再用运放和功率

关键字: dac0832 Intel 电源技术解析 纹波电流 数控直流恒流源 at89c55单片机

有些应用需要对一组模拟电压的采样,至少有两种传统方法可以满足这种要求。最常见的办法是将一个经典的模拟累加器与一个采样保持放大器级联。经典的模拟累加器是一个运放加

关键字: 保持放大器 模拟电压 电源技术解析 双与门

本文介绍了激光功率计的变换与显示电路,该电路的主要功能是直接指示激光功率的大小。该电路把由激光功率计输出的模拟电压量变为数字脉冲输出,并且把输出脉冲的频率实时显示出来,同时具有精度高、线性好、工作稳定的特点。

关键字: 显示电路 模拟电压 电源电池电路 电路

52控制DAC0832芯片输出电流,让发光二极管D12由灭均匀变到最亮,再有亮变灭,在最亮和最灭的时候蜂鸣器发出报警声,完成整个周期的时间是控制在5s左右。#include#define uchar unsigned c...

关键字: dac0832 LED 单片机

DAC0832是由8位输入锁存器、8位DAC寄存器、8位D/A转换电路组成,采用二次缓冲方式,这样可以在输出的同事,输入下一个数据,以提高转换速度。更重要的是能够在多个转换器同时工作时,有可能同时输出模拟量。其内部结

关键字: 引脚图 结构 dac0832
关闭