• 大小: 60KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-08
  • 语言: 其他
  • 标签:

资源简介

基于AT89C51单片机八位数码管显示数字时钟,有时钟、闹钟及日历功能

资源截图

代码片段和文件信息

#include  
#define KEY_Q P11 //切换功能
#define KEY_T P10 //调时
#define KEY_Y P13  //移闪烁
#define KEY_Z P12  //增闪烁位值
#define LED1 P14  //红
#define LED2 P15  //绿
#define LED3 P16  //绿
unsigned char code tab[]={0xC00xF90xA40xB00x990x920x820xF80x800x90};//{0x3f0x060x5b0x4f0x660x6d0x7d0x070x7f0x6f};
unsigned char code com_tab[]={0XFE0XFD0XFB0XF70XEF0XDF0XBF0X7F};
unsigned char countsecondminhournj;
unsigned char year=87moon=10day=25jhabcnminnhournaoi4j4;
unsigned char code tab_1[]={0xab0x91}; // //yn
bit k=1;
void Display(unsigned char x);
delay(unsigned char x)
{
unsigned char ij;
for(i=0;i for(j=0;j<80;j++);
}
pd()
{
if(year>99)year=0;
if(moon>12)moon=0;
if(day>31)day=0;
if(hour>23)hour=0;
if(min>59)min=0;
if(second>59)second=0;
if(nhour>23)nhour=0;
if(nmin>59)nmin=0; /**/
}
unsigned char keyy(void)
{
if(KEY_Y==0)
{
delay(50);
if(KEY_Y==0)
n++;
while(KEY_Y==0)
{
Display(8);
}
if(jh==2)
{
if(n==5)n=0;
}
else
if(n==6)n=0;
}
return n;
}
keyz_9(unsigned char x)
{
if(KEY_Z==0)
{
delay(50);
if(KEY_Z==0)
x++;
if((x%10)==0&&x!=0)x-=10;
while(KEY_Z==0)
{
Display(8);
}
}
return x;
}
keyz_6(unsigned char x)
{
if(KEY_Z==0)
{
delay(50);
if(KEY_Z==0)
x+=10;
if((x/10)==6)x-=60;
while(KEY_Z==0)
{
Display(8);
}
}
return x;
}
keyz_2(unsigned char x)
{
if(KEY_Z==0)
{
delay(50);
if(KEY_Z==0)
x+=10;
if((x/10)==3)x-=30;
while(KEY_Z==0)
{
Display(8);
}
}
return x;
}
keyz_n()
{
if(KEY_Z==0)
{
delay(50);
if(KEY_Z==0)
{
 nao=!nao;
 while(KEY_Z==0)Display(8);
}
}
}
void keyq(void)
{
if(KEY_Q==0)
{
delay(10);
if(KEY_Q==0)
{
jh++;n=0;
if(jh==3)jh=0;
while(KEY_Q==0)Display(8);
}
}
if(KEY_T==0)  //设置与确认
{
k=!k;
while(KEY_T==0)
{
Display(8);
}
}
}
JHQ()
{
if(jh==0)
{
a=second;
b=min;
c=hour;
LED1=0;LED2=1;LED3=1;
}
if(jh==1)
{
a=day;
b=moon;
c=year;
LED1=1;LED2=0;LED3=1;
}
if(jh==2)
{
b=nmin;
c=nhour;
LED1=1;LED2=1;LED3=0;
}
}
JHH()
{
if(jh==0)
{
second=a;
min=b;
hour=c;
}
if(jh==1)
{
day=a;
moon=b;
year=c;
}
if(jh==2)
{
nmin=b;
nhour=c;
}
}
di()
{
P2=0;
i4++;   
if(i4==130)i4=0j4++;  
if(j4==150)j4=0;
if(j4<=16||j4>20&&j4<=36||j4>40&&j4<=56||j4>60&&j4<=76)
P0=0x40;  
else
P0=0xc0;   
}
main()
{
TMOD=0X01;
TH0=(65536-49985)/256;
TL0=(65536-49984)%256;
TR0=1;ET0=1;EA=1;
P0=P2=0XFF;
while(1)
{
pd();
if(nao&&min==nmin&&hour==nhour)
{
while(KEY_Q&&KEY_Y&&KEY_Z&&second<30)di();
nao=0;
}
keyq(); //切换键判断
JHQ(); //交换前
if(k)
{
Display(8);
}
else //进入设置状态
{
n=keyy(); //移动闪烁
if(jh!=2)
if(n==5)  //调second%10
{
count=0;

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件         91  2009-04-23 17:13  数字时钟(八位数码管显示)\00000.txt

     文件      14082  2009-06-14 18:26  数字时钟(八位数码管显示)\JZ_SZ

     文件      27750  2009-06-14 18:51  数字时钟(八位数码管显示)\JZ_SZ.plg

     文件       3901  2009-06-14 18:26  数字时钟(八位数码管显示)\JZ_SZ.hex

     文件         30  2009-06-14 18:26  数字时钟(八位数码管显示)\JZ_SZ.lnp

     文件      21012  2009-06-14 18:26  数字时钟(八位数码管显示)\JZ_SZ.M51

     文件       1161  2009-06-14 18:51  数字时钟(八位数码管显示)\JZ_SZ.Opt

     文件       2145  2009-04-23 17:13  数字时钟(八位数码管显示)\JZ_SZ.Uv2

     文件       1220  2009-06-14 00:47  数字时钟(八位数码管显示)\JZ_SZ_Opt.Bak

     文件          0  2009-04-23 15:48  数字时钟(八位数码管显示)\JZ_SZ_Uv2.Bak

     文件       5063  2009-06-14 18:17  数字时钟(八位数码管显示)\KEY_7SEG.c

     文件      17275  2009-06-14 18:26  数字时钟(八位数码管显示)\KEY_7SEG.OBJ

     文件      16967  2009-06-16 22:05  数字时钟(八位数码管显示)\KEY_7SEG.LST

     文件     123364  2009-06-09 21:53  数字时钟(八位数码管显示)\Last Loaded sz.DBK

     文件     123364  2009-06-13 11:19  数字时钟(八位数码管显示)\sz.DSN

     文件        742  2009-10-17 12:24  数字时钟(八位数码管显示)\sz.PWI

     目录          0  2009-10-17 12:25  数字时钟(八位数码管显示)

----------- ---------  ---------- -----  ----

               358167                    17


评论

共有 条评论

相关资源