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

📄 key4x412232.lst

📁 12232液晶驱动和时间显示。矩阵键盘源代码
💻 LST
📖 第 1 页 / 共 3 页
字号:
 194          * 全局静态变量:
 195          * 局部静态变量:
 196          *----------------------------------------修改历史------------------------------------------
 197          * 当前版本    :                         修改人:                  修改日期:
 198          * 修改说明    :
 199          ******************************************************************************************/
 200          void LCD_SetRam(bit zhucongmian,uchar ndata)
 201          {
 202   1            A0=1;
 203   1      
 204   1            E1=!zhucongmian;
 205   1      
 206   1            E2=zhucongmian;
 207   1      
 208   1      
 209   1            DATE=ndata;
 210   1      
 211   1            E1=0;
 212   1      
 213   1            E2=0;
 214   1      
 215   1      }
 216          /******************************************************************************************
 217          * 函数名称    :LCD_Init
 218          * 功能描述    :
 219          * 参数        :  参数名称:    输入/输出?     类型            描述
 220          *
 221          * 返回值      :
 222          * 作者        :
 223          * 创建日期    :2006-12-19
 224          * 全局变量    :
 225          * 全局静态变量:
 226          * 局部静态变量:
 227          *----------------------------------------修改历史------------------------------------------
 228          * 当前版本    :                         修改人:                  修改日期:
 229          * 修改说明    :
 230          ******************************************************************************************/
 231          void LCD_Init()
 232          {
 233   1              P1=0xff;
 234   1              P2=0xff;
 235   1              LCD_OFF();               //关闭显示
 236   1               LCD_Command(LCD_RESET);  //复位
 237   1              LCD_Command(0xa0);       //列与段驱动反方向
 238   1              LCD_Command(LCD_DUTY32); //1/32
 239   1              LCD_Command(0xa4);       //关闭静态显示    打开正常驱动
 240   1              LCD_EndRW();             //关闭自动列加1
 241   1              LCD_SetStartLine(0);     //设置起始行
C51 COMPILER V8.02   KEY4X412232                                                           01/21/2009 22:22:47 PAGE 5   

 242   1              LCD_SetColumn(0);        //起始列
 243   1              LCD_SetPage(0);         //起始页
 244   1              LCD_ON();                //开显示
 245   1      }
 246          
 247          /******************************************************************************************
 248          * 函数名称    :clrscr
 249          * 功能描述    :清屏
 250          * 参数        :  参数名称:    输入/输出?     类型            描述
 251          *
 252          * 返回值      :
 253          * 作者        :
 254          * 创建日期    :2006-12-19
 255          * 全局变量    :
 256          * 全局静态变量:
 257          * 局部静态变量:
 258          *----------------------------------------修改历史------------------------------------------
 259          * 当前版本    :                         修改人:                  修改日期:
 260          * 修改说明    :
 261          ******************************************************************************************/
 262          void clrscr(void)
 263          {
 264   1                      uchar i;
 265   1                      uchar page;
 266   1                      for(page=0;page<4;page++)
 267   1                      {
 268   2                        LCD_SetPage(page);
 269   2                        for(i=0;i<61;i++)
 270   2                         {
 271   3                           LCD_SetColumn(i);
 272   3                           LCD_SetRam(0,0X00);
 273   3      
 274   3                           LCD_SetRam(1,0X00);
 275   3                         }
 276   2                      }
 277   1      }
 278          /******************************************************************************************
 279          * 函数名称    :drawword
 280          * 功能描述    ://layer 值为0,2;wenzi 码表中的几个字
 281          * 参数        :  参数名称:    输入/输出?     类型            描述
 282          *
 283          * 返回值      :
 284          * 作者        :
 285          * 创建日期    :2006-12-19
 286          * 全局变量    :
 287          * 全局静态变量:
 288          * 局部静态变量:
 289          *----------------------------------------修改历史------------------------------------------
 290          * 当前版本    :                         修改人:                  修改日期:
 291          * 修改说明    :
 292          ******************************************************************************************/
 293          drawword(uchar liedizhi,uchar layer,uchar wenzi)
 294          {
 295   1                      uchar column,x;//layer 值为0,2;wenzi 码表中的几个字
 296   1                      bit zhucongmian;
 297   1                     // for(x=0;x<16;x++)      //显示文字
 298   1                      for(x=0;x<8;x++)
 299   1                       {
 300   2                      column=liedizhi+x;
 301   2                      if(column>60)
 302   2                         {
 303   3                            zhucongmian=1;      //右半屏显示
C51 COMPILER V8.02   KEY4X412232                                                           01/21/2009 22:22:47 PAGE 6   

 304   3                            column-=61;
 305   3                          }
 306   2                      else
 307   2                           zhucongmian=0;    //左半屏显示
 308   2      //    LCD_SetStartLine(0);//设置起始行
 309   2              LCD_SetColumn(column);//设置起始列
 310   2              LCD_SetPage(layer);
 311   2      
 312   2              //LCD_SetRam(zhucongmian,*(pzm+wenzi*32+x));  //显示文字
 313   2              LCD_SetRam(zhucongmian,*(pzm+wenzi*16+x));
 314   2      //    LCD_SetStartLine(0);//设置起始行
 315   2              LCD_SetColumn(column);//设置起始列
 316   2              LCD_SetPage(layer+1);
 317   2          //  LCD_SetRam(zhucongmian,*(pzm+wenzi*32+16+x));           //显示文字
 318   2              LCD_SetRam(zhucongmian,*(pzm+wenzi*16+8+x));              //显示数字
 319   2                      }
 320   1      }
 321           //显示汉字
 322          drawhanzi(uchar liedizhi,uchar layer,uchar wenzi)
 323          {
 324   1                      uchar column,x;//layer 值为0,2;wenzi 码表中的几个字
 325   1                      bit zhucongmian;
 326   1      
 327   1                      for(x=0;x<16;x++)      //显示文字
 328   1      
 329   1                       {
 330   2                              column=liedizhi+x;
 331   2                            if(column>60)
 332   2                               {
 333   3                                zhucongmian=1;      //右半屏显示
 334   3                                column-=61;
 335   3                               }
 336   2                          else
 337   2                                zhucongmian=0;    //左半屏显示
 338   2      //    LCD_SetStartLine(0);//设置起始行
 339   2                        LCD_SetColumn(column);//设置起始列
 340   2                       LCD_SetPage(layer);
 341   2      
 342   2                    LCD_SetRam(zhucongmian,*(pzm1+wenzi*32+x));  //显示文字
 343   2      
 344   2      //    LCD_SetStartLine(0);//设置起始行
 345   2                   LCD_SetColumn(column);//设置起始列
 346   2                   LCD_SetPage(layer+1);
 347   2                  LCD_SetRam(zhucongmian,*(pzm1+wenzi*32+16+x));           //显示文字
 348   2      
 349   2                      }
 350   1                      cs1=1;
 351   1       }
 352          /******************************************************************************************
 353          * 函数名称    :delay1s
 354          * 功能描述    :
 355          * 参数        :  参数名称:    输入/输出?     类型            描述
 356          *
 357          * 返回值      :
 358          * 作者        :
 359          * 创建日期    :2006-12-19
 360          * 全局变量    :
 361          * 全局静态变量:
 362          * 局部静态变量:
 363          *----------------------------------------修改历史------------------------------------------
 364          * 当前版本    :                         修改人:                  修改日期:
 365          * 修改说明    :
C51 COMPILER V8.02   KEY4X412232                                                           01/21/2009 22:22:47 PAGE 7   

 366          ******************************************************************************************/
 367          void delay1s()
 368          {
 369   1                      unsigned char j, k;
 370   1              for(j=0;j<150;j++)
 371   1              for(k=0;k<255;k++);
 372   1      }
 373          void delaykey()
 374          {
 375   1        for(i=50;i>0;i--)
 376   1           for(j=200;j>0;j--);
 377   1      }
 378          void buzzer_driver_key(void)
 379          {
 380   1      
 381   1      
 382   1      
 383   1           PIN_BUZZER=0;
 384   1           delay1s();
 385   1           delay1s();
 386   1           PIN_BUZZER=1;
 387   1      }
 388          uchar key_scan(void)
 389          {
 390   1      
 391   1      P0=0XF0;
 392   1      x(0);
 393   1      {  cs1=0;
 394   2         delaykey();
 395   2              if(PIN_KEY4==0)

⌨️ 快捷键说明

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