標(biāo)題: 數(shù)碼管做電子表 [打印本頁]

作者: 3lian    時間: 2014-2-26 19:17
標(biāo)題: 數(shù)碼管做電子表
顯示格式:24小時制 比如 17 46 00(只有六個數(shù)碼管)17點(diǎn)46分00秒。
          開始的時間可以任意確定;
          利用獨(dú)立鍵盤來調(diào)電子表;

這個電子表的功能: 開始可以任意的顯示時間,key1 可以調(diào)時針,key2可以調(diào)分針,key3調(diào)秒針,
key4 可以清零。

利用中斷可以準(zhǔn)確的定時一秒。

#include <reg52.H>
#define uint  unsigned int
#define uchar unsigned char  
uint m,n,g,num,shi,ge,bai,qia,wan,swa;
  l=19; k=46;

uchar code table1[]=
{0xc0,0xf9,0xa4,0xb0,
0x99,0x92,0x82,0xf8,
0x80,0x90};
sbit dula=P2^6;
sbit wela=P2^7;
sbit key1=P1^0;
sbit key2=P1^1;
sbit key3=P1^2;
sbit key4=P1^3;

void delay()
{
uint i,j;
for(i=0;i<5;i++)
  for(j=0;j<100;j++);
}
void key_scan()
{
if(key1==0)
   {
     delay();
     if(key1==0)
   l++;
while(!key1);
}
     if(key2==0)
   {
     delay();
     if(key2==0)
   k++;
while(!key2);
}
   if(key3==0)
   {
     delay();
     if(key2==0)
   m++;
while(!key3);
}
  if(key4==0)
   {
     delay();
     if(key4==0)
{ l=0;k=0;m=0; }
while(!key4);

}
}


display(uchar swa, uchar wan,uchar qia, uchar bai,uchar shi,uchar ge)
{
wela=1;
P2=0Xff;
P2=0xfe;
wela=0;
dula=1;
P0=0XFF;  
P0=table1[swa];
dula=0;
delay();
wela=1;
P2=0Xff;
P2=0xfd;
wela=0;
dula=1;
P0=0XFF;  
P0=table1[wan];
dula=0;
delay();
wela=1;
P2=0Xff;
P2=0xfb;
wela=0;

       dula=1;
            P0=0XFF;  
P0=table1[qia];
dula=0;
    delay();
                wela=1;
P2=0Xff;
P2=0xf7;
wela=0;

         dula=1;
             P0=0XFF;  
P0=table1[bai];
dula=0;
    delay();

wela=1;
P2=0Xff;
P2=0xef;
wela=0;

         dula=1;
             P0=0XFF;  
P0=table1[shi];
dula=0;
    delay();


wela=1;
P2=0Xff;
P2=0xdf;
wela=0;

         dula=1;
             P0=0XFF;  
P0=table1[ge];
dula=0;
    delay();
}

void main()
{
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%6;

EA=1;
ET0=1;
TR0=1;
while(1)
  {

key_scan();
    display(swa,wan,qia,bai,shi,ge);
    }
}


void T0_time()interrupt 1
    {
   TH0=(65536-50000)/256;
TL0=(65536-50000)%6;
   g++;
           if(g==20)
   {
g=0;
m++;
if(m==60){m=0; k++;}
if(k==60){k=0;  l++;}
if(l==24) l=0;
ge=m;
            shi=m/10;
bai=k;
qia=k/10;
wan=l;
   swa=l/10;
   }

  }






歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1