51單片機(jī)讀寫max186的c51程序
//返回的是12位的int型數(shù)據(jù)
本文引用地址:http://butianyuan.cn/article/201611/316259.htm//max186通道ch0對應(yīng)的是0,它是max186第1腳
//max186通道ch1對應(yīng)的是1,它是max186第2腳
//max186通道ch2對應(yīng)的是2,它是max186第3腳
//max186通道ch3對應(yīng)的是3,它是max186第4腳
//max186通道ch4對應(yīng)的是4,它是max186第5腳
//max186通道ch5對應(yīng)的是5,它是max186第6腳
//max186通道ch6對應(yīng)的是6,它是max186第7腳
//max186通道ch7對應(yīng)的是7,它是max186第8腳
//比如:int ch3;
// ch3=ad186(3);
//ch3就是從max186的第4腳輸入的模擬電壓信號大小,單位是mv,如果此時max186的第4腳(ch4)——輸//入1.000伏的電壓,則返回0x3E8H(就是十進(jìn)制的1000)。
//同理:ad186(4)表示的是從第5腳(即ch4)輸入的信號。(參看附圖)
uint ad186(uchar ss)
{
uchar i,kki,s;
uint i_da
switch(ss)
{
case 0: s=0x8E;break;
case 1: s=0xCE;break;
case 2: s=0x9E;break;
case 3: s=0xDE;break;
case 4: s=0xAE;break;
case 5: s=0xEE;break;
case 6: s=0xBE;break;
case 7: s=0xFE;break;
default: s=0xAE;break;
}
CS=1;
SCLK=0;
CS=0;
SCLK=0;
for(i=0;i<8;i++)
{
uchar adaddresstransfer;
adaddresstransfer=s;
adaddresstransfer=(adaddresstransfer>>(7-i))&0x01;
DIN=adaddresstransfer;
SCLK=1;
for(kki=0;kki<2;kki++);
SCLK=0;
}
CS=1;
for(i=0;i<6;i++);
CS=0;
SCLK=1;
for(i=0;i<12;i++)
{
SCLK=1;
SCLK=0;
i_datatransfer=DOUT;
i_datatransfer=i_datatransfer<<(11-i);
i_da
}
addata=i_da
for(i=0;i<4;i++)
{
SCLK=1;
SCLK=0;
}
CS=1;
i_da
delay(5);
return(addata);
}
評論