gy1206f6.lst

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

LST
224
字号
C51 COMPILER V7.20   GY1206F6                                                              10/10/2004 13:11:12 PAGE 1   


C51 COMPILER V7.20, COMPILATION OF MODULE GY1206F6
OBJECT MODULE PLACED IN GY1206f6.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE GY1206f6.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          // ST7920 128*64 2003.3.25 
   2          #include <reg52.h>
   3          #include <delay.c>
   4          
   5          #define Uchar unsigned char
   6          
   7          sbit RS=P3^6;
   8          sbit RW=P3^0;
   9          sbit E =P3^5;
  10          sbit RES=P3^7;
  11          void ComWrite(Uchar com);
  12          void DatWrite(Uchar dat);
  13          void Initial(void);
  14          void Disp(Uchar,Uchar); 
  15          void DispChar(Uchar,Uchar);
  16          void DispBmp(Uchar *); 
  17          void DispRow(Uchar,Uchar);
  18          Uchar c1=0xb0;
  19          Uchar c2=0xa0; 
  20          extern char code w[];                                                                            
  21          void main(void)
  22           {
  23   1         Initial();
  24   1        
  25   1         while(1)
  26   1         { 
  27   2           ComWrite(0x01);  //DDRAM clear
  28   2           delay(200);   
  29   2           DispRow(0x0ff,0);//display com line
  30   2           delay(200);
  31   2           DispRow(0x00,0x0ff);//display com line
  32   2           delay(200);
  33   2           Disp(0xaa,0xaa);//display seg line
  34   2           delay(200);
  35   2           Disp(0x55,0x55);//display seg line
  36   2           delay(200);
  37   2           DispRow(0xaa,0x55);//display snower
  38   2           delay(200);
  39   2           DispRow(0x55,0xaa);//display snower
  40   2           delay(200);
  41   2           Disp(0x00,0x00);//no display
  42   2           delay(200);
  43   2           DispChar(0xb0,0xc0);//display Chinese
  44   2           delay(200);
  45   2           DispChar(0xc0,0xbc);//display Chinese
  46   2           delay(200);
  47   2           DispChar(0xb7,0xe6);//display Chinese
  48   2           delay(200);
  49   2           DispChar(0xc3,0xf7);//display Chinese
  50   2          
  51   2         }
  52   1      
  53   1      }
  54           
  55          void DispBmp(Uchar *p)
C51 COMPILER V7.20   GY1206F6                                                              10/10/2004 13:11:12 PAGE 2   

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

 118   2           if (flag==1)
 119   2           { 
 120   3             Temp = dot1;
 121   3             flag=0;
 122   3           }
 123   2           else 
 124   2           {
 125   3             Temp = dot2;
 126   3             flag=1;
 127   3           }
 128   2            for(HorAdd = 0; HorAdd <0x0f; HorAdd++)
 129   2              {
 130   3              DatWrite(Temp);DatWrite(Temp);
 131   3              DatWrite(Temp);DatWrite(Temp);
 132   3              }
 133   2         } 
 134   1      
 135   1         delay(10000);
 136   1         ComWrite(0x30);    // RE=0;
 137   1       } 
 138          void DispChar(Uchar Updat,Uchar Dndat) 
 139           {                   
 140   1         Uchar cnt=0;
 141   1         ComWrite(0x04);    // I/D =0
 142   1      //   ComWrite(0x02);
 143   1         ComWrite(0x9f);     // SET DDRAM  00  TO AC 
 144   1         for(c1++,cnt=0;c1<0xf7,cnt<32;cnt++) 
 145   1         {DatWrite(c1);DatWrite(c2++);}
 146   1         {DatWrite(Updat);DatWrite(Dndat);}
 147   1         delay(10000);
 148   1       } 
 149          
 150          void Initial()
 151          {  
 152   1        delay(500);
 153   1        RES  =0;
 154   1        delay(100);
 155   1        RES  =1;
 156   1        delay(500);
 157   1      
 158   1        ComWrite(0x30);       //Function set  00 1 DL : x RE G 0       
 159   1        ComWrite(0x30);       //Function set  00 1 DL : x RE G 0
 160   1        ComWrite(0x0c);    // 0000 : 1 D C B ;display on
 161   1        
 162   1        ComWrite(0x34);  // RE=1  Function set
 163   1        
 164   1        ComWrite(0x0c);       // sleep mode off 
 165   1        ComWrite(0x02);       // enable CGRAM          
 166   1      
 167   1        ComWrite(0x30);  // RE =0;Function set
 168   1        ComWrite(0x06);       // I/D=1
 169   1        delay(150);   
 170   1                
 171   1       }
 172            
 173          void DatWrite(Uchar dat)
 174          {
 175   1       
 176   1       RS  =1;
 177   1       RW =0;
 178   1       E   =1; 
 179   1        P1  =dat;
C51 COMPILER V7.20   GY1206F6                                                              10/10/2004 13:11:12 PAGE 4   

 180   1       delay(0);
 181   1       E   =0;
 182   1       delay(0);
 183   1      }
 184          void ComWrite(Uchar com)
 185          {
 186   1      
 187   1       RS  =0;
 188   1       RW =0;
 189   1       E   =1;
 190   1       P1  =com;
 191   1       delay(0);
 192   1       E   =0;
 193   1       delay(0);
 194   1      }                    


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    642    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      2      17
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----       1
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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