DAC数模转换、PWM输出、呼吸灯

发布者:乡村乐园最新更新时间:2022-05-25 来源: eefocus关键字:DAC  数模转换  PWM输出  呼吸灯 手机看文章 扫描二维码
随时随地手机看文章

一、DAC 转换原理和技术指标


 (一)分辨率


        分辨率是指输入数字量的最低有效位(LSB)发生变化时,所对应的输出模拟量(电压或电流)的变化量。它反映了输出模拟量的最小变化值。


(二)线性度


        线性度(也称非线性误差)是实际转换特性曲线与理想直线特性之间的最大偏差。 常以相对于满量程的百分数表示。如±1%是指实际输出值与理论值之差在满刻度的 ±1%以内。


(三)绝对精度和相对精度


        绝对精度(简称精度)是指在整个刻度范围内,任一输入数码所对应的模拟量实际输出值与理论值之间的最大误差。


        相对精度与绝对精度表示同一含义,用最大误差相对于满刻度的百分比表示。


(四)建立时间


        建立时间是指输入的数字量发生满刻度变化时,输出模拟信号达到满刻度值的± 1/2LSB 所需的时间。是描述 D/A 转换速率的一个动态指标。


二、PWM 工作原理


(一)PWM 简介 PWM 是 Pulse Width Modulation 的缩写,中文意思就是脉冲宽度调制,简称脉宽调制。它是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术。 通过每个信号周期高电平的占比作为信号来控制器件。其应用领域包括测量,通信,功率控制与变换,电动机控制、伺服控制、调光、开关电源,甚至某些音频放大器。


(二)PWM 等效图形

        b图中的阴影部分面积分别等于 a图中的不规则图形面积。随着曲线的增高,a图中的面积增加,b图中对应的阴影面积也就增加。但是因为阴影部分的高(高电平的电压)是固定的,所以面积的增加就体现在输出信号高电平持续的时间。


(三)PWM 工作原理

 (四)硬件原理图


  (五)软件代码


/***************************************************************************************

*

*实验现象:AD/DAC模块上的DA1指示灯呈呼吸灯效果(第1秒为由暗变亮,第2秒为由亮变暗,重复)

*

*实验原理:1、计数器count计数到100us时,value根据方向变量DIR判断来执行自(加/减),

*    来改变高电平持续的时间,从而该改变占空比的大小。

*    2、value每1个周期增加10,以10 20 30 ... 990 1000 0 10 20这种规律增加(count计数器可以改变value的增加值)

***************************************************************************************/

 

#include "reg52.h" //定义了一些特殊类型的寄存器

 

typedef unsigned int u16;   //对数据类型进行声明定义

typedef unsigned char u8;

 

/*定义使用的IO口*/

sbit PWM=P2^1;

bit DIR;   //位变量:表示计数方向

 

 

/*定义全局变量*/

u16 count;   //计数器作用:计数器count计数到100us时,value自(加/减)

u16 value;   //value的值代表高电平的时间,范围为0-1000

u16 timer1;   //定义PWM一个周期的时长。

 

 

void Timer1Init()

{

TMOD |= 0x10; //选择定时器1,工作方式1;

TH1 = 0xFF;

TL1 = 0xFF; //赋初值

EA = 1; //打开总中断

ET1 = 1; //开放定时器1中断ET1

TR1 = 1; //定时器T1运行控制位

}

 

 

/*******************************************************************************

* 函 数 名      : main

* 函数功能 : 主函数

* 输    入      : 无

* 输    出    : 无

*******************************************************************************/

 

void main()

{

   Timer1Init(); //定时器T1初始化

   while(1)

   {

if(count > 100) //每100us,value变化一次

{

count = 0; 

if(DIR == 1)   //DIR控制增加或减小

{

value++;

}

if(DIR == 0)

{

value--;

}

}

if(value == 1000)    //改变计数方向,也就是value到了1000,让它再自减到0的一个标志位

{

DIR = 0;

}

if(value == 0)

{

DIR = 1;

}

if(timer1 > 1000)   //确定PWM信号的一个周期时长,为1000*1us 

{   //若是(timer1 == 1000)则没有呼吸灯的效果

timer1 = 0;

}

if(timer1 < value)

{

PWM = 1; //value控制高电平持续时间,如果在1000us的周期里timer1大于value,就为高电平

} //可以看word对应笔记的波形图

else

{

PWM = 0;

}

   }

 

}

 

 

/*******************************************************************************

* 函 数 名 : Time1

* 函数功能 : 定时器1的中断函数

* 输    入 : 无

* 输    出 : 无

*******************************************************************************/

 

void Time0() interrupt 3   //定时器1的中断号为3

{

TH1 = 0xFF; //再次赋初值

TL1 = 0xFF; //1us

timer1++; //定时设置PWM一个周期的时长

count++;   //累加1次为1us

}

关键字:DAC  数模转换  PWM输出  呼吸灯 引用地址:DAC数模转换、PWM输出、呼吸灯

上一篇:51单片机字符串口通信为什么乱码?终于找到原因了
下一篇:LCD1602液晶显示屏用51单片机怎么驱动

推荐阅读最新更新时间:2024-11-12 23:02

STM32F0xx_DAC输出电压配置详细过程
前言 数模转换DAC的功能在现实应用中所占的分量,相对定时器TIM、串口USART等要小的多,这也是ST为什么内部集成DAC模块相对来说不是那么多的原因。但在有需要使用数模转换功能的项目中,自带的这个DAC模块基本上可以取代外挂一片DAC芯片,因为自带的这个模块功能也很强大,只需要简单的配置一下就可以输出指定的电压信号(如:PWM波形、三角波、正选波),中途无需要软件干预。当然,今天提供的软件工程只有输出电压的基本操作,没有输出特殊的波形。但是,当你了解输出电压的原理之后,以后你想输出这些特殊的波形,也就容易多了。 STM32F0系列的DAC功能大部分是单通道,相对比较简单。只有STM32F072系列芯片是两路输出通道、有DAC控
[单片机]
STM32F0xx_<font color='red'>DAC</font><font color='red'>输出</font>电压配置详细过程
STM32数模转换器(DAC)简析
STM32F4xx系列提供的DAC模块是12 位电压输出数模转换器。DAC可以按 8 位或 12 位模式进行配置,并且可与DMA控制器配合使用。在 12 位模式下,数据可以采用左对齐或右对齐。DAC有两个输出通道,每个通道各有一个转换器。在DAC双通道模式下,每个通道可以单独进行转换;当两个通道组合在一起同步执行更新操作时,也可以同时进行转换。可通过一个输入参考电压引脚VREF+(与ADC共享)来提高分辨率。 DAC通道框图 DAC引脚 DAC通道使能 将 DAC_CR 寄存器中的相应 ENx 位置 1,即可接通对应 DAC 通道。经过一段启动时间tWAKEUP 后,DAC 通道被真正使能。 注意:ENx 位只会使能模
[单片机]
STM32<font color='red'>数模转换</font>器(<font color='red'>DAC</font>)简析
利用AD5426/32/43、Iout DAC处理交流信号
本文所述电路利用电流输出DAC AD5426/AD5432/AD5443 和一个运算放大器,提供二象限信号乘法功能。它的乘法带宽最高可达10 MHz,因而用户能够精确调理带宽最高为该频率的交流信号。该电路非常适合通信、工业和医疗市场中的交流信号调理应用。 图1:交流信号处理配置 电路描述 AD5426、AD5432和AD5443分别是CMOS、8/10/12位、电流输出数模转换器。这些器件采用+2.5 V至+5.5 V电源供电,因而适合电池供电应用以及信号衰减、通道均衡和波形生成等许多其它应用。最大信号范围可以达到±12 V,但输出要受所用放大器的电源电压限制。图1显示了用于交流信号处理的Iout DAC典型应用电路。利
[模拟电子]
利用AD5426/32/43、Iout <font color='red'>DAC</font>处理交流信号
stm32 TIM输出pwm有些通道不能输出的问题
今天晚上在玩舵机,看了一下例程的代码,于是想换个通道实践一下,于是想把TIM1的通道由ch1换到ch2,于是就把搞了PA8换成了PA9(数据手册上有),把TIM_OC1PreloadConfig换成了TIM_OC2PreloadConfig,试了一下不行,后来又找哪里的OC1没换成OC2,发现TIM_OC1Init没换,于是换成TIM_OC2Init,试了一下还是不行,又在pwm.c里找了好久找不到,网上找答案,以为ch2是默认关闭的,发现不是,后来终于发现主函数里的TIM_SetCompare1没换成TIM_SetCompare2,这种粗心花了我一个小时找答案。。。
[单片机]
stm8s103单片机输出PWM波程序
void Timer2_Init(void) { CLK_ICKR|=0x01; while(!(CLK_ICKR&0x02)); CLK_SWR=0xe1; TIM2_PSCR=0x04; TIM2_ARRH=0x01; TIM2_ARRL=0x00; TIM2_CCER1_CC1P=1; TIM2_CCER1_CC1E=1; TIM2_CCMR1_OC1M=0x60; TIM2_CCMR1_CC1S=0; TIM2_CCR1H=0x00; TIM2_CCR1L=0x20; TIM2_IER=0x00; TIM
[单片机]
使用TIM3定时输出PWM控制LED灯实现呼吸灯
/************************************* 使用TIM3定时输出PWM控制LED灯实现呼吸灯 **************************************/ void BreathLightInit()//LED初始化 { GPIO_InitTypeDef GPIO_InitStructure; //声明一个结构体变量,用来初始化GPIO /* 开启时钟 */ RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE); /* 配置GPIO的模式和IO口 */ GPIO_InitStructure.GPIO_Pin=GPIO_Pi
[单片机]
STM32 PWM输出
a) 目的:基础PWM输出,以及中断配合应用。输出选用PB1,配置为TIM3_CH4,是目标板的LED6控制脚。 b) 对于简单的PWM输出应用,暂时无需考虑TIM1的高级功能之区别。 c) 初始化函数定义: void TIM_Configuration(void); //定义TIM初始化函数 d) 初始化函数调用: TIM_Configuration(); //TIM初始化函数调用 e) 初始化函数,不同于前面模块,TIM的初始化分为两部分 基本初始化和通道初始化: void TIM_Configuration(void)//TIM初始化函数
[单片机]
DAC数模转换后缓冲低通滤波电路
  第一级低通缓冲使用的运放OPA627单运放集成,频率最大可达16MHZ,转换速率可达55V/us,各个参数都相当的不错。第二级使用的是双运放OPA2134,极富胆味。这个电路主要是比较简单,方便初学者制作,只要使用的元件选料好点,都可以让你的CD机脱胎换骨。其中U1的负输入端(即2脚)接在DAC数模解码的输出端即可。这两片IC价格有点贵,经济条件一般的朋友可以选用其他的由场效应管构成输入的运放IC,例如中端的 OP275,低价的可以选用LF353或单运放LF356(注意:LF系列只有NS国半的声音还过得去,其他的不做考虑),TL082或TL072也属于这类,但用在这里就没有摩机的必要了。个人认为最少要用国半的LF353.
[电源管理]
<font color='red'>DAC</font><font color='red'>数模转换</font>后缓冲低通滤波电路
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved