da芯片 tlc5620的程序(spi)

** 实验说明:主要硬件由DSP和TLV5620组成,DSP提供了SIMO和SCLK、C3TRIP **
**           信号给TLV5620,且C3TRIP信号是用来做片DAC信号的更新和锁 **
**           存的,这里大家要参照TLV5602的手册,4个信道 **
**           的DAC输出分别引了出来,方便大家来检测.这里还要说明的一 **


#include "DSP28_Device.h"

/*这里使用了宏定义来控制更新锁存信号的功能,重点就是在时序上*/
#define SetLOAD GpioDataRegs.GPADAT.bit.GPIOA15=1; //将LOAD置高
#define ClrLOAD GpioDataRegs.GPADAT.bit.GPIOA15=0; //将LOAD置低

void WriteDAC(unsigned char add,unsigned char rng,unsigned char vol);
void delay(unsigned int t);

void main(void)
{  
 int temp;
   
 /*初始化系统*/
 InitSysCtrl();
 
 /* 关中断 */
 DINT;
 IER = 0x0000;
 IFR = 0x0000;
 
 /* 初始化PIE控制寄存器 */
 InitPieCtrl();
 
 /* 初始化PIE参数表 */
 InitPieVectTable(); 
 
 ///初始化IO口
 InitGpio();
 
 ///初始化SPI
    InitSpi();

 EINT;    // Enable Global interrupt

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
TLC5620是一款12位串行数字-模拟转换器,可以将数字信号转换为模拟信号。下面是基于51单片机的TLC5620程序设计的一些步骤: 1. 确定TLC5620的控制信号,包括数据输入信号、时钟信号和片选信号。 2. 定义51单片机的I/O口,用于控制TLC5620的三个控制信号。可以使用P0口控制数据输入信号和时钟信号,使用P1口控制片选信号。 3. 初始化TLC5620的控制信号,包括将片选信号拉高,将时钟信号拉低,将数据输入信号拉低。 4. 将需要转换的数字信号按照位数分解成多个字节,每次将一个字节的数据通过数据输入信号发送给TLC5620。 5. 每发送一个字节的数据后,将时钟信号拉高再拉低,触发TLC5620进行一次转换。 6. 所有字节的数据发送完毕后,将片选信号拉低,结束转换。 下面是一个简单的51单片机控制TLC5620进行数字-模拟转换的程序示例: ```C #include <reg51.h> sbit DAC_CS = P1^0; sbit DAC_CLK = P0^0; sbit DAC_DIN = P0^1; void writeDAC(unsigned int data) { unsigned char i; DAC_CS = 0; for(i=0;i<12;i++) { DAC_DIN = (data & 0x800) ? 1 : 0; data <<= 1; DAC_CLK = 1; DAC_CLK = 0; } DAC_CS = 1; } void main() { unsigned int data = 0x7ff; // 12位最大值 while(1) { writeDAC(data); data--; } } ``` 在这个示例中,我们通过P0口的第0位和第1位控制TLC5620的时钟信号和数据输入信号,通过P1口的第0位控制TLC5620的片选信号。我们定义了一个writeDAC函数,用于将一个16位的数字数据写入TLC5620进行转换。在主函数中,我们通过循环不断地将数字数据递减,并调用writeDAC函数进行转换。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yantaoliu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值