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

📄 shizhongchengxu.c

📁 简单电子钟的设计(适合初学者
💻 C
字号:
#include<reg52.h> 
#define uchar unsigned char
#define uint  unsigned int

sbit led_1=P1^0; //秒控制
sbit led_2=P1^1; //分控制
sbit led_3=P1^2; //时控制
sbit led_4=P1^3;

uchar code shuzi[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //共阳数码管字形0,1,2,3,4,5,6,7,8,9
uchar code daidian[]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10};
uchar code *str1=&shuzi[0],*str2=&shuzi[0],*str3=&daidian[0],*str4=&shuzi[0]; //str1、str2分别为秒分指针;str3、str4为时指针

/* 延时子程序 */
void delay(void)
{
  unsigned i,j;
  for(i=0;i<40;i++)
  {for(j=0;j<20;j++)
    {}
  }
}


timer0() interrupt 1
{static uint t=0;
 t++; 
 TH0=0x3C; //0.05S
 TL0=0xB0;
 if(t%20==0)
 {
  if(*str1==0xa4)
  {str1=&shuzi[0];str2++;}
  else
  str1++; 
  if(*str2==0x82)
  {str2=&shuzi[0];str3++;}
  if(*(str3--)==0x10)
  {str3=&daidian[0];str4++;} 
  else
  str3++;
  if((*str3==0x30)&&(*str4==0xf9))
  {str3=&daidian[1];str4=&shuzi[0];}
 }
}



void display()
{led_1=0;
 P0=*str1;
 delay();
 led_1=1;
 led_2=0;
 P0=*str2;
 delay();
 led_2=1;
 led_3=0;
 P0=*str3;
 delay();
 led_3=1;
 led_4=0;
 P0=*str4;
 delay();
 led_4=1;
}

void main(void)
{
TMOD=0x01;  //定时器0方式1
EA=1;  //开总中断
ET0=1; //允许定时器0中断
TH0=0x3C; //0.05S
TL0=0xB0;
TR0=1;
while(1)
display();
}




⌨️ 快捷键说明

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