推荐星级:
  • 1
  • 2
  • 3
  • 4
  • 5

基于AT89S52单片机数字钟设计Proteus仿真及软件实例源码

更新时间:2024-06-25 06:39:43 大小:89K 上传用户:xzxbybd查看TA发布的资源 标签:at89s52单片机数字钟proteus 下载积分:9分 评价赚积分 (如何评价?) 打赏 收藏 评论(0) 举报

资料介绍

基于AT89S52单片机数字钟设计Proteus仿真及软件实例源码

 uchar Table[11]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40};//七段码对应值

 uchar numb[8]; //定义字符串

 uint miao=0,fen,shi;

/********************************************************************

                            延时函数

*********************************************************************/

void delay(uchar t)

{

  uchar i,j;

   for(i=0;i<t;i++)

   {

    for(j=13;j>0;j--);

{ ;

}

   }

}

/********************************************************************

                            求值函数

*********************************************************************/

void t_to_dis()

 {

numb[0]=shi/10; //显示小时十位

numb[1]=shi%10; //显示小时个位

numb[2]=10; //显示横杠

numb[3]=fen/10; //显示分十位

numb[4]=fen%10; //显示分个位

numb[5]=10; //显示横杠

numb[6]=miao/10;//显示秒十位

numb[7]=miao%10;//显示秒个位

  }


/********************************************************************

                            显示函数

*********************************************************************/        

void display()//显示函数

{

/*****************数据转换*****************************/ 

uchar i,j;

uchar sel;

i=30;    //定义延时显示时间

sel=0x01;  //扫描位初值

for(j=0;j<8;j++)

{

WEI=sel;                  //选通最右边的数码管

    DUAN=~Table[numb[j]];          //送字型码

    delay(i);                 //显示延时    

    sel=sel<<1;    

}

 

}

/********************************************************************

                           按键函数

*********************************************************************/        

void key()//函数

{

if(k_shi==0){shi++;while(!k_shi);if(shi>=24)shi=0;}

if(k_fen==0){fen++;while(!k_fen);if(fen>=60)fen=0;}

if(k_miao==0){miao++;while(!k_miao);if(miao>=60)miao=0;}

}


/********************************************************************

                           定时器中断函数

*********************************************************************/

void timer1(void)interrupt 3

uchar i;

 TH1=0X3c;//定时初值

 TL1=0Xaf;//定时初值

  i++;

 if(i>=20)

   {i=0;

    miao++;//秒加1

     if(miao>=60)

       {miao=0;//秒清零

     fen++;//60秒后分加1

       if(fen>=60)

        {fen=0;//分清零

           shi++;//60分后时加1

             if(shi>=24)

                   shi=0;//时清零

          }

                           }

                                  }

}

/********************************************************************

                           中断初始化

*********************************************************************/

void cshh()


部分文件列表

文件名大小
keil程序/
keil程序/STARTUP.A516KB
keil程序/STARTUP.LST
keil程序/STARTUP.OBJ1KB
keil程序/chengxu6KB
keil程序/chengxu.LST7KB
keil程序/chengxu.M5110KB
keil程序/chengxu.OBJ6KB
keil程序/chengxu.Uv2.bak2KB
keil程序/chengxu.build_log.htm1KB
keil程序/chengxu.c4KB
...

全部评论(0)

暂无评论

上传资源 上传优质资源有赏金

  • 打赏
  • 30日榜单

推荐下载