#include <reg52.h>
#include "led.h"
code unsigned char smgduan1 [] ={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
code unsigned char smgduan2 [] ={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
unsigned char T0RH = 0;
unsigned char T0RL = 0;
unsigned int cnt;
unsigned int cna;
signed char sec;
void CT0(unsigned int);
void main()
{
cnt = 0;
sec = 19;
CT0(10);
EA = 1;
TR0 = 1;
while(1)
{
Led(0,smgduan1[sec%10]);
Led(1,smgduan2[sec/10]);
if(KEY0==0)
{
TR0=0;
sec = 19;
}
if(KEY1==0)
{
TR0=~TR0;
}
while(KEY1==0)
{
Led(0,smgduan1[sec%10]);
Led(1,smgduan2[sec/10]);
}
}
}
void CT0(unsigned int ms)
{
unsigned long tmp;
tmp = 11059200/12;
tmp = (tmp*ms)/1000;
tmp = 65536 - tmp;
tmp = tmp + 18;
T0RH = (unsigned char)(tmp>>8);
T0RL = (unsigned char)tmp;
TMOD &= 0xf0;
TMOD |= 0x01;
TH0 = T0RH;
TL0 = T0RL;
ET0 = 1;
}
void TM0() interrupt 1
{
TH0 = T0RH;
TL0 = T0RL;
cnt++;
if(cnt >= 100)
{
cnt = 0;
sec--;
}
if(sec == 0)
{
cna=0;
while(1)
{
if(KEY0==0)
{
TR0=0;
sec = 19;
}
cna++;
Led(0,smgduan1[0]);
Led(1,smgduan2[0]);
if(cna >= 50)
{
LSA = 1;LSB = 1;LSC = 1;
cna = 0;
Delayms(500);
}
}
}
}
void Delayms(unsigned int xms)
{
unsigned int j,k;
for(j = xms;j >0;j --)
{
for(k = 110;k > 0;k--);
}
}
评论1
最新资源