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

📄 ad0832.c

📁 此程序是一个关于A/D转化芯片0832的程序
💻 C
字号:
#include "AT89X52.H"
#define uchar unsigned char
#define uint  unsigned int

#define ADCLK P3_4     //时钟接口
#define ADDI P3_5     //数据输入接口
#define ADDO P3_5     //数据输出接口
#define ADCS P3_0     //使能接口

void Delay35U();
void Delay2U();



uchar AD(uchar n)
{
uchar temp=0;
uchar temp1=0;
uchar temp2=0;
uchar i=0;
 switch(n)
	{
	case 0:n=1;break;
	case 1:n=3;break;
	case 2:n=9;break;
	case 3:n=11;break;
	case 4:n=5;break;
	case 5:n=7;break;
	case 6:n=13;break;
	case 7:n=1;break;
	case 8:n=15;break;
	}
ADCS=1;
Delay2U();
ADCLK=0;

ADDI=1;            /*在第1 个时钟脉冲的下沉之前DI端必须是高电平,表示启始信号*/
ADCS=0;            //使能ADC0838
Delay2U();

ADCLK=1;
Delay2U();
ADCLK=0;
Delay2U();

for(i=0;i<4;i++)             
{
ADDI=n&1;
n=n>>1;
Delay2U();
ADCLK=1;
Delay2U();
ADCLK=0;
Delay2U();
}

ADDI=1;

Delay35U();


//***************接收********************
for(i=0; i < 8; i++)
{
ADCLK=1;
Delay2U();
ADCLK=0;
Delay2U();
temp1=temp1 << 1;
if(ADDO)temp1|= 0x01;              
else temp1|= 0x00;
}

/*for(i=0; i < 8; i++)
{
if(ADDO)temp=0x01;
else temp=0x00;
temp=temp << i;
temp2 |= temp;
ADCLK=1;
Delay2U();
ADCLK=0;
Delay2U();
}
if(temp1 == temp2);
*/
ADDI=1;
ADCS=1;
return temp1;
}


void Delay2U()
{
uchar x=4;
while(x--);
}

void Delay35U()
{
uchar x=40;
while(x--);
}


void main()
{uint yscs;
int ys;

while(1){P0=AD(1);



    for(ys =200;ys>0;ys--)
    {  for(yscs=0;yscs<124;yscs++) 
       {;}
    }
     } 
}

⌨️ 快捷键说明

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