单片机时钟程序

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

#include<at89x52.h>

sbit LED_0=P1^3;

sbit LED_1=P1^2;

sbit LED_2=P1^1;

sbit LED_3=P1^0;

sbit sound=P3^4;

void delay(void);

void delay1(void);

void change(void);

void change1(void);

unsigned char a,b,c,d,e,f,i,j,k,l,m;

void display(unsigned char a,unsigned char b,unsigned char c,unsigned char d);

unsigned char num[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0x86,0x8e,0x82}; void changetimer(void) interrupt 3

{

TL1=0xf0;

TH1=0xd8;

if(b!=1)

display(m,l,k,i);

else

display(c,d,e,f);

}

void timer(void) interrupt 1

{

TH0=0xee;

j++;

if(j==200)

{

j=0;

i++;

if(i==10)

{

i=0;

k++;

if(k==6)

{

k=0;

l++;

if(l==10)

{

l=0;

m++;

if(m==6)

{

m=0;

}

}

}

}

}

if(b!=1)

{

display(m,l,k,i);

if(c==m&&d==l&&e==k&&i==f)

{

sound=0;

delay();

sound=1;

}

}

}

void main()

{

TMOD=0x11;

TL0=0x78;

TH0=0xec;

TL1=0xf0;

TH1=0xd8;

EA=1;

ET0=1;

ET1=1;

TR0=1;

c=3;

d=0;

while(1)

{

if(P2==0xfe)

{

change();

a=0;

}

}

}

void display(unsigned char a,unsigned char b,unsigned char c,unsigned char d) {

P0=num[a];

LED_3=0; delay();

LED_3=1;

P0=num[b]; LED_2=0; delay();

LED_2=1;

P0=num[c]; LED_1=0; delay();

LED_1=1;

P0=num[d]; LED_0=0; delay();

LED_0=1;

}

void change(void) {

TR0=0;

TR1=1;

while(1)

{

if(P2==0xfd)

{

i++;

if(i==10)

{

k++;

i=0;

if(k==6)

{

k=0;

}

}

}

if(P2==0xfb)

{

l++;

if(l==10)

{

m++;

l=0;

if(m==6)

{

m=0;

}

}

}

delay1();

if(P2==0xf7)

break;

}

change1();

b=0;

TR0=1;

TR1=0;

}

void change1(void) {

b=1;

TR0=0;

TR1=1;

while(1)

{

if(P2==0xfd)

{

f++;

if(f==10)

{

e++;

f=0;

if(e==6)

{

e=0;

}

}

}

if(P2==0xfb)

{

d++;

if(d==10)

{

c++;

d=0;

if(c==6)

{

c=0;

}

}

}

delay1();

if(P2==0xf7)

break;

}

TR0=1;

TR1=0;

}

void delay(void)

{

unsigned char a,b,c;

for(c=1;c>0;c--)

for(b=142;b>0;b--)

for(a=2;a>0;a--); }

void delay1(void)

{

unsigned char a,b,c;

for(c=2;c>0;c--)

for(b=95;b>0;b--)

for(a=209;a>0;a--); }

相关文档
最新文档