test.c

来自「MT8880单片机控制的测试程序」· C语言 代码 · 共 108 行

C
108
字号
#include<REG52.H>

typedef   unsigned char uchar;
sbit LED = P2^0;

char Buff;

uchar Key_Scan();
void Serial_Init();
void delay();
main()
{
	uchar kv , fgk;

	Serial_Init();

	while(1)
	{
		kv = Key_Scan();
		if(!(kv & 0x20))
		{
			fgk = (fgk + 1)&0x01;
			LED = fgk;
		}
		else if(!(kv & 0x10))
			if(fgk)
				SBUF = 9;
			else
				SBUF = 4;
	   	else if(!(kv & 0x08))
			if(fgk)
				SBUF = 8;
			else
				SBUF = 3;
		else if(!(kv & 0x04))
			if(fgk)
				SBUF = 7;
			else
				SBUF = 2;
		else if(!(kv & 0x02))
			if(fgk)
				SBUF = 6;
			else
				SBUF = 1;
		else if(!(kv & 0x01))
			if(fgk)
				SBUF = 5;
			else
				SBUF = 10;
				
	} 	
}
void Serial_Init()
{
	PCON = 0;
	SCON = 0xD0;
	TMOD = 0x21;
	TH1 = 0xFD;
	TL1 = 0xFD;
	//EA = 1;
	TR1 = 1;

}

uchar Key_Scan()
{
	uchar aa , pf , fgks;
	int kcount;

	P1 = 0xFF;
	fgks = 1;
	kcount = 0;

	while(fgks)
	{
		delay();
		aa = P1;

		if(aa == 0xFF)
			if(kcount > 50)
				fgks = 0;
			else
				kcount = 0;
		else
			if(pf != aa)
				{
					pf = aa;
					kcount = 0;
				}
			else
				{
					
					if(kcount < 200)
						kcount ++;
				}				
	}

	return pf;

}

void delay()
{
	int i = 0;
	for(i = 0; i < 100;)
		i++;
}

⌨️ 快捷键说明

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