仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
51hei.gif (102.09 KB, 下載次數: 94)
下載附件
2021-7-8 17:50 上傳
具體程序如下:
#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)
2021-7-8 17:27 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
所有文件如下:包括程序,電路板設計,仿真
|