精华内容
下载资源
问答
  • TLC5615

    2018-05-21 10:55:00
    #include <reg51.h>...#include "TLC5615.c" code uchar seven_seg[] = {0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90}; //数码管显示 uchar cp,j; // 、、定义 变量 uint...
    #include <reg51.h>
    #include "TLC5615.c"
    code uchar seven_seg[] = {0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90};     //数码管显示
    uchar cp,j;                    //    、、定义 变量
    uint Data, imitate;         /*模拟电压V = 5 / 1024 = 0.00488 */
    
    void timer0_init(void); /*声明中断初始化函数*/
    void timer0_isr(void);  /*声明中断服务函数  */
    
    /*********************************主函数********************************/
    void main()
    {
        timer0_init();            //中断初始化函数
        while(1);                //循环
    }
    
    /*******************************中断服务函数****************************/
    /*当TLC5615接收10位数据全为1时,理论上,OUT端输出电压5V,但实际应用时最高
    输出电压4.7V。即TLC5615输入数据超过961时,输出电压将不再增加。**********/
    void timer0_isr(void) interrupt 1
    {
        TH0 = 0xf8;
        TL0 = 0x2f;
        cp++;
        if(cp >= 250)        /*半秒时间*/
        {    
            cp = 0;
            tlc5615(Data); 
            if(Data >= 962)    // TLC5615输入数据超过961时,输出电压将不再增加。
            Data = 0;        //归零
            imitate = Data * 0.489;     //数组数据转换为模拟数据
            Data = Data + 10;         //变换数据
        }
        P0 = 0xff;                    //清屏
        switch(j)
        {
        
            case 0 : P0 = seven_seg[imitate % 10]; P2 = ~0x01;  break;               //模拟电压
            case 1 : P0 = seven_seg[imitate % 100 / 10]; P2 = ~0x02; break;
            case 2 : P0 = seven_seg[imitate / 100] & 0x7f; P2 = ~0x04; break;
            case 3 : P0 = seven_seg[Data % 10]; P2 = ~0x08; break;                   //数字信号
            case 4 : P0 = seven_seg[Data % 100 / 10]; P2 = ~0x10; break;
            case 5 : P0 = seven_seg[Data / 100]; P2 = ~0x20; break;
        }
        j++;
        if(j >= 6)      //六位显示
        j = 0;
    
    }
    /*****************************中断初始化函数****************************/
    void timer0_init(void)
    {
        TMOD = 0x01;   //工作方式1
        TH0 = 0xf8;
        TL0 = 0x2f;
        EA = 1;
        ET0 = 1;
        TR0 = 1;
    }
    
    
    
               /*****************************************************************************************/
    /*************************************TLC5615的驱动程序***********************************/
    /*TLC5615模数转换将离散的数字信号转换为连续变化的模拟信号V = 5 / 256 = 0.01953v = 19.53mv*/
    /*****************************************************************************************/
    
    #define uchar unsigned char  //宏定义 用uchar 代替 unsigned char
    #define uint unsigned int     //宏定义 用uint 代替 unsigned int
    
    sbit DIN = P3^6;
    sbit SCLK = P3^7;
    sbit CS = P3^4;
    /************************TLC5615的初始化**************************/
    void tlc5615_init(void)           
    {
        CS = 1;
        SCLK = 0;
        CS = 0;    
    }
    /************************TLC5615的初始化**************************/
    /**********由于TLC5615是十位转换位,定义一个16位的变量************/
    void tlc5615(uint Data)
    {
        uchar i;
        Data <<= 6;                        //两个字节有16位,去掉高六位剩下十位有效位
        tlc5615_init();                 //初始化函数
        for(i = 0; i < 12; i++)         //根据PDF文档可知,要送的只有十位数但是后面要跟着多加两位零才能将一个数据送出去
        {
            DIN = (bit)(Data & 0x8000); //当dat与0x8000相与然后强制转换后有一位,这时只就只可以直接送给DA端进行发送
            SCLK = 1;                    //前面一句亦可用DA=CY来代替,但后面的顺序要调换才行
            Data <<= 1;
            SCLK = 0;
        }
        CS = 1;
        SCLK = 0;
    }
    TLC5615应用
    (1)    TLC5615的作用
    DIN: 串行数据输入端;TLC5615引脚图
    SCLK: 串行时钟输入端;
    CS: 芯片选用通端,低电平有效;
    DOUT: 用于级联时的串行数据输出端;
    AGND: 模拟地;
    REFIN:基准电压输入端, 2V~ (VDD - 2);
    OUT: DAC 模拟电压输出端;
    VDD: 正电源端,4.5~5.5V ,通常取 5V。
    将数字信号转化为模拟信号
    (2)    对TLC5615的认识
    TLC5615 为美国德州仪器公司 1999 年推出的产品,是具有串行接口的数模转换器,其输出为电压型,最大输出电压是基准电压值的两倍。带有上电复位功能,即把 DAC 寄存器复位至全零。性能比早期电流型输出的 DAC 要好。只需要通过 3 根串行总线就可以完成 10 位数据的串行输入, 易于和工业标准的微处理器或微控接口, 适用于电池供电的测试仪表、移动电话,也适用于数字失调与增益调整以及工业控制场合。
    (3)    工作原理
    只有当片选 CS 为低电平时, 串行输入数据才能被移入 16位移位寄存器。当 CS 为低电平时,在每一个 SCLK 时钟的上升沿将 DIN 的一位数据移入 16 位移寄存器。注意, 二进制最高有效位被导前移入。接着,CS 的上升沿将 16 位移位寄存器的 10 位有效数据锁存于 10 位 DAC 寄存器, 供 DAC 电路进行转换; 当片选 CS 为高电平时,串行输入数据不能被移入 16 位移位寄存器。注意, CS 的上升和下降都必须发生在 SCL K 为低电平期间。
    (4)    仿真器件作用
    respack_8:驱动,电流不够,加排阻增加电流,排阻一般有九个脚,
    个脚接VCC,其他脚接单片机I/o口,比如说P0口,一般需要加排阻。
    7404反相器:增大电流
    TLC5615:数字信号转化为模拟信号
    数码管:实现信号的显示

     

    转载于:https://www.cnblogs.com/zhai1997/p/9066148.html

    展开全文
  • 第10章 数模转换器DAC1 D/A输出电路图2 TLC5615基本测试实验3 TLC5615产生波形实验4 TLC5615播放音乐实验数模转换就是将单片机输出的数字信号转换为模拟信号(比如正弦波、锯齿波),简称为D/A,实现数字信号转换为...

    第10章 数模转换器DAC

    1 D/A输出电路图

    2 TLC5615基本测试实验

    3 TLC5615产生波形实验

    4 TLC5615播放音乐实验

    数模转换就是将单片机输出的数字信号转换为模拟信号(比如正弦波、锯齿波),

    简称为D/A,实现数字信号转换为模拟信号的器件称为数模转换器,简称DAC,

    DAC一般是由专用集成电路完成的。

    1 D/A输出电路图

    1号单片机与D/A输出芯片TLC5615连接电路如图所示 。

    3f829e29e76caa8c3b1f630a6b27d58d.gif

    0.png (190.41 KB, 下载次数: 117)

    2016-3-28 03:24 上传

    TLC5615的1、2、3脚用于与单片机进行通信(SPI接口),6脚是基准电压输入,

    7脚是模拟信号输出。图中的MC1403是一个廉价的电压基准芯片,简单的说就是一 个稳压精度比L7805之类更高的稳压块

    2 TLC5615基本测试实验

    #include "STC15W4K.H" // 注意宏定义后面没分号

    #include

    sbit CS=P5^5; sbit CLK=P4^0; sbit DIN=P3^4;

    void DaConv(unsigned int value)

    {

    // 此函数内容固定,单片机晶振频率在5-35MHz范围内直接复制使用即可

    }

    void main()

    {

    unsigned int value; // 待转换的数据

    while(1)

    {

    value=511; // 这里输入0--1023的数据观察D/A转换输出电压 DaConv(value); // 执行D/A转换,无任何返回值。

    }

    }

    实验结果如表所示,输出电压X = 2·Vref·Value /1023。

    3f829e29e76caa8c3b1f630a6b27d58d.gif

    0.png (118.12 KB, 下载次数: 100)

    2016-3-28 03:25 上传

    3 TLC5615产生锯齿波、三角波、正弦波实验

    例10.4 TLC5615产生1000Hz锯齿波、三角波、正弦波,R/C时钟22.1184MHz。

    3f829e29e76caa8c3b1f630a6b27d58d.gif

    1.png (115.47 KB, 下载次数: 99)

    2016-3-28 03:25 上传

    观察上图波形,横轴是时间,可用单片机定时器定时中断进行控制,纵轴是模拟电压值, 用TLC5615进行D/A转换输出即可。

    要让TLC5615输出锯齿波、三角波、正弦波等波形,我们可以对波形的一个周期抽样一些 点进行D/A转换输出,把抽样点建立成表格,定时器每中断一次查表转换输出一个值。

    比如我们将正弦函数从0°~360°范围内按10°一个步进值进行等分,可得0、10、20、

    30、…340、350,共36个点,这就确定了表格数组大小为36个整数,

    第1点输出电压值:511×sin(0)+512=512 // 511用于波形向上平移。 第2点输出电压值:511×sin(10)+512=601 // 511用于波形向上平移。 第3点输出电压值:511×sin(20)+512=687 // 511用于波形向上平移。

    unsigned int code SinTable[] = // 正弦波表格

    {

    512,601,687,768,840,903,955,992,1015,1023,1015,992,955,903,840,768,687,601,512,

    423,337,257,183,121,69,32,9,1,9,32,69,121,183,257,337,423,

    };

    3f829e29e76caa8c3b1f630a6b27d58d.gif

    %E7%AC%AC10%E7%AB%A0-%E6%95%B0%E6%A8%A1%E8%BD%AC%E6%8D%A2%E5%99%A8dac-9.jpg (9.45 KB, 下载次数: 93)

    2016-3-28 03:29 上传

    3f829e29e76caa8c3b1f630a6b27d58d.gif

    %E7%AC%AC10%E7%AB%A0-%E6%95%B0%E6%A8%A1%E8%BD%AC%E6%8D%A2%E5%99%A8dac-10.jpg (9.88 KB, 下载次数: 96)

    2016-3-28 03:29 上传

    3f829e29e76caa8c3b1f630a6b27d58d.gif

    %E7%AC%AC10%E7%AB%A0-%E6%95%B0%E6%A8%A1%E8%BD%AC%E6%8D%A2%E5%99%A8dac-11.jpg (10.59 KB, 下载次数: 101)

    2016-3-28 03:29 上传

    主要程序代码如下:

    void Timer0() interrupt 1

    {static unsigned char counter=0;P35=!P35;//观察定时器定时时间用的

    TH0=0xff;//TH0=0xff;

    TL0=0xCD;//TL0=0x2c;

    DaConv(SinTable[counter]);//D/A输出

    counter++;

    counter%=36; // counter在0到36之间循环变化使波形循环输出

    }

    void main()

    {

    Timer0_Init(); // 初始化并启动定时器0

    while(1); // 通过定时器0来控制产生电压的时间间隔

    }

    当需要更换输出波形时,只需要修改DaConv(SinTable[counter]);语句中的表格名称即可,实测 D/A输出波形如图10-7所示。

    4 TLC5615播放音乐实验

    将音乐文件(比如MP3文件)通过其它辅助软件转换成单片机内部的表格数组,然后通过不断查 表+D/A的方式即可播放出音乐,通过调节TLC5615的输入基准电压就可调节输出音量的大小。 主要代码如下:

    void Timer0() interrupt 1

    {

    static unsigned int counter=0; TH0=0xFE;

    TL0=0x33;

    DaConv(((unsigned int)wav[counter])<<1); // 将wav数组中的数据扩大2倍后写入TLC5615 counter++; // 扩大2倍是为了使TLC5615的音频输出电压范围在0-2.5V之间 counter%=WAV_LEN; // counter在0到WAV_LEN-1之间循环变化使声音循环播放

    }

    void main()

    {

    Timer0_Init(); // 初始化并启动定时器0

    while(1); // 通过定时器0来控制产生电压的时间间隔

    }

    展开全文
  • TLC5615原理

    1、TLC5615原理T L C 5 6 1 5是一个串行 1 0位 D A C 芯片,性能 比早期 电流型输 出 的 D A C 要好。 只需要通过 3 根串行总 线就可以完成 10 位数据的串行输人,易于和 工业标准 的微处理器或 微控制器 ( 单 片机 /DsP ) 接 口, 适用于数字失调与增益调整 以及工业控制 场合。具体内容还是看手册。
    在这里插入图片描述
    TLC5615的结构框图如上图所示,有一个10位的DAC电路,一个16位移位寄存器,接受DIN引脚的串行二进制数据的移入,并行输入输出的10位DAC寄存器,为10DAC电路提供要转换的二进制数据。TLC5615有三个引脚要与DSP芯片引脚进行连接,DIN:数据输入端口,SCLK:串行的时钟输入端,CS:片选端口,低电平有效。
    现在简单介绍一下TLC5615工作原理,首先看下他的时序图如下图所示,
    在这里插入图片描述
    当C S 为低电平时, 在每一个 SC LK 时钟的上升 沿将 DIN 的一位数据移人 16 位移位寄存器,注意,二进制最高有效位被移人。 接着,S C LK 的上升沿将 16 位移位寄存器的 10 位有效数据锁存于 10 位DAC 寄存器,供 DAC 电路进行转换 ,SCLK的上升 和下降都必须 发生在 CS 为低电平才有效。

    2、TLC5615的工作方式
    TLC5615有两种工作方式,第一种为单个芯片工作,我们从TLC5615d内部结构框图可以看到,TLC5615内部有16位移位寄存器,其中高四位为虚拟位,用于级联方式的输出端,与下一个芯片的DIN段进行相连。10位有效位,2位填充位,其中2位填充位的数据是任意的。综上:第一种工作方式需要12个数据序列,即也需要12个时钟脉冲信号。
    第二种工作方式为级联方式,也就是有16位数据序列,第一芯片的DOUT端接下一个芯片的DIN端,这种级联方式的工作需要16个脉冲信号。
    这两种工作方式的输出电压都为:
    在这里插入图片描述
    其中N代表10位有效位的二进制数,Vref为参考电压。

    展开全文
  • TLC5615中文

    2013-01-05 17:51:48
    TLC5615C TLC56151 中文 数据手册
  • 5615TLC5615.pdf

    2012-08-29 11:02:15
    TLC5615.pdf
  • 压缩包内含有TLC5615的STM32程序源码以及TLC5615的硬件资料。
  • TLC5615 DA程序

    2009-07-17 13:11:47
    TLC5615的程序 TLC5615的程序 TLC5615的程序
  • TLC5615驱动程序

    2009-08-01 20:07:23
    TLC5615驱动程序 TLC5615驱动程序 TLC5615驱动程序
  • DA-TLC5615

    千次阅读 2017-08-30 22:31:53
    TLC5615

    想想以前自己学习的时候认为学会了  但是也仅仅是当时学会了一点点而已   今天有人问起关于TLC5615的问题  还是思考了好长时间才想起来 索性今天写下来一些关键性的问题   以后想不起来的时候 来看看  

    TLC5615:  习惯性的先了解引脚功能  看图说话 偷懒一下  原理图上凑合看一下吧   只看5615就行啦

    就行啦
    引脚1 DIN:   串行数据输入端  太特么官方了  其实就是DA中的D也就是你给这个片子的一个数字量 输入的引脚
    引脚2 SCLK: 串行时钟输入端
    引脚3 CS:  片选端  很多IC都有这个引脚  用来是否选通片子  一般都是低电平有效  TLC5615就是低电平选通
    引脚4 Dout:  话说这个是 用于级联时的串行数据输出端  我也没用过多个  也不知道啥意思 哈哈
    引脚5: GND  
    引脚6: REFIN:参考电压    今天其实重点就是想搞他  后面详细说
    引脚7:OUT模拟电压输出端
    引脚8L: VCC 电源  4.5-5.5V  一般5V
    其实当时学这个的时候 重点是困在 电压的输出和计算的不一样   今天应该是 明白了    请看  上面的原理图  注意有一个LM385-2.5 这个玩意就是用来给5615提供参看电压的  其实很多初学者 由于各种原因  理所应当的认为这个参考电压是5V 但是呢 不是的  哈哈  但是用5v的行不行呢  答案是 不行的 我没有试过实物哈 因为一片5615挺贵的   我曾经被这个撕逼的问题困扰了很长时间 最后无奈还是去查阅了英文手册   上图 

    看  最大输入参考电压  是VDD-2  我们用了LM385-2.5  参考电压是2.5V  符合要求  但是手册给出的参考电压 是2.048 娘的 也不知道为啥  但是2.5用起来完全没有问题  好了 这是参考电压的问题  
    我曾经在proteus上试过 参考电压 给到5V   可以输出  但是细心的你应该会发现  当你的数字输入量达到512的时候  输出电压居然达到了 5V    按照 公式来算  十位的ADC   Vout=512/1024*Vref   应该输出来 2.5V啊    无奈的我又去翻了 手册    看图  

    看吧  在这个片子的内部 在进行完DA转换后  又经过了集成运放   在这个过程中 电压放大了两倍  所以在上面那个问题中 Vout=2*Vref*X/1024  所以当X>=512时  都会输出来 5V的电压    所以当你参考电压选择2.5V时的时候 能输出来5V的电压  也就不奇怪了  因为有运放 放大嘛      OK  就说这些  如果有什么不合适 欢迎指出 
     好啦 最后吹逼一下      学这种东西  最好还是去看他的 英文手册  硬着头皮看一下   总会 有收获的  
    代码(51)的 会在另一片文章里面附上      哈哈哈

    展开全文
  • TLC5615 FPGA驱动

    2019-04-19 16:52:39
    TLC5615 FPGA驱动 Verilog写的,确实能用,支持持续传入数据输出波形而非单一波形
  • tlc5615 应用例程

    2010-04-14 23:16:50
    tlc5615 应用例程 tlc5615 应用例程
  • TLC5615 STM32驱动程序

    2018-05-25 16:30:29
    DAC芯片TLC5615关于STM32驱动程序,实践通过,可供参考
  • TLC5615 arduino库文件

    2018-03-19 17:00:54
    我觉得用ARDUINO做控制部分再合适不过了 本身带有AD,可是身边只有UNO,不带DA,所以沿用51的DA,将用TLC5615来解决DA部分。
  • 数模TLC5615

    2012-04-23 13:28:54
    数模TLC5615
  • TLC5615中文资料

    2012-04-18 14:28:54
    TLC5615中文资料
  • TLC5615CDR的技术参数

    2020-12-12 17:56:22
    产品型号:TLC5615CDR工作电压(V):5位数:10建立时间(uS):12.500输出类型:电压通道数:1DNL最大值(±1LSB):0.500INL最大值(±1LSB):1接口方式:串行基准:外部功耗(mW):0.750封装/温度(℃):8SOIC/0~70描述:单输出通道,...
  • TLC5615CD的技术参数

    2020-12-12 17:56:06
    产品型号:TLC5615CD工作电压(V):5位数:10建立时间(uS):12.500输出类型:电压通道数:1DNL最大值(±1LSB):0.500INL最大值(±1LSB):1接口方式:串行基准:外部功耗(mW):0.750封装/温度(℃):8SOIC/0~70描述:单输出通道,串行...
  • TLC5615CP的技术参数

    2020-12-12 17:50:26
    产品型号:TLC5615CP工作电压(V):5位数:10建立时间(uS):12.500输出类型:电压通道数:1DNL最大值(±1LSB):0.500INL最大值(±1LSB):1接口方式:串行基准:外部功耗(mW):0.750封装/温度(℃):8PDIP/0~70描述:单输出通道,串行...
  • TLC5615 中文资料 很全面TLC5615 中文资料 很全面TLC5615 中文资料 很全面TLC5615 中文资料 很全面
  • TLC5615和tlc1549

    2010-09-09 08:36:25
    tlc5615和tlc1549结合使用,通过按键控制数据,然后经da转换后接到ad芯片的输入端,客实时调控
  • TLC5615/TLC1549设计教程

    2010-08-05 19:14:16
    TLC5615/TLC1549中文资料及设计程序
  • verilog TLC5615 驱动

    2011-12-19 10:58:45
    verilog TLC5615 驱动 没啥说的,要的下
  • STM32驱动TLC5615

    2015-08-14 08:50:15
    TLC5615为10位串行DA,最大速率不超过14MHZ,而我们的STM32工作频率是72MHz,故使用端口模拟IO口需要进行时钟分频
  • 波形发生器 fpga tlc5615

    2019-05-19 15:56:05
    使用VerilogHDL语言写的波形发生器,包括数模转换模块的驱动,tlc5615的驱动
  • 文件中包含仿真电路和代码,本文件为TLC5615可调节频率的正弦波输出。代码已全部加上注释,方便查看
  • tlc5615串行da

    2012-11-17 10:24:13
    10位串行dac中文资料tlc5615,资源很好,翻译得通俗易懂。欢迎广大网友们下载。
  • TLC5615中文资料!!!!TLC5615中文资料!!!!TLC5615中文资料!!!!TLC5615中文资料!!!!TLC5615中文资料!!!!TLC5615中文资料!!!!TLC5615中文资料!!!!TLC5615中文资料!!!!TLC5615中文资料...
  • TLC5615产生锯齿波.rar

    2011-08-26 20:36:26
    tlc5615产生锯齿波 了解tlc5615
  • tlc5615驱动 c语言

    2018-12-27 16:40:00
    void Dev_TLC5615_Write_Data(u16 data) { u8 i = 0; data <<= 6; TLC5615_SPI_CS_LOW(); for(i=0; i<12; i++) { TLC5615_SPI_CLK_LOW(); if(data & 0x8000) ...

空空如也

空空如也

1 2 3 4 5 ... 15
收藏数 281
精华内容 112
关键字:

TLC5615