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

📄 st7787-37pin.lst

📁 LCD开发程序,适用于LCD开发的程序人员,上面的程序是经过几年的工作经验总结出来的,是实践中的经验,宝贵的经验
💻 LST
字号:
C51 COMPILER V7.01  ST7787_37PIN                                                           09/22/2007 14:09:10 PAGE 1   


C51 COMPILER V7.01, COMPILATION OF MODULE ST7787_37PIN
OBJECT MODULE PLACED IN ST7787-37pin.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE ST7787-37pin.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          #include <reg51.H>
   2          #include <stdio.H>
   3          #include <intrins.H>
   4          #include "board.c"
   5          #include "readrom.c"
   6          #include "page_sel.c"
   7          #include "Trans_romdat.c"
   8          #include "init_ILI9320.c"
   9          #define CHANNEL_X       0x90
  10          #define CHANNEL_Y       0xd0
  11          #define ID                      0xe0
  12          
  13          
  14          sbit DCLK    = P3^4;
  15          sbit tpCS    = P3^5;
  16          sbit DIN     = P3^6;
  17          sbit BUSY    = P1^7;
  18          sbit DOUT    = P1^5;
  19          sbit PENIRQ  = P1^4;
  20          
  21          void Pause()
  22           {
  23   1        while(!(P3&0x08));
  24   1        }     
  25          
  26          void set_x(unsigned int x_star,unsigned x_end)
  27           {
  28   1              Trans_Com_16(0x0050);
  29   1              Trans_Dat_16(x_star);
  30   1              Trans_Com_16(0x0051);
  31   1              Trans_Dat_16(x_end);
  32   1        }
  33          
  34          void set_y(unsigned int y_star,unsigned y_end )
  35           {
  36   1              Trans_Com_16(0x0052);
  37   1              Trans_Dat_16(y_star);
  38   1                      Trans_Com_16(0x0053);
  39   1              Trans_Dat_16(y_end);
  40   1        }            
  41          
  42          void Display(unsigned int c1,unsigned char x,unsigned int y)
  43           {   
  44   1              unsigned int i,j;
  45   1              
  46   1              set_x(0x0000,0x00ef);
  47   1              set_y(0x0000,0x013f);
  48   1              Trans_Com_16(0x0022);
  49   1              
  50   1              for(i=0;i<y;i++)
  51   1               {
  52   2               for(j=0;j<x;j++)
  53   2                {
  54   3                 Trans_Dat_16(c1);
  55   3                 }
C51 COMPILER V7.01  ST7787_37PIN                                                           09/22/2007 14:09:10 PAGE 2   

  56   2                }
  57   1       }
  58          
  59          void Display101(unsigned int c1)
  60           {   
  61   1              int i,j,k,l,a=0;
  62   1              
  63   1              set_x(0x0000,0x00ef);
  64   1              set_y(0x0000,0x013f);
  65   1              Trans_Com_16(0x0022);
  66   1              
  67   1              for(i=0;i<40;i++)
  68   1               {
  69   2                for(l=0;l<120;l++)
  70   2                 {for(j=0;j<8;j++)    
  71   3                      Trans_Dat_16( c1); // Red.
  72   3                  for(k=0;k<8;k++)    
  73   3                      Trans_Dat_16(~c1);
  74   3                      }
  75   2                 c1=~c1;      
  76   2                      }
  77   1       }
  78          
  79          void Disp_rom(unsigned char page,unsigned int addr,unsigned char x,unsigned int y)
  80           {   
  81   1              unsigned int j,k;
  82   1              unsigned char high8,low8;
  83   1              
  84   1              set_x(0x0000,0x00ef);
  85   1              set_y(0x0000,0x013f);
  86   1              page_se(page);  
  87   1              Trans_Com_16(0x0022);
  88   1      
  89   1               for(j=0;j<y;j++)
  90   1                 {
  91   2                   for(k=0;k<x;k++)
  92   2                    {
  93   3                              high8=read_rom(addr++); 
  94   3                              low8=read_rom(addr++);
  95   3                              Trans_romdat(high8,low8);
  96   3                              while (addr==0x0000)
  97   3                      {page_se(++page);break;}
  98   3                              }
  99   2              }
 100   1       }
 101          
 102          
 103          
 104          void SPI_WriteCharTo7643(unsigned char cmd)     // SPI写数据
 105          {
 106   1              unsigned char i;
 107   1      
 108   1              for(i=0; i<8; i++)
 109   1                      {
 110   2                      DIN=cmd&0x80;
 111   2                      //DIN   = CY;
 112   2                      DCLK  = 0;                      // DCLK 上升沿 将DIN 数据发送出去 ...
 113   2                      _nop_();_nop_();_nop_();
 114   2                      DCLK  = 1;
 115   2                      _nop_();_nop_();_nop_();
 116   2                      cmd <<= 1;
 117   2                      }
C51 COMPILER V7.01  ST7787_37PIN                                                           09/22/2007 14:09:10 PAGE 3   

 118   1              DCLK = 0;
 119   1              _nop_();_nop_();_nop_();
 120   1      }
 121          
 122           unsigned int SPI_ReadACharFrom7643(void) // SPI 读数据
 123          {
 124   1              unsigned char  i;
 125   1              unsigned int value=0;
 126   1      
 127   1              for(i=0; i<12; i++)
 128   1                      {
 129   2                      DOUT = 1;
 130   2                      value <<= 1;
 131   2                      DCLK  = 1;                      // 下降沿有效
 132   2                      _nop_();_nop_();_nop_();
 133   2                      DCLK  = 0;
 134   2                      _nop_();_nop_();_nop_();
 135   2                      if(DOUT){
 136   3                              value++;
 137   3                              }
 138   2      
 139   2                      }
 140   1              return value;
 141   1      }
 142          
 143          void IdleClock(void)
 144          {
 145   1              unsigned char i;
 146   1      
 147   1              for(i=0;i<4;i++)
 148   1                      {
 149   2                      DCLK = 1;
 150   2                      _nop_();_nop_();_nop_();
 151   2                      DCLK = 0;
 152   2                      _nop_();_nop_();_nop_();
 153   2                      }
 154   1      }
 155           
 156          unsigned int ReadADC(unsigned char cmd)
 157          {
 158   1              unsigned int value;
 159   1      
 160   1              tpCS   = 0;
 161   1              _nop_();_nop_();_nop_();
 162   1              _nop_();_nop_();_nop_();
 163   1              _nop_();_nop_();_nop_();
 164   1              SPI_WriteCharTo7643(cmd);               // 8 clocks
 165   1              while(BUSY==0);
 166   1              value = SPI_ReadACharFrom7643();        // 12 clock
 167   1              IdleClock();                                            // 4 clocks
 168   1              tpCS = 1;
 169   1              _nop_();_nop_();_nop_();
 170   1              _nop_();_nop_();_nop_();
 171   1              _nop_();_nop_();_nop_();
 172   1              return value;
 173   1      }
 174          
 175          void Init_7643(void)
 176          {
 177   1              DCLK    = 0;
 178   1              tpCS    = 1;
 179   1              DIN     = 1;
C51 COMPILER V7.01  ST7787_37PIN                                                           09/22/2007 14:09:10 PAGE 4   

 180   1              BUSY    = 1;
 181   1              DOUT    = 1;
 182   1              PENIRQ  = 1;
 183   1      
 184   1              ReadADC(CHANNEL_X);     // Enable PENIRQ
 185   1      }
 186          
 187          
 188          void main(void)
 189           {
 190   1        while(1)      
 191   1          {   
 192   2              init_LCD();
 193   2              Init_7643();
 194   2              while(PENIRQ)
 195   2              {;}
 196   2          ReadADC(ID);
 197   2                      Display(0xF800,240,320);
 198   2              Pause();
 199   2                      //Display(0x07E0,240,320);
 200   2              //Pause();
 201   2                      //Display(0x001F,240,320);
 202   2              //Pause();
 203   2                      //Display(0x0000,240,320);
 204   2              //Pause();
 205   2                      //Display(0xFFFF,240,320);
 206   2              //Pause();
 207   2                      //Display101(0xFFFF);
 208   2              //Pause();
 209   2                      //Disp_rom(0x02,0x5d00,240,320);
 210   2                      //Pause();
 211   2                      //Disp_rom(0x04,0xb500,240,320);
 212   2                      //Pause();
 213   2            }
 214   1       }       
 215          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1380    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----      18
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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