#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
sbit p3_3=P3^3;
sbit p2_7=P2^7;
char led_mod[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf};
char led_com[]={0x01,0x02,0x04,0x08,0x10,0x20};
sbit BEER=P1^1;
int TENms,s,m;
char data_time[6];
void delayms(uint xms)
{
uint i,j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--);
}
void display()
{ uint k;
data_time[0]=m;
data_time[1]=10;
data_time[2]=s/10;
data_time[3]=s%10;
data_time[4]=TENms/10;
data_time[5]=TENms%10;
for(k=0;k<5;k++)
{
P3=led_com[k];
P2=led_mod[data_time[k]];
}
if(k==3)
{
p3_3=1;
p2_7=1;
}
delayms(200);
}
isr_10msT0() interrupt 1
{
TH0=(65536-500000)/256;
TL0=(65536-500000)%256;
TENms++;
BEER=0;
if(TENms==100)
{
TENms=0;
s++;
BEER=1;
}
if(s==60)
{
s=0;
m++;
}
if(m==9,s==59,TENms==99)
{
m=9;
BEER=0;
TR0=0;
}
}
void main(void)
{
TENms=0;
s=0;
m=0;
BEER=0;
TMOD=0x01;
TH0=(65536-500000)/256;
TL0=(65536-500000)%256;
ET0=1;
EA=1;
while(1)
{
display();
switch(P0&0x1f)
{
case 0xdf:TR0=1;break;
case 0x7f:TR0=0;TENms=0;s=0;m=0;TR0=0;break;
case 0xbf:TR0=0;TR0=0;break;
}
}
}
compiling main.c...
linking...
Program Size: data=38.0 xdata=0 code=619
creating hex file from ".\Objects\5"...
".\Objects\5" - 0 Error(s), 0 Warning(s).
Build Time Elapsed: 00:00:00
|