📄 mylib.c
字号:
break;
case 4:
LightingBits(time, 0x4E); //0100 1110
break;
case 5:
LightingBits(time, 0x5D); //0101 1101
break;
case 6:
LightingBits(time, 0x7D); //0111 1101
break;
case 7:
LightingBits(time, 0x0B); //0000 1011
break;
case 8:
LightingBits(time, 0x7F); //0111 1111
break;
case 9:
LightingBits(time, 0x5F); //0101 1111
break;
default:
break;
}
}
else
{
LightingBits(time, 0x7B); //0111 1011
}
/* if(DisUaNumFlag)
{
Disp_fault_num(disnum[1],time);
}
else if(DisUbNumFlag)
{
Disp_fault_num(disnum[2],time);
}
else if(DisUcNumFlag)
{
Disp_fault_num(disnum[3],time);
}
else if(DisIaNumFlag)
{
Disp_fault_num(disnum[4],time);
}
else if(DisIcNumFlag)
{
Disp_fault_num(disnum[6],time);
}
else if(DisIpNumFlag)
{
Disp_fault_num(disnum[7],time);
}
else
{
//display month
LightingBits(time, 0x7B); //0111 1011
}*/
j = *(time+5)%10;
if(Sx == S12)
LCD_WD2(6,*(IC2_TB+j)|0x80); //display S12
else
LCD_WD2(6,*(IC2_TB+j)); //not display S12
//display second
j = *(time+6)/10;
if(Sx == S13)
LCD_WD2(4,*(IC2_TB+j)|0x80); //display S13
else
LCD_WD2(4,*(IC2_TB+j)); //not display S13
j = *(time+6)%10;
if(Sx == S14)
LCD_WD2(2,*(IC2_TB+j)|0x80); //display S14
else
LCD_WD2(2,*(IC2_TB+j)); //not display S14
KickDog();
}
/*****************************************/
/* */
/* The function change hex to dec */
/* designed by xl.zhang */
/* Date 2007-4-4 */
/* */
/*****************************************/
uchar hex_to_dec(uchar hex_dat)
{
uchar k1,k2;
k1=hex_dat/16;
k2=hex_dat%16;
k1=k2+k1*10;
return(k1);
}
/**************************************************/
/* */
/* The function send display number to IC1 region,*/
/* where Sx is the trouble type to display */
/* f_time is the trouble start time or stop time */
/* hour and minute <=255(FFH) */
/* designed by xl.zhang */
/* Date 2007-4-4 */
/**************************************************/
void DispIC1_start_stop(uchar Sx,uchar time[6]) //
{
uchar B_D;
int j;
B_D = 0x0;
j = 0;
if(Sx == 0) //trouble in S1
LCD_WD1(B_D,*(IC1_TB+j)|0x10);
else
LCD_WD1(B_D,*(IC1_TB+j));
B_D += 2;
j = 0;
if(Sx == 1) //trouble in S2
LCD_WD1(B_D,*(IC1_TB+j)|0x10);
else
LCD_WD1(B_D,*(IC1_TB+j));
B_D += 2;
j = time[4]/10;
if(Sx == 2) //trouble in S3
LCD_WD1(B_D,*(IC1_TB+j)|0x10);
else
LCD_WD1(B_D,*(IC1_TB+j));
B_D += 2;
j = time[4]%10;
if(Sx == 3) //trouble in S4
LCD_WD1(B_D,*(IC1_TB+j)|0x10);
else
LCD_WD1(B_D,*(IC1_TB+j));
B_D += 2;
j = time[5]/10;
if(Sx == 4) //trouble in S5
LCD_WD1(B_D,*(IC1_TB+j)|0x10);
else
LCD_WD1(B_D,*(IC1_TB+j));
B_D += 2;
j = time[5]%10;
if(Sx == 5) //trouble in S6
LCD_WD1(B_D,*(IC1_TB+j)|0x10);
else
LCD_WD1(B_D,*(IC1_TB+j));
KickDog();
}
void Set1302(uchar time[7])
{
uchar i;
uchar ucAddr = 0x80;
W1302(0x8e,0x00);
for(i =0;i<7;i++)
{
W1302(ucAddr,time[6-i]);
ucAddr +=2;
}
W1302(0x8e,0x80);
KickDog();
}
/*****************************************/
/* */
/* The function change dec to hex */
/* designed by xl.zhang */
/* Date 2007-4-11 */
/* */
/*****************************************/
uchar dec_to_hex(uchar dec_dat)
{
uchar k1,k2;
k1=dec_dat/10;
k2=dec_dat%10;
k1=k2+k1*16;
return(k1);
}
/*****************************************/
/* */
/* The function use to init TIMER0 */
/* designed by xl.zhang */
/* Date 2007-4-11 */
/* */
/*****************************************/
/*void InitTimer0()
{
TMOD |= 0x01; //TMOD: timer 0, mode 1, 16 - bit
PCON |= 0x00; //SMOD=0;
TH0 = 0x4C; // Interrupt interval is 50ms for fosc=11.0592
TL0 = 0x00; //Baud:9600 fosc=11.0592MHz mode1
IE |= 0x02; //Enable Timer 0 Interrupt
TR0 = 0; // start timer 0 run
}*/
/**************************************************/
/*****************************************/
/* */
/* The function use to init TIMER0 */
/* designed by xl.zhang */
/* Date 2007-4-11 */
/* */
/*****************************************/
void InitTimer2()
{
RCLK=0; // timer 2, 16 - bit
TCLK=0;
CP_RL2=0;
TR2=0;
TH2= 0x4C; // Interrupt interval is 50ms for fosc=11.0592
TL2= 0x00; //
ET2=1; //Enable Timer 2 Interrupt
TR2=1; // start timer 2 run
}
/**************************************************/
/* */
/* The function set the year,month,day,hour,minute,*/
/*second*/
/* where Sx is the trouble type to display */
/* f_time is the trouble start time or stop time */
/* hour and minute <=255(FFH) */
/* designed by ht.guan */
/* Date 2007-4-10 */
/**************************************************/
uchar Key5(void)
{
uchar flag=0;
if(P3_2==0)
flag=1;
else
flag=0;
return(flag);
}
uchar Key6(void)
{
uchar flag=0;
if(P3_4==0)
flag=1;
else flag=0;
return(flag);
}
void set_time(void)
{
uint i;
if(Key5())
SetTimeFlag = 1;
while(SetTimeFlag)
{
if(Key5())
{
delay(DL10ms);
KickDog();
if(Key5())
{
modified %= 6;
modified ++;
}
}
switch(modified)
{
case 1:
if(Key6())
{
delay(DL10ms);
KickDog();
if(Key6())
Curtime[6]++;//sec
if(Curtime[6]>59)
Curtime[6]=0;
}
DispIC2_time(S13,Curtime);
delay(DL11ms);
KickDog();
LCD_WD2(4,0x80); //display S13
LCD_WD2(2,0x00); //display S14
break;
case 2:
if(Key6())
{
delay(DL10ms);
KickDog();
if(Key6())
Curtime[5]++;//minute
if(Curtime[5]>59)
Curtime[5]=0;
}
DispIC2_time(S13,Curtime);
delay(DL11ms);
KickDog();
LCD_WD2(6,0x00); //display S13
LCD_WD2(8,0x00); //display S14
break;
case 3:
if(Key6())
{
delay(DL10ms);
KickDog();
if(Key6())
Curtime[4]++;
if(Curtime[4]>23)//hour
Curtime[4]=0;
}
DispIC2_time(S13,Curtime);
delay(DL11ms);
KickDog();
LCD_WD2(10,0x00); //display S13
LCD_WD2(12,0x00); //display S14
break;
case 4: //flag of display speed or pwmwidth or angle
if(Key6())
{
delay(DL10ms);
KickDog();
if(Key6())
Curtime[3]++;//date
if(Curtime[3]>31)
Curtime[3]=1;
}
DispIC2_time(S13,Curtime);
delay(DL11ms);
KickDog();
LCD_WD2(14,0x00); //display S13
LCD_WD2(16,0x00); //display S14
break;
case 5:
if(Key6())
{
delay(DL10ms);
KickDog();
if(Key6())
Curtime[2]++;
if(Curtime[2]>12)//month
Curtime[2]=1;
}
DispIC2_time(S13,Curtime);
delay(DL11ms);
KickDog();
LCD_WD2(18,0x00); //display S13
LCD_WD2(20,0x00); //display S14
break;
case 6:
if(Key6())
{
delay(DL10ms);
KickDog();
if(Key6())
Curtime[0]++;
if(Curtime[0]>99)//year
Curtime[0]=0;
}
DispIC2_time(S13,Curtime);
delay(DL11ms);
KickDog();
LCD_WD2(22,0x80); //display S13
LCD_WD2(24,0x80); //display S14
break;
default:
break;
}
if(Key6() && Key5())
{
delay(DL10ms);
KickDog();
if(Key6()&& Key5())
{
SetTimeFlag = 0;
for(i=0;i<7;i++)
Curtime[i] = dec_to_hex(Curtime[i]);
Set1302(Curtime);
}
}
}
}
///////////////////////////////////////////
/*void timer0() interrupt 1 using 2
{
if(UaDis5Start && a_b==0)
{
TickerUb = 0;
TickerUc = 0;
TickerIa = 0;
TickerIc = 0;
TickerIp = 0;
TickerUa++;
}
if(UbDis5Start && a_b==1)
{
TickerUa = 0;
TickerUc = 0;
TickerIa = 0;
TickerIc = 0;
TickerIp = 0;
TickerUb++;
}
if(UcDis5Start && a_b==2)
{
TickerUa = 0;
TickerUb = 0;
TickerIa = 0;
TickerIc = 0;
TickerIp = 0;
TickerUc++;
}
if(IaDis5Start && a_b==3)
{
TickerUa = 0;
TickerUb = 0;
TickerUc = 0;
TickerIc = 0;
TickerIp = 0;
TickerIa++;
}
if(IcDis5Start && a_b==4)
{
TickerUa = 0;
TickerUb = 0;
TickerUc = 0;
TickerIa = 0;
TickerIp = 0;
TickerIc++;
}
if(IpDis5Start && a_b==5)
{
TickerUa = 0;
TickerUb = 0;
TickerUc = 0;
TickerIc = 0;
TickerIa = 0;
TickerIp++;
}
}
void Ip_interpret(void)
{
if(UaDis5Start)
a_b = 0;
else if(UbDis5Start)
a_b = 1;
else if(UcDis5Start)
a_b = 2;
else if(IaDis5Start)
a_b = 3;
else if(IcDis5Start)
a_b = 4;
else
a_b = 5;
}
void dispIp(void)
{
if(IpDis5Start)
{
if(!UaDis5Start &&!UbDis5Start &&!UcDis5Start&& !IaDis5Start&&!IcDis5Start&&!i_flag)
{
a_b = 5;
i_flag = 1;
TickerIp = Timing1;
}
if(TickerIp>=Timing1 && !Ip_a_flag)
{
disp_start5(Ip);
Ip_a_flag = 1;
Ip_b_flag = 0;
}
if(TickerIp>=Timing2 && !Ip_b_flag)
{
disp_fault_time(Ip);
Ip_b_flag = 1;
if(!IpDis5Stop)
{
Ip_a_flag = 0;
TickerIp = 0;
Ip_interpret();
}
}
if(TickerIp>=Timing3)
{
disp_stop5(Ip);
TickerIp = 0;
Ip_a_flag = 0;
Ip_interpret();
}
}
}
void Ic_interpret(void)
{
if(IpDis5Start)
a_b = 5;
else if(UaDis5Start)
a_b = 0;
else if(UbDis5Start)
a_b = 1;
else if(UcDis5Start)
a_b = 2;
else if(IaDis5Start)
a_b = 3;
else
a_b = 4;
}
void dispIc(void)
{
if(IcDis5Start)
{
if(!UaDis5Start &&!UbDis5Start &&!UcDis5Start&& !IaDis5Start&&!i_flag)
{
a_b = 4;
i_flag = 1;
TickerIc = Timing1;
}
if(TickerIc>=Timing1 && !Ic_a_flag)
{
disp_start5(Ic);
Ic_a_flag = 1;
Ic_b_flag = 0;
}
if(TickerIc>=Timing2 && !Ic_b_flag)
{
disp_fault_time(Ic);
Ic_b_flag = 1;
if(!IcDis5Stop)
{
Ic_a_flag = 0;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -