⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ad_0838.c

📁 8路8位串行AD TLC0838与51系列单片机的接口程序
💻 C
字号:


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_();
        }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -