/********************SU**************************/
/****************QQ774145445*********************/
/***********STC15W408AS@四位数码管***************/
#include<stc15.h>
#define B0 0x01
#define B1 0x02
#define B2 0x04
#define B3 0x08
#define B4 0x10
#define B5 0x20
#define B6 0x40
#define B7 0x80
sbit a =P1^1;
sbit b =P1^0;
sbit c =P3^7;
sbit d =P3^6;
sbit e =P3^5;
sbit f =P3^4;
sbit g =P3^3;
sbit h =P3^2;
sbit yi =P1^5;
sbit er =P1^6;
sbit san =P1^7;
sbit si =P5^4;
sbit jiechuqi =P5^5;
sbit tantou =P1^4;
/************************************************/
void chushihua();
void yanshi(unsigned char xa);
void jiance();
void xianshi(unsigned char xia);
void xianshia();
void xianshib();
unsigned char haomiao,miao,fen,dian,deng;
unsigned char zib[]={
0x03,0x9f,0x25,0x0d,0x99,0x49,
0x41,0x1f,0x01,0x09,0x00};
unsigned char zia[]={0x03,0x71,0x71,0xfe};
void main()
/************************************************/
{
chushihua();
for(;;)
{
if(deng==0)
{
jiance();
xianshia();
}
if(deng==1)
{
xianshib();
}
}
}
/************************************************/
void chushihua()
{
deng =0;
jiechuqi =0;
P5M1 &=~B5;
P5M0 |=B5;
AUXR |= 0x80; //定时器时钟1T模式
TMOD &= 0xF0; //设置定时器模式
//TL0 = 0xcd; //设置定时初值
//TH0 = 0xd4; //设置定时初值
TL0 = 0x00; //设置定时初值
TH0 = 0x28; //设置定时初值
TF0 = 0; //清除TF0标志
TR0 = 1; //定时器0开始计时
ET0 = 1; //使能定时器0中断
EA = 1;
}
/************************************************/
void yanshi(unsigned char xa)
{
unsigned char xb;
for(xa;xa>0;xa--)
{
for(xb=200;xb>0;xb--);
}
}
/************************************************/
void jiance()
{
tantou=1;
yanshi(20);
if(tantou==1)
{
yanshi(20);
if(tantou==1)
{
deng=1;
jiechuqi=1;
}
}
tantou=0;
yanshi(20);
}
/************************************************/
void mmm() interrupt 1
{
if(deng==1)
{
haomiao++;
if(haomiao==100)
{
dian =1;
}
if(haomiao==200)
{
dian =0;
haomiao =0;
miao++;
if(miao==60)
{
miao=0;
fen++;
if(fen==15)//if(fen==15)
{
fen=0;
deng=0;
jiechuqi=0;
}
}
}
}
}
/************************************************/
void xianshia()
{
unsigned char xib;
yi=0;er=1;san=1;si=1;
xib=zia[0];
xianshi(xib);
yanshi (20);
yi=1;er=0;san=1;si=1;
xib=zia[1];
xianshi(xib);
yanshi (20);
yi=1;er=1;san=0;si=1;
xib=zia[2];
xianshi(xib);
yanshi (20);
yi=1;er=1;san=1;si=0;
xib=zia[3];
xianshi(xib);
yanshi (20);
}
/************************************************/
void xianshib()
{
unsigned char xic,xid;
yi=0;er=1;san=1;si=1;
xic =fen/10%10;
xid =zib[xic];
xianshi (xid);
yanshi (30);
yi=1;er=0;san=1;si=1;
xic =fen/1%10;
xid =zib[xic];
xianshi (xid);
yanshi (30);
yi=1;er=1;san=0;si=1;
xic =miao/10%10;
xid =zib[xic];
xianshi (xid);
yanshi (30);
yi=1;er=1;san=1;si=0;
xic =miao/1%10;
xid =zib[xic];
xianshi (xid);
yanshi (30);
}
/************************************************/
void xianshi(unsigned char xia)
{
if(xia&B7){a=1;}else{a=0;}
if(xia&B6){b=1;}else{b=0;}
if(xia&B5){c=1;}else{c=0;}
if(xia&B4){d=1;}else{d=0;}
if(xia&B3){e=1;}else{e=0;}
if(xia&B2){f=1;}else{f=0;}
if(xia&B1){g=1;}else{g=0;}
if(dian==1){h=1;}else{h=0;}
}
/************************************************/