TLC5615的ICC程序

发布者:馥睿堂最新更新时间:2016-10-31 来源: eefocus关键字:TLC5615  ICC程序 手机看文章 扫描二维码
随时随地手机看文章
// TLC5615输出0-5V电压值

// 芯片 ATMEGA16L 
// 时钟 4MHz 内部

#include

#define SCLK5615    4   // tlc5615时钟线, PD4输出
#define DATA5615    5   // tlc5615数据线, PD5输出
#define CS5615     6   // tlc5615片选线 ,PD6输出  

//TLC5615数据线置1
#define DATA5615_SET      PORTD |= 1< //TLC5615数据线清0 
#define DATA5615_CLR      PORTD &= ~(1< //TLC5615时钟线置1 
#define SCLK5615_SET      PORTD |= 1< //TLC5615时钟线清0 
#define SCLK5615_CLR      PORTD &= ~(1< //TLC5615片选线置1 
#define CS5615_SET        PORTD |= 1< //TLC5615片选线清0 
#define CS5615_CLR        PORTD &= ~(1<

void delay_nms(unsigned int);   //延时 n ms  
void tlc5615(unsigned int dat);
void main()
{
  delay_nms(200);
  DDRD=0xff;
  tlc5615(200);  //  转换输出电压=2*Vref*code/1024,输出电压最大为电源电压。当前输出1.77V。
  while(1);

}
void tlc5615(unsigned int dat)
{
  unsigned char i;
  CS5615_SET;
  DATA5615_CLR;
  SCLK5615_CLR;         // CS高电平期间,SCLK为低电平
  dat<<=6;            // 数字量dat左移6位,保留原dat低10位。新dat的高10位有效,低6位全0。
  CS5615_CLR;           // CS片选有效,开始接收数据
  SCLK5615_CLR;
  for(i=0;i<12;i++)   // 发送10位数据和2位0,从最高位开始发送。
  {                   // 非级联方式,只需要输入12位数据。
    
    if((dat&0x8000)==0x8000)
      DATA5615_SET;
    else
      DATA5615_CLR;;
    SCLK5615_SET;       // SCLK上升沿,数据输入
    dat<<=1;
    SCLK5615_CLR;       // SCLK恢复低电平
  }
  CS5615_SET;           // CS上升沿,数据送到DAC寄存器
                      // CS的上升沿和下降沿只有在SCLK为低的时候有效
  SCLK5615_CLR;
  DATA5615_CLR;         // 拉高片选端,拉低时钟端与数据端,回到初始状态
  
}
void delay_nms(unsigned int k)  //延时 n ms
{
  while(k)   //4M晶振,一个循环1ms
  {
  int i;
  i=700;
  while(i--);
  k=k-1;
  }
}

关键字:TLC5615  ICC程序 引用地址:TLC5615的ICC程序

上一篇:18b20温度显示(164驱动8位LED)-CVAVR程序
下一篇:12864(带字库)串行显示汉字和图形 ICC程序

推荐阅读最新更新时间:2024-03-16 15:18

atmega16片上AD ICC程序
/***************************************************** File name : AD_on chip.c Chip type : ATmega16L Program type : Application Clock frequency : 4.000000 MHz Memory model : Small External SRAM size : 0 Da ta Stack size : 256 Function : 内部AD转换,数码管显示 *********************************************
[单片机]
ds1302 ICC程序
//串行数码管显示 年-月-日 时-分-秒 //芯片 ATMEGA16L //时钟 4MHz 内部 // DS1302 上升沿读写数据 // DS1302 读数据时 IO口上拉无效 //短延时 2us wait(); 长延时 n ms delay_nms(); #include iom16v.h //164数据线置1 #define hc164_da ta_SET PORTD |= 0x01 //164数据线清0 #define hc164_da ta_CLR PORTD &= ~0x01 //164时钟线置1 #define hc164_clk_SET PORTD |= 0x02 //164时钟
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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