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

📄 9220.lst

📁 LCD模块IC是ILI9325在C51单片机的驱动程序
💻 LST
📖 第 1 页 / 共 3 页
字号:
C51 COMPILER V8.05a   9220                                                                 03/10/2008 22:34:36 PAGE 1   


C51 COMPILER V8.05a, COMPILATION OF MODULE 9220
OBJECT MODULE PLACED IN D:\OK\ILI9325\程序\9220.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE D:\OK\ILI9325\程序\9220.C DB SB OE

line level    source

   1          /**************************************************************************
   2          Controller IC:9220
   3          Paraller type:16 bit-8080 interface
   4          Resolutions:  176*220 pixels
   5            P1         : DB0---DB7===>D0-D7
   6            P2         : DB0---DB7===>D10-D17
   7            P3         : P3.0 P3.1  P3.2 P3.3  P3.4  P3.5
   8                          cs  reset  rs   wr    rd   setp
   9          Modified date: 2007.09.24
  10          ***************************************************************************/
  11          
  12          #include <reg52.h>
  13          #include<intrins.h>
  14          #include "image1.c"                                     // 图片文件
  15          
  16          /***********************************************/
  17          
  18          #define DisplayCol      320                               //列数
  19          #define DisplaySeg      240                              //行数
  20          #define interface       16                                 //8位还是16位
  21          
  22          #define Port1           P1                                //数据口1
  23          #define Port2           P2                                //数据口2
  24          
  25          #define black           0xffff
  26          #define white           0x0000
  27          #define red             0xf800
  28          #define green           0x07e0
  29          #define blue            0x001f
  30          #define red_green       0xffe0
  31          #define green_blue      0x07ff
  32          #define blue_red        0xf81f
  33          #define red_green_blue  0x8410
  34          
  35          /****************接口定义**********************/
  36          
  37          sbit cs= P3^0;
  38          sbit reset= P3^1;
  39          sbit rs= P3^2;
  40          sbit wr= P3^3;
  41          sbit rd= P3^4;
  42          sbit setp= P3^5;
  43          unsigned int page,seg;
  44          
  45          /*****************函数声明***********************/
  46          
  47          void Initst();                                                 //初始化函数
  48          void c_d_before();                                             //写数据前的命令子程序
  49          void display_gray();                                           //灰度显示程序
  50          void display_picture();                                        //图像显示程序
  51          void delay(unsigned int param);                                //廷时子程序
  52          void Data_Write(unsigned int a);                               //位写数据程序
  53          void Command_Write(unsigned int a);                            //写命令程序
  54          void control_out(unsigned int a,unsigned int b);            //初始子程序
  55          void colour_display(unsigned int param1,unsigned int param2);  //各种颜色显示程序
C51 COMPILER V8.05a   9220                                                                 03/10/2008 22:34:36 PAGE 2   

  56          /*
  57          void displaye_colour_bar();                                   //彩条显示程序
  58          void display_block();                                         //彩块显示程序
  59          void display_snow();                                          //显示雪花程序
  60          void display_h_l();                                           //水平线显示程序
  61          void display_v_l();                                           //垂直线显示程序
  62          */
  63          
  64          
  65          /****************主函数*************************/
  66          
  67           void main(void)
  68          {
  69   1         unsigned int step=0;
  70   1         Initst();
  71   1         while(1)
  72   1            {
  73   2              for(step=1;step<9;step++)
  74   2              {
  75   3                      switch(step)
  76   3                      {
  77   4                              case 8:display_picture() ;
  78   4                              while(setp){;};
  79   4                              break;
  80   4                              case 4:colour_display(white,white);  //white colour yollow boder
  81   4                              while(setp){;};
  82   4                              break;
  83   4                              case 2:colour_display(green,green);          //green colour red boder
  84   4                              while(setp){;};
  85   4                              break;
  86   4                              case 1:colour_display(red,red);           //red colour blue boder
  87   4                              while(setp){;};
  88   4                              break;
  89   4                              case 3:colour_display(blue,blue);          //blue colour green boder
  90   4                              while(setp){;};
  91   4                              break;
  92   4                              case 5:colour_display(black,black);         //black colour white boder
  93   4                              while(setp){;};
  94   4                              break;
  95   4                              case 6:colour_display(black,white);         //black colour white boder
  96   4                              while(setp){;};
  97   4                              break;
  98   4                             // case 6:displaye_colour_bar();               //colour bar
  99   4                            //  while(setp){;};
 100   4                            //  break;
 101   4                             // case 7:display_block();                     //colour block
 102   4                             // while(setp){;};
 103   4                             // break;
 104   4                              //case 8:display_snow();                     //colour block
 105   4                              //while(setp){;};
 106   4                              //break;
 107   4                             // case 9:display_h_l();                       //colour block
 108   4                              //while(setp){;};
 109   4                              //break;
 110   4                              //case 10:display_v_l();                     //colour block
 111   4                              //while(setp){;};
 112   4                             // break;
 113   4                              case 7:display_gray();                     //colour block
 114   4                              while(setp){;};
 115   4                              break;
 116   4                  }
 117   3              }
C51 COMPILER V8.05a   9220                                                                 03/10/2008 22:34:36 PAGE 3   

 118   2          }
 119   1       }
 120          
 121          /****************延时子程序***************************/
 122          
 123          void delay(unsigned int param)
 124          {
 125   1         int i;
 126   1         for(;param>0;param--)
 127   1         for(i=1000;i>0;i--);
 128   1      }
 129          /*************写数据的子程序*********************/
 130          
 131          void Data_Write(unsigned int a)
 132          {
 133   1        if(interface==8)
 134   1          {
 135   2           cs=0;
 136   2           rs=1;
 137   2           rd=1;
 138   2           wr=0;
 139   2           Port1=(a>>8);
 140   2           wr=1;
 141   2           cs=1;
 142   2      
 143   2      
 144   2           cs=0;
 145   2           rd=1;
 146   2           wr=0;
 147   2           Port1=a;
 148   2           wr=1;
 149   2           cs=1;
 150   2           rs=1;
 151   2          }
 152   1        else
 153   1          {
 154   2           cs=0;
 155   2           rs=1;
 156   2           rd=1;
 157   2           wr=0;
 158   2           Port2=(a>>8);
 159   2           Port1=a;
 160   2           wr=1;
 161   2           cs=1;
 162   2           rs=1;
 163   2          }
 164   1        }
 165          /*************写命令的子程序*********************/
 166          
 167          void Command_Write(unsigned int a)
 168          {
 169   1        if(interface==8)
 170   1          {
 171   2           cs=0;
 172   2           rs=0;
 173   2           rd=1;
 174   2           wr=0;
 175   2           Port1=(a>>8);
 176   2           wr=1;
 177   2           cs=1;
 178   2           rs=1;
 179   2      
C51 COMPILER V8.05a   9220                                                                 03/10/2008 22:34:36 PAGE 4   

 180   2           cs=0;
 181   2           rs=0;
 182   2           rd=1;
 183   2           cs=0;
 184   2           wr=0;
 185   2           Port1=a;
 186   2           wr=1;
 187   2           cs=1;
 188   2          }
 189   1        else
 190   1          {
 191   2           cs=0;
 192   2           rs=0;
 193   2           rd=1;
 194   2           cs=0;
 195   2           wr=0;
 196   2           Port2=(a>>8);
 197   2           Port1=a;
 198   2           wr=1;
 199   2           rs=1;
 200   2           cs=1;
 201   2      
 202   2          }
 203   1        }
 204          /*************初始子程序*********************/
 205          
 206          void control_out(unsigned int a,unsigned                             int b)
 207          {
 208   1       Command_Write(a);
 209   1       Data_Write(b);
 210   1       }
 211          
 212          
 213          /***显示特殊颜色子程序,param1为主颜色,param2为边框颜色***/
 214          
 215          void colour_display(unsigned int param1,unsigned int param2)                              
 216          {
 217   1      
 218   1         c_d_before();
 219   1      
 220   1      
 221   1         for(seg=0;seg<DisplaySeg;seg++)
 222   1         Data_Write(param1);
 223   1      
 224   1         Data_Write(param1);
 225   1         for(seg=0;seg<(DisplaySeg-2);seg++)
 226   1         Data_Write(param2);
 227   1         Data_Write(param1);
 228   1      
 229   1         for(page=0;page<(DisplayCol-4);page++)
 230   1            {
 231   2             Data_Write(param1);
 232   2             Data_Write(param2);
 233   2             for(seg=0;seg<(DisplaySeg-4);seg++)
 234   2                                              Data_Write(param1);
 235   2             Data_Write(param2);
 236   2             Data_Write(param1);
 237   2            }
 238   1      
 239   1         Data_Write(param1);
 240   1         for(seg=0;seg<(DisplaySeg-2);seg++)
 241   1         Data_Write(param2);
C51 COMPILER V8.05a   9220                                                                 03/10/2008 22:34:36 PAGE 5   

 242   1         Data_Write(param1);
 243   1      
 244   1         for(seg=0;seg<DisplaySeg;seg++)
 245   1         Data_Write(param1);
 246   1      
 247   1      
 248   1      }
 249          
 250          
 251          /***************显示彩色条子程序******************/
 252          /*
 253          void displaye_colour_bar()
 254          {
 255                unsigned char i,m,k;
 256                m=DisplayCol/7;
 257                i=DisplayCol-m*7;
 258                 if(i>0)
 259                  {k=1;}
 260                else
 261                  {k=0;}
 262                c_d_before();
 263          
 264          
 265                  for(page=0;page<(m+k);page++)
 266                  for(seg=0;seg<DisplaySeg;seg++)
 267                     {
 268                      Data_Write(red);           //red
 269                      i--;
 270                      if(i>0)
 271                        {k=1;}
 272                      else
 273                        {k=0;}
 274                      }
 275          
 276                  for(page=0;page<32;page++)
 277                  for(seg=0;seg<DisplaySeg;seg++)
 278                     {
 279                      Data_Write(red_green);          //red+green
 280                      i--;
 281                      if(i>0)
 282                        {k=1;}
 283                      else
 284                        {k=0;}
 285                      }
 286          
 287                  for(page=0;page<32;page++)
 288                  for(seg=0;seg<DisplaySeg;seg++)
 289                     {
 290                      Data_Write(green);             //green
 291                      i--;
 292                      if(i>0)

⌨️ 快捷键说明

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