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

📄 1111.c

📁 行列式按键
💻 C
字号:
#include <at89x52.h>
unsigned char dispbuf[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D ,0x07,0x7F,0x6F};
unsigned char bitselect[]={ 0xF7,0xFB,0xFD,0xFE};
unsigned char disp[4];
/*void t0init(void)
{
	TMOD=1;
	TL0=-50000;
	TH0=(-50000)>>8;
	ET0=1;
	TR0=1;
	EA=1;
}*/

void dispmove(unsigned char dat)
{	unsigned char i;
    for(i=4;i>=1;i--)
	disp[i-1]=disp[i-2];
	disp[0]=dat;
}

unsigned char keydriver(void)
{
	unsigned char x,y;
	P3=0xf0;
	x=P3;
	x=x&0xf0;
	P3=0x0f;
	y=P3;
	y=y&0x0f;
	y=x|y; 
	return(y);
}
void DispGame()
{
	static unsigned char ii=0;
	P0=0;
	P0=dispbuf[disp[ii]];
	P2=bitselect[ii];
	if(++ii>3) ii=0;
	
}
unsigned char  key()
{
	unsigned char i,keyvalue;
	i=keydriver();
	if(i!=0xff)
	{
		while((keydriver()!=0xff));
		switch(i)
		{
			case 0x7d:	keyvalue=0; break;
			case 0xeb:	keyvalue=1; break;
			case 0xed:	keyvalue=2; break;
			case 0xee:	keyvalue=3; break;
			case 0xdb:	keyvalue=4; break;
			case 0xdd:	keyvalue=5; break;
			case 0xde:	keyvalue=6; break;
			case 0xbb:	keyvalue=7; break;
			case 0xbd:	keyvalue=8; break;
			case 0xbe:	keyvalue=9; break;
			 
			default: return(-1);
		}
	    dispmove(keyvalue);
	}
}
/*void t0interrupt(void) interrupt 1
{
	TL0=-50000;
	TH0=(-50000)>>8;
	key();		
}*/

void delay(unsigned char i)
{
	unsigned char j,k;
	for(j=0;j<i;j++)
		for(k=0;k<255;k++);
}




main()
{  	//t0init();
	while(1)
	{
		DispGame();
		delay(2);
		key();
	}
}

⌨️ 快捷键说明

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