⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 text8.c

📁 51单片计算机中的定时器程序,在keil工程中编译
💻 C
字号:
#include<reg51.h>
#include<intrins.h>
sbit dula=P2^6;
sbit wela=P2^7;
#define uint unsigned int
char code table[]={			//之所以用code是因为编译的时候数组放在程序存储器种校?
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71,0x76,0x79,0x38,};
char code wsle[]={0xff,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};   
uint led,temp,seg,num=432;
void init()
{
	TMOD=0x11;
	TH0=(65536-50000)/256;
    TL0=(65536-50000)%256;
	TH1=(65536-50000)/256;
    TL1=(65536-50000)%256;
	EA=1;
	ET0=1;
	ET1=1;
	TR0=1;
	TR1=1;
	temp=0xfe;
}
void delay(uint b)
{
	int a;
	for(a=0;a<b;a++);
}
void display(uint i,uint j)
{
	dula=1;
	P0=table[j];
	dula=0;
	P0=0xff;    //消隐
	wela=1;
	P0=wsle[i];
	wela=0;

}
int main()
{	
	uint temp1,temp2;
	init();
	while(1)
	{	
		if(num==398)
		{
			TR1=0;
			if((led==10)&&(temp2<6))
			{	
				P1=~P1;
				led=0;
				temp2++;
	
			}
			if(temp2>=6)
			{
				TR0=0;
				display(6,16);
				delay(100);
				display(5,17);
				delay(100);
				display(4,18);
				delay(100);
				display(3,18);
				delay(100);
				display(2,0);
				delay(100);
			}

		}
		 if((led==10)&&(num!=398))
		{
			P1=temp;
			temp=_crol_(temp,1);
			led=0;
		}
 		 if(TR0!=0)
		{
			temp1=num;
			display(3,temp1/100);//秒表
			delay(10);
			temp1=temp1%100;
			display(2,temp1/10);
			delay(10);
			display(1,temp1%10);
			delay(10);
			display(4,5);
			delay(10);
			display(5,6);
			delay(10);
			display(6,7);
			delay(10);
		}
	}
}
void timer0() interrupt 1
{
	TH0=(65536-50000)/256;
    TL0=(65536-50000)%256;
	led++;
	
}
void timer1() interrupt 3
{
	TH1=(65536-50000)/256;
    TL1=(65536-50000)%256;
	seg++;
	if(seg==2)
	{
		num--;
		seg=0;
	}
	if(num==398)
	{
		P1=0xff;
	}


}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -