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

📄 text1.lst

📁 此程序是我用AT89S52单片机来控制显示屏FYD12864,采用C语言编写的可以显示图形,我调试了一周,在此和大家一起分享
💻 LST
字号:
C51 COMPILER V8.02   TEXT1                                                                 02/07/2007 16:22:34 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE TEXT1
OBJECT MODULE PLACED IN Text1.OBJ
COMPILER INVOKED BY: c:\Keil\C51\BIN\C51.EXE Text1.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1            #include "main.h"
   2            #include <reg52.h>
   3          
   4           #define LCD_Data P0
   5          sbit    LCD_RS          =P1^2;
   6          sbit    LCD_E           =P1^0;
   7          sbit    LCD_WR          =P1^1;
   8          
   9          void WriteLCD(unsigned char StartAddressY,unsigned char StartAddressX,unsigned char *tab,unsigned char bia
             -ozhi);
  10          
  11          
  12           extern  unsigned char code picture[]={ 
  13          0x00,0x8C,0x10,0x10,0x20,0x20,0x19,0x04,0x12,0x02,0xC0,0x02,0x11,0x00,0x00,0x00,
  14          0x00,0x40,0x18,0x20,0x5C,0x62,0x22,0x5C,0x40,0x24,0x10,0x90,0x21,0x02,0x04,0x04,
  15          0x00,0x00,0x00,0x00,0x02,0x10,0x00,0x00,0x00,0x00,0x40,0x18,0x20,0x5C,0x62,0x22,
  16          0x5C,0x40,0x24,0x10,0x90,0x21,0x02,0x04,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  17          0x08,0xD4,0x32,0x12,0x8A,0x89,0x09,0x05,0x06,0x04,0x04,0x04,0x04,0x04,0x04,0x04,
  18          0x08,0x08,0x08,0x10,0xF0,0x18,0x08,0x08,0x10,0x20,0x20,0xC0,0x00,0x00,0x00,0x00,
  19          0x00,0x00,0x00,0x00,0x00,0x30,0x40,0xB8,0xC4,0x44,0xB9,0x80,0x48,0x20,0x20,0x4B,
  20          0x0C,0xF8,0x09,0x08,0x08,0x88,0x78,0x00,0x00,0x00,0x20,0x28,0xA8,0xA8,0xA8,0xF8,
  21          0xA8,0xA8,0xA8,0x28,0x20,0x00,0x00,0x08,0x08,0x08,0x08,0xC8,0x48,0x28,0x18,0x08,
  22          0x00,0x00,0x00,0xE0,0xF0,0xF0,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  23          0x00,0x00,0x00,0xC0,0x3C,0x83,0x80,0x80,0x99,0x00,0x00,0x00,0x00,0x00,0xE0,0x00,
  24          0x00,0x02,0x0C,0x00,0x00,0x00,0x00,0x00,0x80,0x03,0x00,0x00,0x02,0x02,0x0E,0xF1,
  25          0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x80,0x00,0x00,0x00,0x00,
  26          0x20,0x00,0x00,0xA1,0xA0,0x90,0x90,0x8B,0x84,0x8A,0x91,0x90,0xA0,0xA0,0x00,0xA0,
  27          0x28,0x2F,0x2A,0x2A,0x3F,0x2A,0xAA,0x2F,0xA8,0x20,0x00,0x00,0x80,0x80,0xA0,0x20,
  28          0xBF,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x80,0x9B,0x9B,0x80,0x80,0x80,0x80,0x80,
  29          0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x40,0x87,0x08,0x16,0x10,0x2C,0x21,0x21,
  30          0x22,0x9C,0x80,0x80,0x80,0x80,0x00,0x01,0x08,0x08,0x08,0x08,0x00,0x07,0x04,0x06,
  31          0x00,0x80,0x60,0x1E,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  32          0x20,0x85,0x41,0x41,0x02,0x00,0x20,0x00,0x20,0x2E,0xAA,0xEA,0xBF,0x2A,0xAF,0x6A,
  33          0x2A,0x2E,0x20,0x00,0xE0,0x1B,0x80,0x7E,0xEA,0xAA,0xEA,0x3F,0xC2,0x23,0x9A,0x00,
  34          0x00,0xFF,0x24,0xFF,0x00,0xFF,0x08,0x0F,0x08,0x08,0x8F,0x00,0x00,0x00,0x00,0x00,
  35          0x00,0xFC,0x04,0x02,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x20,0x10,0x88,0x45,
  36          0x27,0x12,0x02,0x20,0x05,0x05,0x05,0x03,0x03,0x03,0x03,0x43,0x00,0x00,0x00,0x08,
  37          0x08,0x08,0x08,0x0C,0x0A,0x09,0x10,0x60,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  38          0x00,0x00,0x00,0x00,0x24,0x03,0x00,0x02,0x00,0x78,0x80,0x00,0x20,0x02,0x82,0x42,
  39          0x42,0x42,0x81,0x01,0x01,0x02,0x02,0x00,0x40,0x01,0x02,0x01,0x00,0x01,0xC0,0x22,
  40          0x21,0x20,0x41,0x83,0x00,0x03,0x00,0x02,0x23,0x00,0x03,0x02,0x02,0x02,0x02,0xC3,
  41          0x20,0x20,0x20,0x40,0x82,0x02,0x03,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x38,0x47,
  42          0xF0,0x04,0x03,0x02,0x02,0x04,0x05,0x05,0x06,0x02,0x0A,0x0A,0x0A,0x0A,0x04,0x04,
  43          0x14,0x14,0x14,0x14,0x1B,0x20,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xFE,0x00,
  44          0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x17,0x10,0x09,0x04,0x24,0x08,0x00,
  45          0x11,0x01,0x00,0x03,0x04,0x04,0x02,0x00,0x01,0x0A,0x02,0x02,0x04,0x00,0x00,0x00,
  46          0x08,0x00,0x00,0x01,0x02,0x02,0x01,0x00,0x20,0x05,0x01,0x01,0x02,0x00,0x20,0x00,
  47          0x00,0x08,0x00,0x00,0x01,0x02,0x02,0x01,0x00,0x20,0x05,0x01,0x01,0x02,0x00,0x20,
  48          0x00,0x00,0x00,0x00,0x1F,0x38,0x30,0x28,0x30,0x20,0x10,0x00,0x20,0x0C,0x10,0x30,
  49          0x20,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x01,0x02,0x04,0x18,
  50          0x24,0x14,0x24,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
  51          };
  52          
  53          
  54            unsigned char LCDBusyWait()                                                   //等待LCD就绪
C51 COMPILER V8.02   TEXT1                                                                 02/07/2007 16:22:34 PAGE 2   

  55          {
  56   1              unsigned char Status;
  57   1              LCD_RS=0;
  58   1              LCD_WR=1;
  59   1              LCD_Data=0xFF;
  60   1              LCD_E=1;
  61   1              Status=LCD_Data;
  62   1              LCD_E=0;
  63   1              while(Status & 0x80)
  64   1              {
  65   2                      
  66   2                      LCD_E=1;
  67   2                      Status=LCD_Data;
  68   2                      LCD_E=0;
  69   2              }
  70   1              LCD_WR=0;
  71   1              return Status;
  72   1      }
  73          
  74          void WriteLCD_Data(unsigned char Data)                  //向LCD写入一个字节的数据
  75          {
  76   1              LCDBusyWait();
  77   1              LCD_RS=1;
  78   1              LCD_Data=Data;
  79   1              LCD_E=1;
  80   1              LCD_E=0;
  81   1      }
  82          
  83          void WriteLCD_Command(unsigned char Command)    //向LCD写入一个字节的命令
  84          {
  85   1              LCDBusyWait();
  86   1              LCD_RS=0;
  87   1              LCD_Data=Command;
  88   1              LCD_E=1;
  89   1              LCD_E=0;
  90   1      }
  91          
  92          
  93          void WriteLCD(unsigned char StartAddressY,unsigned char StartAddressX,unsigned char *tab,unsigned char bia
             -ozhi)
  94          
  95          {  unsigned char a;
  96   1         unsigned char b;
  97   1        
  98   1        
  99   1        for(a=0;a<32;a++)
 100   1          { 
 101   2                if( biaozhi==0)
 102   2                 {               
 103   3                                      WriteLCD_Command(StartAddressY);
 104   3                                          StartAddressY+=1;   
 105   3                                      WriteLCD_Command(StartAddressX);
 106   3                                         for(b=0;b<16;b++)
 107   3                                             {
 108   4                                                   WriteLCD_Data(*(tab++));
 109   4                                                       }
 110   3                      }
 111   2                else
 112   2                  {           
 113   3                                  WriteLCD_Command(StartAddressY);
 114   3                                          StartAddressY+=1;   
 115   3                                      WriteLCD_Command(StartAddressX);
C51 COMPILER V8.02   TEXT1                                                                 02/07/2007 16:22:34 PAGE 3   

 116   3                                           for(b=0;b<16;b++)
 117   3                                             {
 118   4                                                   WriteLCD_Data(*(tab++));
 119   4                                                  }
 120   3                                              
 121   3                      
 122   3                      }
 123   2      
 124   2      
 125   2      
 126   2                }
 127   1        }
 128          
 129                  void DISPInitial()
 130          {
 131   1              unsigned int i;
 132   1              unsigned char j;
 133   1              WriteLCD_Command(0x30);   //功能设置---8BIT控制界面,基本指令集
 134   1              WriteLCD_Command(0x0C);   //显示打开,光标关,反白显示关
 135   1              WriteLCD_Command(0x01);   //清除屏幕显示,将DDRAM的地址计数器归零
 136   1              
 137   1              
 138   1              
 139   1              WriteLCD_Command(0x32);   //功能设置  绘图显示ON
 140   1             for(i=0;i<10;i++)
 141   1                       for(j=0;j<4;j++);                      //延时两秒
 142   1              WriteLCD_Command(0x36);   //功能设置  绘图显示ON
 143   1                for(i=0;i<10;i++)
 144   1                       for(j=0;j<4;j++);                      //延时两秒
 145   1      }
 146          
 147          void DisplayLCD()
 148          {
 149   1              
 150   1              
 151   1              WriteLCD_Command(0x0C);                                         //关闭游标的闪烁
 152   1      
 153   1              WriteLCD(0x80,0x80,picture,0);
 154   1              WriteLCD(0x80,0x88,picture,1);
 155   1      }
 156          
 157          
 158                  void main(void)
 159          {
 160   1              void WriteLCD(unsigned char StartAddressY,unsigned char StartAddressX,unsigned char *tab,unsigned char bi
             -aozhi);
 161   1              DISPInitial();
 162   1      
 163   1      
 164   1              while(1)
 165   1              {
 166   2      
 167   2                      DisplayLCD();
 168   2              }       
 169   1      
 170   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    249    ----
   CONSTANT SIZE    =    606    ----
   XDATA SIZE       =   ----    ----
C51 COMPILER V8.02   TEXT1                                                                 02/07/2007 16:22:34 PAGE 4   

   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----       6
   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 + -