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

📄 双数码管.txt

📁 双数码管可调秒表
💻 TXT
字号:
#include <at89x52.h>
Code unsigned char Seg7Code[16]=	//用十六进数作为数组下标,可直接取得对应的七段编码字节
// 0     1    2     3     4    5     6     7     8     9    A     b     C     d    E    F
{0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f, 0x77, 0x7c, 0x39, 0x5e, 0x79, 0x71};
void main( void )
{
	unsigned int us250 = 0;
	unsigned char s10 = 0;
	unsigned char s1 = 0;
	unsigned char key10 = 0;	//记忆按键状态,为1按下
	unsigned char key1 = 0;		//记忆按键状态,为1按下
	//初始化定时器 Timer0
	TMOD = (TMOD & 0xF0) | 0x02;
	TH1 = -250;	//对于8位二进数来说,-250=6,也就是加250次1时为256,即为0
	TR1 = 1;
	while(1){											//----------循环1
		P1 = Seg7Code[ s10 ];	//显示秒十位
		P2 = Seg7Code[ s1 ];	//显示秒个位
		while( 1 ){									//----------循环2
			//计时处理
if( TF0 == 1 ){
				TF0 = 0;
				if( ++us250 >= 4000 ){
					us250 = 0;
					if( ++s1 >= 10 ){
						s1 = 0;
						if( ++s10 >= 6 ) s10 = 0;
					}
					break;	//结束“循环2”,修改显示
				}
			}
			//按十位键处理
			P3.2 = 1;		//P3.2作为输入,先要输出高电平
			if( key10 == 1 ){	//等松键
	if( P3.2 == 1 )	key10=0;
			}
else{			//未按键
				if( P3.2 == 0 ){
					key10 = 1;
	if( ++s10 >= 6 ) s10 = 0;
					break; //结束“循环2”,修改显示
				}
			}
			//按个位键处理
			P3.3 = 1;		//P3.3作为输入,先要输出高电平
			if( key1 == 1 )	//等松键
{	if( P3.3 == 1 )	key1=0;	}
			else	{			//未按键
				if( P3.3 == 0 ){	key1 = 1;
	if( ++s1 >= 10 ) s1 = 0;
					break; //结束“循环2”,修改显示
				}
			}
		} //循环2’end
 	}//循环1’end
}//main’end

⌨️ 快捷键说明

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