📄 cs5532.txt
字号:
//CS5532
#define CS5532_CS P1_2
#define CS5532_SDI P1_3
#define CS5532_SCLK P1_5
#define CS5532_A0 P1_6
#define CS5532_A1 P1_7
#define CS5532_SDO P3_3
BYTE idata RxdTxd4b[4];
void main(void)
{
CS5532_init();
while(1)
{
}
}
void INT1_int() interrupt 2 using 2
{
BYTE i,j;
EX1=0;
// 读取数据
CS5532_SCLK=0;//时钟低
CS5532_SDI=0;
_nop_();
for(i=0;i<8;i++)
{ CS5532_SCLK=1; //时钟高
_nop_();
CS5532_SCLK=0; //时钟低
_nop_();
}
for(j=0;j<4;j++)
{
for(i=0;i<8;i++)
{
CS5532_SCLK=1; //时钟高
RxdTxd4b[j]<<=1;
if(CS5532_SDO)
RxdTxd4b[j]|=0x01; //从SDO读取数据
CS5532_SCLK=0; //时钟低
_nop_();
}
}
}
void CS5532_init(void)
{
//串口初始化
BYTE i;
CS5532_CS=1;
_nop_();
_nop_();
CS5532_CS=0; //片选使能
_nop_();
_nop_();
CS5532_SDI=0;
CS5532_SDO=1;
CS5532_SCLK=0;
for(i=0;i<18;i++)
CS5532_Txd(0xFF);//发送命令
CS5532_Txd(0xFE);
//配置寄存器
CS5532_Txd(0x03);
CS5532_Txd(0x02);
CS5532_Txd(0x40);
CS5532_Txd(0x00);
CS5532_Txd(0x00);
CS5532_Txd(0x05);
CS5532_Txd(0x32);
CS5532_Txd(0x40);
CS5532_Txd(0x32);
CS5532_Txd(0x40);
//启动转换
CS5532_Txd(0xC0);
//---------------------------
PX1=1;
IT1=1;
IE=0x84;
}
void CS5532_Txd(BYTE dat)//向CS5532写一字节数据
{
BYTE i;
CS5532_SCLK=0;//时钟低
CS5532_CS=0;
_nop_();
for(i=0;i<8;i++)
{
if((dat<<i)&0x80)
CS5532_SDI=1; //数据送到SPI的SDI口
else
CS5532_SDI=0;
_nop_();
CS5532_SCLK=1; //时钟高
_nop_();
_nop_();
CS5532_SCLK=0; //时钟低
_nop_();
_nop_();
}
CS5532_SDI=0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -