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

📄 93lc46b.lst

📁 这是一个7"LCD 液晶屏显示器
💻 LST
字号:
C51 COMPILER V7.20   93LC46B                                                               11/06/2006 20:13:29 PAGE 1   


C51 COMPILER V7.20, COMPILATION OF MODULE 93LC46B
OBJECT MODULE PLACED IN .\obj\93LC46B.obj
COMPILER INVOKED BY: C:\Program Files\Keil\C51\BIN\C51.EXE 93LC46B.C BROWSE DEBUG OBJECTEXTEND PRINT(.\obj\93LC46B.lst) 
                    -OBJECT(.\obj\93LC46B.obj)

line level    source

   1          #include "indash.h"
   2          
   3          void EEPROM_Init()
   4          {
   5   1         EEPROM_CS = 0;
   6   1         EEPROM_CLK= 0;
   7   1         EEPROM_DI = 0;
   8   1         EEPROM_DO = 0;
   9   1         if ((EEPROM_Receive_25_Bit(OP_READ, EE_CHECK_SUM_ADDR) != CHECK_SUM_VALUE) & (EEPROM_Receive_25_Bit(OP_
             -READ, EE_CHECK_SUM_ADDR1) != CHECK_SUM_VALUE))
  10   1         {
  11   2            EEPROM_Transmit_9_Bit(OP_EWEN, 0x30);
  12   2            EEPROM_Transmit_9_Bit(OP_ERAL, 0x20);    /* clear all */
  13   2            EEPROM_Transmit_25_Bit(OP_WRITE, EE_CHECK_SUM_ADDR, CHECK_SUM_VALUE);      
  14   2            Initial_Value();
  15   2            EEPROM_Transmit_25_Bit(OP_WRITE, EE_CHECK_SUM_ADDR1, CHECK_SUM_VALUE);
  16   2         }
  17   1         EEPROM_Transmit_9_Bit(OP_EWEN, 0x30);
  18   1         Recall_Initial_Value();
  19   1      }
  20          
  21          
  22          void EEPROM_Clock()
  23          {
  24   1                               /* COMMON clk */
  25   1         EEPROM_CLK = 0;
  26   1         EEPROM_CLK = 0;
  27   1         EEPROM_CLK = 1;
  28   1         EEPROM_CLK = 1;
  29   1         EEPROM_CLK = 1;
  30   1         EEPROM_CLK = 1;
  31   1         EEPROM_CLK = 1;
  32   1         EEPROM_CLK = 1;
  33   1         EEPROM_CLK = 1;
  34   1         EEPROM_CLK = 1;
  35   1         EEPROM_CLK = 1;
  36   1         EEPROM_CLK = 1;
  37   1         EEPROM_CLK = 1;
  38   1         EEPROM_CLK = 1;
  39   1         EEPROM_CLK = 1;
  40   1         EEPROM_CLK = 1;
  41   1         EEPROM_CLK = 1;
  42   1         EEPROM_CLK = 1;
  43   1         EEPROM_CLK = 0;
  44   1         EEPROM_CLK = 0;
  45   1         
  46   1      }
  47          
  48          void EEPROM_Transmit_Byte(unsigned char value)reentrant
  49          {
  50   1         static char cnt = 0;
  51   1      
  52   1         cnt++;
  53   1         if (cnt < 8)
C51 COMPILER V7.20   93LC46B                                                               11/06/2006 20:13:29 PAGE 2   

  54   1            EEPROM_Transmit_Byte(value / 2);
  55   1         else
  56   1            cnt = 0;
  57   1      
  58   1         EEPROM_DI = value % 2;
  59   1         EEPROM_Clock();
  60   1      }
  61          
  62          void EEPROM_Transmit_Addr_Byte(unsigned char value)reentrant
  63          {
  64   1         static char cnt = 0;
  65   1      
  66   1         cnt++;
  67   1         if (cnt < 6)
  68   1            EEPROM_Transmit_Addr_Byte(value / 2);
  69   1         else
  70   1            cnt = 0;
  71   1      
  72   1         EEPROM_DI = value % 2;
  73   1         EEPROM_Clock();
  74   1      }
  75          
  76          void EEPROM_Transmit_25_Bit(char opcode, unsigned char addr, unsigned int value)
  77          {
  78   1         EA = Disable;
  79   1         /***** transmit first time  *****/
  80   1         EEPROM_CS = 1; //P1.4
  81   1      
  82   1         /* start 1 bit */
  83   1         EEPROM_DI = 1;//P1.2
  84   1         EEPROM_Clock();
  85   1      
  86   1         /* opcode 2 bit */
  87   1         EEPROM_DI = opcode / 2;
  88   1         EEPROM_Clock();
  89   1         EEPROM_DI = opcode % 2;
  90   1         EEPROM_Clock();
  91   1      
  92   1         /* address 6 bit */
  93   1         EEPROM_Transmit_Addr_Byte(addr );
  94   1      
  95   1         /* data 16 bit */
  96   1         EEPROM_Transmit_Byte(value / 256);
  97   1         EEPROM_Transmit_Byte(value % 256);
  98   1      
  99   1         EEPROM_CS = 0;
 100   1         EEPROM_Clock();
 101   1         EEPROM_DI = 0;
 102   1      
 103   1         /* wait EEPROM finish */
 104   1         if (opcode != OP_WRAL)
 105   1            Delay(500);               /* delay 6ms */
 106   1         else
 107   1            Delay(1000);              /* delay 15ms */
 108   1         EA = Enable;   
 109   1      /***** CHECK TRANSMIT VALUE **/
 110   1         Delay(4000);
 111   1         EEPROM_Receive_25_Bit( OP_READ, addr);
 112   1      }
 113          
 114          unsigned int EEPROM_Receive_25_Bit(char opcode,unsigned char addr)
 115          {
C51 COMPILER V7.20   93LC46B                                                               11/06/2006 20:13:29 PAGE 3   

 116   1         char i;
 117   1      //   char buf[5];
 118   1         unsigned int value = 0;
 119   1         unsigned int value1= 0;
 120   1         unsigned int value2= 0;
 121   1         unsigned int xor_value = 0;  
 122   1      /**** receive the first time ******/
 123   1      
 124   1         EEPROM_CS = 1;
 125   1      
 126   1         /* start 1 bit */
 127   1         EEPROM_DI = 1;
 128   1         EEPROM_Clock();
 129   1      
 130   1         /* opcode 2 bit*/
 131   1         EEPROM_DI = opcode / 2;
 132   1         EEPROM_Clock();
 133   1         EEPROM_DI = opcode % 2;
 134   1         EEPROM_Clock();
 135   1      
 136   1         /* address 6 bit */
 137   1         EEPROM_Transmit_Addr_Byte(addr);
 138   1      
 139   1         /* data 16 bit */
 140   1         EEPROM_DI = 1;   /* impotant */
 141   1         for (i = 0; i < 16; i++)
 142   1         {
 143   2            EEPROM_Clock();
 144   2            if (EEPROM_DO)
 145   2               value |= 0x01 << (15 - i);
 146   2         }
 147   1      
 148   1         EEPROM_CS = 0;
 149   1         EEPROM_Clock();
 150   1         EEPROM_DI = 0;
 151   1      /*
 152   1         Printxy_Normal( 1,5,"value" , FONT_GREEN);
 153   1         Printxy_Normal( 8,5 , Ntoa((signed long) value, Fill(buf, 5, ' '), LEFT, ' '), FONT_GREEN);
 154   1      */   
 155   1      
 156   1      
 157   1           return(value);
 158   1      }
 159          
 160          void EEPROM_Transmit_9_Bit(char opcode, unsigned char addr)
 161          {
 162   1         EEPROM_CS = 1;
 163   1      
 164   1         /* start 1 bit */
 165   1         EEPROM_DI = 1;
 166   1         EEPROM_Clock();
 167   1      
 168   1         /* opcode 2 bit*/
 169   1         EEPROM_DI = opcode / 2;
 170   1         EEPROM_Clock();
 171   1         EEPROM_DI = opcode % 2;
 172   1         EEPROM_Clock();
 173   1      
 174   1         /* address 6 bit */
 175   1         EEPROM_Transmit_Addr_Byte(addr);
 176   1      
 177   1         EEPROM_CS = 0;
C51 COMPILER V7.20   93LC46B                                                               11/06/2006 20:13:29 PAGE 4   

 178   1         EEPROM_Clock();
 179   1         EEPROM_DI = 0;
 180   1      
 181   1         /* wait EEPROM finish */
 182   1         Delay(500);                  /* delay 6ms */
 183   1      }


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