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

📄 t.lst

📁 at89c51 读取写入 at29c040 4M flash的 C源代码
💻 LST
字号:
C51 COMPILER V7.06   T                                                                     06/25/2008 16:25:32 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE T
OBJECT MODULE PLACED IN t.OBJ
COMPILER INVOKED BY: f:\Keil\C51\BIN\C51.EXE t.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          
   2          #include <reg51.h>
   3          #include <absacc.h>
   4          #include "t.h"
   5          
   6          #if 1
   7          void delay(unsigned int n)
   8          {
   9   1              unsigned int i,j;
  10   1              for(j=0;j<100;j++)
  11   1              for(i=0;i<n;i++);
  12   1      }
  13          #endif
  14          #if 0
              unsigned char readFlash(unsigned int addr)
              {
                      unsigned char v;
                      LE=1;//delay(1);
                      P0=addr;//delay(1);
                      LE=0;//delay(1);
                      P2=addr>>8;//delay(1);
                      OE=0;//delay(10);
                      P0=0xFF;
                      v=P0;//delay(1);
                      OE=1;//delay(1);
                      return v;
              }
              void writeFlash1(unsigned int addr,char value)
              {
                      LE=1;//delay(1);
                      P0=addr;//delay(1);
                      LE=0;//delay(1);
                      P2=addr>>8;//delay(1);
                      P0=value;//delay(1);
                      WE=0;//delay(10);
                      WE=1;//delay(1);
              }
              void chipErase()
              {
                      writeFlash1(0x5555,0xAA);
                      writeFlash1(0x2AAA,0x55);
                      writeFlash1(0x5555,0x80);
                      writeFlash1(0x5555,0xAA);
                      writeFlash1(0x2AAA,0x55);
                      writeFlash1(0x5555,0x10);
              }
              #endif
  48          
  49          
  50          #if 1
  51          unsigned char volatile xdata *s,xdata *p;
  52          
  53          #endif
  54          void main()
  55          {
C51 COMPILER V7.06   T                                                                     06/25/2008 16:25:32 PAGE 2   

  56   1      #if 1
  57   1              unsigned char func=0,v;
  58   1      
  59   1              unsigned char wrchar;
  60   1      
  61   1              s=p=0x4000;
  62   1              for(;;)
  63   1              {
  64   2                      KEY1=0;
  65   2                      KEY2=0;
  66   2                      KEY3=0;
  67   2      
  68   2                      if(KEY1)
  69   2                      {
  70   3                              func=(func+1)&0x03;
  71   3                              LEDOUT=~func;
  72   3      
  73   3                              switch(func)
  74   3                              {
  75   4                              case 0: break;//(set value) reset pos and memory display
  76   4                              case 1: wrchar=0xA0; break;//set write char value
  77   4                              case 2: break;//(display offset addr value)set pos p
  78   4                              case 3: break;//write at pos or erase
  79   4                              }
  80   3                      }
  81   2      
  82   2                      if(func==0)
  83   2                      {
  84   3                              if(KEY2){       p--;    v=*p;LEDOUT=~v;}
  85   3                              else if(KEY3){  p++;    v=*p;LEDOUT=~v;}
  86   3                      }
  87   2                      else if(func==1)
  88   2                      {
  89   3                              if(KEY2){       wrchar+=0x10;   LEDOUT=~wrchar;}
  90   3                              else if(KEY3){  wrchar+=0x01;   LEDOUT=~wrchar;}
  91   3                      }
  92   2                      else if(func==2)
  93   2                      {
  94   3                              if(KEY2){ p--;LEDOUT=~(char)p;}
  95   3                              else if(KEY3){ p++;LEDOUT=~(char)p;}
  96   3                      }
  97   2                      else if(func==3)
  98   2                      {
  99   3                              if(KEY2)//write at pos
 100   3                              {
 101   4                                      *p=wrchar;
 102   4                                      LEDOUT=~(0xAA);
 103   4                              }
 104   3                      }
 105   2                      delay(100);
 106   2              }
 107   1      #else
                      unsigned int s,p;//read
                      unsigned char func=0,v;
              
                      unsigned char wrchar;
              
                      s=p=0x4000;
                      for(;;)
                      {
                              KEY1=0;
                              KEY2=0;
C51 COMPILER V7.06   T                                                                     06/25/2008 16:25:32 PAGE 3   

                              KEY3=0;
              
                              if(KEY1)
                              {
                                      func=(func+1)&0x03;
                                      LEDOUT=~func;
              
                                      switch(func)
                                      {
                                      case 0: break;//(set value) reset pos and memory display
                                      case 1: wrchar=0xA0; break;//set write char value
                                      case 2: break;//(display offset addr value)set pos p
                                      case 3: break;//write at pos or erase
                                      }
                              }
              
                              if(func==0)
                              {
                                      if(KEY2){       p--;    v=XBYTE[p];LEDOUT=~v;}
                                      else if(KEY3){  p++;    v=XBYTE[p];LEDOUT=~v;}
                              }
                              else if(func==1)
                              {
                                      if(KEY2){       wrchar+=0x10;   LEDOUT=~wrchar;}
                                      else if(KEY3){  wrchar+=0x01;   LEDOUT=~wrchar;}
                              }
                              else if(func==2)
                              {
                                      if(KEY2){ p--;LEDOUT=~(char)p;}
                                      else if(KEY3){ p++;LEDOUT=~(char)p;}
                              }
                              else if(func==3)
                              {
                                      if(KEY2)//write at pos
                                      {
                                              XBYTE[p]=wrchar;
                                              LEDOUT=~(0xAA);
                                      }
                                      else if(KEY3)// chip erase
                                      {
                                              XBYTE[0x4000]=0x11;
                                              XBYTE[0x4001]=0x22;
                                              XBYTE[0x4002]=0x33;
                                              XBYTE[0x4003]=0x44;
                                              XBYTE[0x4004]=0x55;
                                              XBYTE[0x4005]=0x66;
                                              XBYTE[0x4006]=0x77;
                                              XBYTE[0x4007]=0x88;
                                              XBYTE[0x4008]=0x99;
              
                                      //      XBYTE[0x5555]=0xAA;
                                      //      XBYTE[0x2AAA]=0x55;
                                      //      XBYTE[0x5555]=0x80;
                                      //      XBYTE[0x5555]=0xAA;
                                      //      XBYTE[0x2AAA]=0x55;
                                      //      XBYTE[0x5555]=0x10;
                                              LEDOUT=~(0xFA);
                                      }
                              }
                              delay(100);
                      }
              #endif
C51 COMPILER V7.06   T                                                                     06/25/2008 16:25:32 PAGE 4   

 180   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    195    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      4       2
   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 + -