📄 da_tlv5614.h
字号:
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit LDAC=P2^4; //控制DAC刷新
sbit DIN=P3^0; //数据线
sbit SCLK=P3^1; //时钟线
sbit FS=P2^3; //控制帧同步
sbit P2_0=P2^0;
sbit P2_1=P2^1;
sbit P2_2=P2^2;
sbit P2_7=P2^7;
unsigned char bdata buffer; //字节反转寄存器
unsigned char bdata buffer1;
sbit buffer_0=buffer^0;
sbit buffer_1=buffer^1;
sbit buffer_2=buffer^2;
sbit buffer_3=buffer^3;
sbit buffer_4=buffer^4;
sbit buffer_5=buffer^5;
sbit buffer_6=buffer^6;
sbit buffer_7=buffer^7;
sbit buffer1_0=buffer1^0;
sbit buffer1_1=buffer1^1;
sbit buffer1_2=buffer1^2;
sbit buffer1_3=buffer1^3;
sbit buffer1_4=buffer1^4;
sbit buffer1_5=buffer1^5;
sbit buffer1_6=buffer1^6;
sbit buffer1_7=buffer1^7;
void TLV_5614(uchar channel,uint da_value)
{
bit bit_buffer;
uint COM;
switch(channel)
{
case 0: COM=da_value|0x1000; break;
case 1: COM=da_value|0x5000; break;
case 2: COM=da_value|0x9000; break;
case 3: COM=da_value|0xd000; break; // 注意|与||的区别
default: break;
}
buffer=(uchar)(COM>>8); //高八位数据反转处理
bit_buffer=buffer_0;
buffer_0=buffer_7;
buffer_7=bit_buffer;
bit_buffer=buffer_1;
buffer_1=buffer_6;
buffer_6=bit_buffer;
bit_buffer=buffer_2;
buffer_2=buffer_5;
buffer_5=bit_buffer;
bit_buffer=buffer_3;
buffer_3=buffer_4;
buffer_4=bit_buffer;
buffer1=(uchar)(COM&0x00ff); //低八位数据反转处理
bit_buffer=buffer1_0;
buffer1_0=buffer1_7;
buffer1_7=bit_buffer;
bit_buffer=buffer1_1;
buffer1_1=buffer1_6;
buffer1_6=bit_buffer;
bit_buffer=buffer1_2;
buffer1_2=buffer1_5;
buffer1_5=bit_buffer;
bit_buffer=buffer1_3;
buffer1_3=buffer1_4;
buffer1_4=bit_buffer;
P2_0=1;
P2_1=0;
P2_2=0;
P2_7=1; //控制片选选通,P2_7置位使138有效。
LDAC=0; //数据刷新
FS=1;
FS=0; //下降沿帧同步
SBUF=buffer;
while(!TI);
TI=0;
SBUF=buffer1;
while(!TI);
TI=0;
LDAC=1; //停止刷新
FS=1;
}
//用IO口模拟SCLK传送数据,速度慢,故采用串口TXD,RXD通信
// for(i=16;i>0;i--)
// {
// DIN=(bit)(COM&0x8000);
// SCLK=1;
// COM=COM<<1;
// SCLK=0;
// }
// SCON=0X10;
/*
void TLV_5614(uchar channel,uint da_value)
{
uchar i;
uint COM;
switch(channel)
{
case 0: COM=da_value|0x1000; break;
case 1: COM=da_value|0x5000; break;
case 2: COM=da_value|0x9000; break;
case 3: COM=da_value|0xd000; break;
default: break;
}
P2_0=1;
P2_1=0;
P2_2=0; //控制片选选通
LDAC=0; //数据刷新
FS=1;
FS=0; //下降沿帧同步
for(i=16;i>0;i--)
{
DIN=(bit)(COM&0x8000);
SCLK=1;
COM=COM<<1;
SCLK=0;
}
//LDAC=1; //停止刷新
DIN=1;
SCLK=1;
FS=1;
}
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -