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

📄 93c46.lst

📁 93C46读写程序(EE21学习板演示程序)
💻 LST
字号:
C51 COMPILER V6.12  93C46                                                                  04/06/2009 15:09:46 PAGE 1   


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

stmt level    source

   1          #include<reg52.h> 
   2          #define uchar unsigned char 
   3          #define uint unsigned int 
   4          sbit CS=P2^4; 
   5          sbit SK=P2^5; 
   6          sbit DI=P2^6; 
   7          sbit DO=P2^7; 
   8          sbit led=P1^6; 
   9          sbit dm=P1^4; 
  10          sbit wm=P1^5; 
  11          
  12          unsigned char code table[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,
  13                                    0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E};
  14          
  15          /****************擦写使能****************/ 
  16          void Ewen(void) 
  17          { 
  18   1      unsigned char i,temp; 
  19   1      CS=0; 
  20   1      SK=0; 
  21   1      CS=1; 
  22   1      temp=0x98; // 10011XXXX 
  23   1      for(i=8;i>0;i--) 
  24   1      { 
  25   2      DI=temp&0x80;//取高位 
  26   2      SK=1; //写入 
  27   2      SK=0; 
  28   2      temp<<=1; 
  29   2      } 
  30   1      CS=0; 
  31   1      } 
  32          
  33          /****************擦写禁止***************/ 
  34          void Ewds(void) 
  35          { 
  36   1      uchar i,temp; 
  37   1      CS=0; 
  38   1      SK=0; 
  39   1      CS=1; 
  40   1      temp=0x80; // 10000XXXX 
  41   1      for(i=8;i>0;i--) 
  42   1      { 
  43   2      DI=temp&0x80; 
  44   2      SK=1; 
  45   2      SK=0; 
  46   2      temp<<=1; 
  47   2      } 
  48   1      CS=0; 
  49   1      } 
  50          /*****************读数据********************/ 
  51          unsigned int Read(unsigned char address) 
  52          { 
  53   1      unsigned char i; 
  54   1      unsigned int result; 
  55   1      Ewen();//写使能 
C51 COMPILER V6.12  93C46                                                                  04/06/2009 15:09:46 PAGE 2   

  56   1      SK=0; 
  57   1      DI=1; 
  58   1      CS=0; 
  59   1      CS=1; 
  60   1      SK=1; 
  61   1      SK=0; 
  62   1      address=address&0x3|0x80; 
  63   1      for(i=8;i>0;i--) 
  64   1      { 
  65   2      DI=address&0x80; 
  66   2      SK=1; 
  67   2      SK=0; 
  68   2      address<<=1; 
  69   2      } 
  70   1      DO=1; 
  71   1      for(i=16;i>0;i--) 
  72   1      { 
  73   2      SK=1; 
  74   2      result=(result<<1)|DO; 
  75   2      SK=0; 
  76   2      } 
  77   1      CS=0; 
  78   1      Ewds(); 
  79   1      return(result); 
  80   1      } 
  81          /************************写数据*********************************/ 
  82          void Write(unsigned char address,unsigned int InData) 
  83          { 
  84   1      unsigned char i; 
  85   1      Ewen(); 
  86   1      SK=0; 
  87   1      DI=1; 
  88   1      CS=0; 
  89   1      CS=1; 
  90   1      SK=1; 
  91   1      SK=0; 
  92   1      address=address&0x3f|0x40;// 
  93   1      for(i=8;i>0;i--) 
  94   1      { // 8 
  95   2      DI=address&0x80; 
  96   2      SK=1; SK=0; 
  97   2      address<<=1; 
  98   2      } 
  99   1      for(i=16;i>0;i--) //16bit 
 100   1      { // 16 
 101   2      DI=InData&0x8000; 
 102   2      SK=1; SK=0; 
 103   2      InData<<=1; 
 104   2      } 
 105   1      CS=0; DO=1; 
 106   1      CS=1; SK=1; 
 107   1      while(DO==0) // busy test 
 108   1      { 
 109   2      SK=0; SK=1; 
 110   2      } 
 111   1      SK=0; CS=0; 
 112   1      Ewds(); 
 113   1      } 
 114          
 115          
 116          void delay(uint z) 
 117          { 
C51 COMPILER V6.12  93C46                                                                  04/06/2009 15:09:46 PAGE 3   

 118   1      uint x,y; 
 119   1      for(x=z;x>0;x--) 
 120   1      for(y=113;y>0;y--); 
 121   1      } 
 122          
 123          void main(void) 
 124          { 
 125   1      led=0; 
 126   1      Write(0x03,0x03); 
 127   1      delay(1000);
 128   1      P0=0X01;
 129   1      wm=1;
 130   1      wm=0; 
 131   1      P0=table[Read(0x03)]; 
 132   1      dm=1;
 133   1      dm=0;
 134   1      while(1); 
 135   1      } 
 136          


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