单片机60秒计时器的程序,用AT89C51实现

单片机60秒计时器的程序,用AT89C51实现,第1张

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

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

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

//晶振频率为12MHZ

#include<reg51.h>

#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=zx>0x--)

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

}

#include<reg51.h>

#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=zx>0x--)

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

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12555512.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存