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

📄 an jian lian xi.c

📁 通过8255查询键值
💻 C
字号:
#include<reg51.h>
#include<absacc.h>

#define uchar unsigned char
#define COM8255	XBYTE[0X0003]
#define PA8255	XBYTE[0X0000]
#define PB8255	XBYTE[0X0001]
#define PC8255	XBYTE[0X0002]

uchar code tab[]={0x88,0xEB,0x4C,0x49,0x2B,0x19,0x18,0xCB,0x08,
					0x09,0x0A,0x38,0x9C,0x68,0x1C,0x1E,0xFF};
uchar code tabHello[]={0x88,0xBC,0xBC,0x1C,0x2A,0xFF};				//HELLO字符; 

void timer(uchar);
void KEY1();			//按K1,显示1
void KEY2();			//按K2,显示2
void KEY2KEY1();		//按K2和K1,显示3
void KEY3();			//按K3,显示4
void KEY3KEY1();   		//按K3和K1,显示5
void KEY3KEY2();		//按K3和K2,显示6
void KEY3KEY2KEY1();	//按K3,K2,K1,显示7

uchar i,a;
sbit P1_2=P1^2;
sbit P1_3=P1^3;
sbit P1_4=P1^4;

/*******************************************************************/

void main(void)
{
	uchar a;
	SCON=0;
	EA=1;
	ES=1;
	P1_2=1;
	P1_3=1;
	P1_4=0;
	COM8255=0x82;
	for(a=0;a<=5;a++)		//显示Hello字样
	{
		SBUF=tabHello[a];
		while(!TI)
		TI=0;
	}
	for(;;)
	{
		KEY1();
		KEY2();
		KEY2KEY1();
		KEY3();
		KEY3KEY1();
		KEY3KEY2();
		KEY3KEY2KEY1();
	}
}

/*************************************/

void timer(uchar t)
{
	uchar i;
	for(i=0;i<t;i++)
	{
		TMOD=0x01;
		TH0=(65535-10000)/256;
		TL0=(65535-10000)%256;
		TR0=1;
		while(!	TF0);
		TF0=0;
	}
}

/****************************************/

/*void Hello()
{
	uchar a;
	for(a=0;a<=5;a++)
	{
		SBUF=tabHello[a];
		while(!TI)
		TI=0;
	}
}*/

/***************************************/

void KEY1()
{		
	uchar i;
	if(PB8255==0xfe)		//判断键值
	{
		SBUF=tab[1];
		while(!TI);
		TI=0;
		for(i=1;i<=5;i++)
		{
		SBUF=tab[16];
		while(!TI);
		TI=0;
		}
		timer(50);
	}
}

/**************************************/
void KEY2()
{
	uchar i;
	if(PB8255==0xfd)
	{
		SBUF=tab[2];
		while(!TI);
		TI=0;
		for(i=1;i<=5;i++)
		{
		SBUF=tab[16];
		while(!TI);
		TI=0;
		}
		timer(50);
	}
}

/********************************************/

void KEY2KEY1()
{
	uchar i;
	if(PB8255==0xfc)
	{
		SBUF=tab[3];
		while(!TI);
		TI=0;
		for(i=1;i<=5;i++)
		{
		SBUF=tab[16];
		while(!TI);
		TI=0;
		}
		timer(50);
	}
}

/****************************************/

void KEY3()
{
	uchar i;
	if(PB8255==0xfb)
	{
		SBUF=tab[4];
		while(!TI);
		TI=0;
		for(i=1;i<=5;i++)
		{
		SBUF=tab[16];
		while(!TI);
		TI=0;
		}
		timer(50);
	}
}

/************************************/

void KEY3KEY1()
{
	uchar i;
	if(PB8255==0xfa)
	{
		SBUF=tab[5];
		while(!TI);
		TI=0;
		for(i=1;i<=5;i++)
		{
		SBUF=tab[16];
		while(!TI);
		TI=0;
		}
		timer(50);
	}
}

/****************************************/

void KEY3KEY2()
{
	uchar i;
	if(PB8255==0xf9)
	{
		SBUF=tab[6];
		while(!TI);
		TI=0;
		for(i=1;i<=5;i++)
		{
		SBUF=tab[16];
		while(!TI);
		TI=0;
		}
		timer(50);
	}
}

/*********************************/

void KEY3KEY2KEY1()
{
	uchar i;
	if(PB8255==0xf8)
	{
		SBUF=tab[7];
		while(!TI);
		TI=0;
		for(i=1;i<=5;i++)
		{
		SBUF=tab[16];
		while(!TI);
		TI=0;
		}
		timer(50);
	}
}


⌨️ 快捷键说明

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