#include <other.h>
void close_perl(void)
{
P0 = 0xff;
P2 = P2&0x1f|0x80;
P2 = P2&0x1f;
P0 = 0x00;
P2 = P2&0x1f|0xa0;
P2 = P2&0x1f;
}
void Delay2ms(void)
{
unsigned char i, j;
i = 22;
j = 128;
do
{
while (--j);
} while (--i);
}
unsigned char seg_tran(unsigned int number)
{
unsigned char date;
switch(number)
{
case 0 : date = 0xc0 ; break;
case 1 : date = 0xf9 ; break;
case 2 : date = 0xa4 ; break;
case 3 : date = 0xb0 ; break;
case 4 : date = 0x99 ; break;
case 5 : date = 0x92 ; break;
case 6 : date = 0x82 ; break;
case 7 : date = 0xf8 ; break;
case 8 : date = 0x80 ; break;
case 9 : date = 0x90 ; break;
case 10 : date = 0xbf ; break;//-
case 11 : date = 0xc6 ; break;//c
case 12 : date = 0x8c ; break;//p
case 13 : date = 0x86 ; break;//e
case 14 : date = 0xc7 ; break;//L
case 15 : date = 0xc8 ; break;//a
case 16 : date = 0x8e ; break;//F
case 17 : date = 0xc1 ; break;//U
case 18 : date = 0xff ; break;//U
}
return date;
}
void seg_disp(unsigned int adr,unsigned int number)
{
unsigned char seg_adr[8] = {0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
P2 = P2&0x1f|0xe0;
P2 = P2&0x1f;
P0 = seg_adr[adr];
P2 = P2&0x1f|0xc0;
P2 = P2&0x1f;
P0 = seg_tran(number);
P2 = P2&0x1f|0xe0;
P2 = P2&0x1f;
}
void seg_disp_f(unsigned int adr,unsigned int number)
{
unsigned char seg_adr[8] = {0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
P2 = P2&0x1f|0xe0;
P2 = P2&0x1f;
P0 = seg_adr[adr];
P2 = P2&0x1f|0xc0;
P2 = P2&0x1f;
P0 = seg_tran(number)&0x7f;
P2 = P2&0x1f|0xe0;
P2 = P2&0x1f;
}
int key_scan(void)
{
int key_mark;
if(P30 == 0) key_mark = 7;
else if(P31 == 0) key_mark = 6;
else if(P32 == 0) key_mark = 5;
else if(P33 == 0) key_mark = 4;
return key_mark;
}
void time_init(void)
{
TMOD = 0x16;
TL0 = 0xff;
TH0 = 0xff;
TH1 = (65535 - 50000 + 1)/256;
TL1 = (65535 - 50000 + 1)%256;
TF0 = 0;
TR0 = 1;
ET0 = 1;
TF1 = 0;
TR1 = 1;
ET1 = 1;
EA = 1;
}
other.h
#ifndef __OTHER_H_
#define __OTHER_H_
# include <stc15f2k60s2.h>
void close_perl(void);
void Delay2ms(void);
unsigned char seg_tran(unsigned int number);
void seg_disp(unsigned int adr,unsigned int number);
void seg_disp_f(unsigned int adr,unsigned int number);
int key_scan(void);
void time_init(void);
#endif