📄 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 + -