资源简介

单片机 万年历 内含proteus 及实验报告

资源截图

代码片段和文件信息

#include

sbit p1_0=P1^0;
sbit p1_1=P1^1;
sbit p1_2=P1^2;
sbit p1_4=P1^4;
sbit p1_5=P1^5;
sbit p3_2=P3^2;
unsigned char code zimal[13]={
        0X3F/*0*/
        0X06/*1*/
        0X5B/*2*/       //共阴极数码管
        0X4F/*3*/
        0X66/*4*/
        0X6D/*5*/
        0X7D/*6*/
        0X07/*7*/
        0X7F/*8*/
        0X6F/*9*/
  0x40/*-*/
        0x80/*.*/
  0x00/*熄灭*/
};

unsigned int yearmonthdayhourminutesecond;//定义变量年月日时分秒;
void delay();        //延时函数;
void xianshi(unsigned int ymondhmins); //显示函数;
void fengming();                            //蜂鸣器函数;
int leap(unsigned int year);                //判断闰年函数;
unsigned int hm=1s;   //记录定时时间;
unsigned int td=2yw=0; //状态;
void main()
{
year=2000;
month=12;
day=24;
hour=0;
minute=0;
second=0;

TMOD=0x10; //定时器1;模式1;
TL1=0xb0;
TH1=0x3c;
TR1=1;
ET1=1;
EX0=1;
IT0=1;
EA=1;
while(1)  //主循环;
  {
  if(hour==h&&minute==m&&second==s) fengming(); //定时时间到蜂鸣器响;
if(td%3==1)   //定时状态;
     xianshi(yearmonthdayhms);
else                                      //正常显示状态;
  xianshi(yearmonthdayhourminutesecond);
 }
}


void delay()   //延时函数;
{
unsigned char i;
for(i=0;i<300;i++);
}


void xianshi(unsigned int ymondhmins )//显示函数;
{  
 int ij;
   i++;
if(td%3==0&&yw%6==3&&i%2==0)
   {   
P2=0xf0;       //闪烁显示年;
P0=zimal[12];
     P2=0xf1;
P0=zimal[12];
P2=0xf2;
P0=zimal[12];
      P2=0xf3;
for(i=0;i<350;i++);
      }
 else{
P2=0xf0;     //显示年;
P0=zimal[y/1000];
for(j=0;j<350;j++);
P2=0xf1;
    P0=zimal[(y%1000)/100];
for(j=0;j<350;j++);
P2=0xf2;
    P0=zimal[(y%100)/10];
for(j=0;j<350;j++);
P2=0xf3;
   P0=zimal[y%10];
for(j=0;j<350;j++);

     }
P0=zimal[11];//显示小数点;
for(j=0;j<350;j++);
if(td%3==0&&yw%6==4&&i%2==0)
{
   P2=0xf4;   //显示月;
P0=zimal[12];
P2=0xf5;
P0=zimal[12];
for(j=0;j<350;j++);
}
else
{
P2=0xf4;   //显示月;
P0=zimal[mon/10];
for(j=0;j<350;j++);
P2=0xf5;
P0=zimal[mon%10];
for(j=0;j<350;j++);
}
P0=zimal[11];   //显示小数点;
for(j=0;j<350;j++);
if(td%3==0&&yw%6==5&&i%2==0)
  {
   P2=0xf6;   //显示日;
P0=zimal[12];
   P2=0xf7;
P0=zimal[12];
   for(j=0;j<350;j++);
}
else{
P2=0xf6;   //显示日;
P0=zimal[d/10];
for(j=0;j<350;j++);
P2=0xf7;
P0=zimal[d%10];
for(j=0;j<350;j++);
}

if((td%3==0&&yw%6==0&&i%2==0)||(td%3==1&&yw%3==0&&i%2==0))
    {
      P2=0xf8;  //显示时;
P0=zimal[12];
P2=0xf9;
P0=zimal[12];
for(j=0;j<350;j++);
    }
else{ P2=0xf8; //显示时;
P0=zimal[h/10];
for(j=0;j<350;j++);
P2=0xf9;
P0=zimal[h%10];
for(j=0;j<350;j++);
 }
      P2=0xfa;
   P0=zimal[10];
for(j=0;j<350;j++);
if((td%3==0&&yw%6==1&&i%2==0)||(td%3==1&&yw%3==1&&i%2==0))
  {
   P2=0xfb;  //闪烁显示分;
P0=zimal[12];
P2=0xfc;
P0=zimal[12];
for(j=0;j<350;j++);
  }
else{
   P2=0xfb;  //显示分;
P0=zimal[min/10];
for(j=0;j<

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

     文件     105647  2010-05-11 12:58  万年历(2)\123.DSN

     文件        768  2004-12-21 00:28  万年历(2)\123.PWI

     文件     105651  2010-05-11 10:00  万年历(2)\Last Loaded 123.DBK

     文件      13120  2010-05-11 12:59  万年历(2)\wnl

     文件       8197  2010-05-11 12:59  万年历(2)\wnl.hex

     文件         26  2010-05-11 12:59  万年历(2)\wnl.lnp

     文件      17727  2010-05-11 12:59  万年历(2)\wnl.M51

     文件        948  2004-12-21 00:28  万年历(2)\wnl.Opt

     文件       1647  2004-12-21 00:28  万年历(2)\wnl.Uv2

    .......       989  2010-05-11 12:59  万年历(2)\wnl_Opt.Bak

    .......      1680  2010-05-10 13:59  万年历(2)\wnl_Uv2.Bak

     文件       5791  2010-05-11 12:59  万年历(2)\万年历.c

     文件       5159  2010-04-26 13:39  万年历(2)\万年历.hex

     文件      14263  2010-05-11 12:59  万年历(2)\万年历.LST

     文件      17923  2010-05-11 12:59  万年历(2)\万年历.OBJ

     文件     615424  2010-06-07 10:53  万年历(2)\基于单片机的电子万年历的毕业设计.doc

     目录          0  2004-12-21 00:28  万年历(2)

     文件          0  2004-12-21 00:21  万年历(2)\wnl.plg

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

               914960                    18


评论

共有 条评论