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

📄 ad.c

📁 带LCD驱动纳瓦级mpu pic16F946 ad采样程序
💻 C
字号:
#include <pic16F946.h>

#include "Delay.h"



float ad=1.0; 

int x=0,y=0;

union adres

	{

		unsigned int AdRes;

		unsigned char adre[2];

		}Temp;

void DelayMs(unsigned char cnt)

{

	unsigned char i;

	while (cnt--) {

		i=4;

		while(i--) {

	

			DelayUs(uS_CNT);	/* Adjust for error */

		} ;

	} ;

}

unsigned int ReadAd(unsigned char Channal,unsigned int N)

{

unsigned int AD_Value;

unsigned long AD_V;

unsigned int i;

    if(Channal == 0){

        CHS0=0;

        CHS1=0;

        CHS2=0;

    }

    if(Channal == 1){

        CHS0=1;

        CHS1=0;

        CHS2=0;

    }

    if(Channal == 2){

        CHS0=0;

        CHS1=1;

        CHS2=0;

    }

    DelayMs(1);

    AD_Value = 0;

    AD_V = 0;

    for (i=0;i<N;i++){

        GODONE=1; //start AD

        while(GODONE==1);

        Temp.adre[0]=ADRESL;

        Temp.adre[1]=ADRESH;

        AD_V = AD_V +Temp.AdRes;

        DelayMs(1);

        //CLRWDT();

    }



    AD_Value = AD_V 

    return AD_Value;

}

void AdInit(void)

{

    //ANSEL=0;

    ANS0=1; //RCS

    ANS1=1; //RCN

	ADCON0 = 0x81;//OPEN AD CHANGE  右对齐,参考电压Vcc  使能 Ad



	ADCON1 = 0x40;// 最高采样频率  fosc/4

    TRISA1=1;   //RA1 输入

    TRISA0=1;   //RA1 输入



}







void main()

{

  AdInit();



  while(1)

  {

    x=ReadAd(1,3);

    x=x*5;

    //V=((double)TempV)/65472.0;

   //ad=((double)x/1024.0);

    ad=((float)x/1024.0);

//    ad=(float)(x/1024.0);

    //ad=((float)(x)/(1024.0));

    

    y++;

   y++;
  }
}

⌨️ 快捷键说明

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