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

📄 lcd.c

📁 LED的显示原理实验指导等内容
💻 C
📖 第 1 页 / 共 2 页
字号:
	{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
	{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
	{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
	{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
	{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
	{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
	{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
	{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
	
	
	
	{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},//1
	{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},//1
	{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
	{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
	{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
	{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
	{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
	{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
	{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
	{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
	
	
    {0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},//1
    {0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},//1
    {0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
	{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
	{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
	{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
	{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
	{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
	{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
	{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
	
	
	{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},//1
	{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},//1
	{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
	{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
	{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
	{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
	{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
	{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
	{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
	{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
	
	
	{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},//1
	{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},//1
	{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
	{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
	{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
	{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
	{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
	{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
	{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
	{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
	

   
	{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},//1
	{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},//1
	{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
	{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
	{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
	{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
	{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
	{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
	{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
	{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
	
	
    {0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},//1
	{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},//1
	{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
	{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
	{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
	{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
	{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
	{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
	{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
	{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
	
	
	
    {0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},//1
	{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},//1
	{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
	{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
	{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
	{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
	{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
	{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
	{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
	{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
	
	
	
    {0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},//1
	{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},//1
	{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
	{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
	{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
	{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
	{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
	{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
	{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
	{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
	
	
	
    {0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},//1
	{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},//1
	{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
	{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
	{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
	{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
	{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
	{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
	{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
	{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
	
	
	{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},//1
	{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},//1
	{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
	{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
	{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
	{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
	{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
	{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
	{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
	{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
	
	
	
	{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},//1
	{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
	{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
	{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
	{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
	{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
	{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
	{0x00,0x00,0x00,0x84,0xfe,0x80,0x00,0x00},
	}



	
};

main()
{
	int i,j,k,m,nCount=0;
	int repeat = 0;   
	unsigned int uWork;
	unsigned int nScanCode;
	char cKey=0;
	//int page=0;
	int pageNum = 3;//总页数为3  

	*WDCR=0x6f;
	*WDKEY=0x5555;
	*WDKEY=0xaaaa;    
	*SCSR1=0x81fe;   
	*IMR=0x0;
	*IFR=0xffff;    
	uWork=(*WSGR);
	uWork&=0x0fe3f;
	(*WSGR)=uWork;

	LCDCLS();				// 清除显示内存
	TurnOnLCD();				// 打开显示
	port8001=LCDCMDSTARTLINE;		// 设置显示起始行
	port8002=0;
	Delay(LCDDELAY);
	for(;;)
	{
	  for(k=0;k<3;k++)
	 //LCDCLS();
	
{
LCDCLS();
for (m=0;m<8;m++)	
  {
  	
	for (j=0;j<8;j++)
	{
		port8001=LCDCMDPAGE+j;		// 设置操作页=0
		port8002=0;
		Delay(LCDDELAY);
        
        port8001=LCDCMDVERADDRESS+m*8;	// 起始列=0
		port8002=0;
  

		Delay(LCDDELAY);
		for ( i=0;i<8;i++ )
		{
			port8003=ledkey[k][nCount][i];	// 屏幕左侧第1至8行第i列赋值						port8004=ledkey[nCount][i];
            port8004=ledkey[k][nCount][i];	
            port8002=0;			// (赋值后当前操作列自动加1,所以不需设置)
			port8002=0;
			Delay(LCDDELAY);
		}
		Delay(2048);
		nCount++;
		nCount%=128;
		}
		}
		}
		
		
		nScanCode=port8001;//*************
		nScanCode&=0x0ff;
		if ( nScanCode!=0 )
		{
			repeat++; //如果设备正常,注释掉此句
			repeat %= 2;
			if (repeat == 0)
			{
				cKey=ConvertScanToChar(nScanCode);
				if (cKey == '0'){
						LCDCMDPAGE = 0xb8;
						LCDCMDVERADDRESS = 0x40;
						nCount = 0;
					
						if (k != 0)
							k--;
						LCDCLS();
						//Delay(2048*5);
				}else if (cKey == '1'){
						LCDCMDPAGE = 0xb8;
						LCDCMDVERADDRESS = 0x40;
						nCount = 0;
						
						
						if (k != (pageNum - 1))
							k++;
						LCDCLS();
						//Delay(2048*5);
				}else if (cKey == '2'){
						LCDCMDPAGE = 0xb8;
						LCDCMDVERADDRESS = 0x40;
						nCount = 0;
						
						k = 0;
						LCDCLS();
						//Delay(2048*5);
				}else if (cKey == '3'){
						LCDCMDPAGE = 0xb8;
						LCDCMDVERADDRESS = 0x40;
						nCount = 0;
						
						k = pageNum -1;
						LCDCLS();
						//Delay(2048*5);
	
	
	}
	
	
 }
}               
}
}

void Delay(unsigned int nDelay)
{
	int ii,jj,kk=0;
	for ( ii=0;ii<nDelay;ii++ )
	{
		for ( jj=0;jj<64;jj++ )
		{
			kk++;
		}
	}
}

void TurnOnLCD()
{
	port8001=LCDCMDTURNON;
	port8002=0;
	Delay(1024);  
	port8001=LCDCMDSTARTLINE;
	port8002=0;
	Delay(LCDDELAY);
}

void LCDCLS()
{
	int i,j;
	port8001=LCDCMDSTARTLINE;
	port8002=0;
	Delay(LCDDELAY);
	for ( i=0;i<8;i++ )
	{
		port8001=LCDCMDPAGE+i;
		port8002=0;
		Delay(LCDDELAY);
		port8001=LCDCMDVERADDRESS;
		port8002=0;
		Delay(LCDDELAY);
		for ( j=0;j<64;j++ )
		{
			port8003=0;
			port8002=0;
			Delay(LCDDELAY);
		}
		port8001=LCDCMDPAGE+i;
		port8002=0;
		Delay(LCDDELAY);
		port8001=LCDCMDVERADDRESS;
		port8002=0;
		Delay(LCDDELAY);
		for ( j=0;j<64;j++ )
		{
			port8004=0;
			port8002=0;
			Delay(LCDDELAY);
		}
	}
}

char KeyLUT[16]={ '0','1','2','3', 
  			      '4','5','6','7',
				  '8','9','A','B',
				  'C','D','E','F'
				};
char ConvertScanToChar(unsigned int cScanCode)
{
	int nWork;
	unsigned int uWork1,uWork2;
	 
	uWork1=uWork2=cScanCode;
	uWork1>>=4;
	uWork2&=0x0f;
	switch ( uWork1 )
	{
		case 1: nWork=0; break;
		case 2: nWork=4; break;
		case 4: nWork=8; break;
		case 8: nWork=12; break;
	}
	switch ( uWork2 )
	{
		case 1: nWork+=3; break;
		case 2: nWork+=2; break;
		case 4: nWork+=1; break;
	}
	return KeyLUT[nWork];
}


⌨️ 快捷键说明

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