📄 ad.c
字号:
#include "at89x51.h"
#include "intrins.h"
sbit CS5532_SDI=P1^0;
sbit CS5532_SDO=P1^1;
sbit CS5532_SCK=P1^2;
sbit CS5532_CS=P1^3;
void delay()
{
unsigned char i,j;
for(i=0;i<100;i++)
for(j=0;j<255;j++);
}
MAIN()
{
delay();
initADC();
//sendord();
//receivedata();
}
initADC() //串口复位为命令模式
{
char sync1=0xff,sync0=0xfe;
unsigned char i,j,k;
CS5532_CS = 0;
for(i=0;i<15;i++)
{
for(j=0;j<8;j++)
{CS5532_SCK=0;
CS5532_SDI=(sync1&(0x80>>j))?1:0;
_nop_();
_nop_();
CS5532_SCK=1;
_nop_();
_nop_();
}
}
for(k=0;k<8;k++)
{
CS5532_SCK=0;
CS5532_SDI=(sync0&(0x80>>k))?1:0;
_nop_();_nop_();
CS5532_SCK=1;
_nop_();_nop_();
}
CS5532_CS = 1;
}
//设置配置寄存器
sendord() //写入32位数据,复位芯片
{
unsigned char i;
CS5532_CS = 0;
for(i=0;i<8;i++)
{ CS5532_SCK=0;
CS5532_SDI=(0x03&(0x80>>i))?1:0; //配置寄存器
_nop_();
_nop_();
CS5532_SCK=1;
_nop_();
_nop_();
}
for(i=0;i<8;i++)
{ CS5532_SCK=0;
CS5532_SDI=(0x20&(0x80>>i))?1:0; //选择系统复位
_nop_();
_nop_();
CS5532_SCK=1;
_nop_();_nop_();
}
for(i=0;i<8;i++)
{ CS5532_SCK=0;
CS5532_SDI=(0x00&(0x80>>i))?1:0;
_nop_();
_nop_();
CS5532_SCK=1;
_nop_();
_nop_();
}
for(i=0;i<8;i++)
{ CS5532_SCK=0;
CS5532_SDI=(0x00&(0x80>>i))?1:0;
_nop_();
_nop_();
CS5532_SCK=1;
_nop_();
_nop_();
}
for(i=0;i<8;i++)
{ CS5532_SCK=0;
CS5532_SDI=(0x00&(0x80>>i))?1:0; //低8位
_nop_();
_nop_();
CS5532_SCK=1;
_nop_();
_nop_();
}
CS5532_CS = 0;
}
//设计通道寄存器
send_converse_order()
(
unsigned char i;
CS5532_CS = 0;
for(i=0;i<8;i++)
{ CS5532_SCK=0;
CS5532_SDI=(0x05&(0x80>>i))?1:0; //通道寄存器
_nop_();
_nop_();
CS5532_SCK=1;
_nop_();
_nop_();
}
for(i=0;i<8;i++)
{ CS5532_SCK=0;
CS5532_SDI=(0x00&(0x80>>i))?1:0; //选择通道1,增益为1,字速率为120Hz,单极性
_nop_();
_nop_();
CS5532_SCK=1;
_nop_();_nop_();
}
for(i=0;i<8;i++)
{ CS5532_SCK=0;
CS5532_SDI=(0x00&(0x80>>i))?1:0;
_nop_();
_nop_();
CS5532_SCK=1;
_nop_();
_nop_();
}
for(i=0;i<8;i++)
{ CS5532_SCK=0;
CS5532_SDI=(0x00&(0x80>>i))?1:0;
_nop_();
_nop_();
CS5532_SCK=1;
_nop_();
_nop_();
}
for(i=0;i<8;i++)
{ CS5532_SCK=0;
CS5532_SDI=(0x00&(0x80>>i))?1:0; //低8位
_nop_();
_nop_();
CS5532_SCK=1;
_nop_();
_nop_();
}
delay();
for(i=0;i<8;i++)
{ CS5532_SCK=0;
CS5532_SDI=(0xc0&(0x80>>i))?1:0; //执行连续转换
_nop_();
_nop_();
CS5532_SCK=1;
_nop_();
_nop_();
}
CS5532_CS = 0;
}
//转换接受函数
receivedata()
{
int getdata=0;
unsigned char i=0;
CS5532_SCK=0;
CS5532_CS=0;
_nop_();_nop_();_nop_();
while(CS5532_SDO==0);
//CS5532_SCK=1;_nop_();_nop_();
//CS5532_SCK=0;_nop_();_nop_();
for(i=0;i<24;i++)
{
CS5532_SCK=1;_nop_();_nop_();
CS5532_SCK=0;_nop_();_nop_();
getdata=getdata<<1;
getdata=getdata|CS5532_SDO;
}
CS5532_CS=1;
return getdata;
}*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -