标题:
TLC0838 8路AD 51单片机程序分享
[打印本页]
作者:
51黑bug
时间:
2016-6-23 21:58
标题:
TLC0838 8路AD 51单片机程序分享
8路8位串行AD TLC0838与51系列单片机的接口程序,可多片并联,共用时钟线与数据线适用于多路采集,本程序中使用两片可采集16路
0.png
(57.77 KB, 下载次数: 109)
下载附件
2016-6-23 21:57 上传
完整代码下载:
0838.rar
(722 Bytes, 下载次数: 33)
2016-6-23 21:57 上传
点击文件名下载附件
下载积分: 黑币 -5
void main(void)
{
Byte data1;
data1=AD_0838(0,2);
while(1);
}
/**********************************************************
目的:运用TLC0838,输入通道值,读取AD转换值
输入参数:1、通道值TDZ
输出参数:1、AD转换结果AD_JG
相关管脚:1、ADCS1=P1^3 第一个0838-AD片选 2、ADCS2=P1^0 第二个0838-AD片选
3、ADCLK=P1^1 0832-AD时钟 4 、ADIO=P1^4 0832-AD数据
*/
Byte AD_0838(Byte TDZ,Byte Number)
{
Byte Bit[8];
Byte TDZ_MID;
Byte i;
Byte AD_JG=0x00;
Bit[0]=0x01;
Bit[1]=0x02;
Bit[2]=0x04;
Bit[3]=0x08;
Bit[4]=0x10;
Bit[5]=0x20;
Bit[6]=0x40;
Bit[7]=0x80;
switch(TDZ)
{
case 0 :TDZ_MID=0x18;break;
case 1 :TDZ_MID=0x1c;break;
case 2 :TDZ_MID=0x19;break;
case 3 :TDZ_MID=0x1d;break;
case 4 :TDZ_MID=0x1a;break;
case 5 :TDZ_MID=0x1e;break;
case 6 :TDZ_MID=0x1b;break;
case 7 :TDZ_MID=0x1f;break;
}
switch(Number)
{
case 1:ADCS1=1;break;
case 2:ADCS2=1;break;
}
RS_ADIO=0;
CM8880CLK_ADCLK=0;
switch(Number)
{
case 1:ADCS1=0;break;
case 2:ADCS2=0;break;
}
for(i=5;i>0;i--)
{
RS_ADIO=TDZ_MID&Bit[i-1];
AD_0838_Pulse();
}
CM8880CLK_ADCLK=1;
for(i=8;i>0;i--)
{
AD_0838_Pulse();
if(RS_ADIO)AD_JG|=Bit[i-1];
}
switch(Number)
{
case 1:ADCS1=1;break;
case 2:ADCS2=1;break;
}
return AD_JG;
}
void AD_0838_Pulse(void)
{
Byte i;
CM8880CLK_ADCLK=1; //get a pulse about 52 us
for(i=0;i<4;i++)
{
_nop_();
}
CM8880CLK_ADCLK=0;
for(i=0;i<4;i++)
{
_nop_();
}
}
复制代码
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1