新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于C8051F的AD UART0 KEY FLASH TIME3程序

基于C8051F的AD UART0 KEY FLASH TIME3程序

作者: 时间:2016-12-01 来源:网络 收藏
void Pchange(uint PW)
{
TH = PW/10000; //放电万位
TL = (PW-TH*10000)/1000; //千位
TT1 = (PW-TH*10000-TL*1000)/100;
TT2 = (PW-TH*10000-TL*1000-TT1*100)/10;
TT3 = (PW-TH*10000-TL*1000-TT1*100)%10;
if(!TH)
{
TH = 10;
if(!TL)
{
TL = 10;
if(!TT1)
{
TT1 = 10;
}
}
}
}
//-----------------------------------------------------------------------------
// Main 年:0xC4EA 月:0xD4C2 日:0xC8D5 时:0xCAB1: 分0xB7D6: 秒:0xC3EB 的汉字内码
//-----------------------------------------------------------------------------
void main(void)
{
uchar Page1,j;
uchar Runstate ; //Runstate为运行状态指示:DI1=1;DI2=1停机;DI1=0;DI2=1充电;DI1=1;DI2=0放电;DI1=1;DI2=1故障
uint VT,AT,PT,PC1,PF1,PDIS,PdownCount; //电压电流功率功率计数变量
uint ADC1,ADC2,ADC3,ADC4; //四路AD通道变量
long a,PT1,PT2; //P1,P2充放电累计功率
//P0 = 0;
//P1 = 0;
P4 =0xfe;
P2 = 0;
P3 = 0;
Init_Device();
PCA0MD &= ~0x40;
EA = 0;
//BLK = 1;
delayms(1000);
Ds1302_Init();
init_lcd ();
clrram ();
ADC0CF = ((SYSCLK/3000000)-1)<<3; // set SAR clock to 3MHz
ADC0CN |=0x10; //写ADC0BUSY位启动转换
TMR3CN = 0x04; //启动TM3
//Timer2_Init(SYSCLK/12/50); //20ms
EA = 1;
DE = 1;
TR1 = 1;
Ds1302_Read_Time();
while(1)
{
//PCA0CPH2 = 1; //喂狗
key_scan();
if(BGset)
{
BLK = 1;
}
if(!BGset)
{
BLK = 0;
} //按键扫描
if((DI1==1)&&(DI2==1)) Runstate = 0xa6; //停机
if((DI1==0)&&(DI2==1)) Runstate = 0xb7; //充电
if((DI1==1)&&(DI2==0)) Runstate = 0xc8; //放电
if((DI1==0)&&(DI2==0)) Runstate = 0xd9; //故障
//if(Runstate == 0xb7) //充电的FLASH存储处理
if(!set)
{
if((time_buf1[2] != CPT_c[10])|| (time_buf1[3] != CPT_c[11])) //读取的当前时间与缓存不等的时候,所有内容依次前移
{
Between[0]=CPT_c[3]; //依次前移
Between[1]=CPT_c[4];
Between[2]=CPT_c[5];
Between[3]=CPT_c[6];//年
Between[4]=CPT_c[7];//月
Between[5]=CPT_c[8];//日
Between[6]=CPT_c[9];
Between[7]=CPT_c[10];
Between[8]=CPT_c[11];
Between[9]=time_buf1[1];
Between[10]=time_buf1[2];
Between[11]=time_buf1[3];
Between[12]=CPT_c[14];
Between[13]=CPT_c[15];
Between[14]=CPT_c[16];
Between[15]=CPT_c[17];
Between[16]=CPT_c[18];
Between[17]=CPT_c[19];
Between[18] = PC1>>8;
Between[19] = PC1&255;
Flash_Erase_CTP();
Flash_Program_CTP(); //保存至FLASH
}
}
//if(Runstate == 0xc8) //放电时FLASH存储处理
if(!set)
{
if((time_buf1[2] != FPT_c[10])|| (time_buf1[3] != FPT_c[11]))
{
Between[0]=FPT_c[3]; //依次前移
Between[1]=FPT_c[4];
Between[2]=FPT_c[5];
Between[3]=FPT_c[6];//年
Between[4]=FPT_c[7];//月
Between[5]=FPT_c[8];//日
Between[6]=FPT_c[9];
Between[7]=FPT_c[10];
Between[8]=FPT_c[11];
Between[9]=time_buf1[1];
Between[10]=time_buf1[2];
Between[11]=time_buf1[3];
Between[12]=FPT_c[14];
Between[13]=FPT_c[15];
Between[14]=FPT_c[16];
Between[15]=FPT_c[17];
Between[16]=FPT_c[18];
Between[17]=FPT_c[19];
Between[18] = PF1>>8;
Between[19] = PF1&255;
Flash_Erase_FTP();
Flash_Program_FTP(); //保存至FLASH
}
}
if(PDD)
{
PDD = 0;
if(Runstate == 0xb7) //如果充电
{
PdownCount++; //秒累加
PT1 = PT1+PT; //秒累计的功率,
PC1 = PT1/3600; //实际充电功率,按小时计算,注意此时累计电量为实际的10倍,为了送小数显示
if(PdownCount > T) //超过半个小时开始写入EEPROM
{
PdownCount = 0;
for(j=0;j<20;j++) //先读出FLASH里的时间
{
Between[j]=CPT_c[j];
}
if((time_buf1[2] == Between[10])&& (time_buf1[3] == Between[11])) //当前时间等于缓存时间,继续写入缓存
{
Between[18] = PC1>>8;
Between[19] = PC1&255;
Flash_Program_CTP(); //写功率和时间到FLASH
}
}
}
if(Runstate == 0xc8) //如果放电
{
PdownCount++; //秒累加
PT2 = PT2+PT; //秒累计的功率
PF1 = PT2/3600; //实际放电功率,按小时计算,,注意此时累计电量为实际的10倍,为了送小数显示
if(PdownCount > T) //超过半个小时开始写入EEPROM
{
PdownCount = 0;
for(j=0;j<20;j++) //先读出FLASH里的时间
{
Between[j]=FPT_c[j];
}
if((time_buf1[2] == Between[10])&& (time_buf1[3] == Between[11])) //当前时间等于缓存时间,继续写入缓存
{
Between[18] = PF1>>8;
Between[19] = PF1&255;
Flash_Program_FTP(); //写功率和时间到FLASH
}
}
}
}
if(Disptime)
{
Disptime = 0;
Ds1302_Read_Time();
if(Page!=Page1)
{
clrram (); //如果页面变化,需要清屏;
}
switch(Page)
{
case 1: //画面1:显示当前电压电流
{
string_disp (1,0,0x80,10,tab1); //显示电压
string_disp (1,0,0x90,10,tab2); //显示电流
string_disp (0,1,0x80,10,tab3); //显示功率
string_disp (0,1,0x90,10,tab4);
if(Runstate == 0xa6)string_disp (0,1,0x96,4,run1); //显示停机
if(Runstate == 0xb7)string_disp (0,1,0x96,4,run2); //显示充电
if(Runstate == 0xc8)string_disp (0,1,0x96,4,run3); //显示放电
if(Runstate == 0xd9)string_disp (0,1,0x96,4,run4); //显示故障
TH= VT/1000; //拆分送显示千位
TL = (VT%1000)/100; //拆分送显示百位
TT1 = ((VT%1000)%100)/10; //拆分送显示十位
TT2 = ((VT%1000)%100)%10; //拆分送显示个位
if(!TH)
{
TH = 10;
if(!TL)
{
TL = 10;
}
}
number_disp (1,0,0x85,1,TAB[TH],TAB[TL]); //电压送显示
number_disp (1,0,0x86,1,TAB[TT1],0x2E);
number_disp (1,0,0x87,1,TAB[TT2],0x20);
number_disp (1,0,0x88,1,0x56,0x20);
TH= AT/1000; //拆分送显示千位
TL = (AT%1000)/100; //拆分送显示百位
TT1 = ((AT%1000)%100)/10; //拆分送显示十位
TT2 = ((AT%1000)%100)%10; //拆分送显示个位
if(!TH) //高位为零,灭零处理
{
TH = 10;
if(!TL)
{
TL = 10;
}
}
number_disp (1,0,0x95,1,TAB[TH],TAB[TL]); //电流送显示
number_disp (1,0,0x96,1,TAB[TT1],0x2E);
number_disp (1,0,0x97,1,TAB[TT2],0x20);
number_disp (1,0,0x98,1,0x41,0x20);
TH= PT/1000; //拆分送显示千位
TL = (PT%1000)/100; //拆分送显示百位
TT1 = ((PT%1000)%100)/10; //拆分送显示十位
TT2 = ((PT%1000)%100)%10; //拆分送显示个位
if(!TH) //高位为零,灭零处理
{
TH = 10;
if(!TL)
{
TL = 10;
}
}
number_disp (0,1,0x85,1,TAB[TH],TAB[TL]); //功率送显示
number_disp (0,1,0x86,1,TAB[TT1],0x2E);
number_disp (0,1,0x87,1,TAB[TT2],0x4B);
number_disp (0,1,0x88,1,0x57,0x20);
Page1=Page; //保存当前页面值
}break;
case 2:
{
string_disp (1,0,0x80,12,run6);
string_disp (0,1,0x80,12,run7);
Pchange(PC1);
number_disp (1,0,0x94,1,TAB[TH],TAB[TL]);
number_disp (1,0,0x95,1,TAB[TT1],TAB[TT2]);
number_disp (1,0,0x96,1,0x2e,TAB[TT3]);
number_disp (1,0,0x97,1,0x4b,0x57);
Pchange(PF1);
number_disp (0,1,0x94,1,TAB[TH],TAB[TL]);
number_disp (0,1,0x95,1,TAB[TT1],TAB[TT2]);
number_disp (0,1,0x96,1,0x2e,TAB[TT3]);
number_disp (0,1,0x97,1,0x4b,0x57);
Page1=Page;
}break;
case 3: //显示历史充电记录
{
string_disp (1,0,0x80,12,tab5); //
//第1条信息
if((CPT_c[0]>99)||(CPT_c[1]>12)||(CPT_c[2]>31))
{
string_disp (1,0,0x90,8,tab9);
} //如果读取时间不对,显示“暂无记录”
else
{
number_disp (1,0,0x90,1,0x32,0x30); //0送显示
TH = CPT_c[0]/10;
TL = CPT_c[0]%10;
number_disp (1,0,0x91,1,TAB[TH],TAB[TL]);
number_disp (1,0,0x92,1,0xc4,0xea); //年
TH = CPT_c[1]/10;
TL = CPT_c[1]%10;
number_disp (1,0,0x93,1,TAB[TH],TAB[TL]);
number_disp (1,0,0x94,1,0xd4,0xc2); //月
TH = CPT_c[2]/10;
TL = CPT_c[2]%10;
number_disp (1,0,0x95,1,TAB[TH],TAB[TL]);
number_disp (1,0,0x96,1,0xc8,0xd5); //日
PDIS = CPT_c[12];
PDIS = PDIS<<8 + CPT_c[13];
Pchange(PDIS);
number_disp (1,0,0x98,1,TAB[TH],TAB[TL]);
number_disp (1,0,0x99,1,TAB[TT1],TAB[TT2]);
number_disp (1,0,0x9A,1,0x2e,TAB[TT3]);
number_disp (1,0,0x9B,1,0x4b,0x57);
}
//第2条信息
if((CPT_c[3]>99)||(CPT_c[4]>12)||(CPT_c[5]>31))
{
string_disp (0,1,0x80,8,tab9);
} //如果读取时间不对,显示“暂无记录”
else
{
number_disp (0,1,0x80,1,0x32,0x30); //0送显示
TH = CPT_c[3]/10;
TL = CPT_c[3]%10;
number_disp (0,1,0x81,1,TAB[TH],TAB[TL]);
number_disp (0,1,0x82,1,0xc4,0xea); //年
TH = CPT_c[4]/10;
TL = CPT_c[4]%10;
number_disp (0,1,0x83,1,TAB[TH],TAB[TL]);
number_disp (0,1,0x84,1,0xd4,0xc2); //月
TH = CPT_c[5]/10;
TL = CPT_c[5]%10;
number_disp (0,1,0x85,1,TAB[TH],TAB[TL]);
number_disp (0,1,0x86,1,0xc8,0xd5); //日
PDIS = CPT_c[14];
PDIS = PDIS<<8 + CPT_c[15];
Pchange(PDIS);
number_disp (0,1,0x88,1,TAB[TH],TAB[TL]);
number_disp (0,1,0x89,1,TAB[TT1],TAB[TT2]);
number_disp (0,1,0x8A,1,0x2e,TAB[TT3]);
number_disp (0,1,0x8B,1,0x4b,0x57);
}
//第3条信息
if((CPT_c[6]>99)||(CPT_c[7]>12)||(CPT_c[8]>31))
{
string_disp (0,1,0x90,8,tab9); //如果读取时间不对,显示“暂无记录”
}
else
{
number_disp (0,1,0x90,1,0x32,0x30); //0送显示
TH = CPT_c[6]/10;
TL = CPT_c[6]%10;
number_disp (0,1,0x91,1,TAB[TH],TAB[TL]);
number_disp (0,1,0x92,1,0xc4,0xea); //年
TH = CPT_c[7]/10;
TL = CPT_c[7]%10;
number_disp (0,1,0x93,1,TAB[TH],TAB[TL]);
number_disp (0,1,0x94,1,0xd4,0xc2); //月
TH = CPT_c[8]/10;
TL = CPT_c[8]%10;
number_disp (0,1,0x95,1,TAB[TH],TAB[TL]);
number_disp (0,1,0x96,1,0xc8,0xd5); //日
PDIS = CPT_c[16];
PDIS = PDIS<<8 + CPT_c[17];
Pchange(PDIS);
number_disp (0,1,0x98,1,TAB[TH],TAB[TL]);
number_disp (0,1,0x99,1,TAB[TT1],TAB[TT2]);
number_disp (0,1,0x9A,1,0x2e,TAB[TT3]);
number_disp (0,1,0x9B,1,0x4b,0x57);
}
Page1=Page;
}break;
case 4: //显示历史放电记录
{
string_disp (1,0,0x80,12,tab6); //
//第1条信息
if((FPT_c[0]>99)||(FPT_c[1]>12)||(FPT_c[2]>31)) //如果读取时间不对,显示“暂无记录”
{
string_disp (1,0,0x90,8,tab9);
}
else
{
number_disp (1,0,0x90,1,0x32,0x30); //0送显示
TH = FPT_c[0]/10;
TL = FPT_c[0]%10;
number_disp (1,0,0x91,1,TAB[TH],TAB[TL]);
number_disp (1,0,0x92,1,0xc4,0xea); //年
TH = FPT_c[1]/10;
TL = FPT_c[1]%10;
number_disp (1,0,0x93,1,TAB[TH],TAB[TL]);
number_disp (1,0,0x94,1,0xd4,0xc2); //月
TH = FPT_c[2]/10;
TL = FPT_c[2]%10;
number_disp (1,0,0x95,1,TAB[TH],TAB[TL]);
number_disp (1,0,0x96,1,0xc8,0xd5); //日
PDIS = FPT_c[12];
PDIS = PDIS<<8 + FPT_c[13];
Pchange(PDIS);
number_disp (1,0,0x98,1,TAB[TH],TAB[TL]);
number_disp (1,0,0x99,1,TAB[TT1],TAB[TT2]);
number_disp (1,0,0x9A,1,0x2e,TAB[TT3]);
number_disp (1,0,0x9B,1,0x4b,0x57);
}
//第2条信息
if((FPT_c[3]>99)||(FPT_c[4]>12)||(FPT_c[5]>31))
{
string_disp (0,1,0x80,8,tab9); //如果读取时间不对,显示“暂无记录”
}
else
{
number_disp (0,1,0x80,1,0x32,0x30); //0送显示
TH = FPT_c[3]/10;
TL = FPT_c[3]%10;
number_disp (0,1,0x81,1,TAB[TH],TAB[TL]);
number_disp (0,1,0x82,1,0xc4,0xea); //年
TH = FPT_c[4]/10;
TL = FPT_c[4]%10;
number_disp (0,1,0x83,1,TAB[TH],TAB[TL]);
number_disp (0,1,0x84,1,0xd4,0xc2); //月
TH = FPT_c[5]/10;
TL = FPT_c[5]%10;
number_disp (0,1,0x85,1,TAB[TH],TAB[TL]);
number_disp (0,1,0x86,1,0xc8,0xd5); //日
PDIS = FPT_c[14];
PDIS = PDIS<<8 + FPT_c[15];
Pchange(PDIS);
number_disp (0,1,0x88,1,TAB[TH],TAB[TL]);
number_disp (0,1,0x89,1,TAB[TT1],TAB[TT2]);
number_disp (0,1,0x8A,1,0x2e,TAB[TT3]);
number_disp (0,1,0x8B,1,0x4b,0x57);
}
//第3条信息
if((FPT_c[6]>99)||(FPT_c[7]>12)||(FPT_c[8]>31))
{
string_disp (0,1,0x90,8,tab9);
}
else
{
number_disp (0,1,0x90,1,0x32,0x30); //0送显示
TH = FPT_c[6]/10;
TL = FPT_c[6]%10;
number_disp (0,1,0x91,1,TAB[TH],TAB[TL]);
number_disp (0,1,0x92,1,0xc4,0xea); //年
TH = FPT_c[7]/10;
TL = FPT_c[7]%10;
number_disp (0,1,0x93,1,TAB[TH],TAB[TL]);
number_disp (0,1,0x94,1,0xd4,0xc2); //月
TH = FPT_c[8]/10;
TL = FPT_c[8]%10;
number_disp (0,1,0x95,1,TAB[TH],TAB[TL]);
number_disp (0,1,0x96,1,0xc8,0xd5);
PDIS = FPT_c[16];
PDIS = PDIS<<8 + FPT_c[17];
Pchange(PDIS);
number_disp (0,1,0x98,1,TAB[TH],TAB[TL]);
number_disp (0,1,0x99,1,TAB[TT1],TAB[TT2]);
number_disp (0,1,0x9A,1,0x2e,TAB[TT3]);
number_disp (0,1,0x9B,1,0x4b,0x57);
}
Page1=Page;
}break;
case 5: //显示当前时间
{
string_disp (1,0,0x80,10,tab7);
number_disp (1,0,0x90,1,0x32,0x30); //0送显示
TH = time_buf1[1]/10;
TL = time_buf1[1]%10;
number_disp (1,0,0x91,1,TAB[TH],TAB[TL]);
number_disp (1,0,0x92,1,0xc4,0xea); //年
TH = time_buf1[2]/10;
TL = time_buf1[2]%10;
number_disp (1,0,0x93,1,TAB[TH],TAB[TL]);
number_disp (1,0,0x94,1,0xd4,0xc2); //月
TH = time_buf1[3]/10;
TL = time_buf1[3]%10;
number_disp (1,0,0x95,1,TAB[TH],TAB[TL]);
number_disp (1,0,0x96,1,0xc8,0xd5); //日
TH = time_buf1[4]/10;
TL = time_buf1[4]%10;
number_disp (0,1,0x85,1,TAB[TH],TAB[TL]); //
number_disp (0,1,0x86,1,0xca,0xb1); //时
TH = time_buf1[5]/10;
TL = time_buf1[5]%10;
number_disp (0,1,0x87,1,TAB[TH],TAB[TL]);
number_disp (0,1,0x88,1,0xb7,0xd6); //分
TH = time_buf1[6]/10;
TL = time_buf1[6]%10;
number_disp (0,1,0x89,1,TAB[TH],TAB[TL]); //
number_disp (0,1,0x8a,1,0xc3,0xeb); //秒
Page1=Page;
}break;
case 6: //修改时间
{
if(!set) //没有按SET键
{
string_disp (1,0,0x80,10,tab8);
number_disp (1,0,0x90,1,0x32,0x30); //0送显示
TH = time_buf1[1]/10;
TL = time_buf1[1]%10;
number_disp (1,0,0x91,1,TAB[TH],TAB[TL]);
number_disp (1,0,0x92,1,0xc4,0xea); //年
TH = time_buf1[2]/10;
TL = time_buf1[2]%10;
number_disp (1,0,0x93,1,TAB[TH],TAB[TL]);
number_disp (1,0,0x94,1,0xd4,0xc2); //月
TH = time_buf1[3]/10;
TL = time_buf1[3]%10;
number_disp (1,0,0x95,1,TAB[TH],TAB[TL]);
number_disp (1,0,0x96,1,0xc8,0xd5); //日
TH = time_buf1[4]/10;
TL = time_buf1[4]%10;
number_disp (0,1,0x85,1,TAB[TH],TAB[TL]); //
number_disp (0,1,0x86,1,0xca,0xb1); //时
TH = time_buf1[5]/10;
TL = time_buf1[5]%10;
number_disp (0,1,0x87,1,TAB[TH],TAB[TL]);
number_disp (0,1,0x88,1,0xb7,0xd6); //分
TH = time_buf1[6]/10;
TL = time_buf1[6]%10;
number_disp (0,1,0x89,1,TAB[TH],TAB[TL]); //
number_disp (0,1,0x8a,1,0xc3,0xeb); //秒
for (j = 0;j<6;j++)
{
keybuffer[j] = time_buf1[j+1];
}
}
Page1=Page; //保存当前页面值
}break;
case 0: //显示故障状态
{
string_disp (1,0,0x90,12,run5);
string_disp (0,1,0x85,12,run8);
Page1=Page; //保存当前页面值
}break;
default:break;
}
}
if(ADsend)
{
ADsend = 0;
if(ADcount == 1)
{
filter();
ADC1= (sum/(N-2));
if(ADC1<5)
{
ADC1 = 0;
}
a = (long)7500*ADC1/1021; //放大10倍,为了送显示小数点
VT = a; //
ADC0CN |=0x10; //写ADC0BUSY位启动转换
AMX0P = 0x06; //下一个转换通道P30
AD0EN = 1;
}
if(ADcount == 2)
{
filter();
ADC2= (sum/(N-2));
a = (long)4000*ADC2/1021; //放大10倍,为了送显示
AT = a;
a =(long)VT*AT/10000; //放大10倍的功率,单位KW
PT = a;
ADC0CN |=0x10; //写ADC0BUSY位启动转换
AMX0P = 0x08; //下一个转换通道P26
AD0EN = 1;
}
if(ADcount == 3)
{
filter();
ADC3= (sum/(N-2));
ADC0CN |=0x10; //写ADC0BUSY位启动转换
AMX0P = 0x09; //下一个转换通道P34
AD0EN = 1;
}
if(ADcount == 4)
{
filter();
ADC4= (sum/(N-2));
ADC0CN |=0x10; //写ADC0BUSY位启动转换
AMX0P = 0x05; //下一个转换通道P35
AD0EN = 1;
}
}
}
}
void UART0_ISR(void) interrupt 4
{
static uchar Rcv;
if(RI0)
{
Rcv = SBUF0;
RI0 =0;
}
/*if(Rcv == 0x7E) //
{
i = 1;
buffer[0] = Rcv;
}
else
{
if(i < 13) //12个字节
{
buffer[i] = Rcv;
i++;
}
} */
}
/*void TIME2_ISR (void) interrupt 5
{
TF2H = 0; //清标志位
count1++;
if(count1 ==5)
{
count1 = 0;
}
} */
void ADC0_ISR (void) interrupt 10
{
static uchar count; // Loop counter
AD0INT = 0; //清中断标志位
switch( AMX0P ) //通道转换
{
case 0x05: //P2.6
ADCbuffer1[count]=ADC0;
count++;
ADC0CN |=0x10; //写ADC0BUSY位启动转换
if (count > N-1){
count = 0;
AD0EN = 0; //禁止转换
ADcount = 1;
}
break;
case 0x06: //P3.0
ADCbuffer1[count]=ADC0;
count++;
ADC0CN |=0x10; //写ADC0BUSY位启动转换
if (count > N-1){
count = 0;
AD0EN = 0;
ADcount = 2;
}
break;
case 0x08: //P3.4
ADCbuffer1[count]=ADC0;
count++;
ADC0CN |=0x10; //写ADC0BUSY位启动转换
if (count > N-1){
count = 0;
AD0EN = 0;
ADcount = 3;
}
break;
case 0x09: //P3.5
ADCbuffer1[count]=ADC0;
count++;
ADC0CN |=0x10; //写ADC0BUSY位启动转换
if (count > N-1){
count = 0;
AD0EN = 0;
ADcount = 4;
}
break;
default:break;
}
}
//-----------------------------------------------------------------------------
//TIMER3中断
//-----------------------------------------------------------------------------
void Timer3_ISR(void) interrupt 14
{
static uchar i,j,k;
TMR3CN &=~(0x80); //清标志位
count++;
i++;
j++;
if(count == 8) //200ms
{
count = 0;
ADsend = 1; //开始进行AD处理标志
Tset++;
if(Tset>5)
{
Tset = 0;
}
}
if(i==20)
{
i = 0;
Disptime = 1;
}
if(j==39) //1秒误差累积;正常是40
{
j = 0;
PDD = 1; //一秒时间到,开始计算功率
if(BGset)
{
k++;
if(k>240) //4分钟关背光
{
k=0;
BGset = 0;
}
}
}
}
上一页 1 2 3 下一页

关键词: C8051FADUART0TIME

评论


技术专区

关闭