仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
具体程序如下:
#include <reg52.h>
void delay(unsigned int t)
{
while (--t);
}
sbit led1wei=P2^7;
sbit led2wei=P2^6;
sbit led3wei=P2^4;
sbit led4wei=P2^3;
sbit led5wei=P2^1;
sbit led6wei=P2^0;
sbit led7wei=P2^5;
sbit led8wei=P2^2;
sbit key1=P3^0;
sbit key2=P3^2;
char m,n;
unsigned char hour,sec,min;
void button();
char a[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//0,1,2,3,4,5,6,7,8,9//
/*********定时器初始化子程序********/
void time0(void)
{
TMOD|=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;
ET0=1;
TR0=1;
EX0=1;
IT0=1;
}
/************数码管显示*************/
void display()
{
if(n==0)
{
led1wei=0;
P0=a[hour/10];
delay(100);
led1wei=1;
led2wei=0;
P0=a[hour%10];
delay(100);
led2wei=1;
led3wei=0;
P0=a[min/10];
delay(100);
led3wei=1;
led4wei=0;
P0=a[min%10];
delay(100);
led4wei=1;
led5wei=0;
P0=a[sec/10];
delay(100);
led5wei=1;
led6wei=0;
P0=a[sec%10];
delay(100);
led6wei=1;
}
if(n==1)
{
led1wei=0;
P0=a[hour/10];
delay(100);
led1wei=1;
led2wei=0;
P0=a[hour%10];
delay(100);
led2wei=1;
}
if(n==2)
{
led3wei=0;
P0=a[min/10];
delay(100);
led3wei=1;
led4wei=0;
P0=a[min%10];
delay(100);
led4wei=1;
}
if(n==3)
{
led5wei=0;
P0=a[sec/10];
delay(100);
led5wei=1;
led6wei=0;
P0=a[sec%10];
delay(100);
led6wei=1;
}
}
void main()
{
time0();
led7wei=0;
led8wei=0;
while(1)
{
display();
button();
if(m==20)
{
m=0;
sec++;
if (sec==60)
{
sec=0;
min++;
if (min==60)
{
min=0;
hour++;
if (hour==24)
{
sec=0;
hour=0;
}
}
}
}
}
}
/**********按键控制***********/
/**********位控************/
void button()
{
if (key1==0)
{
delay(10); //xiaodou
if (key1==0)
{
while(key1==0)
{display();}
n++;
TR0=0;
if(n==4)
{
n=0;
TR0=1;
}
}
}
}
void WBZD0(void) interrupt 0
{
if(key2==0)
{
delay(10);
if(key2==0)
{
while(key2==0)
{display();}
/********时段控*******/
if(n==1)
{
hour++;
if(hour==24)
{
hour=0;
}
}
/********分段控*******/
if(n==2)
{
min++;
if(min==60)
{
min=0;
}
}
/********秒段控*******/
if(n==3)
{
sec++;
if(sec==60)
{
sec=0;
}
}
}
}
}
/***********定时器实现24小时循环*******/
void time1() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
m++;
}
仿真图如下:
DZSZ.rar
(143.21 KB, 下载次数: 18)
所有文件如下:包括程序,电路板设计,仿真
|