⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ltc2600.c

📁 ltc2600的驱动程序。已经调试通过。 希望对有有点用处
💻 C
字号:
#include "reg51.h"
#include "intrins.h"
#define uchar unsigned char
#define uint unsigned  int
/*TLC2600相关命令
com:0x0    写入寄存器n
	 0x1    更新DACn
	 0x2	写入寄存器n更新全部DAC
	 0x3	写入寄存器n并更新
	 0x4	掉电
	 0xf	无操作
address:
	 0x0	DAC a
	 0x1	DAC b
	 0x2	DAC c
	 0x3	DAC d
	 0x4	DAC e
	 0x5	DAC f
	 0x6	DAC g
	 0x7	DAC h
	 0xf	DAC all
*/
sbit da_clr=P1^0;
sbit da_sdo=P1^1;
sbit da_sdi=P1^2;
sbit da_cs=P1^3;
sbit da_sck=P1^4;

void delay10ms(uint t)    //10ms延时函数
{uint i;
 uint j;
  for (i=0;i<t;i++)
     {    for(j=0;j<0x390;j++);}
}

void send8(uchar com,uchar add)
{uchar i,j;
 j=com|add; 
 da_sck=0;
 da_cs=0;
 for(i=0;i<8;i++)
 			{
 			 if(j&0x80)
 			 da_sdi=1;
 			 else
  			 da_sdi=0;
 			 da_sck=0;
			 _nop_();
			 _nop_();
			 _nop_();
 			 da_sck=1;
 			 j=j<<1;
			}
}
void send16(uint Data)
{uchar i;
 da_sck=0;
 da_cs=0;
 for(i=0;i<16;i++)
			{
			 if(Data&0x8000)
			 da_sdi=1;
			 else
			 da_sdi=0;
			 da_sck=0;
			 _nop_();
			 _nop_();
			 _nop_();
			 da_sck=1;
			 Data=Data<<1;
			 }
 da_cs=1;
}

void main()
{delay10ms(100);
da_cs=0;
send8(0x30,0x0f);
send16(0x7fff);
da_cs=1;
while(1){da_cs=0;};
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -