gy1206e6.lst

来自「STN ST7920 TEST CODE AND SPEC.」· LST 代码 · 共 340 行

LST
340
字号
C51 COMPILER V6.23a  GY1206E6                                                              05/28/2003 11:41:43 PAGE 1   


C51 COMPILER V6.23a, COMPILATION OF MODULE GY1206E6
OBJECT MODULE PLACED IN GY1206e6.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE GY1206e6.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          // ST7920 128*64 2003.3.25 
   2          #include <reg52.h>
   3          #include <delay.c>
   4          #include <intrins.h>
   5          
   6          #define true 1
   7          #define false 0
   8          
   9          sbit CS=P3^1;
  10          sbit SID=P1^7;
  11          sbit SCLK=P1^6;
  12          sbit RES=P3^7;
  13          
  14          void SendMode( Uchar );
  15          void SendCom( Uchar );
  16          void SendData( Uchar );
  17          void Initial(void);
  18          void Disp( Uchar, Uchar ); 
  19          void DispChar( Uchar, Uchar );
  20          //void DispBmp(Uchar *); 
  21          void DispRow( Uchar, Uchar );
  22          
  23          Uchar c1=0xb0;
  24          Uchar c2=0xa0; 
  25          
  26          Uchar Com_mode  = 0xf8;
  27          Uchar Data_mode = 0xfa;
  28          bit   Command_mode = true;
  29          //extern char code w[]; 
  30                                                                                     
  31          void main(void)
  32           {
  33   1         SCLK = 0;
  34   1         Initial();
  35   1        
  36   1         while(1)
  37   1         { 
  38   2           
  39   2           SendCom(0x01);  //DDRAM clear
  40   2           delay(20);   
  41   2           DispRow(0x0ff,0);
  42   2           DispRow(0x00,0x0ff);
  43   2           Disp(0xaa,0xaa);
  44   2           Disp(0x55,0x55);
  45   2           DispRow(0xaa,0x55);
  46   2           DispRow(0x55,0xaa);
  47   2           Disp(0x00,0x00);
  48   2           
  49   2           DispChar(c1,c2);   
  50   2      
  51   2           DispChar(0xc0,0xbc);
  52   2           DispChar(0xb7,0xe6);
  53   2           DispChar(0xc3,0xf7);
  54   2          
  55   2         }
C51 COMPILER V6.23a  GY1206E6                                                              05/28/2003 11:41:43 PAGE 2   

  56   1      
  57   1      }
  58          /* 
  59          void DispBmp(Uchar *p)
  60          {
  61             Uchar HorAdd=0x80;
  62             Uchar VerAdd=0x80;
  63             SendCom(0x04);    // I/D =0
  64               for(;VerAdd<0x80+32;VerAdd++)
  65             { 
  66                SendCom(0x34);    // RE=1;
  67                SendCom(0x36);    // Graphics=1;
  68          
  69                SendCom(VerAdd);
  70                SendCom(0x80);
  71                SendCom(0x32);    // RE=0;                       
  72              
  73                for(HorAdd = 0; HorAdd <0x0f; HorAdd++) {SendCom(*p++);SendCom(*p++);}//{SendCom(Updat);SendCom(Dnda
             -t);}
  74             } 
  75          
  76             delay(10000);
  77             SendCom(0x30);    // RE=0;
  78          
  79           }
  80          */
  81          void Disp(Uchar dot1,Uchar dot2)
  82           {
  83   1        Uchar HorAdd=0x80;
  84   1        Uchar VerAdd=0x80;
  85   1      
  86   1        for(;VerAdd<0x80+32;VerAdd++)
  87   1         { 
  88   2            SendCom(0x34);    // RE=1;
  89   2            SendCom(0x36);    // Graphics=1;
  90   2      
  91   2            SendCom(VerAdd);
  92   2            SendCom(0x80);
  93   2            SendCom(0x32);    // RE=0;
  94   2         
  95   2            for(HorAdd = 0; HorAdd <0x0f; HorAdd++)
  96   2              {
  97   3              SendData(dot1); SendData(dot1);
  98   3              SendData(dot2); SendData(dot2);
  99   3              }
 100   2         } 
 101   1      
 102   1         delay(5000);
 103   1      
 104   1         SendCom(0x30);    // RE=0;
 105   1      }
 106          void DispRow(Uchar dot1,Uchar dot2)
 107           {
 108   1       Uchar HorAdd=0x80;
 109   1       Uchar VerAdd=0x80;
 110   1       Uchar Temp=0;
 111   1       bit flag=1;
 112   1      
 113   1        for(;VerAdd<0x80+32;VerAdd++)
 114   1         { 
 115   2            SendCom(0x34);    // RE=1;
 116   2            SendCom(0x36);    // Graphics=1;
C51 COMPILER V6.23a  GY1206E6                                                              05/28/2003 11:41:43 PAGE 3   

 117   2      
 118   2            SendCom(VerAdd);
 119   2            SendCom(0x80);
 120   2            SendCom(0x32);    // RE=0;
 121   2           
 122   2           if (flag==1)
 123   2           { 
 124   3             Temp = dot1;
 125   3             flag=0;
 126   3           }
 127   2           else 
 128   2           {
 129   3             Temp = dot2;
 130   3             flag=1;
 131   3           }
 132   2            for(HorAdd = 0; HorAdd <0x0f; HorAdd++)
 133   2              {
 134   3      
 135   3              SendData(Temp);SendData(Temp);
 136   3              SendData(Temp);SendData(Temp);
 137   3      
 138   3              }
 139   2         } 
 140   1      
 141   1         delay(5000);
 142   1         SendCom(0x30);    // RE=0;
 143   1       } 
 144          void DispChar(Uchar Updat,Uchar Dndat) 
 145           {                   
 146   1         Uchar cnt=0;
 147   1         SendCom(0x04);    // I/D =0
 148   1      //   SendCom(0x02);
 149   1         SendCom(0x9f);     // SET DDRAM  00  TO AC 
 150   1         for(c1++,cnt=0;c1<0xf7,cnt<32;cnt++) {SendData(c1);SendData(c2++);}//{SendCom(Updat);SendCom(Dndat);}
 151   1         delay(5000);
 152   1       } 
*** WARNING C280 IN LINE 144 OF GY1206E6.C: 'Updat': unreferenced local variable
*** WARNING C280 IN LINE 144 OF GY1206E6.C: 'Dndat': unreferenced local variable
 153          
 154          void Initial()
 155          {  
 156   1        delay(500);
 157   1        RES  =0;
 158   1        delay(100);
 159   1        RES  =1;
 160   1        delay(100);
 161   1      
 162   1        SendCom(0x30);        //Function set  00 1 DL : x RE G 0       
 163   1         
 164   1        SendCom(0x0c);    // 0000 : 1 D C B ;display on
 165   1        
 166   1        SendCom(0x34);  // RE=1  Function set
 167   1        
 168   1        SendCom(0x0c);        // sleep mode off 
 169   1        SendCom(0x02);        // enable CGRAM          
 170   1      
 171   1        SendCom(0x30);  // RE =0;Function set
 172   1      
 173   1        delay(150);   
 174   1                
 175   1       }
 176            
C51 COMPILER V6.23a  GY1206E6                                                              05/28/2003 11:41:43 PAGE 4   

 177          
 178          void SendCom(Uchar dat)
 179          {
 180   1       Uchar cnt = 4;
 181   1      
 182   1       if( !Command_mode )
 183   1          {
 184   2               SendMode(Com_mode);
 185   2           Command_mode = true;
 186   2              }
 187   1       SendMode(Com_mode);
 188   1       while(cnt--)   // Higher  4 bit data
 189   1       {
 190   2               SID  = (bit)( 0x80 & dat );
 191   2               _nop_();
 192   2               SCLK = 1;
 193   2           _nop_();
 194   2               SCLK = 0;
 195   2               dat<<=1;
 196   2       }
 197   1       cnt = 4;
 198   1       while(cnt--)    // fill with 0
 199   1       {
 200   2               SID  = 0;
 201   2               _nop_();
 202   2               SCLK = 1;
 203   2           _nop_();
 204   2               SCLK = 0;
 205   2          _nop_();
 206   2       }
 207   1       delay(0);
 208   1       cnt = 4;
 209   1       while(cnt--)   // Lower 4 bit   data
 210   1       {
 211   2               SID  = (bit)( 0x80 & dat );
 212   2               _nop_();
 213   2               SCLK = 1;
 214   2           _nop_();
 215   2               SCLK = 0;
 216   2               dat<<=1;
 217   2       } 
 218   1       cnt = 4;
 219   1       while(cnt--)   // fill with 0
 220   1       {
 221   2               SID  = 0;
 222   2               _nop_();
 223   2               SCLK = 1;
 224   2           _nop_();
 225   2               SCLK = 0;
 226   2               _nop_();
 227   2       }
 228   1       delay(0);
 229   1      }
 230          
 231          
 232          void SendData(Uchar dat)
 233          {
 234   1       Uchar cnt = 4;
 235   1       
 236   1       if( Command_mode )
 237   1       {
 238   2        SendMode(Data_mode);
C51 COMPILER V6.23a  GY1206E6                                                              05/28/2003 11:41:43 PAGE 5   

 239   2        Command_mode = false;
 240   2       }
 241   1       SendMode(Data_mode);
 242   1       while(cnt--)   // Higher  4 bit data
 243   1       {
 244   2               SID  = (bit)( 0x80 & dat );
 245   2               _nop_();
 246   2               SCLK = 1;
 247   2           _nop_();
 248   2               SCLK = 0;
 249   2               dat<<=1;
 250   2       }
 251   1       cnt = 4;
 252   1       while(cnt--)    // fill with 0
 253   1       {
 254   2               SID  = 0;
 255   2               _nop_();
 256   2               SCLK = 1;
 257   2           _nop_();
 258   2               SCLK = 0;
 259   2               _nop_();
 260   2       }
 261   1       delay(0);
 262   1       cnt = 4;
 263   1       while(cnt--)   // Lower 4 bit   data
 264   1       {
 265   2               SID  = (bit)( 0x80 & dat );
 266   2               _nop_();
 267   2               SCLK = 1;
 268   2           _nop_();
 269   2               SCLK = 0;
 270   2               dat<<=1;
 271   2       } 
 272   1       cnt = 4;
 273   1       while(cnt--)   // fill with 0
 274   1       {
 275   2               SID  = 0;
 276   2               _nop_();
 277   2               SCLK = 1;
 278   2           _nop_();
 279   2               SCLK = 0;
 280   2               _nop_();
 281   2       }
 282   1       delay(0);
 283   1      }
 284          
 285          
 286          void SendMode(Uchar com)
 287          {
 288   1       Uchar cnt = 8;
 289   1       CS = 0;
 290   1       _nop_();
 291   1       CS = 1;
 292   1       delay(0);
 293   1       while(cnt--)   // Higher  4 bit data
 294   1       {
 295   2               SID  = (bit)( 0x80 & com );
 296   2               _nop_();
 297   2               SCLK = 1;
 298   2           _nop_();
 299   2               SCLK = 0;
 300   2               com<<=1;
C51 COMPILER V6.23a  GY1206E6                                                              05/28/2003 11:41:43 PAGE 6   

 301   2       }
 302   1       delay(0);      
 303   1      }                    


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    734    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      4      16
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      1       1
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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