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

📄 ocm240128.lst

📁 OCM240128-7.rar
💻 LST
📖 第 1 页 / 共 3 页
字号:
 424   2              }
 425   1              
 426   1              OCM_autrd_stop();                       //自动读操作结束
 427   1              
C51 COMPILER V8.08   OCM240128                                                             11/21/2009 22:14:42 PAGE 8   

 428   1      }
 429          
 430          
 431          
 432          /******************************************************************************************
 433          **  函数名称:                   void OCM_autwr(uint addr, uchar num, uchar *p)
 434          **  功能描述:                   自动写液晶函数
 435          **  输入参数:                   addr:   液晶开始写的地址
 436                                                          num:    自动写数据的个数
 437                                                          *p:             写数据区
 438          **  输出参数:                   无
 439          **  全局变量:                   无
 440          **  调用模块:                   无
 441          ******************************************************************************************/
 442          void OCM_autwr(uint addr, uchar num, uchar *p)
 443          {
 444   1              uchar i;
 445   1              
 446   1              OCM_ac(2,addr);                         //显示地址设置
 447   1              OCM_autwr_start();                      //启动自动写操作
 448   1              
 449   1              for (i = 0; i < num; i++)
 450   1              {
 451   2                      while (!OCM_busy(2));   //自动写忙检查
 452   2                      D_Addr = p[i];                  //写数据
 453   2              }
 454   1              
 455   1              OCM_autwr_stop();                       //自动写操作结束
 456   1              
 457   1      }
 458          
 459          
 460          /******************************************************************************************
 461          **  函数名称:                   void OCM_picture(uint addr, uchar w, uchar h, uchar *tab)
 462          **  功能描述:                   图像显示
 463                                                          图形的高和宽必须设置正确
 464          **  输入参数:                   addr: 显示起始地址
 465                                                          h:      图像高(点单位)  横向取模方式    
 466                                                          w:  图像宽(点单位)
 467                                                          *tab:   地址必须是2维数组地址
 468          **  输出参数:                   无
 469          **  全局变量:                   无
 470          **  调用模块:                   无
 471          ******************************************************************************************/
 472          void OCM_picture(uint addr, uchar w, uchar h, uchar *tab)
 473          {
 474   1              uchar j;
 475   1              
 476   1              for (j = 0; j < h; j++)
 477   1              {
 478   2                      OCM_autwr(addr + (30 * j), w / 8, tab + j * w/8);       //j*w/8:计算偏移地址    
 479   2              }
 480   1              
 481   1      }
 482          
 483          /******************************************************************************************
 484          **  函数名称:                   void OCM_picture_lcr(uint addr, uchar w, uchar h)
 485          **  功能描述:                   清图像函数,清除图像
 486                                                          图形的高和宽必须设置正确
 487          **  输入参数:                   addr: 显示起始地址
 488                                                          h:      图像高(点单位)  横向取模方式    
 489                                                          w:  图像宽(点单位)
C51 COMPILER V8.08   OCM240128                                                             11/21/2009 22:14:42 PAGE 9   

 490          **  输出参数:                   无
 491          **  全局变量:                   无
 492          **  调用模块:                   无
 493          ******************************************************************************************/
 494          void OCM_picture_clr(uint addr, uchar w, uchar h)
 495          {
 496   1              uchar i,j;
 497   1              
 498   1              for (j = 0; j < h; j++)
 499   1              {
 500   2                      OCM_ac(2,addr + (30 * j));                              //显示地址设置
 501   2                      OCM_autwr_start();                      //启动自动写操作
 502   2              
 503   2                      for (i = 0; i < w / 8; i++)
 504   2                      {
 505   3                              while (!OCM_busy(2));   //自动写忙检查
 506   3                              D_Addr = 0x00;                  //写数据
 507   3                      }
 508   2                      
 509   2                      OCM_autwr_stop();                       //自动写操作结束
 510   2              }
 511   1              
 512   1      }
 513          
 514          
 515          /******************************************************************************************
 516          **  函数名称:                   void OCM_line_clr(uint addr,uchar dat)
 517          **  功能描述:                   单行清除数据
 518          **  输入参数:                   dat:            清屏数据
 519                                                          addr:           地址
 520          **  输出参数:                   无
 521          **  全局变量:                   无
 522          **  调用模块:                   无
 523          ******************************************************************************************/
 524          void OCM_line_clr(uint addr,uchar dat)
 525          {
 526   1              uchar i;
 527   1              
 528   1              OCM_ac(2,addr);                                         //文本显示地址设置
 529   1              OCM_autwr_start();                                      //启动自动写操作
 530   1              
 531   1              for (i = 0; i < 30; i++)
 532   1              {
 533   2                      while (!OCM_busy(2));                   //自动写忙检查
 534   2                      D_Addr = dat;                                   //写数据
 535   2              }
 536   1              OCM_autwr_stop();                                       //自动写操作结束
 537   1      }
 538          
 539          
 540          /******************************************************************************************
 541          **  函数名称:                   void OCM_clr(uchar dat)
 542          **  功能描述:                   清屏函数
 543          **  输入参数:                   dat:            清屏数据
 544          **  输出参数:                   无
 545          **  全局变量:                   无
 546          **  调用模块:                   无
 547          ******************************************************************************************/
 548          void OCM_clr(uchar dat)
 549          {
 550   1              uint i;
 551   1              
C51 COMPILER V8.08   OCM240128                                                             11/21/2009 22:14:42 PAGE 10  

 552   1              /*      文本清零                                                                                                */
 553   1              OCM_ac(2,Text_Addr);                            //文本显示地址设置
 554   1              OCM_autwr_start();                                      //启动自动写操作
 555   1              
 556   1              for (i = 0; i < 500; i++)
 557   1              {
 558   2                      while (!OCM_busy(2));                   //自动写忙检查
 559   2                      D_Addr = dat;                                   //写数据
 560   2              }
 561   1              OCM_autwr_stop();                                       //自动写操作结束
 562   1              
 563   1              /*      图形清零                                                                                                */
 564   1              OCM_ac(2,Figure_Addr);                          //图形显示地址设置
 565   1              OCM_autwr_start();                                      //启动自动写操作
 566   1              
 567   1              for (i = 0; i < 0X1000; i++)
 568   1              {
 569   2                      while (!OCM_busy(2));                   //自动写忙检查
 570   2                      D_Addr = dat;                                   //写数据
 571   2              }
 572   1              
 573   1              OCM_autwr_stop();                                       //自动写操作结束
 574   1              
 575   1      }
 576          
 577          
 578          
 579          /******************************************************************************************
 580          **  函数名称:                   void OCM_init(void)
 581          **  功能描述:                   OCM240128初始化函数
 582                                                          初始化内容:文本显示首地址,文本显示宽度,图形显示首地址,图形显示宽度
 583                                                                          光标显示行数(0~7行)
 584                                                                          文本图形显示方式(或,与,异或,双属性文本),CGROM开关
 585                                                                          光标显示,光标闪烁,文字显示,图形显示             
 586          **  输入参数:                   无
 587          **  输出参数:                   无
 588          **  全局变量:                   无
 589          **  调用模块:                   无
 590          ******************************************************************************************/
 591          void OCM_init(void)
 592          {               
 593   1              OCM_area(0, Text_Addr);                 //文本显示区首地址为0X0000
 594   1              OCM_area(1, 30);                                //文本显示区宽度30字节一行
 595   1              OCM_area(2, Figure_Addr);               //图形显示区首地址0X0800
 596   1              OCM_area(3, 30);                                //图形显示区宽度30字节一行
 597   1              
 598   1              OCM_cursor(7);                                  //光标8行
 599   1              OCM_mode(0,EN_CGROM);                   //逻辑或方式合成,启用CGRAM
 600   1              OCM_state((1 << 0) | (1 << 1) | (1 << 2) | (1 << 3));//光标显示,图形文字同时显示
 601   1              
 602   1              OCM_bit(0, 0);                                  //防止编译器警告
 603   1              
 604   1              OCM_clr(0);                                             //清屏
 605   1      }
 606          
 607          
 608          
 609          
 610          
 611          
 612          
 613          
C51 COMPILER V8.08   OCM240128                                                             11/21/2009 22:14:42 PAGE 11  

 614          
 615          /*--------------------------------------------------------------------------------------------------------
             ------------
 616                                                          Children Function End
 617                                                          液晶显示子程序结束
 618          ----------------------------------------------------------------------------------------------------------
             -----------*/
 619          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1223    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----      22
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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