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

📄 12864.lst

📁 基于单片机的12864lcd显示驱动程序. 更改廷时便可移植到高速mpu上.
💻 LST
字号:
C51 COMPILER V7.50   12864                                                                 09/14/2007 08:15:33 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE 12864
OBJECT MODULE PLACED IN .\12864.obj
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE D:\Documents and Settings\hp\桌面\12864.c LARGE ROM(SMALL) BROWSE DEBUG OBJ
                    -ECTEXTEND PRINT(.\12864.lst) OBJECT(.\12864.obj)

line level    source

   1          #include <c8051f020.H>
   2          
   3          #define uchar unsigned char
   4          #define uint  unsigned int
   5          
   6          #define LCD_PORT P2                      
   7          #define Left  1                                     
   8          #define Right 2
   9          sbit  LCD_Busy=P2^7;   
  10          
  11          
  12          sbit  LCD_EN = P3^5;
  13          sbit  LCD_RS = P3^7;
  14          sbit  LCD_RW = P3^6;
  15          sbit  LCD_RST= P1^5;
  16          sbit  LCD_CS2= P1^6;
  17          sbit  LCD_CS1= P1^7;
  18          
  19          uchar DisBuf[32],Page_Num,Clm_Num;
  20          
  21          void Delay_us(unsigned int DelayTime)
  22           {unsigned char i,j,k;
  23   1       for(k=0;k<220;k++);
  24   1         while(DelayTime) DelayTime--;
  25   1        }
*** WARNING C280 IN LINE 22 OF D:\DOCUMENTS AND SETTINGS\HP\桌面\12864.C: 'i': unreferenced local variable
*** WARNING C280 IN LINE 22 OF D:\DOCUMENTS AND SETTINGS\HP\桌面\12864.C: 'j': unreferenced local variable
  26          
  27          void Delay_x10ms(unsigned char DelayTime)  
  28             {
  29   1             unsigned char i,j,k;
  30   1             for(i=0;i<DelayTime;i++)
  31   1                for(j=0;j<20;j++)
  32   1                   for(k=0;k<220;k++) {;}
  33   1          }
  34          
  35          
  36          void LCD_WriteCommand(uchar Command, uchar CS_Num) 
  37          { 
  38   1        LCD_Check_Busy();
*** WARNING C206 IN LINE 38 OF D:\DOCUMENTS AND SETTINGS\HP\桌面\12864.C: 'LCD_Check_Busy': missing function-prototype
  39   1        if(CS_Num==1)                 /*选择左半屏*/
  40   1         {
  41   2           LCD_CS1 = 0;
  42   2               LCD_CS2 = 1;
  43   2              }
  44   1        else if(CS_Num==2)    /*选择右半屏*/
  45   1         {
  46   2           LCD_CS1 = 1;
  47   2               LCD_CS2 = 0;
  48   2              }
  49   1        LCD_EN = 0;           /* 使能信号为L */ 
  50   1        LCD_RS = 0;           /* 置寄存器选择为L */ 
  51   1        LCD_RW = 0;           /* 置读/写选择为L */ 
C51 COMPILER V7.50   12864                                                                 09/14/2007 08:15:33 PAGE 2   

  52   1        LCD_PORT = Command;   /* 将控制指令代码输出到的数据端口 */ 
  53   1        LCD_EN = 1;           /* 使能信号为H */ 
  54   1        Delay_us(1);          /* 延时2us */ 
  55   1        LCD_EN = 0;           /* 使能信号为L */ 
  56   1        LCD_CS1 = 0;          /* 置片选1为L */ 
  57   1        LCD_CS2 = 0;          /* 置片选2为L */ 
  58   1      } 
  59          
  60          
  61          /*---------------------------------------------------------------------------- 
  62          下面这个函数用于向液晶模块写入显示数据。 
  63          函数入口参数:Data------ 向液晶模块写入的显示数据 。 
  64                      CS_Num-------左右半屏的选数值 
  65          ----------------------------------------------------------------------------*/ 
  66          void LCD_WriteData(uchar Data,uchar CS_Num) 
  67          { 
  68   1        LCD_Check_Busy();
  69   1        if(CS_Num==1)          /*选择左半屏*/
  70   1         {
  71   2           LCD_CS1 = 0;
  72   2               LCD_CS2 = 1;
  73   2              }
  74   1        else if(CS_Num==2)  /*选择右半屏*/
  75   1         {
  76   2           LCD_CS1 = 1;
  77   2               LCD_CS2 = 0;
  78   2              }
  79   1        LCD_EN = 0;
  80   1        LCD_RS = 1;       /* 置寄存器选择为H */ 
  81   1        LCD_RW = 0;       /* 置读/写选择为L */  
  82   1        LCD_PORT = Data;  /* 将显示数据输出到的数据端口 */ 
  83   1        LCD_EN = 1;       /* 使能信号为H */ 
  84   1        Delay_us(1);      /* 延时2us */ 
  85   1        LCD_EN = 0;       /* 使能信号为L */ 
  86   1        LCD_CS1= 0;       /* 置片选1为L */ 
  87   1        LCD_CS2= 0;       /* 置片选2为L */ 
  88   1      } 
  89          
  90          
  91          
  92          
  93          
  94          /*---------------------------------------------------------------------------
  95          下面这个函数用于液晶模块的清屏。
  96          ---------------------------------------------------------------------------*/
  97          void LCD_CLR(uchar Side_Num)
  98           {
  99   1         uchar i,k,COM;
 100   1         
 101   1         for(i=0;i<8;i++)                               
 102   1         {
 103   2               COM=0xB8+i;
 104   2           LCD_WriteCommand(COM,Side_Num);    
 105   2               COM=0x40;
 106   2               LCD_WriteCommand(COM,Side_Num);  
 107   2                       
 108   2           for(k=0;k<64;k++)
 109   2            {
 110   3                  LCD_WriteData(0x00,Side_Num);
 111   3                 }
 112   2              }
 113   1               Delay_us(2);
C51 COMPILER V7.50   12864                                                                 09/14/2007 08:15:33 PAGE 3   

 114   1        }
 115          
 116          
 117          /*---------------------------------------------------------------------------
 118          下面这个函数用于向液晶模块初始化。
 119          如果没有写完一个半屏的数据就要充分结合此函数来达到要显示的效果
 120          ---------------------------------------------------------------------------*/
 121          void LCD_Initial(void) 
 122          {   
 123   1        LCD_RST = 0;    /* 置复位信号为低电平 */ 
 124   1        Delay_us(2);  
 125   1        LCD_RST = 1;    /* 置复位信号为高电平 */  
 126   1        LCD_WriteCommand(0x3F,Left);    /*显示开*/
 127   1        LCD_WriteCommand(0x3F,Right);
 128   1        LCD_WriteCommand(0xC0,Left);    /*起始行*/
 129   1        LCD_WriteCommand(0xC0,Right);                     
 130   1        LCD_WriteCommand(0xB8,Left);    /*起始页*/
 131   1        LCD_WriteCommand(0xB8,Right);  
 132   1        LCD_WriteCommand(0x40,Left);    /*起始列*/
 133   1        LCD_WriteCommand(0x40,Right); 
 134   1      } 
 135          
 136          
 137          
 138          /*---------------------------------------------------------------------------
 139          下面这个函数为主函数,根据程序要实现的功能写相应的应用程序
 140          ---------------------------------------------------------------------------*/
 141          void main(void) 
 142          { 
 143   1        XBR2=0x40;
 144   1        LCD_Initial();  
 145   1        Delay_x10ms(250);
 146   1        LCD_CLR(Left);
 147   1        LCD_CLR(Right); 
 148   1        LCD_WriteCommand(0xB8,Left);    
 149   1        LCD_WriteCommand(0x40,Left);
 150   1        LCD_WriteData(0x01,1);         
 151   1               
 152   1        /*   
 153   1        LCD_Graph_Play(Table1,Left);
 154   1        LCD_Graph_Play(Table2,Right);
 155   1        LCD_Play(6,0,4,Table8,Left);
 156   1        LCD_Play(6,0,4,Table9,Right);
 157   1        Delay_x10ms(250);
 158   1        Delay_x10ms(250);
 159   1        Delay_x10ms(250);
 160   1        Delay_x10ms(250);
 161   1        LCD_Graph_Play(Table5,Left);
 162   1        LCD_Graph_Play(Table5,Right);
 163   1        LCD_Play(6,0,4,Table3,Left);
 164   1        LCD_Play(6,0,4,Table4,Right);
 165   1        Delay_x10ms(250);
 166   1        Delay_x10ms(250);
 167   1        Delay_x10ms(250);
 168   1        Delay_x10ms(250);
 169   1        LCD_Graph_Play(Table6,Left);
 170   1        LCD_Graph_Play(Table7,Right);
 171   1        Delay_x10ms(250);
 172   1        Delay_x10ms(250);
 173   1        Delay_x10ms(250);
 174   1        Delay_x10ms(250); */  
 175   1       } 
C51 COMPILER V7.50   12864                                                                 09/14/2007 08:15:33 PAGE 4   



MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    326    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =     34       9
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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