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

📄 lcd.c

📁 192*64显示lcd程序
💻 C
📖 第 1 页 / 共 2 页
字号:
/**********************************
功能:键盘扫描函数
输入:无
输出:键码。0表示无键按下;1~24表示键码
说明:T0、T1、WR为输入端,P1口输出端
***********************************/
char keyenter()
  
{
int i,flag;				//有键按下标志
int scancode;			//键码
char test,test1;
	P1=0XFF;
	tier0 = 0;
	tier1 = 0;
	tier2 = 0;			//输出为0
	if (P1!=0xff)		//查看输入是否全为高	
	flag=1;				//不全为高,  说明有键按下
	else    	flag=0;	//全为高, 说明没有键按下
	
	if (flag==1)				//有健按下
	{
		//delay_50us();			//延时
		{
			tier0 = 0;
			tier1 = 1;
			tier2 = 1;			//使其中1行为低
			test  = P1;
			test  =~test;			//P1取非,查看谁为高电平
			for (i=0;i<8;i++)	//扫描8列,查看那列为低
				{
					test1 = test & 0x01; //保留D0
					if(test1!=0)
					{	scancode = i + 1;
						break;
					}
					scancode=0;
					test=test>>1;			
				}
		}
		if(scancode==0) 
		{
		
			tier0= 1;
			tier1= 0;
			tier2= 1;			//使其中1行为低
			test=P1;
			test=~test;			//P1取非,查看谁为高电平
			for (i=0;i<8;i++)	//扫描8列,查看那列为低
				{
					test1=test&0x01; //保留D0
					if(test1!=0)
					{	scancode=i+9;
						break;
					}
					scancode=0;
					test=test>>1;			
				}
		}
		if(scancode==0) 
		{
		
			tier0= 1;
			tier1= 1;
			tier2= 0;			//使其中1行为低
			test=P1;
			test=~test;			//P1取非,查看谁为高电平
			for (i=0;i<8;i++)	//扫描8列,查看那列为低
				{
					test1=test&0x01; //保留D0
					if(test1!=0)
					{	scancode=i+17;
						break;
					}
					scancode=0;
					test=test>>1;			
				}
		}

	}
	else
	{
return(scancode);
	}
return(scancode);
}





void main(void) using 0
{

    uchar code *p;
    uchar data	keycode;
    initcomm();       //初始化
    L_SET = 0;        //复位
//    for ( j = 0; j != 0xff; j++)  ;  //起延时作用
    L_SET = 1;        //复位完毕
//    for ( j = 0; j != 0xff; j++)  ;  //起延时作用
    LCD_C_D(1,0X3E);	/**/
    LCD_C_D(1,0XC0);	/**/
    LCD_C_D(1,0X3F);	/**/
    CLRLCD(0);
	LED_L  =  0x04;		//背光电源
    LCD_C_D(1,0X3F);

    while(1)
    {		
    		LED_L  =  0x00;
    
    		keycode= keyenter();
    		switch( keycode)
     		{
             case 0 :			//
                    p=X13;	dis_one_zi(0,0,p);break ;
                   /* p=X13;	dis_one_zi(1,5,p);break ;
                    p=X13;	dis_one_zi(1,6,p);break ;
                    p=X13;	dis_one_zi(1,7,p);break ;
                    p=X13;	dis_one_zi(2,4,p);break ;
                    p=X13;	dis_one_zi(2,5,p);break ;
                    p=X13;	dis_one_zi(2,6,p);break ;
                    p=X13;	dis_one_zi(2,7,p);break ;*/
             case 1 :			//
                    p=X25;	dis_one_zi(0,1,p);break ;
             case 2 :			//
                    p=X29;	dis_one_zi(1,2,p);break ;
             case 3 :			//
                    p=X1;	dis_one_zi(1,3,p);break ;
             case 4 :			//
                    p=X2;	dis_one_zi(1,4,p);break ;
             case 5 :			//
                    p=X3;	dis_one_zi(1,5,p);break ;
             case 6 :			//
                    p=X4;	dis_one_zi(1,6,p);break ;
             case 7 :			//
                    p=X5;	dis_one_zi(1,7,p);break ;
             case 8 :			//
                    p=X6;	dis_one_zi(1,8,p);break ;
             case 9 :			//
                    p=X7;	dis_one_zi(1,9,p);break ;
             case 10 :			//
                    p=X8;	dis_one_zi(1,10,p);break ;
             case 11 :			//
                    p=X26;	dis_one_zi(1,11,p);break ;
             case 12 :			//
                    p=X29;	dis_one_zi(1,12,p);break ;
             case 13 :			//
                    p=X29;	dis_one_zi(3,1,p);break ;
             case 14 :			//
                    p=X26;	dis_one_zi(3,2,p);break ;
             case 15 :			//
                    p=X2;	dis_one_zi(3,3,p);break ;
             case 16 :			//
                    p=X1;	dis_one_zi(3,4,p);break ;
             case 17 :			//
                    p=X8;	dis_one_zi(3,5,p);break ;
             case 18 :			//
                    p=X7;	dis_one_zi(3,6,p);break ;
             case 19 :			//
                    p=X6;	dis_one_zi(3,7,p);break ;
             case 20 :			//
                    p=X5;	dis_one_zi(3,8,p);break ;
             case 21 :			//
                    p=X4;	dis_one_zi(3,9,p);break ;
             case 22 :			//
                    p=X3;	dis_one_zi(3,10,p);break ;
             case 23 :			//
                    p=X2;	dis_one_zi(3,11,p);break ;
             case 24 :			//
                    p=X1;	dis_one_zi(3,12,p);break ;
             default   :
                       //badcommand()  ;
                       break  ;
             delay();  delay();  delay();  
              CLRLCD(0);        
 			}
       WATCH_DOG = !WATCH_DOG ;
//        LCD_C_D(1,0X3F);
/*        p=X15;
    	for (number=0;number<12;number++)
    	{
             dis_one_zi(0,number,p);
        }
	p=X16;
    	for (number=0;number<12;number++)
    	{
             dis_one_zi(3,number,p);
        }
	p=X17;
    	for (number=0;number<4;number++)
    	{
             dis_one_zi(number,0,p);
        }
	p=X18;
    	for (number=0;number<4;number++)
    	{
             dis_one_zi(number,11,p);
        }*/
	/*p=X19;	dis_one_zi(0,0,p);
	p=X20;	dis_one_zi(0,11,p);
	p=X21;	dis_one_zi(3,0,p);
	p=X22;	dis_one_zi(3,11,p);*/
//    p=X1;	dis_one_zi(1,2,p);
//	p=X2;	dis_one_zi(1,3,p);


//	p=X3;	dis_one_zi(2,2,p);
//	p=X4;	dis_one_zi(2,3,p);
//	p=X23;	dis_one_zi(1,1,p);
//	p=X24;	dis_one_zi(1,2,p);
//	p=X25;	dis_one_zi(1,3,p);
//	p=X26;	dis_one_zi(1,4,p);
//	p=X23;	dis_one_zi(2,5,p);
//	p=X24;	dis_one_zi(2,6,p);
//	p=X25;	dis_one_zi(2,7,p);
//	p=X26;	dis_one_zi(2,8,p);	
//		p=X27;	dis_one_zi(3,8,p);
//		p=X28;	dis_one_zi(3,9,p);	
//		p=X29;	dis_one_zi(0,1,p);
//		p=X30;	dis_one_zi(1,2,p);
//		p=X31;	dis_one_zi(2,3,p);
//	p=X6;	dis_one_zi(1,7,p);
//	p=X7;	dis_one_zi(1,8,p);
//	p=X8;	dis_one_zi(1,9,p);
//	LCD_C_D(1,0X3F);                 //显示
//        delay();  delay();  delay();
	/*LCD_C_D(1,0X3E);                 //关闭显示
        p=X12;
    	for (number=0;number<4;number++)
    	{
          for (i = 0; i < 12;i++)
          {
              dis_one_zi(number,i,p);
          }
        }
	LCD_C_D(1,0X3F);                 //显示
	delay();   delay();   delay();
	LCD_C_D(1,0X3E);                 //关闭显示
	p=X13;
    	for (number=0;number<4;number++)
    	{
          for (i = 0; i < 12;i++)
          {
              dis_one_zi(number,i,p);
          }
        }
	LCD_C_D(1,0X3F);                 //显示
	delay();  delay();  delay();*/
    }
}

⌨️ 快捷键说明

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