找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3044|回復: 0
打印 上一主題 下一主題
收起左側

數碼管做電子表

[復制鏈接]
跳轉到指定樓層
樓主
ID:59284 發(fā)表于 2014-2-26 19:17 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
顯示格式:24小時制 比如 17 46 00(只有六個數碼管)17點46分00秒。
          開始的時間可以任意確定;
          利用獨立鍵盤來調電子表;

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

利用中斷可以準確的定時一秒。

#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;
   }

  }

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表