LED数字显示电子时钟源程序代码

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

LED数字显示电子时钟源程序代码

程序:(注已完全经过调试,达到预期目的)

#include

#define uchar unsigned char

#define uint unsigned int

uchar count=0;

sbit LED=P1^0;

uchar tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //显示数码管

0,1,3,4,5,6,7,8,9 uchar miao=0,fen=0,hour=0;

void delay(uint i) //延迟函数

{

uint j;

for(;i>0;i--)

for(j=124;j>0;j--);

}

void init()

{

ET0=1;

TMOD=0x51; //选定定时器0,1和中断0,1

TH0=(65536-25000)/256;

TL0=(65536-25000)%256; //设定时器0时间为250ms一次

ET1=1;

TH1=0xff;

TL1=0xff; //定时器1为中断

EX0=1;

IT0=1; //中断0开

EX1=1;

IT1=1; //中断1开

TR0=1; //定时器0开

TR1=1; //定时器1开

EA=1; //总中断开

}

void display() //时钟显示函数

{

P0=tab[hour/10%10];

P2=0xfe;

delay(1);

P0=tab[hour%10];

P2=0xfd;

delay(1);

P0=tab[fen/10%10];

P2=0xfb;

delay(1);

P0=tab[fen%10];

P2=0xf7;

delay(1);

P0=tab[miao/10%10];

P2=0xef;

delay(1);

P0=tab[miao%10];

P2=0xdf;

delay(1);

}

void main() //主函数

{

init();

LED=0;

while(1)

{

display();

}

}

void T0_int() interrupt 1 //定时器0函数{

TH0=(65536-25000)/256;

TL0=(65536-25000)%256;

count++;

if(count==20)

{

count=0;

miao= miao +1;

LED=~LED;

if(sec==60)

{

miao=0;

fen= fen +1;

if(fen ==60)

{

fen =0;

hour=hour+1;

if(hour==24)

hour=0;

}

}

}

}

void T1_int() interrupt 3 //定时器1函数控制秒针加1 {

TH1=0xff;

TL1=0xff;

miao=miao+1;

if(miao ==60)

miao =0;

}

void I1_int() interrupt 2 //中断1函数控制按键分针加1 {

EX0=0;

fen= fen +1;

if(fen ==60)

fen =0;

EX0=1;

}

void I0_int() interrupt 0 //中断函数0控制按键时针加1 {

EX1=0;

hour=hour+1;

if(hour==24)

hour=0;

EX1=1;

}

相关文档
最新文档