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

📄 text1

📁 ADC0832 和 LCD1602 的测试程序
💻
字号:
				   #include<reg52.h>

 

sbit ADC_CS =P3^3;

sbit ADC_CLK=P3^2;

sbit ADC_DO =P3^7;

sbit ADC_DI =P3^6;

/*******************************************************************/

 

void Delay(unsigned char x)

{ 

 unsigned char i; 

 for(i=0;i<x;i++); //延时,脉冲一位持续的时间

}

unsigned char ReadADC(void) //把模拟电压值转换成8位二进制数并返回

{ 

 unsigned char i,ch;

 ch=0;

 ADC_CS=0;

 ADC_DO=0;//片选,DO为高阻态

 for(i=0;i<10;i++)

    {;}

 ADC_CLK=0;

 Delay(2);

 ADC_DI=1; 

 ADC_CLK=1; 

 Delay(2); //第一个脉冲,起始位 

 ADC_CLK=0; 

 Delay(2); 

 ADC_DI=1; 

 ADC_CLK=1;

 Delay(2); //第二个脉冲,DI=1表示双通道单极性输入

 ADC_CLK=0;

 Delay(2);

 ADC_DI=1; 

 ADC_CLK=1;

 Delay(2); //第三个脉冲,DI=1表示选择通道1(CH2)

 ADC_DI=0; 

 ADC_DO=1;//DI转为高阻态,DO脱离高阻态为输出数据作准备

 ADC_CLK=1;

 Delay(2);

 ADC_CLK=0; 

 Delay(2);//经实验,这里加一个脉冲AD便能正确读出数据,

           //不加的话读出的数据少一位(最低位d0读不出)

for (i=0; i<8; i++)

    { 

     ADC_CLK=1; 

        Delay(2); 

 ADC_CLK=0; 

 Delay(2);

     ch=(ch<<1)|ADC_DO;//在每个脉冲的下降沿DO输出一位数据,最终ch为8位二进制数

   }

   ADC_CS=1;//取消片选,一个转换周期结束

 return(ch);//把转换结果返回

}

⌨️ 快捷键说明

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