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

📄 lcd_dis.lst

📁 12864的驱动程序
💻 LST
字号:
C51 COMPILER V7.50   LCD_DIS                                                               10/25/2007 12:08:24 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE LCD_DIS
OBJECT MODULE PLACED IN lcd_dis.OBJ
COMPILER INVOKED BY: E:\Program Files\UV2\C51\BIN\C51.EXE lcd_dis.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          /***************************************************************\
   2          |*          12864LCD显示程序 proteus7.1仿真AMPIRE128*64       *|
   3          |*        Copyright (c) 2007山师.传播       */
   4          /*        All rights reserved.                  */
   5                    /*赵彦彬                                  *|
   6          |*                                       *|
   7          |*          
   8          \***************************************************************/
   9          
  10          
  11          
  12          #include"w_word.h"
  13          
  14          
  15          
  16          
  17          
  18          
  19          /**********************************************\
  20          |*   写命令子程序                             *|
  21          |*                 *|
  22          \**********************************************/ 
  23          void write_cmd(uchar cmd)             //写命令子程序 
  24          { RW=0;
  25   1        DI=0;                  //DI=0 写命令 
  26   1        E=1;
  27   1        P1=cmd;
  28   1        E=0;       //RW="L",E="H->L" DB7~DB0的数据被写到IR或DR 
  29   1         }
  30          
  31          /**********************************************\
  32          |*   写数据子程序                             *|
  33          
  34          |*   调用函数: null                           *|
  35          \**********************************************/ 
  36          void write_dat(uchar dat)             //写数据子程序
  37          { RW=0;
  38   1        DI=1;   //DI=1  写数据
  39   1        E=1;
  40   1        P1=dat;
  41   1        E=0;    //RW="L",E="H->L" DB7~DB0的数据被写到IR或DR 
  42   1         }
  43          
  44          /**********************************************\
  45          |*   设置显示起始行 X地址和Y地址              *|
  46          |*   入口参数:st_line 显示起始行 0~63        *| 
  47          |*             x_add   页地址  8行为一页 0~7  *|
  48          |*                 y_add   Y地址  0~128           *|
  49          
  50          \**********************************************/ 
  51          
  52          void set_dis(uchar st_line,uchar x_ad,uchar y_ad)  //设置显示起始行 X地址和Y地址
  53          {  
  54   1      //write_cmd(st_line+0xc0);                //+0xc0是参照设置起始行的格式
  55   1       write_cmd(x_ad+0xb8);                  //+0xb8是参照设置页地址的格式
C51 COMPILER V7.50   LCD_DIS                                                               10/25/2007 12:08:24 PAGE 2   

  56   1        if(y_ad<64) { CS1=0;CS2=1;write_cmd(y_ad+0x40);} //Y_add地址实际上只有0~63 采用CS1和CS2选左右半屏
  57   1            else     { CS1=1;CS2=0;write_cmd(y_ad);}      //选第一片时,+64第二片为y_add-64+64
  58   1       }
*** WARNING C280 IN LINE 52 OF LCD_DIS.C: 'st_line': unreferenced local variable
  59          
  60          
  61          
  62          /***********************************************\
  63          |*   写汉字子程序1 可以在任意位置写入          *|
  64          |*   入口参数:st_line 显示起始行 0~63         *| 
  65          |*             x_add   页地址  8行为一页 0~7   *|
  66          |*                 y_add   Y地址  0~128            *|
  67                 
  68                        count 汉字个数
  69          /*调用set_dis write_dat
  70          \***********************************************/ 
  71          void write_word(uchar st_line,uchar x_a,uchar y_a,uchar *buf,uchar count) //写入汉字
  72          { uint i,j,k=1;
  73   1          set_dis(st_line, x_a,y_a);
  74   1       for(j=0;j<count;j++)                //显示的字数
  75   1       {//    set_dis(st_line,x_ad,y_ad);
  76   2              for(i=0;i<16;i++)
  77   2               write_dat(*(buf+i+j*32)) ;        //字的下半部分,x_add+1
  78   2              set_dis(st_line,x_a+1,y_a);
  79   2              for(i=16;i<32;i++)
  80   2         write_dat(*(buf+i+j*32));         
  81   2              set_dis(st_line,x_a,y_a=y_a+16);
  82   2      
  83   2              if(y_a==128)                   //一行的字数超过8 y_add>128时换行
  84   2              {                         //为什么每次换行第一列子的上半部分出现错误?
  85   3      
  86   3              x_a=2*k;
  87   3      
  88   3              y_a=0;
  89   3      
  90   3              set_dis(st_line,x_a,y_a);
  91   3              set_dis(st_line,x_a,y_a);
  92   3              k++;
  93   3              }
  94   2      }
  95   1      
  96   1      
  97   1      
  98   1      }
  99          
 100          
 101          
 102           


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    253    ----
   CONSTANT SIZE    =   2048    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----      12
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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