TLC5615的CVAVR程序

// TLC5615输出电压0-5V
// 芯片 ATMEGA16L
// 时钟 4MHz 内部
// 采用系统自带延时程序

#include<mega16.h> 
#include<delay.h>
#define SCLK5615    PORTD.4   // tlc5615时钟线, PD4输出
#define DATA5615    PORTD.5   // tlc5615数据线, PD5输出
#define CS5615     PORTD.6   // tlc5615片选线 ,PD6输出 
void tlc5615(unsigned int dat);
void main()
{
  delay_ms(200);
  DDRD=0xff;
  tlc5615(200);  //  转换输出电压=2*Vref*code/1024,输出电压最大为电源电压。当前输出1.77V。
  while(1);

}
void tlc5615(unsigned int dat)
{
  unsigned char i;
  CS5615=1;
  DATA5615=0;
  SCLK5615=0;         // CS高电平期间,SCLK为低电平
  dat<<=6;            // 数字量dat左移6位,保留原dat低10位。新dat的高10位有效,低6位全0。
  CS5615=0;           // CS片选有效,开始接收数据
  SCLK5615=0;
  for(i=0;i<12;i++)   // 发送10位数据和2位0,从最高位开始发送。
  {                   // 非级联方式,只需要输入12位数据。
   
    if((dat&0x8000)==0x8000)
      DATA5615=1;
    else
      DATA5615=0;
    SCLK5615=1;       // SCLK上升沿,数据输入
    dat<<=1;
    SCLK5615=0;       // SCLK恢复低电平
  }
  CS5615=1;           // CS上升沿,数据送到DAC寄存器
                      // CS的上升沿和下降沿只有在SCLK为低的时候有效
  SCLK5615=0;
  DATA5615=0;         // 拉高片选端,拉低时钟端与数据端,回到初始状态
 
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值