?? time.c
字號:
/*#include <SST89E58RD.H> */
#include <EXAM.H>
#define UCHAR unsigned char
#define UINT unsigned int
const UCHAR dis[11] ={0xD7,0x81,0x5B,0x9B,0x8D,0x9E,0xDE,0x83,0xDF,0x9F,0xff}; //HF-H1.0
UCHAR uc_parr[6] = { 0, 0, 0, 0, 0, 0 };
unsigned char temp1,temp2,temp3,point,hh,hl,mh,ml,hhc,hlc,mhc,mlc,change ;
void delay(UCHAR i)
{
UCHAR j;
for(i; i > 0; i--)
for(j = 250; j > 0; j--);
}
void Timer0_int (void) interrupt 1 using 3 //Timer0 中斷處理,
{ //計數(shù)值加一
TH0 = 0x4c;
TL0 = 0x00;
temp2++;
temp1++;
temp3++;
if(temp3==5)
{
temp3=0;
if(hh)
{
hhc=~hhc;
}
if(hl)
{
hlc=~hlc;
}
if(mh)
{
mhc=~mhc;
}
if(ml)
{
mlc=~mlc;
}
}
if(temp2==10)
{
temp2=0;
//temp1++;
point=~point;
}
if(temp1==20 )
{
if(!change)
{
uc_parr[0]++;
if(uc_parr[0] >= 10)
{
uc_parr[0] = 0;
uc_parr[1]++;
}
if(uc_parr[1] >= 6)
{
uc_parr[1] = 0;
uc_parr[2]++;
}
if(uc_parr[2] >= 10)
{
uc_parr[2] = 0;
uc_parr[3]++;
}
if(uc_parr[3] >= 6)
{
uc_parr[3] = 0;
uc_parr[4]++;
}
if(uc_parr[4] >= 4)
{
if(uc_parr[5] == 2)
{
uc_parr[4]=0;
uc_parr[5]=0;
}
else if(uc_parr[4]>=10)
{
uc_parr[4] = 0;
uc_parr[5]++;
}
}
// if(uc_parr[5] >= 2)
// {
// uc_parr[3] = 0;
// uc_parr[4]++;
// }
}
temp1=0;
}
}
void inter0(void) interrupt 0 //using 2
{
unsigned char k,i,flag;
P2=0xff;
for(i=0;i<255;i++)
{
for(flag=0;flag<255;flag++)
{
}
}
for(i=0;i<255;i++)
{
for(flag=0;flag<255;flag++)
{
}
}
for(i=0;i<255;i++)
{
for(flag=0;flag<255;flag++)
{
}
}
k=P2&0x0f;
switch (k)
{
case 0x07:
change=~change;
if(change)
{
hh=0xff;
}
break;
case 0x0b:
if(hh)
{
hh=~hh;
hl=~hl;
}
if(hl)
{
hl=~hl;
mh=~mh;
}
if(mh)
{
mh=~mh;
ml=~ml;
}
if(ml)
{
ml=~ml;
hh=~hh;
}
break;
case 0x0d:
if(hh)
{
if(uc_parr[5] >=3)
{
uc_parr[5]=0;
}
else
{
uc_parr[5]++;
}
}
if(hl)
{ if(uc_parr[5]==2)
{
if(uc_parr[4] >=4)
{
uc_parr[4]=0;
}
else
{
uc_parr[4]++;
}
}
else
{
if(uc_parr[4] >=10)
{
uc_parr[4]=0;
}
else
{
uc_parr[4]++;
}
}
}
if(mh)
{
if(uc_parr[3] >=6)
{
uc_parr[3]=0;
}
else
{
uc_parr[3]++;
}
}
if(ml)
{
if(uc_parr[2] >=10)
{
uc_parr[2]=0;
}
else
{
uc_parr[2]++;
}
}
break;
case 0x0e:
if(hh)
{
if(uc_parr[5] < 0)
{
uc_parr[5]=2;
}
else
{
uc_parr[5]--;
}
}
if(hl)
{ if(uc_parr[5]==2)
{
if(uc_parr[4] < 0)
{
uc_parr[4]=3;
}
else
{
uc_parr[4]--;
}
}
else
{
if(uc_parr[4] < 0)
{
uc_parr[4]=9;
}
else
{
uc_parr[4]--;
}
}
}
if(mh)
{
if(uc_parr[3] < 0)
{
uc_parr[3]=5;
}
else
{
uc_parr[3]--;
}
}
if(ml)
{
if(uc_parr[2] <0 )
{
uc_parr[2]=9;
}
else
{
uc_parr[2]--;
}
}
break;
//default: init_beep();
}
}
main()
{ unsigned char k;
TMOD = 0x01; //初始化寄存器
TH0 = 0x4c; //設(shè)定累加時間
TL0 = 0x00;
EA = 1;
ET0 = 1;
TR0 = 1;
DIGPORT = 0xFF;
DIGLED = 0xFF;
/*DIGLED1 = 0;
DIGLED2 = 0;
DIGLED3 = 0;
DIGLED4 = 0;
DIGLED = 0x00; */
EX0 = 0;
change=0x00;
for(;;) //循環(huán)執(zhí)行
{
DIGPORT = DIGLL; //顯示數(shù)據(jù)
if(mlc)
{
DIGLED =0xff;
}
else
{
DIGLED = ~dis[uc_parr[2]];
DIGLEDP=point;
}
delay(10);
DIGPORT = DIGLH;
if(mhc)
{
DIGLED =0xff;
}
else
{
DIGLED = ~dis[uc_parr[3]];
}
delay(10);
DIGPORT = DIGHL;
if(hlc)
{
DIGLED =0xff;
}
else
{
DIGLED = ~dis[uc_parr[4]];
}
delay(10);
DIGPORT = DIGHH;
if(hhc)
{
DIGLED =0xff;
}
else
{
DIGLED = ~dis[uc_parr[5]];
}
delay(10);
P2=0xff;
k=P2&0x0f;
switch (k)
{
case 0x0f:
break;
case 0x07:
delay(200);
P2=0xff;
k=P2&0x0f;
if(k != 0x07)
{
break;
}
change=~change;
if(change)
{
hh=0xff;
}
else
{
hh=0;
hl=0;
mh=0;
ml=0;
hhc=0;
hlc=0;
mhc=0;
mlc=0;
}
break;
case 0x0b:
delay(200);
P2=0xff;
k=P2&0x0f;
if(k != 0x0b)
{
break;
}
if(hh)
{
hh=0x00;
hl=0xff;
mh=0x00;
ml=0x00;
hhc=0;
break;
}
if(hl)
{
hh=0x00;
hl=0x00;
mh=0xff;
ml=0x00;
hlc=0;
break;
}
if(mh)
{
hh=0x00;
hl=0x00;
mh=0x00;
ml=0xff;
mhc=0;
break;
}
if(ml)
{
hh=0xff;
hl=0x00;
mh=0x00;
ml=0x00;
mlc=0;
break;
}
break;
case 0x0d:
delay(200);
P2=0xff;
k=P2&0x0f;
if(k != 0x0d)
{
break;
}
if(hh)
{
if(uc_parr[4] >=4 && uc_parr[5] ==1)
{
uc_parr[5]=0;
}
else if(uc_parr[5] >=2)
{
uc_parr[5]=0;
//uc_parr[
}
else
{
uc_parr[5]++;
}
break;
}
if(hl)
{ if(uc_parr[5]==2)
{
if(uc_parr[4] >=3)
{
uc_parr[4]=0;
}
else
{
uc_parr[4]++;
}
}
else
{
if(uc_parr[4] >=9)
{
uc_parr[4]=0;
}
else
{
uc_parr[4]++;
}
}
break;
}
if(mh)
{
if(uc_parr[3] >=5)
{
uc_parr[3]=0;
}
else
{
uc_parr[3]++;
}
break;
}
if(ml)
{
if(uc_parr[2] >=9)
{
uc_parr[2]=0;
}
else
{
uc_parr[2]++;
}
break;
}
break;
case 0x0e:
delay(200);
P2=0xff;
k=P2&0x0f;
if(k != 0x0e)
{
break;
}
if(hh)
{
if(uc_parr[5] == 0x00)
{
uc_parr[5]=2;
}
else
{
uc_parr[5]--;
}
}
if(hl)
{ if(uc_parr[5]==2)
{
if(uc_parr[4] == 0x00)
{
uc_parr[4]=3;
}
else
{
uc_parr[4]--;
}
}
else
{
if(uc_parr[4] == 0x00)
{
uc_parr[4]=9;
}
else
{
uc_parr[4]--;
}
}
}
if(mh)
{
if(uc_parr[3] == 0x00)
{
uc_parr[3]=5;
}
else
{
uc_parr[3]--;
}
}
if(ml)
{
if(uc_parr[2] == 0x00 )
{
uc_parr[2]=9;
}
else
{
uc_parr[2]--;
}
}
break;
default:
break;
}
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -