编程语言
首页 > 编程语言> > 基于单片机的D/A三角波发生器设计(电路+程序)

基于单片机的D/A三角波发生器设计(电路+程序)

作者:互联网

 

关注【电子开发圈】微信公众号,一起学习吧!

电子DIY、Arduino、51单片机、STM32单片机、FPGA……
电子百科、开发技术、职业经验、趣味知识、科技头条、设备拆机……

点击链接,免费下载100G+电子设计学习资料!

http://mp.weixin.qq.com/mp/homepage?__biz=MzU3OTczMzk5Mg==&hid=7&sn=ad5d5d0f15df84f4a92ebf72f88d4ee8&scene=18#wechat_redirect

 

D/A转换器

工作方式:

————————————————————————————————————————————

基于DAC0832的三角波发生器实验

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

实验说明:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

接线说明:

DAC0832

DI0-DI7

89C51

P0.0-P0.7

8位数据输入输出

  

CS

  

P3.7/RD

输入寄存器选择信号

  

WR1

  

P3.6/WR

输入寄存器写选通信号

  

WR2/XFER/GND*2/

其他

GND

WR2和XFER始终低电平

  

VREF/VCC/ILE

  

POWER

ILE始终允许锁存

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

实现代码:

#include <reg52.h>
typedef unsigned char uchar;
typedef unsigned int uint;
sbit cs = P3 ^ 7;
sbit wr = P3 ^ 6;
void Delay(uchar m)
{
    while(m--);
}
void main()
{
    uchar k = 0; //设置k的初始值为0
    cs = 0; //当CS与WR1端置低电平时做好写数据的准备,只要P0口有数据输出,DAC0832将会转换成模拟信号
    wr = 0;
    while(1) //通过输出值在 0-255和255-0之间变化,通过示波器可以看到模拟信号的情况
    {
        while(1) //输出值在0-255之间变化
        {
            P0 = k++; //输出k且k+1
            Delay(1);
            if (k == 0xff) //到达255时结束循环
                break;
        }
        while(1) //输出值在255-0之间变化
        {
            P0 = k--; //输出k且k-1
            Delay(1);
            if (k == 0x00) //到达0时结束循环
                break;
        }
    }
}

 

标签:输出,WR1,发生器,DAC0832,单片机,电路,WR2,寄存器
来源: https://blog.csdn.net/weixin_42625444/article/details/93472726