📄 时钟显示.txt
字号:
#include<reg52.h>
void time0(void);
void time1(void);
void charge(void);
//sbit P25=P2^5;
void which_row_key_down();
void which_line_key_down();
void delay_10ms();
unsigned char if_keydown();
unsigned char line,x;
unsigned char i,j,d,buff;
//unsigned char b;
//unsigned char cycle;
unsigned char timer,tim,a;
/*unsigned char ho_high=0;
unsigned char ho_low=0;
unsigned char mi_high=0;
unsigned char mi_low=0;
unsigned char se_high=0;
unsigned char se_low=0;*/
unsigned char buffer_1[6],buffer_2[6];
unsigned char code tab_1[10]={0x3f,0X06,0X5B,0X4F,0X66,0X6D,0X7D,0x07,0x7f,0x6f};
unsigned char code tab_2[6]={0X01,0X02,0X04,0x08,0X10,0X20};
//unsigned char code b[16]={0x3f,0x06,0x5b,0x4f,0x67,0x66,0x6d,0x7d,0x7f,0x07,0x7f,0x6f,0x39,0x5c,0x79,0x71};
//unsigned char r1;
void main(void)
{
buffer_1[0]=0;
buffer_1[1]=0;
buffer_1[2]=0;
buffer_1[3]=0;
buffer_1[4]=0;
buffer_1[5]=0;
buffer_2[0]=0;
buffer_2[1]=0;
buffer_2[2]=0;
buffer_2[3]=0;
buffer_2[4]=0;
buffer_2[5]=0;
buff=1;
TMOD=1;
IE=0X8a;
TCON=0X11;
PT0=1;
tim=6;
timer=15;
TH0=0Xbd;
TL0=0Xc0;
// TH1=0Xf8;
// TL1=0Xff;
TR0=1;
TR1=1;
do{
if(if_keydown())
{
//which_row_key_down();
which_line_key_down();
//x=line*4+row;
//P2=b[x];
}
}while(1);
}
void time0(void) interrupt 1 using 0
{
if(!timer)
{
buffer_1[5]=buffer_1[5]+1;
charge();
TH0=0Xbd;
TL0=0Xc0;
timer=15;
}
else{timer--;}
TR0=1;
//TH0=0Xff;
//TL0=0Xf1;
}
void time1(void) interrupt 3 using 0
{
if(tim)
{
a=6-tim;
P1=tab_2[a];
if(buff)
{
P2=tab_1[buffer_1[a]];
}
else
{
P2=tab_1[buffer_2[a]];
}
tim--;
if(tim==0)
{
tim=6;
}
}
// while(--tim);
TR1=1;
TH1=0Xf8;
TL1=0Xff;
}
void charge(void)
{
if(buffer_1[5]==10)
{
buffer_1[5]=0;
buffer_1[4]=buffer_1[4]+1;
}
if(buffer_1[4]==6)
{
buffer_1[4]=0;
buffer_1[3]=buffer_1[3]+1;
}
if(buffer_1[3]==10)
{
buffer_1[3]=0;
buffer_1[2]=buffer_1[2]+1;
}
if(buffer_1[2]==6)
{
buffer_1[2]=0;
buffer_1[1]=buffer_1[1]+1;
}
if(buffer_1[1]==10&&buffer_1[0]!=2)
{
buffer_1[1]=0;
buffer_1[0]=buffer_1[0]+1;
}
if(buffer_1[1]==4&&buffer_1[0]==2)
{
buffer_1[1]=0;
buffer_1[0]=0;
}
}
unsigned char if_keydown()
{
P0=0xf0;
//P0=0xf0;
i=P0;
if(i==0x70)
{
delay_10ms();
i=P0;
if(i==0x70)
{return 1;}
else return 0;
}
return 0;
}
/*void which_row_key_down()
{
P0=0xf0;
c=P0;
switch(c)
{
case 0x70:row=0;break;
case 0xb0:row=1;break;
case 0xd0:row=2;break;
case 0xe0:row=3;break;
}
}*/
void which_line_key_down()
{
P0=0x0f;
d=P0;
switch(d)
{
case 0x07:line=3,buff=0;break;
case 0x0b:line=2;break;
case 0x0d:line=1;break;
case 0x0e:line=0;break;
}
}
void delay_10ms()
{
for(i=0;i<2;i++)
for(j=0;j<40;j++)
;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -