当前位置: 代码网 > it编程>硬件开发>单片机 > 51单片机-60秒计时

51单片机-60秒计时

2024年08月06日 单片机 我要评论
【代码】51单片机-60秒计时。

内部定时器0方式1, 定时50ms,循环20次达到1秒寄存器+1

#include"reg51.h"
#define uchar unsigned char
#define uint unsigned int

uchar tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //led0-9

uchar data_l,data_h; //high bite and low bite 
uchar t,a; //count

void delay(uint k) //delay about 0.1ms 
{
	uint m,n;
	for(m=0;m<k;m++)
	{
		for(n=0;n<120;n++);
	}
}

void display (void) //display program
{
	p2=0x01;
	p0=tab[data_h];
	delay(1);
	p2=0x02;
	p0=tab[data_l];
	delay(1);
}

void timer0() interrupt 1 //50ms timing
{
	t++;
	th0=0x4c; //11.0592mhz initial value at high bits 
	tl0=0x00; //11.0592mhz initial value at low  bits 
}
void data_tim(void) //59s cuont 
{
	if(t==20)
	{
		a++;
		t=0;
		if(a==60)
		{
			a=0;
		}
	}
}

void data_in(void) //cut value 
{
	data_l=a%10;
	data_h=a/10;
}

void t0_init(void) //t0 initialization
{
	tmod=0x01; //t0 count model 1
	th0=0x4c;
	tl0=0x00;
	et0=1; //allow t0 break 
	tr0=1; //state t0
	ea=1; 
}
	
void main(void)
{
	a=0;
	t0_init();
	while(1)
	{
		data_tim();
		data_in();
		display();
	}
}
(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com