graph.lst

来自「此程序实现无线信标定位」· LST 代码 · 共 243 行

LST
243
字号
C51 COMPILER V7.06   GRAPH                                                                 07/07/2008 21:47:21 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE GRAPH
OBJECT MODULE PLACED IN graph.OBJ
COMPILER INVOKED BY: D:\Program Files\Keil\C51\BIN\C51.EXE graph.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          
   2          
   3          void loc_xy(unsigned char X,unsigned char Y);
   4          void line(unsigned char pos);
   5          void cls_grap(void);
   6          
   7          void cls_grap(void);
   8          extern unsigned char code line_code[16][6];
   9          extern void send_i(unsigned char comm);
  10          extern void send_d(unsigned char data_in);
  11          
  12          //写GDRAM地址
  13          void loc_xy(unsigned char X,unsigned char Y)
  14          {
  15   1              send_i(Y); 
  16   1              send_i(X);
  17   1      }
  18          
  19          /*画直线
  20          当目标位于1、3象限时,直线斜率为45度,pos = 1, 由(0x94,0x9f)开始从下向上画
  21          当目标位于2、4象限时,直线斜率为135度,pos = 0,由(0x8c,0x80)开始从上向下画
  22          */
  23          void line(bit pos)
  24          {
  25   1              unsigned char *p;
  26   1              unsigned char x,y,t_x,t_y;
  27   1              p = line_code;  
*** WARNING C182 IN LINE 27 OF GRAPH.C: pointer to different objects
  28   1              if(pos)
  29   1                      y = 0x9F;
  30   1              else
  31   1                      y = 0x80;
  32   1              cls_grap();
  33   1              for(t_y = 0;t_y < 32;t_y ++)
  34   1              {
  35   2                      if(t_y < 16)
  36   2                      {       
  37   3                              if(!pos)
  38   3                              x = 0x8C;       
  39   3                              else
  40   3                              x = 0x94;
  41   3                              
  42   3                              loc_xy(x,y);
  43   3                              for(t_x = 0;t_x < 6;t_x ++)
  44   3                              {
  45   4                                      send_d(*p);
  46   4                                      p++;
  47   4                              }
  48   3                      }
  49   2                      else
  50   2                      {       
  51   3                              if(t_y == 16)
  52   3                              p = line_code;
*** WARNING C182 IN LINE 52 OF GRAPH.C: pointer to different objects
  53   3                              
C51 COMPILER V7.06   GRAPH                                                                 07/07/2008 21:47:21 PAGE 2   

  54   3                              if(!pos)
  55   3                              x = 0x91;       
  56   3                              else
  57   3                              x = 0x89;
  58   3      
  59   3                              loc_xy(x,y);
  60   3                              for(t_x = 0;t_x < 6;t_x++)
  61   3                              {
  62   4                                      send_d(*p);
  63   4                                      p++;
  64   4                              }
  65   3                      }
  66   2                      if(pos)
  67   2                              y --;
  68   2                      else
  69   2                              y ++;
  70   2              }
  71   1              send_i(0x30);
  72   1      }
  73                  
  74          /********************扩充指令集清屏子程序********************/
  75          void cls_grap()
  76          {
  77   1              unsigned char Disp_Page;
  78   1              unsigned char i,j;
  79   1              send_i(0x34);
  80   1              send_i(0x36);
  81   1              for(i = 0; i < 64; i ++)/*共32页*/
  82   1              {
  83   2                      Disp_Page = i | 0x80;/*设置页地址*/
  84   2                      loc_xy(0x80,Disp_Page);/*送入页地址*//*送入起始列地址*/
  85   2                      for(j = 0;j < 32;j ++)
  86   2                      {
  87   3                              send_d(0x00);/*清屏*/
  88   3                      }
  89   2              }
  90   1      }
  91          /*
  92          //画点
  93          void dot(unsigned char x,unsigned char y,unsigned char state)
  94          {
  95                  unsigned char LCD_X,LCD_Y,old_pic1,old_pic2,temp,dx,kk;
  96                  //地址转换,左上角为(0,0)点   
  97                  LCD_X = x/16;
  98                  if(y<=31)
  99                          {
 100                                  LCD_Y = 0x80 + 31 - y;
 101                                  LCD_X = 0x88 + LCD_X; 
 102                          }
 103                  else
 104                          {
 105                                  LCD_Y = 0x80 + 63 - y;
 106                                  LCD_X = 0X80 + LCD_X;
 107                          }
 108                  //读取GDRAM中数据
 109                  loc_xy(LCD_X,LCD_Y);
 110                  read_ram();
 111                  old_pic1 = read_ram();
 112                  old_pic2 = read_ram();
 113                  
 114                  dx = x%16;
 115                  loc_xy(LCD_X,LCD_Y);
C51 COMPILER V7.06   GRAPH                                                                 07/07/2008 21:47:21 PAGE 3   

 116                  if(dx<=7)
 117                          {
 118                                  temp = 1;
 119                                  temp = temp<<(7-dx);
 120                                  if(state==1)
 121                                          {
 122          
 123                                                  kk = old_pic1|temp;     
 124                                          }
 125                                  else
 126                                          {
 127                                                  temp = 1;
 128                                                  kk = old_pic1&(~(temp));
 129                  
 130                                          }
 131                                  send_d(kk);
 132                                  send_d(old_pic2);                               
 133                          }
 134                  else
 135                          {
 136                                  temp = 1;
 137                                  temp = temp<<(15-dx);
 138                                  if(state==1)
 139                                          {
 140          
 141                                                  kk = old_pic2|temp;     
 142                                          }
 143                                  else
 144                                          {
 145                                                  kk = old_pic2&(~(temp));
 146                  
 147                                          }
 148                                  send_d(old_pic1);
 149                                  send_d(kk);
 150                                          
 151                          }
 152          
 153          }
 154          void lcd_display(void)
 155          {
 156                  send_i(0x34);
 157                  send_i(0x36);
 158                  send_i(0x30);
 159          }
 160          //全屏画图
 161          void send_grap(unsigned char * pic)
 162          {
 163                  unsigned char  LCD_X,LCD_Y,x,y;
 164          
 165                  LCD_Y = 0x80;
 166                  LCD_X = 0x80;
 167          
 168                  for(y = 0;y <= 31;y++)
 169                          {
 170          
 171                                  LCD_X = 0x80;
 172                                  for(x = 0;x <= 7;x++)
 173                                          {
 174                                                  loc_xy(LCD_X,LCD_Y);
 175          
 176                                                  send_d(*pic);
 177                                                  pic++;
C51 COMPILER V7.06   GRAPH                                                                 07/07/2008 21:47:21 PAGE 4   

 178                                                  send_d(*pic);
 179                                                  pic++;
 180          
 181                                                  LCD_X++;
 182                                          }
 183                                  LCD_Y++;
 184                          }
 185          
 186                  LCD_Y = 0x80;
 187                  for(y = 0;y <= 31;y++)
 188                          {
 189          
 190                                  LCD_X = 0x88;
 191                                  for(x = 0;x <= 7;x++)
 192                                          {
 193                                                  loc_xy(LCD_X,LCD_Y);
 194          
 195                                                  send_d(*pic);
 196                                                  pic++;
 197                                                  send_d(*pic);   
 198                                                  pic++;
 199          
 200                                                  LCD_X++;
 201                                          }
 202                                  LCD_Y++;
 203                          }
 204          
 205                  send_i(0x34);
 206                  send_i(0x36);
 207                  send_i(0x30);
 208          
 209          }
 210          
 211          */


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    247    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----      10
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----       1
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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