|
发表于 2023-4-22 22:00:14
|
显示全部楼层
代码:uchar i, dat;
CS = 1; //ADC0832未工作时,CS端为高电平,此时芯片禁用
_nop_; //对于延时很短的,要求在us级的,采用“_nop_”函数
CLK =1;
CS = 0;
DIDO = 1; CLK = 0; _nop_; CLK = 1; _nop_; //SCLK第一个下降沿来到时,DI = 1启动ADC0832
DIDO = 1; CLK = 0; _nop_; CLK = 1; _nop_; //SCLK第二个下降沿
DIDO = 0; CLK = 0; _nop_; CLK = 1; _nop_; //SCLK第三个下降沿,发送1,0选择通道cho
DIDO = 1; //释放总线
for(i = 0; i < 8; i++) //第4个下降沿到第11个下降沿
{
CLK = 0; //clk处于下降沿,每一个下降沿DO端输入下一个
_nop_; //对于延时很短的,要求在us级的,采用_nop_函数
if(DIDO) dat |= 0x01; // dat = dat | 0x01,dat和0x01做“或”的运算,意思是最低位置1,其它位保持不变。
CLK = 1; _nop_; //clk处于上升沿
dat <<= 1; //数据左移
}
return (dat);
CS = 1; //ADC0832停止工作 |
|