📄 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 + -