下你所需,载你所想!
汇集开发技术源码资料

单片机驱动24位ADC芯片CS1237

:108.58KB :1 :2022-10-11 15:59:02

部分简介

单片机驱动24位ADC芯片CS1237如果开发者对于本文件有需要的可以参考。
单片机驱动24位ADC芯片CS1237
STM8L MCU,驱动 CS1237
void Con_CS1237(u8 dat)
{
u8 i;
u8 count_i=0;//溢出计时器
DPIN_INT();
//dat = CS_CON;// 0100 1000
SCLK_L();//SCK_0;//时钟拉低
//delay_500us(10);
while(DOUT)//芯片准备好数据输出 时钟已经为0,数据也需要等CS1237全部拉低为0才算都准备好
{
delay_500us(10);
count_i ;
if(count_i > 150)
{
SCLK_H();//SCK_1;
DOUT_H();//DAT_1;
printf("超时\r\n");
return;//超时,则直接退出程序
}
}
for(i=0;i<29;i )// 1 - 29
{
// One_CLK;
SCLK_H();//SCK_1;
NOP40();
SCLK_L();//;SCK_0;
NOP40();
}
DPIN_OUT();
SCLK_H();NOP30();DAT_1;SCLK_L();NOP30();//SCK_1;NOP30();DAT_1;SCK_0;NOP30();//30
SCK_1;NOP30();DAT_1;SCK_0;NOP30();//31
SCK_1;NOP30();DAT_0;SCK_0;NOP30();//32
SCK_1;NOP30();DAT_0;SCK_0;NOP30();//33
SCK_1;NOP30();DAT_1;SCK_0;NOP30();//34
SCK_1;NOP30();DAT_0;SCK_0;NOP30();//35
SCK_1;NOP30();DAT_1;SCK_0;NOP30();//36
One_CLK;//37 写入了0x65
for(i=0;i<8;i )// 38 - 45个脉冲了,写8位数据
{
SCK_1;
NOP40();
if(dat&0x80)
DAT_1;
else
DAT_0;
dat <<= 1;
SCK_0;
NOP40();
}
One_CLK;//46个脉冲拉高数据引脚
}

热门推荐

相关文章