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

📄 time.c

📁 利用89s51单片机和2个374实现6个LED时钟显示。程序代码结构很清晰
💻 C
字号:
// File Name: 374_6led.c
// Header: 利用2个374实现6个LED显示
// Author: Wang Xiaorong
// Date: 20070409
#include <REGX51.H>
unsigned char xdata LEDSEG _at_ 0xfeff;
unsigned char xdata LEDBIT _at_ 0xfdff;
unsigned char code LEDMAP[] =
{
	0x3f, 0x06, 0x5b, 0x4f, 0x66, 
	0x6d, 0x7d, 0x07, 0x7f, 0x6f,0x00
};
unsigned char LEDBuf[6];
unsigned int t1s;   //循环次数,用来实现1秒定时
unsigned char sec;
unsigned char min;
unsigned char hour;
Timer0() interrupt 1
{
	t1s++;
	if(4000 == t1s)
	{
		t1s =0;
		sec ++;	
		if(60 == sec)
		{
			sec = 0;
			min ++;	
			if(60 == min)
			{
				min = 0;
				hour ++;	
				if(24 == hour)
				{
					hour = 0;			
				}
			}
		}
	}
}
inital()
{
	IE = 0x82;
	TMOD = 0x02;
	TL0 = 256 - 200;
	TH0 = TL0;
	TR0 = 1;
}
delay1ms()
{
	unsigned char i;
	for(i = 250; i > 0; i--); 
	for(i = 247; i > 0; i--);
}
display()
{
	unsigned char i;
	unsigned char outbit;
	outbit = 0x01;  // 从右边开始显示
	for (i = 0; i < 6; i++)
	{
		LEDBIT = 0x00;     // 关所有LED
		LEDSEG = LEDMAP[LEDBuf[i]];
		LEDBIT = outbit;
		delay1ms();
		outbit <<= 1;     // 显示下一位
	}
}
main()
{
	inital();
	while(1)
	{
		LEDBuf[0] = sec%10;
		LEDBuf[1] = sec/10;
		LEDBuf[2] = min%10;
		LEDBuf[3] = min/10;
		LEDBuf[4] = hour%10;
		LEDBuf[5] = hour/10;
		display();	
	}
}

⌨️ 快捷键说明

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