1. DAC0832 是一个电流型8位 T型电阻解码网络D/A转换芯片。
  2. 具体芯片图片和管脚功能看https://baike.baidu.com/item/DAC0832/6527822?fr=aladdin
  3. PROTEUS 仿真

  4. PWM全称Pulse Width Modulation:脉冲宽度调制。方波就是pwm占空比为50%时候的波形。
#include"reg51.h"void delay(unsigned char n)//延时函数
{int i=0,j=0;for(i=0;i<n;i++){for(j=0;j<120;j++);}
}void pwm()  //输出波形
{P2=0;delay(50);P2=255;delay(50);}void main()
{while(1){pwm();}
}

该程序的延迟函数并没有办法精确计时,如果要精确计时可以使用定时器来达到目的。这个程序主要就是先展示出波形和对DAC0832的使用。

  1. 控制pwm波的占空比
  2. 可以通过修改程序来实现
void pwm()    //输出波形
{P2=0;delay(50);P2=255;delay(20);//delay(50);}在这里插入代码片
  1. 通过外部按键来实现 在AT89C51 上连接两个按键
#include"reg51.h"
sbit key0=P1^0;
sbit key1=P1^1;
unsigned int num =200,flag=0;void delay(unsigned char n)//延时函数
{int i=0,j=0;for(i=0;i<n;i++){for(j=0;j<120;j++);}
}void button()//按键函数
{if(key0==0&&flag==0){flag=1;}if(key0==1&&flag==1){flag=0;num+=10;}if(key1==0&&flag==0){flag=1;}if(key1==1&&flag==1){flag=0;num-=10;}
}void pwm()  //输出波形
{P2=0;delay(200);P2=255;delay(num);}void main()
{while(1){button();pwm();}
}

粗略这样就可以了。

  1. 锯齿波 按照之前的思路。只要让P2=0 到 P2=255循环就可以了
void Saw_wave()
{for(i=0;i<256;i++){P2=i;delay(5);}
}

1.Sin_wave正弦波
sin[256]={0x80,0x83,0x86,0x89,0x8d,0x90,0x93,0x96,0x99,0x9c,0x9f,0xa2,0xa5,0xa8,0xab,0xae,0xb1,0xb4,0xb7,0xba,0xbc,0xbf,0xc2,0xc5,0xc7,0xca,0xcc,0xcf,0xd1,0xd4,0xd6,0xd8,0xda,0xdd,0xdf,0xe1,0xe3,0xe5,0xe7,0xe9,0xea,0xec,0xee,0xef,0xf1,0xf2,0xf4,0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,0xfd,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfd,0xfd,0xfc,0xfb,0xfa,0xf9,0xf8,0xf7,0xf6,0xf5,0xf4,0xf2,0xf1,0xef,0xee,0xec,0xea,0xe9,0xe7,0xe5,0xe3,0xe1,0xde,0xdd,0xda,0xd8,0xd6,0xd4,0xd1,0xcf,0xcc,0xca,0xc7,0xc5,0xc2,0xbf,0xbc,0xba,0xb7,0xb4,0xb1,0xae,0xab,0xa8,0xa5,0xa2,0x9f,0x9c,0x99,0x96,0x93,0x90,0x8d,0x89,0x86,0x83,0x80,0x80,0x7c,0x79,0x76,0x72,0x6f,0x6c,0x69,0x66,0x63,0x60,0x5d,0x5a,0x57,0x55,0x51,0x4e,0x4c,0x48,0x45,0x43,0x40,0x3d,0x3a,0x38,0x35,0x33,0x30,0x2e,0x2b,0x29,0x27,0x25,0x22,0x20,0x1e,0x1c,0x1a,0x18,0x16,0x15,0x13,0x11,0x10,0x0e,0x0d,0x0b,0x0a,0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x02,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0d,0x0e,0x10,0x11,0x13,0x15,0x16,0x18,0x1a,0x1c,0x1e,0x20,0x22,0x25,0x27,0x29,0x2b,0x2e,0x30,0x33,0x35,0x38,0x3a,0x3d,0x40,0x43,0x45,0x48,0x4c,0x4e,0x51,0x55,0x57,0x5a,0x5d,0x60,0x63,0x66,0x69,0x6c,0x6f,0x72,0x76,0x79,0x7c,0x80}; //正弦表

在编译的时候 有错误 ‘DATA’:SEGMENT TOO LARGE.

code unsigned char sin[256]={.....};

这么修改就可以避免这个错误。

DA数模转换 DAC0832 笔记相关推荐

  1. MCU-51:单片机之AD模数转换与DA数模转换

    目录 一.AD/DA介绍 二.硬件电路模型 2.1 模型 2.2 硬件电路 三.运算放大器 3.1 运算放大器介绍 3.2 运放电路 四.DA原理 4.1 T型电阻网络DA转换器: 4.2 PWM型D ...

  2. stm32 DA 数模转换

    stm32并不是所有的型号都有DAC功能,只有stm32f103xC/D/E系列 才有DAC转换功能.由于库函数手册中没有相关说明,所以只能通过在MDK提供的相关库文件 stm32f10x_dac.c ...

  3. AD模数转换DA数模转换

    模数转换 模拟信号只有通过A/D转化为数字信号后才能用软件进行处理,这一切都是通过A/D转换器(ADC)来实现的.与模数转换相对应的是数模转换,数模转换是模数转换的逆过程,在一般的工业应用系统中传感器 ...

  4. 计算机控制d a数模转换实验,实验一 DA数模转换实验

    实验一D/A数模转换实验 一.实验目的 1.掌握数模转换的基本原理 2.熟悉12位D/A转换的方法 二.实验仪器 1.EL-AT-III型计算机控制系统实验箱一台 2.PC计算机一台 三.实验内容 通 ...

  5. 13、DA数模转换(PWM输出)

    一.D/A转换器的原理及主要技术指标     一.D/A转换器的基本原理及分类         T型电阻网络D/A转换器 :                  由图可知,运放两个输入端为"虚 ...

  6. ESP32学习:AD/DA数模转换

    一.概念介绍: 1.数字信号和模拟信号: 在显示生活中,我们经常遇到的如温度.压力.图像等都是模拟量,电子线路中的模拟电压和模拟电流等也都是模拟信号,它是一种连续变化的信号.而数字信号,通常我们无法看 ...

  7. 52单片机 (十七)AD DA 数模转换

    ADC 简介 ADC(analog to digital converter)也称为模数转换器,是指一个将模拟 信号转变为数字信号.单片机在采集模拟信号时,通常都需要在前端加上 A/D 芯 片.下面我 ...

  8. AD模数转化/DA数模转换

    1.  AD:模拟数字转换---将模拟信号转换为计算机可操作的数字信号:(有时也称作ADC) DA:将计算机输出的数字信号转换为模拟信号: 2.  运算放大器(运放):具有很高放大倍数的放大电路单元: ...

  9. AutoLeaders控制组——51单片机学习笔记(AD/DA、红外遥控)

    本篇内容是观看B站江科大自化协UP主的教学视频所做的笔记,对其中内容有所引用,并结合自己的单片机板块进行了更改调整. 以下笔记内容以一个视频为一个片段(内容较多,可能不适合速食,望见谅) 一些内容涉及 ...

  10. 51单片机学习笔记AD/DA

    AD/DA AD(Analog to Digital):模拟-数字转换,将模拟信号转换为计算机可操作的数字信号.比如单片机只能识别0与5V数字信号,当输入为2.5V--模拟信号时,就需要转化为单片机所 ...

最新文章

  1. 程序员如何乘风破浪?从数据库历史看技术人发展 | CSDN 高校俱乐部
  2. 摊手:工作五年我拿了两次 N+1 赔偿!
  3. Exchange 2010 CAS安装之一
  4. FreeRtos学习笔记(11)查找就绪任务中优先级最高任务原理刨析
  5. python哲学翻译_Python
  6. java mysql 数据类型对照
  7. centos activemq 集群配置 Networks of Brokers
  8. VMware ESX的性能如何与Hyper-V的价格进行竞争?
  9. 在GitHub里生成自己的网页
  10. 【Prison Break】第四天(3.31)
  11. 《Head first HTML与CSS 第二版》读书笔记 第一章 了解HTML
  12. 万花筒写轮眼动态息屏_用了这么久的iPhone,才知道原来息屏也能录像
  13. Adafruit_NeoPixel常用库函数详解
  14. 用连接数据库的方式读取excel
  15. 树莓派4B接电视HDMI分辨率不正确、无声音的处理办法
  16. js进阶之天猫弹性导航
  17. android官网自定义相机,android native.js camera自定义相机
  18. VS Code配置C/C++环境
  19. HBase批量写入数据
  20. java中各种缩略词释义字典

热门文章

  1. 涨知识:面试字节跳动Java研发岗,经验分享
  2. react中使用web worker
  3. Blender 2.8 【修改器】快捷键备忘录 学习笔记
  4. org.postgresql.util.PSQLException: ERROR: column loginid of relation userinfo does not exist
  5. NIO网络编程中重复触发读(写)事件
  6. java加密方案:Virbox Protector Java版-全新保护方案
  7. 关于应用界面引导性的设计模式
  8. 微信小程序-自定义三级联动
  9. RS编译码理论介绍与MATLAB性能仿真
  10. Cubieboard2开发要点简记