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

📄 lcd12864.lst

📁 基于Mini51板的数字示波器设计
💻 LST
字号:
C51 COMPILER V8.02   LCD12864                                                              01/31/2009 14:04:30 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE LCD12864
OBJECT MODULE PLACED IN lcd12864.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE lcd12864.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include "lcd12864.h"
   2          
   3          void loop_lcd12864_is_busy(unsigned char right)
   4          {
   5   1        unsigned char tmp,counter=0;
   6   1        do
   7   1        {
   8   2              if(right) tmp = LCD_RCR;
   9   2              else tmp = LCD_LCR;     
  10   2              if(counter++>50) break;//超时跳出
  11   2        }
  12   1        while ((tmp|0x7f)==0xff);      
  13   1      }
  14          
  15          void lcd_cmd_wr(unsigned char cmdcode,unsigned char right)
  16          {
  17   1        loop_lcd12864_is_busy(right);
  18   1        if(right) LCD_RCW = cmdcode;
  19   1        else LCD_LCW = cmdcode;  
  20   1      }
  21          
  22          void lcd_data_wr(unsigned char ldata,unsigned char right)
  23          { 
  24   1        loop_lcd12864_is_busy(right);
  25   1        if(right) LCD_RDW = ldata;
  26   1        else LCD_LDW = ldata;
  27   1      }
  28          
  29          void lcd12864_clr(void)
  30          {
  31   1              unsigned char i,j;
  32   1      
  33   1      
  34   1              for(i=0;i<8;i++)
  35   1              {
  36   2                      lcd_cmd_wr(SETY+i,0);
  37   2                      lcd_cmd_wr(SETX,0);
  38   2                      lcd_cmd_wr(SETY+i,1);
  39   2                      lcd_cmd_wr(SETX,1);     
  40   2      
  41   2                      for(j=0;j<64;j++)
  42   2                      {
  43   3                              lcd_data_wr(0,0);
  44   3                              lcd_data_wr(0,1);
  45   3                      }
  46   2              }
  47   1      }
  48          
  49          void lcd12864_init(void)
  50          {
  51   1        lcd_cmd_wr(DISPON,0);
  52   1        lcd_cmd_wr(DISPFIRST,0);
  53   1        lcd_cmd_wr(SETY,0);
  54   1        lcd_cmd_wr(SETX,0);
  55   1        lcd_cmd_wr(DISPON,1);
C51 COMPILER V8.02   LCD12864                                                              01/31/2009 14:04:30 PAGE 2   

  56   1        lcd_cmd_wr(DISPFIRST,1);
  57   1        lcd_cmd_wr(SETY,1);
  58   1        lcd_cmd_wr(SETX,1);
  59   1        lcd12864_clr();
  60   1      }
  61          
  62          /*图片写入函数*/
  63          void lcd12864_put_xywhb(unsigned char x,y,w,h,unsigned char *bmp)
  64          {
  65   1              unsigned char i,j;
  66   1              h = h/8;
  67   1              for(i=0;i<h;i++)
  68   1              {
  69   2                              lcd_cmd_wr(SETY+y+i,0);
  70   2                              lcd_cmd_wr(SETX+x,0);
  71   2                              for(j=0;j<w-64;j++)
  72   2                              lcd_data_wr(bmp[128*i+j],0);
  73   2      
  74   2                              lcd_cmd_wr(SETY+y+i,1);
  75   2                              lcd_cmd_wr(SETX+x,1);
  76   2                              for(j=64;j<w;j++)
  77   2                              lcd_data_wr(bmp[128*i+j],1);
  78   2                }
  79   1      }//*
  80          
  81          /*8x8点阵asci字符显示*/
  82          void lcd12864_put_xystr(unsigned char x,y,n,unsigned char *str)
  83          {
  84   1              unsigned char i;                
  85   1              for(i=0;i<n;i++) {
  86   2                      if((x+i)>63) {
  87   3                              lcd_cmd_wr(SETY+y,1);
  88   3                              lcd_cmd_wr(SETX+x+i-64,1);
  89   3                              lcd_data_wr(str[i],1); 
  90   3                      }
  91   2                      else {
  92   3                              lcd_cmd_wr(SETY+y,0);
  93   3                              lcd_cmd_wr(SETX+x+i,0);
  94   3                              lcd_data_wr(str[i],0); 
  95   3                      }
  96   2              }       
  97   1      }//*/
  98          
  99          /*8x8点阵asci字符显示*/
 100          void lcd12864_put_clr(unsigned char x,y,n)
 101          {
 102   1              unsigned char i;                
 103   1              for(i=0;i<n;i++) {
 104   2                      if((x+i)>63) {
 105   3                              lcd_cmd_wr(SETY+y,1);
 106   3                              lcd_cmd_wr(SETX+x+i-64,1);
 107   3                              lcd_data_wr(0,1); 
 108   3                      }
 109   2                      else {
 110   3                              lcd_cmd_wr(SETY+y,0);
 111   3                              lcd_cmd_wr(SETX+x+i,0);
 112   3                              lcd_data_wr(0,0); 
 113   3                      }
 114   2              }       
 115   1      }//*/
 116          

C51 COMPILER V8.02   LCD12864                                                              01/31/2009 14:04:30 PAGE 3   


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    626    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----      27
   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 + -