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

📄 abc.lst

📁 单片机89s52与12864a液晶驱动及动画演示
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V6.12  ABC                                                                    11/14/2008 17:49:05 PAGE 1   


C51 COMPILER V6.12, COMPILATION OF MODULE ABC
OBJECT MODULE PLACED IN .\abc.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE .\abc.c DEBUG OBJECTEXTEND

stmt level    source

   1          //程序名称:128x64 windows启动模拟   //
   2          //作者:潘策荣    2006.11.
   3          //主要写了用12864液晶屏模拟windows启动画面的程序
   4          //拿来玩的,不要当真
   5          //不过写了蛮久//写写停停,主要是因为在上课,具体的演示效果参看视频,没录好,呵呵。
   6          //写了一些函数,可以用作其它用处。
   7          
   8          
   9          #include <reg51.h>
  10          #include <stdio.h>//在调试的时候使用
  11          #define uchar unsigned char
  12          #define uint unsigned int 
  13          
  14          
  15          sbit cs2=P0^0;
  16          sbit cs1=P0^1;
  17          sbit rw=P0^3;
  18          sbit e=P0^4;
  19          sbit di=P0^2;
  20          sbit rest=P0^7;
  21          uint i;
  22          uchar code b[]={"START YFKJ WINDOWS./0WAITING.../0FOUND ATMEL 89S52.../0256 RAM /0NO USB.../0NO KEYBOARD..
             -./0128X64  DISPLAY.../0LOADING.../0DESIGN BY PCR /0  /0  /0LOADING  PLEASE  WAITING.../0"};
  23          //设定一个长字符串,遇到/0的时候就换行,并进行动画演示,同时延时
  24          
  25          /*--  调入了一幅图像:C:\Documents and Settings\Administrator\桌面.bmp  --*/
  26          /*--  宽度x高度=89x36  --*/
  27          /*--  宽度不是8的倍数,现调整为:宽度x高度=89x40  --*/ 
  28          uchar  code a[]=
  29          {     
  30          0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0xF8,
  31          0xFC,0xFC,0xF8,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  32          0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  33          0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  34          0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  35          0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x7C,0xFC,
  36          0xFC,0xFC,0xFC,0xF8,0xF8,0xF8,0xF0,0xE0,0x80,0x1F,0x3F,0x7F,0x7F,0x7F,0x7F,0x3F,
  37          0x1F,0xC0,0xE0,0xF0,0xF0,0xF8,0xFC,0xFC,0xFC,0xFC,0xFC,0x38,0x00,0x00,0x00,0x00,
  38          0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  39          0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x80,0x00,0x00,0x00,0x80,
  40          0x80,0x80,0x00,0x00,0x00,0x80,0x80,0x80,0x00,0x00,0x00,0x80,0x80,0x80,0x00,0x00,
  41          0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x81,0xC3,0xE7,0xE7,
  42          0xEF,0xEF,0xEF,0xC7,0x83,0x00,0x00,0x60,0x60,0x60,0x60,0x60,0x63,0x67,0x67,0xEF,
  43          0xEF,0xEF,0x67,0x67,0x63,0x01,0x00,0x60,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  44          0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  45          0x00,0x00,0x00,0x00,0x21,0x30,0x28,0x24,0x23,0x00,0x1F,0x20,0x20,0x20,0x1F,0x00,
  46          0x1F,0x20,0x20,0x20,0x1F,0x00,0x1F,0x22,0x22,0x22,0x1C,0x00,0x30,0x30,0x00,0x00,
  47          0x00,0x00,0x00,0x00,0x00,0x00,0x3C,0x3F,0x3F,0x3F,0x3F,0x1F,0x1F,0x1F,0x0F,0x07,
  48          0x03,0xF8,0xFC,0xFE,0xFE,0xFE,0xFE,0xFC,0xF8,0x00,0x00,0xFF,0xFF,0xFF,0x00,0x00,
  49          0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x02,0x03,0x03,0xFF,0xFE,
  50          0x00,0x00,0x03,0x1F,0x7C,0xF0,0xC0,0xF8,0x3F,0x07,0x81,0x80,0x80,0x80,0x8C,0x92,
  51          0x92,0x92,0x62,0x00,0x10,0xF0,0x80,0x60,0x10,0x90,0xA8,0xA8,0xC8,0x08,0x08,0xFC,
  52          0x88,0x08,0x70,0xA8,0xA8,0xB0,0x00,0x00,0xF8,0x08,0x08,0xF0,0x08,0xF8,0xF8,0x00,
  53          0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x1F,
  54          0x3F,0x3F,0x1F,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
C51 COMPILER V6.12  ABC                                                                    11/14/2008 17:49:05 PAGE 2   

  55          0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,
  56          0x06,0x07,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,
  57          0x02,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  58          0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
  59          };
  60          
  61          unsigned char code asc[]=
  62          { //非常好,这里是一部分的ascii码相对应的字库。参照标准的字库进行为8x5大小//
  63          0x00,0x00,0x00,0x00,0x00,  //空白 5
  64          0x00,0x00,0x5F,0x00,0x00,  // !   10
  65          0x04,0x03,0x04,0x03,0x00,  // "   15
  66          0x14,0x7F,0x14,0x7F,0x14,  // #   20
  67          0x24,0x2A,0x7F,0x2A,0x12,  // $   25
  68          0x23,0x13,0x08,0x64,0x62,  // %
  69          0x36,0x49,0x55,0x22,0x50,  // &
  70          0x00,0x05,0x03,0x00,0x00,  // '
  71          0x00,0x1C,0x22,0x41,0x00,  // (
  72          0x00,0x41,0x22,0x1C,0x00,  // )
  73          0x14,0x08,0x3E,0x08,0x14,  // *
  74          0x08,0x08,0x3E,0x08,0x08,  // +
  75          0x00,0x50,0x30,0x00,0x00,  // ,
  76          0x08,0x08,0x08,0x08,0x08,  // -   
  77          0x00,0x60,0x60,0x00,0x00,  // .
  78          0x20,0x10,0x08,0x04,0x02,  // /  
  79          0x3E,0x51,0x49,0x45,0x3E,  // 0
  80          0x00,0x42,0x7F,0x40,0x00,  //  1
  81          0x42,0x61,0x51,0x49,0x46,  //  2
  82          0x21,0x41,0x45,0x4B,0x31,  //  3
  83          0x18,0x14,0x12,0x7F,0x10,  //  4
  84          0x27,0x45,0x45,0x45,0x39,  //  5
  85          0x3C,0x4A,0x49,0x49,0x30,  //  6
  86          0x03,0x01,0x71,0x09,0x07,  //  7
  87          0x36,0x49,0x49,0x49,0x36,  //  8
  88          0x06,0x49,0x49,0x29,0x1E,  //  9
  89          0x00,0x6C,0x6C,0x00,0x00,  //  :
  90          0x00,0x56,0x36,0x00,0x00,  //  ;
  91          0x08,0x14,0x22,0x41,0x00,  //  <
  92          0x14,0x14,0x14,0x14,0x14,  //  =
  93          0x00,0x41,0x22,0x14,0x08,  //  >
  94          0x02,0x01,0x51,0x09,0x06,  //  ?
  95          0x32,0x49,0x79,0x41,0x3E,  //  @
  96          0x7E,0x11,0x11,0x11,0x7E,  //A
  97          0x7F,0x49,0x49,0x49,0x36,  //B
  98          0x3E,0x41,0x41,0x41,0x22,  //C
  99          0x7F,0x41,0x41,0x22,0x1C,  //D
 100          0x7F,0x49,0x49,0x49,0x41,  //E
 101          0x7F,0x09,0x09,0x09,0x01,  //F
 102          0x3E,0x41,0x49,0x49,0x7A,  //G
 103          0x7F,0x08,0x08,0x08,0x7F,  //H
 104          0x00,0x41,0x7F,0x41,0x00,  //I
 105          0x20,0x40,0x41,0x3F,0x01,  //J
 106          0x7F,0x08,0x14,0x22,0x41,  //K
 107          0x7F,0x40,0x40,0x40,0x40,  //L
 108          0x7F,0x02,0x0C,0x02,0x7F,  //M
 109          0x7F,0x04,0x08,0x10,0x7F,  //N          
 110          0x3E,0x41,0x41,0x41,0x3E,  //O
 111          0x7F,0x09,0x09,0x09,0x06,  //P
 112          0x3E,0x41,0x51,0x21,0x5E,  //Q
 113          0x7F,0x09,0x19,0x29,0x46,  //R
 114          0x46,0x49,0x49,0x49,0x31,  //S
 115          0x01,0x01,0x7F,0x01,0x01,  //T
 116          0x3F,0x40,0x40,0x40,0x3F,  //U
C51 COMPILER V6.12  ABC                                                                    11/14/2008 17:49:05 PAGE 3   

 117          0x1F,0x20,0x40,0x20,0x1F,  //V
 118          0x3F,0x40,0x38,0x40,0x3F,  //W
 119          0x63,0x14,0x08,0x14,0x63,  //X
 120          0x07,0x08,0x70,0x08,0x07,  //Y
 121          0x61,0x51,0x49,0x45,0x43,  //Z
 122          0x00,0x7F,0x41,0x41,0x00,  //[
 123          0x02,0x04,0x08,0x10,0x20,  /* \ */ //一个大bug,不得不这样搞
 124          0x00,0x42,0x42,0x7E,0x00,  //]
 125          0x04,0x02,0x01,0x02,0x04,  //^
 126          0x40,0x40,0x40,0x40,0x40,  //_
 127          0x00,0x03,0x04,0x00,0x00,  //`
 128          0x20,0x54,0x54,0x54,0x78,   //a
 129          0x7F,0x48,0x44,0x44,0x38,   //b
 130          0x38,0x44,0x44,0x44,0x20,   //c
 131          0x38,0x44,0x44,0x48,0x7F,   //d
 132          0x38,0x54,0x54,0x54,0x18,   //e
 133          0x08,0x7E,0x09,0x0A,0x00,   //f
 134          0x0C,0x52,0x52,0x52,0x3E,   //g
 135          0x7F,0x08,0x04,0x04,0x78,   //h
 136          0x00,0x44,0x7D,0x40,0x00,   //i
 137          0x20,0x40,0x44,0x3D,0x00,   //j
 138          0x7F,0x10,0x28,0x44,0x00,   //k
 139          0x00,0x41,0x7F,0x40,0x00,   //l
 140          0x7C,0x04,0x18,0x04,0x78,   //m
 141          0x7C,0x08,0x04,0x04,0x78,   //n
 142          0x38,0x44,0x44,0x44,0x38,   //o
 143          0x7E,0x0A,0x0A,0x0A,0x04,   //p
 144          0x04,0x0A,0x0A,0x0C,0x7E,   //q
 145          0x7C,0x08,0x04,0x04,0x08,   //r
 146          0x48,0x54,0x54,0x54,0x20,   //s
 147          0x04,0x3F,0x44,0x44,0x20,   //t
 148          0x3C,0x40,0x40,0x20,0x7C,   //u
 149          0x1C,0x20,0x40,0x20,0x1C,   //v
 150          0x3C,0x40,0x30,0x40,0x3C,   //w
 151          0x44,0x28,0x10,0x28,0x44,   //x
 152          0x0C,0x50,0x50,0x50,0x3C,   //y
 153          0x44,0x64,0x54,0x4C,0x44,   //z
 154          };
 155          
 156          void delay(uint i)//短延时
 157          {
 158   1      while(i--);
 159   1      }
 160          
 161          void delay2(uchar i)//长延时
 162          {
 163   1      while (i--)
 164   1      {
 165   2      delay(2000);
 166   2      }
 167   1      }
 168           
 169          void reset()//重启
 170          {
 171   1      rest=0;
 172   1      delay(20);
 173   1      rest=1;
 174   1      delay(20);
 175   1      }
 176          
 177          void wcode(uchar c,uchar c1,uchar c2)//写指令
 178          {
C51 COMPILER V6.12  ABC                                                                    11/14/2008 17:49:05 PAGE 4   

 179   1      cs1=c1;
 180   1      cs2=c2;
 181   1      di=0;
 182   1      rw=0;
 183   1      P2=c;
 184   1      e=0;
 185   1      delay(5);
 186   1      e=1;
 187   1      delay(5);
 188   1      e=0;
 189   1      }
 190          
 191          void wdata(uchar c,uchar c1,uchar c2)//写数据
 192          {
 193   1      cs1=c1;
 194   1      cs2=c2;
 195   1      di=1;
 196   1      rw=0;
 197   1      P2=c;
 198   1      e=0;
 199   1      delay(5);
 200   1      e=1;
 201   1      //delay(5);//好像没有必要做这个延迟
 202   1      e=0;
 203   1      }
 204          
 205          uchar rdata(uchar c1,uchar c2)//读指令  经典部分,为了这个搞了一天
 206          {
 207   1      uchar c;
 208   1      cs1=c1;
 209   1      cs2=c2; 
 210   1      di=1;
 211   1      rw=1;
 212   1      e=1;
 213   1      delay(5);
 214   1      e=0;
 215   1      delay(5); 
 216   1      e=1;
 217   1      c=P2;
 218   1      e=0;
 219   1      return (c);
 220   1      }
 221          
 222          
 223          void set_startline(uchar i)//设置起始行,很少用到,在做滚动时可能很有用。
 224          {
 225   1      i+=0xc0;
 226   1      wcode(i,1,1);
 227   1      }
 228          
 229          void set_adr(uchar x,uchar y)//设置开始x,y,地址
 230          {
 231   1      x+=0xb8;
 232   1      y+=0x40;
 233   1      wcode(x,1,1);
 234   1      wcode(y,1,1);
 235   1      }
 236          
 237          void dison_off(uchar m)//屏幕关
 238          {
 239   1      m+=0x3e;
 240   1      wcode(m,1,1);
C51 COMPILER V6.12  ABC                                                                    11/14/2008 17:49:05 PAGE 5   

 241   1      }
 242          

⌨️ 快捷键说明

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