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

📄 51clock.c

📁 51单片机+定时器中断+8位数码管做成的简单时钟
💻 C
字号:
//74series138 LEDDisplay Driver
#include<reg52.h>
//IO definition
sbit      A0   =  P2^0;
sbit      A1   =  P2^1;
sbit      A2   =  P2^2;
sbit      FK   =  P1^4;
sbit      KU   =  P1^3;
sbit      KD   =  P1^2;
#define   IO      P0
//SEG definition
#define   SEG0    A0=0;A1=0;A2=0
#define   SEG1    A0=1;A1=0;A2=0
#define   SEG2    A0=0;A1=1;A2=0
#define   SEG3    A0=1;A1=1;A2=0
#define   SEG4    A0=0;A1=0;A2=1
#define   SEG5    A0=1;A1=0;A2=1
#define   SEG6    A0=0;A1=1;A2=1
#define   SEG7    A0=1;A1=1;A2=1
//define code table
unsigned char table[]=
			{0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};  //0-9
#define uint unsigned int
uint hour=0,min=0,sec=0,count=0,TM=24;
//time delay function
void delay(uint cnt)
{
while(--cnt);
}
//time display function
DisplayT()
{
IO=table[hour/10];
SEG0;
delay(300);
IO=0x00;
IO=table[hour%10];
SEG1;
delay(300);
IO=0x00;
IO=table[min/10];
SEG3;
delay(300);
IO=0x00;
IO=table[min%10];
SEG4;
delay(300);
IO=0x00;
IO=table[sec/10];
SEG6;
delay(300);
IO=0x00;
IO=table[sec%10];
SEG7;
delay(300);
IO=0x00;
}
//DisplayD()
//Key scan function
Keyscan()
{
if(KU==0)
{
delay(10);
if(KU==0)
 {
min++;
if(min==60)
  {
 min=0;
hour++;
if(hour==TM)
   {
hour=0;
   }
  }
while(KU==0); }
}
if(KD==0)
delay(10);
if(KD==0)
 {
hour++;
if(hour==TM)
  {
hour=0;
  }
 while(KD==0);}
}
//main function
void main()
{
TMOD=0x01;
TH0=0x3c;
TL0=0xb0;
EA=1;
ET0=1;
TR0=1;
IO=0x00;
while(1)
{
Keyscan();
DisplayT();
}
}
timer2() interrupt 1
{
TH0=0x3c;
TL0=0xb0;
EA=1;
ET0=1;
TR0=1;
count++;
if(count==20)
{
count=0;
sec++;

if(sec==60)
{
sec=0;
min++;
if(min==60)
{
min=0;
hour++;
if(hour==TM)
{
hour=0;
}
}
}
}
}

⌨️ 快捷键说明

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