• 大小: 34KB
    文件类型: .rar
    金币: 2
    下载: 1 次
    发布日期: 2021-10-21
  • 语言: 其他
  • 标签: MCS-51  时钟  

资源简介

本科期间使用protues和keil联合仿真的C51单片机八段LED静态显示电子时钟,内含protues图及MCS-51源码

资源截图

代码片段和文件信息

#include 
unsigned char code table[11]={0x800xF20x480x600x320x240x040xF00x000x200xFF};//0~9黑
unsigned char secondminutehourdatemonthksmh[8]dmy[8]move_sign=0; 
unsigned int year;
sbit P1_0=P1^0;
sbit P1_1=P1^1;
sbit P1_2=P1^2;
sbit P1_3=P1^3;
sbit P1_4=P1^4;
sbit P1_5=P1^5;
sbit P1_6=P1^6;
sbit P3_2=P3^2;
void show()
{   unsigned char sbi;  
P1_0=1;
if(P1_1==0)
{   for(i=0;i<8;i++)
{
sb=*(table+dmy[i]);
SBUF=sb;
TI=0;
while(!TI);
}
 }
else
{ for(i=0;i<8;i++)
{
sb=*(table+smh[i]);
SBUF=sb;
TI=0;
while(!TI);
}
}
P1_0=0;
}

void runtime_0()
{  
second++;
if(second==60) {second=0;minute++;}
if(minute==60) {minute=0;hour++;}
if(hour==24) 
{
hour=0;date++;
switch(month)
{ case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
if(date==32)
{ date=1;
month++;
}
if(month==13)
{
month=1;
year++;
}
break;
case 4:
case 6:
case 9:
case 11:
if(date==31)
{
date=1;
month++;
}
break;
case 2:
if(year%4==0&&year%100!=0||year%400==0)
{
if(date==30)
{
date=1;
month++;
}
}
else if (date==29)
{
date=1;
month++;
}
break;
}
}
if(year==10000)year=1;
}

void div()
{  
smh[0]=second%10;
smh[1]=second/10;
smh[2]=minute%10;
smh[3]=minute/10;
smh[4]=hour%10;
smh[5]=hour/10;

dmy[0]=date%10;
dmy[1]=date/10;
dmy[2]=month%10;
dmy[3]=month/10;
dmy[4]=year%10;
dmy[5]=year/10%10;
dmy[6]=year/100%10;
dmy[7]=year/1000;

}

void timer0() interrupt 1 using 1 //T0为第1中断,INT0为第0中断
{
TH0=0x63;
TL0=0x1f; 
k++;
if(k==50)
{ k=0;
runtime_0();
div();
show();
}
}

void delay(unsigned char timeiunsigned char timej)
{
unsigned char i;
unsigned int j;
for(i=0;i for(j=0;j {;}
}

void inc(unsigned char move_sign)
{
   if(P1_1==0)
    {
if(move_sign==1)
{
year++;
if(year==9999)
year=1;
}
if(move_sign==2)
{
month++;
if(month==13)
month=1;
}
if(move_sign==3)
{
date++;
switch(date)
{
case 29:
if(month==2&&!(year%4==0&&year%100!=0||year%400==0))
date=1;
break;
  case 30:
if(month==2&&year%4==0&&year%100!=0||year%400==0)
date=1;
break;
case 31:
switch(month)
  {
  case 4:
case 6:
case 9:
case 11:date=1;
}
break;
case 32:
switch(month)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:

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

     文件       2113  2007-12-17 22:16  time.Uv2

     文件     154709  2006-09-22 21:22  八位.DSN

     文件       5817  2007-07-25 00:08  静态显示.c

     文件      11300  2007-12-17 22:16  time

     文件        334  2007-12-17 22:16  time.plg

     文件       4374  2007-12-17 22:16  time.hex

     文件         41  2007-12-17 22:16  time.lnp

     文件      19562  2007-12-17 22:16  time.M51

     文件       1315  2007-12-17 22:16  time.Opt

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

               199565                    9


评论

共有 条评论