?? shizhong.c
字號:
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
uint getemp=0,shitemp=0 ;
unsigned long int temp0=0,temp1=0;
uchar code duan[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
uchar code wei[8]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
unsigned long int time=41235;
uchar con=0 ,AA=0 ;
sbit key1=P1^0;
sbit key2=P1^1;
sbit key3=P1^2;
/////*****使用函數************///////
void delay( uint t) ;
void clear ( void ) ;
void disp(void ) ;
void key( void ) ;
////**************************//////
/*延時t*/
void delay(uint t)
{
uint i,j;
for (i=0;i<t;i++)
for (j=0;j<120;j++)
;
}
///*定時器初始化函數*///
void clear ( void )
{
TMOD=0x01;
EA=1;//開總中斷
ET0=1;//開定時器T0中斷
TH0 =(65535-50000)/256 ;
TL0 =(65535-50000)%256 ;//對定時器T0賦初值
TR0=1 ;//啟動定時器T0開始計時
}
/*主函數*/
main()
{
clear();
while (1)
{
key() ;
disp();
}
}
/*鍵掃描*/
void key( void )
{
if (AA== 4)
{
AA=0;
ET0=1;
}
if(key1==0)
delay(10);
if(key1==0)
{
while (key1==0) ; // key 1 進入
ET0=0;
AA++ ;
}
if(key2==0)
delay(10);
if(key2==0)
{
while (key2==0) ; // key 2 進入
if(AA==1) time =time + 1 ;
if(AA==2) time =time +60 ;
if(AA==3) time =time +3600;
}
if(key3==0)
delay (10) ;
if (key3==0)
{
while (key3==0) ; // key 3 進入
if(AA==1) time =time - 1 ;
if(AA==2) time =time - 60 ;
if(AA==3) time =time - 3600;
}
}
/*顯示 */
void disp(void )
{
{temp0= time%60;
getemp= temp0%10;
shitemp= temp0/10;
P0=duan[getemp];
P2=wei[7];
delay(1);
P2=0x00;
P0=duan[shitemp];
P2=wei[6];
delay(1);
P2=0x00;
} //秒
P0=0xbf;
P2=wei[5];
delay(1);
P2=0x00;
//-
{temp0=(time-time%60 )/60;
temp0= temp0%60;
getemp= temp0%10;
shitemp= temp0/10;
P0=duan[getemp];
P2=wei[4];
delay(1);
P2=0x00;
P0=duan[shitemp];
P2=wei[3];
delay(1);
P2=0x00;
} // 分
P0=0xbf;
P2=wei[2];
delay(1);
P2=0x00; // -
{temp0= time/3600 ;
getemp= temp0%10;
shitemp= temp0/10;
P0=duan[getemp];
P2=wei[1];
delay(1);
P2=0x00;
P0=duan[shitemp];
P2=wei[0];
delay(1);
P2=0x00;
} // 時
}
//*50ms定時器中斷*//
void time0 ( void ) interrupt 1 using 1
{EA=0;
TH0= (65535-50000)/256 ;
TL0= (65535-50000)%256 ;
con++;
while ( con==5 )
{
con=0;
if(time<86400)
time ++ ;
else
time =0 ;
}
EA=1;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -