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

📄 24c02.lst

📁 这是一个我以前用AT89S52单片机做的128-64液晶屏的驱动显示程序
💻 LST
字号:
C51 COMPILER V7.50   24C02                                                                 12/28/2007 10:53:51 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE 24C02
OBJECT MODULE PLACED IN 24C02.OBJ
COMPILER INVOKED BY: D:\C51\BIN\C51.EXE 24C02.C BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include <reg52.h>
   2          #include <intrins.h>
   3          
   4          #define OP_READ 0xa1            // 器件地址以及读取操作
   5          #define OP_WRITE 0xa0           // 器件地址以及写入操作
   6          
   7          sbit SDA = P3^4;
   8          sbit SCL = P3^3;
   9          extern void delay(unsigned int ms);
  10          
  11          void start()
  12          // 开始位
  13          {
  14   1              SDA = 1;
  15   1              _nop_();
  16   1              SCL = 1;
  17   1              _nop_();
  18   1              _nop_();
  19   1              _nop_();
  20   1              _nop_();
  21   1              _nop_();
  22   1              SDA = 0;
  23   1              _nop_();
  24   1              _nop_();
  25   1              _nop_();
  26   1              _nop_();
  27   1              _nop_();
  28   1              SCL = 0;
  29   1              _nop_();
  30   1              _nop_();
  31   1      }
  32          
  33          void stop()
  34          // 停止位
  35          {
  36   1              SDA = 0;
  37   1              _nop_();
  38   1              _nop_();
  39   1              SCL = 1;
  40   1              _nop_();
  41   1              _nop_();
  42   1              _nop_();
  43   1              _nop_();
  44   1              _nop_();
  45   1              SDA = 1;
  46   1              _nop_();
  47   1              _nop_();
  48   1              _nop_();
  49   1              _nop_();
  50   1              _nop_();
  51   1      }
  52          
  53          ////////////////////////////////////////////////////////////////////////
  54          // 接收数据从AT24Cxx/////////////////////////
  55          unsigned char RcvByte()
C51 COMPILER V7.50   24C02                                                                 12/28/2007 10:53:51 PAGE 2   

  56          {
  57   1              unsigned char i,receive_data;
  58   1              SDA=1;
  59   1              for(i = 0; i < 8; i++)
  60   1              {       
  61   2                      _nop_();
  62   2                      SCL = 0;
  63   2                      _nop_();
  64   2                      _nop_();
  65   2                      _nop_();
  66   2                      _nop_();
  67   2                      SCL=1;
  68   2                      _nop_();
  69   2                      _nop_();
  70   2                      receive_data <<= 1;
  71   2                      receive_data |= (unsigned char)SDA;
  72   2                      _nop_();
  73   2                      _nop_();
  74   2              }
  75   1              SCL=0;
  76   1              _nop_();
  77   1              _nop_();
  78   1              return(receive_data);
  79   1      }
  80          
  81          /////////////////////////////////////////////////////////////////////////
  82          // 发送write_data数据到AT24Cxx//////////////////////////////////////////////////
  83          void SentByte(unsigned char write_data)
  84          {
  85   1              unsigned char i;
  86   1              for(i = 0; i < 8; i++)          // 循环移入8个位
  87   1              {
  88   2                      SDA = (bit)(write_data & 0x80);
  89   2                      _nop_();
  90   2                      SCL = 1;
  91   2                      _nop_();
  92   2                      _nop_();
  93   2                      _nop_();
  94   2                      _nop_();
  95   2                      _nop_();
  96   2                      SCL = 0;
  97   2                      write_data <<= 1;
  98   2              }
  99   1              _nop_();
 100   1              SDA = 1;                        // 读取应答
 101   1              _nop_();
 102   1              _nop_();
 103   1              SCL = 1;
 104   1              _nop_();
 105   1              _nop_();
 106   1              _nop_();
 107   1              _nop_();
 108   1      //      ack=~SDA;                       //      ack=1为应答成功
 109   1              SCL = 0;
 110   1              _nop_();
 111   1              _nop_();
 112   1      }
 113          
 114          ///////////////////////////////////////////////////////////////////////
 115          // 在指定地址addr处写入数据write_data
 116          void write_appoint(unsigned char addr, unsigned char write_data)
 117          {
C51 COMPILER V7.50   24C02                                                                 12/28/2007 10:53:51 PAGE 3   

 118   1              start();
 119   1              SentByte(OP_WRITE);                     //      器件地址及写操作
 120   1              SentByte(addr); 
 121   1              SentByte(write_data);
 122   1              stop(); 
 123   1              delay(10);
 124   1      }
 125          ////////////////////////////////////////////////////////////////////////////
 126          // 在当前地址读取//////////////////////
 127          unsigned char read_current()
 128          {
 129   1              unsigned char receive_data;
 130   1              start();
 131   1              SentByte(OP_READ);                      //      器件地址及读操作
 132   1              receive_data = RcvByte();
 133   1              stop();
 134   1              return receive_data;
 135   1      }
 136          
 137          
 138          ////////////////////////////////////////////////////////////////////////////
 139          // 在指定地址读取/////////////////
 140          unsigned char read_appoint(unsigned char appoint_addr)
 141          {
 142   1              start();
 143   1              SentByte(OP_WRITE);                             //      空写操作
 144   1              SentByte(appoint_addr);
 145   1              return(read_current());
 146   1      }
 147          
 148          


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