单片机计时程序

单片机计时程序,第1张

#include <reg51.H>

sbit P3_5 =P3^5

unsigned char code dispcode[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,

0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E,0x00}

unsigned char second

unsigned char keycnt

unsigned int tcnt

void main(void)

{

unsigned char i,j

TMOD=0x02

ET0=1

EA=1

second=0

P1=dispcode[second/10]

P2=dispcode[second%10]

while(1)

{

if(P3_5==0)

{

for(i=20i>0i--)

for(j=248j>0j--)

if(P3_5==0)

{

keycnt++

switch(keycnt)

{

case 1:

TH0=0x06

TL0=0x06

TR0=1

break

case 2:

TR0=0

break

case 3:

keycnt=0

second=0

P1=dispcode[second/10]

P2=dispcode[second%10]

break

}

while(P3_5==0)

}

}

}

}

void t0(void) interrupt 1 using 0

{

tcnt++

if(tcnt==4000)

{

tcnt=0

second++

if(second==100)

{

second=0

}

P1=dispcode[second/10]

P2=dispcode[second%10]

}

}

1、定义计时器变量,包括小时、分钟和秒钟三个变量,初始值均为0。

2、在程序中设置一个定时器,每隔1秒钟触发一次中断。

3、在中断服务程序中,将秒钟变量加1,如果秒钟变量达到60,则将秒钟变量清零,并将分钟变量加1;如果分钟变量达到60,则将分钟变量清零,并将小时变量加1;如果小时变量达到12,则将小时变量清零。

4、在程序中可以通过LCD显示屏等外设显示当前的计时器数值。不同的单片机型号和开发环境会有所不同,具体实现方法需要根据具体情况进行调整。


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存