单片机60秒计时器的程序

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

//1:用AT89C51单片机的定时/计数器T0产生一秒的

//定时时间,作为秒计数时间,当一秒产生时,秒

//计数加1,秒计数到60时,自动从0开始。单片机

//晶振频率为12MHZ

#include

#define uchar unsigned char

#define uint unsigned int

uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f, 0x6f};

void display(uchar fen,uchar miao);

uchar a,fen,miao,shu;

void delay(uint z);

void init();

void main()

{

init();

while(1)

{

display(fen,miao);

}

}

void timer0() interrupt 1

{

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

a++;

if(a==20)

{

a=0;

shu++;

fen=shu/10;

miao=shu%10;

if(shu==60)

shu=0;

}

}

void init()

{

TMOD=0x01;

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

EA=1;

ET0=1;

TR0=1;

}

void display(uchar fen,uchar miao) {

P1=0xFe;

P2=table[fen];

delay(5);//延时5毫秒

P1=0xFf;

P2=table[miao];

delay(5);//延时5毫秒

}

void delay(uint z)

{

uint x,y;

for(x=z;x>0;x--)

for(y=110;y>0;y--);

}

相关文档
最新文档