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

📄 16f684.c

📁 具有AD 电池电压采集
💻 C
字号:
#include<pic.h>
__CONFIG(WDTDIS & INTIO & UNPROTECT & MCLRDIS	& PWRTDIS); 
void portinit(void );
 union		adres
{
	int		y1;
	unsigned  char  adre[2];
}   adresult; 
static int  sum[2]={0,0};	
unsigned char  CH = 0;	
void main()
{
 

portinit( );
ei();

RC4= 0;// RC4 为灯输出控制开关
while(1)
{
  if(sum[0]>25)
   RC4 = 1; 
   else RC4 = 0;
if(sum[1]>25)
RC5 = 1;
else RC5 = 0;

 
}

}
void portinit( void )
{
 
  OSCCON = 0X07; //系统频率32khz
  CMCON0 = 0X07;//数字接口
  ANSEL = 0X03; //RA0,RA1 为模拟输入
  TRISA = 0X03;//为输入
  TRISC = 0X0F;//RC0,RC1,RC2,RC3为定式选择,RC4-灯 ,RC5 过充保护
  ADCON0 = 0X81;
  ADCON1 = 0X60;
  PIE1 = 0X00;
   
  ADIE = 1;
  PEIE = 1;
  GODONE = 1;  
}
 
 	
 
 
 

 
/***********************************************************************/
/*函数名:interrupt	adint()										*/
//功能:AD处理中断服务子程序									     */
/***********************************************************************/
void		interrupt		adint( void   )
{

	ADIF = 0;					//清除中断标志
   	adresult.adre[0]=ADRESL;
	adresult.adre[1]=ADRESH;	//读取并存储A/D转换结果,A/D转换的结果通过共
							//用体的形式放入了变量y1中   
         if(CH == 0)  
         {  
            sum[0] = (int )(((float)adresult.y1 * 50/1024));
            CHS2 = 0;
            CHS1 = 0;
            CHS0 = 1;
            CH = 1;
         }
         else 
          {
            sum[1] = (int )(((float)adresult.y1 * 50/1024) );
            CHS2 = 0;
            CHS1 = 0;
            CHS0 = 0;
            CH = 0;
           }

           GODONE= 1;				//启动下一次A/D转换
}  
 

⌨️ 快捷键说明

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