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

📄 keyscan.c

📁 主要实现在C8051F020的平台上完成在12864液晶OCMG4C8上画正弦函数特性曲线。
💻 C
字号:
#include <c8051f020.h>
#include <Init.h>
void Kdelay(uint x)
{
	uint a,b;
	for(a=0;a<x;a++)
		for(b=0;b<280;b++);
}
uchar KeyScan()
{
		uchar i=0;
		uchar temp;
		P1=0xfe;
		temp=P1;														
		temp=temp&0xf0;
		if(temp!=0xf0)
		{
			 Kdelay(20);
			if(temp!=0xf0)
			{
				switch(temp)
				{
					case 0xe0: i=0;
							   break;
					case 0xd0: i=1;
							   break;
					case 0xb0: i=2;
							   break;
					case 0x70: i=3;
							   break;
				}
			}
		while(temp!=0xf0)
		 	{
				temp=P1;
				temp=temp&0xf0;
			}
	    }
	    P1=0xfd;
		temp=P1;														
		temp=temp&0xf0;
		if(temp!=0xf0)
		{
			 Kdelay(20);
			if(temp!=0xf0)
			{
				switch(temp)
				{
					case 0xe0: i=4;
							   break;
					case 0xd0: i=5;
							   break;
					case 0xb0: i=6;
							   break;
					case 0x70: i=7;
							   break;
				}
			}
		while(temp!=0xf0)
		 	{
				temp=P1;
				temp=temp&0xf0;
			}
	   }
	    P1=0xfb;
		temp=P1;														
		temp=temp&0xf0;
		if(temp!=0xf0)
		{
			 Kdelay(20);
			if(temp!=0xf0)
			{
				switch(temp)
				{
					case 0xe0: i=8;
							   break;
					case 0xd0: i=9;
							   break;
					case 0xb0: i=10;
							   break;
					case 0x70: i=11;
							   break;
				}
			}
		while(temp!=0xf0)
		 	{
				temp=P1;
				temp=temp&0xf0;
			}
	   }
	   P1=0xf7;
		temp=P1;														
		temp=temp&0xf0;
		if(temp!=0xf0)
		{
			 Kdelay(20);
			if(temp!=0xf0)
			{
				switch(temp)
				{
					case 0xe0: i=12;
							   break;
					case 0xd0: i=13;
							   break;
					case 0xb0: i=14;
							   break;
					case 0x70: i=15;
							   break;
				}
			}
			while(temp!=0xf0)
					 	{
								temp=P1;
								temp=temp&0xf0;
						}
	   }
	   return(i);
}

⌨️ 快捷键说明

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