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

📄 pragma.c.bak

📁 NEC做的铝电池管理程序
💻 BAK
字号:

#pragma SFR
#pragma  NOP
#pragma  DI
#pragma  EI
#pragma  access



#pragma  vect RESET main NOBANK   //DON'T USE CSTART 
#pragma  interrupt INTTM80 tm2ms  //TIMER80 INT PROGRAM




#define uchar unsigned char
#define MOSF    P13.0
#define MOSCM      PM12.3
#define MOSC     P12.3 

uchar TimerCnt;
uchar ADC();
bit Timerflg;


void main()
{

  #asm   
  ;stack head 0XFEFF
  MOVW AX,#0FEFFH
  MOVW SP,AX
  NOP
  #endasm	
  
   LVIS=0X09;  //2.3V
   LVIM=0x80; //>2.3v work
   
   TMHMD1=0b01010000; //1.88KHz SUBCLK
   CMP01=200;         //50ms 480KH
   TMHE1=1;          //TMH1
   while(!TMIFH1);   
   TMIFH1=0;         //TMH1 FLG
   TMHE1=0;

  PCC=0;
  PPCC=0x02;//2MHZ fxp
   
  CR80=62;   //2ms
  TCE80=1;
  
  TimerCnt=0;
  MOSF=0;
  MOSCM=0;
  MOSC=0;
  
  if(LVIF)
  {
  	MOSF=1;
  }
  	
  
  TMMK80=0;
  EI();
  
  while(1)
  {
   if(Timerflg)
   {
    WDTE=0xAC;
    Timerflg=0;
    TimerCnt++;
    if(LVIS==0X09) //2.35V
    {
    	if(LVIF)
    	  MOSF=1;
    	else
    	 {
    	     MOSF=0;
    	     LVIS=0X03;
    	  }
     }
    else if(LVIS==0X03)//3.7V
    {
    	if(LVIF)
    	  { 
    	  	MOSC=0;
    	  	LVIS=0X09;
    	  }
    	else
    	   MOSC=1;
    }
    else LVIS=0X03;
    
    
     }
   
 
    
    
   }
 }
 

 
 void tm2ms()
 {
  Timerflg=1;
 }
 

uchar ADC(uchar i)
{
	register uchar j;
	ADM=0X19; //ADCE=1,FR=011
	ADS=i;
	NOP();
	NOP();
	ADCS=1;
	while(!ADIF)
	{
	 ;
	}
	ADIF=0;
	j=ADCRH;
	ADCS=0;
	ADCE=0;
       
       return j;
}
	 
	 

⌨️ 快捷键说明

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