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

📄 key4x412232.c

📁 12232液晶驱动和时间显示。矩阵键盘源代码
💻 C
📖 第 1 页 / 共 2 页
字号:
* 局部静态变量:
*----------------------------------------修改历史------------------------------------------
* 当前版本    : 			 修改人:                  修改日期:
* 修改说明    :
******************************************************************************************/
void clrscr(void)
{
		uchar i;
		uchar page;
		for(page=0;page<4;page++)
        	{
  		  LCD_SetPage(page);
   	 	  for(i=0;i<61;i++)
     		   {
     	             LCD_SetColumn(i);
          	     LCD_SetRam(0,0X00);

         	     LCD_SetRam(1,0X00);
       	           }
           	}
}
/******************************************************************************************
* 函数名称    :drawword
* 功能描述    ://layer 值为0,2;wenzi 码表中的几个字
* 参数        :  参数名称:	输入/输出?	类型		描述
*
* 返回值      :
* 作者        :
* 创建日期    :2006-12-19
* 全局变量    :
* 全局静态变量:
* 局部静态变量:
*----------------------------------------修改历史------------------------------------------
* 当前版本    : 			 修改人:                  修改日期:
* 修改说明    :
******************************************************************************************/
drawword(uchar liedizhi,uchar layer,uchar wenzi)
{
		uchar column,x;//layer 值为0,2;wenzi 码表中的几个字
 		bit zhucongmian;
               // for(x=0;x<16;x++)      //显示文字
 		for(x=0;x<8;x++)
 		 {
   		column=liedizhi+x;
   		if(column>60)
                   {
         	      zhucongmian=1;      //右半屏显示
         	      column-=61;
                    }
   		else
                     zhucongmian=0;    //左半屏显示
//    LCD_SetStartLine(0);//设置起始行
        LCD_SetColumn(column);//设置起始列
    	LCD_SetPage(layer);

    	//LCD_SetRam(zhucongmian,*(pzm+wenzi*32+x));  //显示文字
        LCD_SetRam(zhucongmian,*(pzm+wenzi*16+x));
//    LCD_SetStartLine(0);//设置起始行
   	LCD_SetColumn(column);//设置起始列
   	LCD_SetPage(layer+1);
    //	LCD_SetRam(zhucongmian,*(pzm+wenzi*32+16+x));           //显示文字
        LCD_SetRam(zhucongmian,*(pzm+wenzi*16+8+x));              //显示数字
 		}
}
 //显示汉字
drawhanzi(uchar liedizhi,uchar layer,uchar wenzi)
{
		uchar column,x;//layer 值为0,2;wenzi 码表中的几个字
 		bit zhucongmian;

                for(x=0;x<16;x++)      //显示文字

 		 {
   	        	column=liedizhi+x;
   		      if(column>60)
                         {
         	          zhucongmian=1;      //右半屏显示
         	          column-=61;
                         }
   		    else
                          zhucongmian=0;    //左半屏显示
//    LCD_SetStartLine(0);//设置起始行
                  LCD_SetColumn(column);//设置起始列
          	 LCD_SetPage(layer);

    	      LCD_SetRam(zhucongmian,*(pzm1+wenzi*32+x));  //显示文字

//    LCD_SetStartLine(0);//设置起始行
   	     LCD_SetColumn(column);//设置起始列
   	     LCD_SetPage(layer+1);
    	    LCD_SetRam(zhucongmian,*(pzm1+wenzi*32+16+x));           //显示文字

 		}
                cs1=1;
 }
/******************************************************************************************
* 函数名称    :delay1s
* 功能描述    :
* 参数        :  参数名称:	输入/输出?	类型		描述
*
* 返回值      :
* 作者        :
* 创建日期    :2006-12-19
* 全局变量    :
* 全局静态变量:
* 局部静态变量:
*----------------------------------------修改历史------------------------------------------
* 当前版本    : 			 修改人:                  修改日期:
* 修改说明    :
******************************************************************************************/
void delay1s()
{
		unsigned char j, k;
  	for(j=0;j<150;j++)
   	for(k=0;k<255;k++);
}
void delaykey()
{
  for(i=50;i>0;i--)
     for(j=200;j>0;j--);
}
void buzzer_driver_key(void)
{



     PIN_BUZZER=0;
     delay1s();
     delay1s();
     PIN_BUZZER=1;
}
uchar key_scan(void)
{

P0=0XF0;
x(0);
{  cs1=0;
   delaykey();
	if(PIN_KEY4==0)
		{
			delaykey();
			if(PIN_KEY4==0)
			{key=0x01	; buzzer_driver_key(); x(1); return key;}
		}
	if(PIN_KEY5==0)
		{
			delaykey();
			if(PIN_KEY5==0)
			{key=0x04	; buzzer_driver_key(); x(1); return key;}
		}
	if(PIN_KEY6==0)
		{
			delaykey();
			if(PIN_KEY6==0)
			{key=0x07	; buzzer_driver_key(); x(1); return key;}
		}
	if(PIN_KEY7==0)
		{
		delaykey();
			if(PIN_KEY7==0)
			{key=10        	; buzzer_driver_key(); x(1); return key;}//'*'
		}
	x(1);
}

y(0);
{
delaykey();
	if(PIN_KEY4==0)
		{
		   delaykey();
			if(PIN_KEY4==0)
			{key=0x02	; buzzer_driver_key(); y(1); return key;}
		}
	if(PIN_KEY5==0)
		{
			delaykey();
			if(PIN_KEY5==0)
			{key=0x05	; buzzer_driver_key(); y(1); return key;}
		}
	if(PIN_KEY6==0)
		{
		delaykey();
			if(PIN_KEY6==0)
			{key=0x08	; buzzer_driver_key(); y(1); return key;}
		}
	if(PIN_KEY7==0)
		{
		       delaykey();
			if(PIN_KEY7==0)
			{key=0x00	; buzzer_driver_key(); y(1); return key;}
		}
	y(1);
}

z(0);
{
delaykey();
	if(PIN_KEY4==0)
		{
			delaykey();
			if(PIN_KEY4==0)
			{key=0x03	; buzzer_driver_key(); z(1); return key;}
		}
	if(PIN_KEY5==0)
		{
			delaykey();
			if(PIN_KEY5==0)
			{key=0x06	; buzzer_driver_key(); z(1); return key;}
		}
	if(PIN_KEY6==0)
		{
			delaykey();
			if(PIN_KEY6==0)
			{key=0x09	; buzzer_driver_key(); z(1); return key;}
		}
	if(PIN_KEY7==0)
		{
			delaykey();
			if(PIN_KEY7==0)
			{key=11         ; buzzer_driver_key(); z(1); return key;}//'#'
		}
	z(1);
}
//return key;
cs1=1;
}

void main(void)
{  uchar keycode=0;
    PIN_KEY1=1;
     PIN_KEY2=1;
    PIN_KEY3=1;
    PIN_KEY4=1;
    PIN_KEY5=1;
    PIN_KEY6=1;
    PIN_KEY7=1;
   LCD_Init();
    clrscr();

     cs1=1;
     pzm=zm;
     pzm1=zm1;

   while(1)
    { 
      keycode=key_scan();
     if(keycode==0x01)
     { drawword(0,2,0);
        break;
      }
    }  //while
}


⌨️ 快捷键说明

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