找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3120|回复: 0
打印 上一主题 下一主题
收起左侧

数码管做电子表

[复制链接]
跳转到指定楼层
楼主
ID:59284 发表于 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空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表