⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 旋转led时钟程序.c

📁 旋转led时钟程序
💻 C
字号:
#include<reg51.h>
unsigned char miao=0,fen=0,shi=0;

unsigned  char  miao1=0,miao2=0;
unsigned  char  fen1=0,fen2=0;
unsigned  char  shi1=0,shi2=0;


void xiezhi();
#define THCO 0xee   //5ms
#define THLO 0x00

code   char    ziku[]=
{
0xFF,0x87,0x33,0x7B,0x7B,0x33,0x87,0xFF,/*"0",0*/
0xFF,0x77,0x77,0x03,0x7F,0x7F,0xFF,0xFF,/*"1",1*/
0xFF,0x77,0x3B,0x3B,0x5B,0x6B,0x37,0xFF,/*"2",2*/
0xFF,0xB7,0x7B,0x6B,0x6B,0x6B,0x97,0xFF,/*"3",3*/
0xFF,0xDF,0xAF,0xB7,0x3B,0x03,0xFF,0xFF,/*"4",4*/
0xFF,0xA3,0x6B,0x6B,0x6B,0x6B,0x9B,0xFF,/*"5",5*/
0xFF,0x87,0x6B,0x6B,0x6B,0x6B,0x9F,0xFF,/*"6",6*/
0xFF,0xF3,0xFB,0x1B,0xEB,0xF3,0xFB,0xFF,/*"7",7*/
0xFF,0x97,0x6B,0x5B,0x5B,0x4B,0xB7,0xFF,/*"8",8*/
0xFF,0xE7,0x5B,0x5B,0x5B,0x17,0x87,0xFF,/*"9",9*/
0xFF,0xFF,0xFF,0x6F,0x6F,0xFF,0xFF,0xFF,/*":",10*/


0x00,
};
main(void)										                            
{											                               
  IT0=1;	//外部中断0连沿触发方式 
  EX0=1;	//使能外部中断0
  EA=1;	//开部中断

  P2=0xff;
  P0=0xff;

  TMOD=0x11;								                
  TH0=THCO;   //载入高8位初值
  TL0=THLO;    //载入低8位初值
  EA=1;    //打开总中断
  ET0=1;  //开定时器中断。若为0则表示关闭!
  TR0=1;  //打开定时器
  while(1)
  {
//////////计时程序//////////////////////////////
  if(miao==60){fen++;miao=0;}
  if(fen==60){ shi++;fen=0;}
  if(shi==24){shi=0;}
/////////////////////////////////////////////
  }
}

 void   timw0()  interrupt  1
{
  static unsigned char c=0;
  TH0=THCO;
  TL0=THLO;
  c++;
if(c>200)
{          
 miao++;    
 c=0;
}	
  }

void int0() interrupt 0	//外部中断0程序入口   当霍尔检测到时,开始进入
{
xiezhi();
}

 void xiezhi()
{

  unsigned  int  i;
  unsigned  int k;
/////////////////////////////////////////////////////////////////
  miao1=miao/10;      //显示秒的第二位
  miao2=miao%10;    //显示秒的第一位

  fen1=fen/10;       //显示分的第二位
  fen2=fen%10;     //显示分的第二位

  shi1=shi/10;       //显示时的第二位
  shi2=shi%10;     //显示时的第二位
/////////////////////////时钟显示/////////////////////////////时分秒
for(i=shi1*8;i<=shi1*8+8;i++)            //显示  时
 {
 P0=ziku[i];
 for(k=25;k>0;k--);
 P0=0xff;
 for(k=25;k>0;k--);
 }

for(i=shi2*8;i<=shi2*8+8;i++)
 {
 P0=ziku[i];
 for(k=25;k>0;k--);  //
 P0=0xff;
 for(k=25;k>0;k--);  //可以不要
 }


 for(i=80;i<=87;i++)   // 87 数组字模   取两点
 {
 P0=ziku[i];
 for(k=25;k>0;k--);
 P0=0xff;
 for(k=25;k>0;k--);
 }
 /////////////////////////分钟显示///////////////////////////////
 for(i=fen1*8;i<=fen1*8+8;i++)
 {
 P0=ziku[i];
 for(k=25;k>0;k--);
 P0=0xff;
 for(k=25;k>0;k--);
 }

for(i=fen2*8;i<=fen2*8+8;i++)
 {
 P0=ziku[i];
 for(k=25;k>0;k--);
 P0=0xff;
 for(k=25;k>0;k--);
 }


for(i=80;i<=87;i++)
 {
 P0=ziku[i];
 for(k=25;k>0;k--);
 P0=0xff;
 for(k=25;k>0;k--);
 }
//////////////////////////秒钟显示///////////////////////////////
 for(i=miao1*8;i<=miao1*8+8;i++)
 {
 P0=ziku[i];
 for(k=25;k>0;k--);
 P0=0xff;
 for(k=25;k>0;k--);
 }
for(i=miao2*8;i<=miao2*8+8;i++)
 {
 P0=ziku[i];
 for(k=25;k>0;k--);
 P0=0xff;
 for(k=25;k>0;k--);
 }

}














⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -