📄 0316-1.c
字号:
#include <pic.h>
#define vt GPIO0;
#define it GPIO1;
#define pwm GPIO2;
#define led GPIO4;
#define charge GPIO5;
unsigned char i;
unsigned char flag;
unsigned long k;
void interrupt timer0_isr(void) @ 0x10
{
TMR0 = 0x00; // re-load timer
pwm=1;
for(i=255;i>1;i--);
pwm=0;
}
main()
{
flag=0;
TRISIO = 0xCB; // initialize IO;
OPTION = 0x83; // initialize timer 0;
TMR0 = 0x00; // preload timer
ADFM=1;
VCFG=0;
ADCS0=1;
ADCS1=0;
ADCS2=1;
T0IE = 1; // enable timer interrupt
GIE = 1; // enable global interrupts
while(1)
{
charge=0;
CHS0=0;
CHS1=0;
ANS0=1;
GODONE=1;
while(ADIF==0);
led=1;
while(ADRESL>62)//0.3V
{
GODONE=0;
charge=1;
led=1;
TMR0 = 0x00;
for(k=10000;k>1;k--) //1s
{
CHS0=0;
CHS1=1;
ANS1=1;
if(ADRESL<5) //IC<49mA
TMR0 = 0x10;
else //IC>50mA
TMR0 = 0x00;
}
charge=0;
CHS0=0;
CHS1=0;
ANS0=1;
GODONE=1;
while(ADIF==0);
/****************************************************/
while((ADRESH>0)&&(ADRESL>233))//2.4V
{
charge=1;
led=1;
TMR0=0x66;
for(k=10000;k>1;k--) //1s
{
CHS0=0;
CHS1=1;
ANS1=1;
if(ADRESL<51) //IC<500mA
TMR0 = 0x88;
else //IC>500mA
TMR0 = 0x66;
}
charge=0;
CHS0=0;
CHS1=0;
ANS0=1;
GODONE=1;
while(ADIF==0);
if(flag==0)
{
VT0=
flag=1;
}
if(flag==1)
{
VT1=
flag=2;
}
if(flag==2)
{
VT2=
flag=3;
}
if(flag==3)
{
VT3=
flag=0;
}
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -