• 普中51单片机学习(DA转换)


    DA数模转换

    1. 分辨率
      分辨率是指输入数字量的最低有效位(LSB)发生变化时,所对应的输出模拟量(电压或电流)的变化量。它反映了输出模拟量的最小变化值。
      分辨率与输入数字量的位数有确定的关系,可以表示成FS /(2^n)。FS表示满量程输入值,n为二进制位数。对于5V的满量程,采用8位的DAC时,分辨率为5V/256=19.5mV;当采用12位的DAC时,分辨率则为5V/4096=1.22mV。显然,位数越多分辨率就越高。
    2. 线性度
      线性度(也称非线性误差)是实际转换特性曲线与理想直线特性之间的最大偏差。常以相对于满量程的百分数表示。如±1%是指实际输出值与理论值之差在满刻度的±1%以内。
    3. 绝对精度和相对精度
      绝对精度(简称精度)是指在整个刻度范围内,任一输入数码所对应的模拟量实际输出值与理论值之间的最大误差。绝对精度是由DAC的增益误差(当输入数码为全1时,实际输出值与理想输出值之差)、零点误差(数码输入为全0时,DAC的非零输出值)、非线性误差和噪声等引起的。绝对精度(即最大误差)应小于1个LSB。
      相对精度与绝对精度表示同一含义,用最大误差相对于满刻度的百分比表示。
    4. 建立时间
      建立时间是指输入的数字量发生满刻度变化时,输出模拟信号达到满刻度值的±1/2LSB所需的时间。是描述D/A转换速率的一个动态指标。
      电流输出型DAC的建立时间短。电压输出型DAC的建立时间主要决定于运算放大器的响应时间。根据建立时间的长短,可以将DAC分成超高速(<1μS)、高速(10~1μS)、中速(100~10μS)、低速(≥100μS)几档。

    PWM工作原理
    PWM 是 Pulse Width Modulation 的缩写,中文意思就是脉冲宽度调制,简称脉宽调制。它是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,其控制简单、灵活和动态响应好等优点而成为电力电子技术最广泛应用的控制方式,其应用领域包括测量,通信,功率控制与变换,电动机控制、伺服控制、调光、开关电源,甚至某些音频放大器,因此研究基于 PWM 技术的正负脉宽数控调制信号发生器具有十分重要的现实意义。
    在这里插入图片描述
    PWM 是一种对模拟信号电平进行数字编码的方法。通过高分辨率计数器的使用,方波的占空比被调制用来对一个具体模拟信号的电平进行编码。PWM 信号仍然是数字的,因为在给定的任何时刻,满幅值的直流供电要么完全有(ON),要么完全无(OFF)。电压或电流源是以一种通(ON)或断(OFF)的重复脉冲序列被加到模拟负载上去的。通的时候即是直流供电被加到负载上的时候,断的时候即是供电被断开的时候。只要带宽足够,任何模拟值都可以使用 PWM 进行编码。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    实验代码

    #include "reg52.h"
    
    typedef unsigned char u8;
    typedef unsigned int u16;
    
    sbit PWM=P2^1;
    bit DIR;
    
    u16 count,value,timer1=1;
    
    void TimerInit()
    {
    	TMOD|=0X10;
    	TH1=0XFF;
    	TL1=0Xff;
    	ET1=1;
    	EA=1;
    	TR1=1;
    }
    
    void main()
    {
    	TimerInit();
    	while(1)
    	{
    		if(count>100)
    		{
    			count=0;
    			if(DIR==1)
    			{
    				value++;
    			}
    			if(DIR==0)
    			{
    				value--;
    			}
    		}
    
    		if(value==1000)
    		{
    		 DIR=0;
    		}
    		if(value==0)
    		{
    		 DIR=1;
    		}
    
    		if(timer1>1000)
    		{
    			timer1=0;
    		}
    		if(timer1>value)
    		{
    			PWM=1;
    		}
    		if(timer1<value)
    		{
    			PWM=0;
    		}
    	}
    
    }
    
    void Time1(void) interrupt 3
    {
    	TH1=0XFF;
    	TL1=0Xff;
    	timer1++;
    	count++;	
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
  • 相关阅读:
    kubelet源码 删除pod(二)
    Fake权限验证小例子
    ArcGIS属性域和子类型
    产品升级!全球尺度下原核基因组关键基因共进化无标题
    计算机网络_互联网的标准化工作及相关组织
    java 版spring cloud 企业电子招标采购系统
    计算机毕设(附源码)JAVA-SSM基于的校园疫情防控管理
    keil4工程创建并进行流水灯实验
    参照DefenseGrid在Unity中实现合理的塔防寻路机制
    flex布局列表页(一行内容比较多,长度比较长)
  • 原文地址:https://blog.csdn.net/qq_44845100/article/details/136280497