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

📄 main.lst

📁 自己做的单片机Proteus仿真实例
💻 LST
字号:
C51 COMPILER V8.02   MAIN                                                                  05/09/2012 00:02:19 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: E:\IDEsoftware\Keil uVision3\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          /***************http://hi.baidu.com/echoas************
   2          程序:LCD12864显示原理之显示动画 
   3          内容:动画---飞翔的鸽子
   4          软件:keil uVision4
   5          液晶:QY128*64HZ1 
   6          作者:大海橡树
   7          整理日期:2010-12-05
   8          修改:无
   9          
  10          备注:有什么错误的地方,欢迎网友们到空间留言
  11          
  12                                                  O(∩_∩)O~
  13          
  14          ***************http://hi.baidu.com/echoas************/ 
  15          #include<AT89X52.h>
  16          #include<intrins.h>
  17          #include"BMP.h"
  18          #include"BMP1.h"
  19          #include"BMP2.h"
  20          #include"BMP3.h"
  21          #include"BMP4.h"
  22          #define uchar unsigned char
  23          #define uint  unsigned int
  24          
  25          sbit RS=P2^5;
  26          sbit RW=P2^6;
  27          sbit EN=P2^7;           //LCD三个控制端 
  28          uchar HZ_table1[]="LCD12864显示动画";
  29          uchar HZ_table2[]="    大海橡树    ";
  30          
  31          void delay(uint i) //延时函数 
  32          {
  33   1              while(--i);
  34   1      }
  35          
  36          void read_busy()//读忙函数。每次读写都要进行读忙操作 
  37          {
  38   1              RS=0;
  39   1              RW=1;
  40   1              EN=1;
  41   1              while(P0 & 0x80);//最高位为BF位 DB7---BF 
  42   1              EN=0;
  43   1      }
  44          
  45          void write_LCD_command(uchar value)//写指令函数 
  46          {
  47   1              read_busy();
  48   1              RS=0;
  49   1              RW=0;
  50   1              EN=1;           //EN从1---0锁存数据 
  51   1              P0=value;
  52   1              delay(20);
  53   1              EN=0;
  54   1      } 
  55          
C51 COMPILER V8.02   MAIN                                                                  05/09/2012 00:02:19 PAGE 2   

  56          void write_LCD_data(uchar value)//写数据函数 
  57          {
  58   1              read_busy();
  59   1              RS=1;
  60   1              RW=0;
  61   1              EN=1;           //EN从1---0锁存数据 
  62   1              P0=value;
  63   1              delay(20);
  64   1              EN=0;
  65   1      } 
  66          void init_BMP()  
  67          {
  68   1              write_LCD_command(0x36);//CL=1--8位。扩充指令(RE=1),绘图打开(G=1)
  69   1              delay(100);     //适当延时 
  70   1              write_LCD_command(0x36);
  71   1              delay(37);
  72   1              write_LCD_command(0x3E); //8位(CL=1),扩充指令(RE=1),绘图打开(G=1) 
  73   1              delay(100);
  74   1              write_LCD_command(0x01);//清屏指令 
  75   1              delay(100);
  76   1      }
  77          
  78          void display_BMP(uchar *address)        
  79          {
  80   1              uchar i,j;
  81   1              for(i=0;i<32;i++)               
  82   1              {
  83   2                      write_LCD_command(0x80+i);//先送垂直地址 
  84   2                      write_LCD_command(0x80);  //再送水平地址 ----显示图片的上半部分 
  85   2                      for(j=0;j<16;j++)
  86   2                      {
  87   3                              write_LCD_data(*address);
  88   3                              address++;
  89   3                      }
  90   2              }
  91   1              
  92   1              for(i=0;i<32;i++)
  93   1              {
  94   2                      write_LCD_command(0x80+i);      //先送垂直地址
  95   2                      write_LCD_command(0x88);        //显示图片的下半部分 
  96   2                      for(j=0;j<16;j++)
  97   2                      {
  98   3                              write_LCD_data(*address);
  99   3                              address++;                      //指针地址指向下个位置 
 100   3                      }
 101   2              }
 102   1      }
 103          void main()
 104          {
 105   1              init_BMP();      //显示图像函数初始化
 106   1              while(1)
 107   1              {
 108   2                      display_BMP(table);        //第一个
 109   2                      display_BMP(table1);   //第二个
 110   2                      display_BMP(table2);   //第三个
 111   2                      display_BMP(table3);   //第四个
 112   2                      display_BMP(table4);   //第五个
 113   2              }
 114   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
C51 COMPILER V8.02   MAIN                                                                  05/09/2012 00:02:19 PAGE 3   

   CODE SIZE        =    223    ----
   CONSTANT SIZE    =   5120    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     34    ----
   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 + -