单片机 信号发生器(DAC0832)

单片机 信号发生器(DAC0832)

一、简述

    采用DAC0832芯片设计一个正弦波信号发生器。(数字信号转为模拟信号)

    例子打包:链接: https://pan.baidu.com/s/1CwFNgUxVFPWeyFdrIA9fsg 提取码: 6ydr 

    正弦波、余弦波数据生成器:链接: https://pan.baidu.com/s/1Q5Ype8DW8XKY8TtXK_s6Ew 提取码: cxvi 

二、效果

 

三、工程结构

1、Keil工程

2、仿真电路图

四、源文件

#include<reg51.h>
#define uint unsigned int
#define uchar unsigned char
unsigned int code sin_dat[360]=
{0x80,0x82,0x84,0x86,0x88,0x8b,0x8d,0x8f,0x91,0x94,0x96,0x98,
0x9a,0x9c,0x9e,0xa1,0xa3,0xa5,0xa7,0xa9,0xab,0xad,0xaf,0xb1,
0xb4,0xb6,0xb8,0xba,0xbc,0xbe,0xbf,0xc1,0xc3,0xc5,0xc7,0xc9,
0xcb,0xcc,0xce,0xd0,0xd2,0xd3,0xd5,0xd7,0xd8,0xda,0xdc,0xdd,
0xdf,0xe0,0xe2,0xe3,0xe4,0xe6,0xe7,0xe8,0xea,0xeb,0xec,0xed,
0xee,0xef,0xf0,0xf2,0xf3,0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,0xf9,
0xf9,0xfa,0xfb,0xfb,0xfc,0xfc,0xfd,0xfd,0xfe,0xfe,0xfe,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xfe,0xfe,0xfe,0xfd,0xfd,0xfc,0xfc,0xfb,0xfb,0xfa,
0xf9,0xf9,0xf8,0xf7,0xf6,0xf5,0xf4,0xf4,0xf3,0xf2,0xf1,0xf0,
0xee,0xed,0xec,0xeb,0xea,0xe8,0xe7,0xe6,0xe4,0xe3,0xe2,0xe0,
0xdf,0xdd,0xdc,0xda,0xd9,0xd7,0xd5,0xd4,0xd2,0xd0,0xce,0xcd,
0xcb,0xc9,0xc7,0xc5,0xc3,0xc2,0xc0,0xbe,0xbc,0xba,0xb8,0xb6,
0xb4,0xb2,0xb0,0xae,0xab,0xa9,0xa7,0xa5,0xa3,0xa1,0x9f,0x9c,
0x9a,0x98,0x96,0x94,0x92,0x8f,0x8d,0x8b,0x89,0x86,0x84,0x82,
0x80,0x7d,0x7b,0x79,0x77,0x75,0x72,0x70,0x6e,0x6c,0x69,0x67,
0x65,0x63,0x61,0x5f,0x5c,0x5a,0x58,0x56,0x54,0x52,0x50,0x4e,
0x4c,0x4a,0x48,0x46,0x44,0x42,0x40,0x3e,0x3c,0x3a,0x38,0x36,
0x34,0x33,0x31,0x2f,0x2d,0x2c,0x2a,0x28,0x27,0x25,0x24,0x22,
0x21,0x1f,0x1e,0x1c,0x1b,0x19,0x18,0x17,0x16,0x14,0x13,0x12,
0x11,0x10,0x0f,0x0e,0x0d,0x0c,0x0b,0x0a,0x09,0x08,0x07,0x07,
0x06,0x5,0x5,0x4,0x3,0x3,0x2,0x2,0x1,0x1,0x1,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x1,0x1,0x2,
0x2,0x3,0x3,0x4,0x4,0x5,0x6,0x6,0x7,0x8,0x9,0xa,0xa,0xb,0xc,
0xd,0xe,0xf,0x10,0x12,0x13,0x14,0x15,0x16,0x18,0x19,0x1a,0x1c,
0x1d,0x1f,0x20,0x22,0x23,0x25,0x26,0x28,0x2a,0x2b,0x2d,0x2f,
0x30,0x32,0x34,0x36,0x38,0x39,0x3b,0x3d,0x3f,0x41,0x43,0x45,
0x47,0x49,0x4b,0x4d,0x4f,0x51,0x53,0x55,0x58,0x5a,0x5c,0x5e,
0x60,0x62,0x65,0x67,0x69,0x6b,0x6d,0x70,0x72,0x74,0x76,0x78,
0x7b,0x7d};// 正弦信号产生数组	   超过128字节需要将数据放到rom当中
/**********************************************************/
//主程序
/**********************************************************/
void main()
{
	uint i=0;
	while(1)
	{
		for(i=0;i<360;i++)//以下为0832驱动程序		
		{
			P2=sin_dat[i];//P2口输出数据
			;;;//小延时
	   	}
	}
}

五、总结

1、DAC0832芯片

    在控制系统中,很多控制对象用的是模拟量,如对电机、机械手、记录仪等设备的控制等,所以须将单片机输出的数字量转换为模拟电压或电流,使用DAC0832芯片将单片机输出的数字量转换为模拟电压或电流。

2、DAC0832芯片引脚

    

各引脚的功能如下。
(1)D0~D7:8位数据输入线;
(2)ILE:数据锁存允许信号,高电平有效;
(3) CS:片选信号,低电平有效;
(4)WR1:输入寄存器的写选通,负脉冲有效,当CS为0,ILE为1,有效时,D0~D7状态被锁存到输入寄存器;
(5)Xfer:数据传输控制信号,低电平有效;
(6)WR2:DAC寄存器写选通,负脉冲有效,当XFER为0且WR2有效时,输入寄存器的状态被传送到DAC寄存器中;
(7)Iout1:电流输出端;
(8)Iout2:电流输出端,其值和Iout1值之和为一个常数;
(9)Rfb:反馈电阻端;
(10)VCC:电源电压端,范围为+5V~+15V;
(11)Vref:基准电压,Vref范围为-10V~+10V,决定D/A输出电压的范围。
(12)AGND:模拟地,为模拟信号和基准电源的参考地;

(13)DGND:数字地。两种地线最好在电源处一点共地。

3、DAC0832芯片工作方式

DAC0832与51单片机主要有三种基本的接口方式,即直通工作方式、单缓冲工作方式和双缓冲工作方式。例子中采用单缓冲方式。
直通方式:该方式适宜于连续反馈控制线路中。
单缓冲方式:该方式适用于只有1路模拟量输出或几路模拟量非同步输出的情况。

双缓冲方式:该方式是先控制DAC0832的数据锁存器以接收数据,然后再控制DAC0832的DAC寄存器,通过这种方式可以实现多个D/A转换的同步输出。

4、UA741芯片简介

UA741(单运放)是高增益运算放大器,用于军事,工业和商业应用,单片硅集成电路器件有输出短路保护和闭锁功能。具有广泛的共模,差模信号低失调电压调零能力。

    1和5为偏置(调零端),2为正向输入端,3为反向输入端,4接地,6为输出,7接电源 8空脚。

5、程序分析

        在本例子中,采用单缓冲方式,首先将正弦波进行电压采样,一个周期采样点为360点,在程序中建立一个一维数组,数组长度为360。通过单片机工具——正弦波数据生成器计算出此一维数组的数据,正弦波数据生成器:。

void main()
{
	uint i=0;
	while(1)
	{
           for(i=0;i<360;i++)//以下为0832驱动程序		
	   {
	      P2=sin_dat[i];//P2口输出数据
	      ;;;//小延时
	   }
	}
}

        程序中,只需通过一个循环语句把数组中值取出通过P2口输出,DAC0832芯片即为进行D/A转换转变成电流,并进一步通过uA741芯片转变成电压。

正弦波数据生成器

==========================以下回复 木子Jasmine 这位兄di =================

示波器元件:

 

  • 45
    点赞
  • 379
    收藏
    觉得还不错? 一键收藏
  • 18
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值