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

📄 fm24c256.lst

📁 一个单片机读写fm24c256的c51源程序
💻 LST
字号:
C51 COMPILER V6.12  FM24C256                                                               07/17/2006 12:57:50 PAGE 1   


C51 COMPILER V6.12, COMPILATION OF MODULE FM24C256
OBJECT MODULE PLACED IN E:\PROGRAMMER\FM24C256\FM24C256.OBJ
COMPILER INVOKED BY: C:\comp51\C51.EXE E:\PROGRAMMER\FM24C256\FM24C256.C DB SB OE OT(0) 

stmt level    source

   1          /*---------------------------------------------
   2          读写24C16标准程序段
   3          完成日期:06/7/17
   4          作者:lizao
   5          -------------------------------------------*/
   6           #include<reg52.h>
   7          #include<intrins.h>
   8          unsigned char  redata;
   9          sbit run=P1^1;
  10          sbit SDA=P1^7;
  11          sbit SCL=P1^6;
  12          
  13          
  14          /*-----------------------------------------------
  15          调用方式:void start_bit(void)
  16          函数说明:开始位
  17          -----------------------------------------------*/
  18          void start_bit(void)
  19          {
  20   1      	SCL=1;
  21   1      	_nop_();
  22   1      	SDA=1;
  23   1      	_nop_();
  24   1      	SDA=0;
  25   1      	_nop_();
  26   1      	SCL=0;
  27   1      	_nop_();
  28   1      }
  29          
  30          
  31          /*-----------------------------------------------
  32          调用方式:void stop_bit(void)
  33          函数说明:停止位
  34          -----------------------------------------------*/
  35          void stop_bit(void)
  36          {
  37   1      	SDA=0;
  38   1      	_nop_();
  39   1      	SCL=1;
  40   1      	_nop_();
  41   1      	SDA=1;
  42   1      	_nop_();
  43   1      }
  44          
  45          
  46          /*-----------------------------------------------
  47          调用方式:void delay200(void)
  48          函数说明:延迟200ms
  49          -----------------------------------------------*/
  50          void delay200(void)
  51           {
  52   1       unsigned char i,k;
  53   1       for(i=400;i>0;i--)
  54   1       for(k=248;k>0;k--);  //延时200ms
  55   1       }
C51 COMPILER V6.12  FM24C256                                                               07/17/2006 12:57:50 PAGE 2   

  56          
  57          
  58          /*-----------------------------------------------
  59          调用方式:void ack(void)
  60          函数说明:应答函数
  61          -----------------------------------------------*/
  62          void ack(void)
  63          {
  64   1      	SDA=1;
  65   1      	SCL=0;
  66   1      	_nop_();
  67   1      	SCL=1;
  68   1      	_nop_();
  69   1      //	while(SDA){;}   //This may make the CPU crash. 
  70   1      	SCL=0;
  71   1      	_nop_();
  72   1      }
  73          
  74          
  75          /*-----------------------------------------------
  76          调用方式:void no_ack(void)
  77          函数说明:无需应答位,在读程序中用到
  78          -----------------------------------------------*/
  79          void no_ack(void)
  80          {
  81   1      	SDA=1;
  82   1      	_nop_();
  83   1      	SCL=1;
  84   1      	_nop_();
  85   1      	//while(SDA){;}  //This may make the CPU crash.
  86   1             	SCL=0;
  87   1      	_nop_();
  88   1      }
  89          
  90          
  91          /*-----------------------------------------------
  92          调用方式:void write_8bit(uchar ch)
  93          函数说明:写一个字节(8位)数据
  94          -----------------------------------------------*/
  95          void write_8bit(unsigned char ch)
  96          {
  97   1      	unsigned char i=8;
  98   1      
  99   1      	SCL=0;
 100   1      	_nop_();
 101   1      	while(i--)
 102   1      	{
 103   2      		SDA=(bit)(ch&0x80);
 104   2      		_nop_();
 105   2      		ch<<=1;
 106   2      		SCL=1;
 107   2      		_nop_();
 108   2      		SCL=0;
 109   2      		_nop_();
 110   2      	}
 111   1      }
 112          
 113          
 114          /*----------------------------------------------
 115          调用方式:uchar read24c16(uint address)
 116          函数说明:读24c16指定地址数据(字节读)
 117          -----------------------------------------------*/
C51 COMPILER V6.12  FM24C256                                                               07/17/2006 12:57:50 PAGE 3   

 118          unsigned char ReadFm24c256(unsigned int address)
 119          {
 120   1      	unsigned char data rdata;
 121   1      	unsigned char i=8;
 122   1      	//EA=0;//避免与串口通讯等中断冲突
 123   1      	start_bit();
 124   1      	write_8bit(0xA0);
 125   1      	ack();
 126   1      	write_8bit(address/256);
 127   1      	ack();//伪写
 128   1      	write_8bit(address%256);
 129   1      	ack();
 130   1      	start_bit();
 131   1      	write_8bit(0xA1);
 132   1      	ack();
 133   1      	while(i--)
 134   1      	{
 135   2      		rdata<<=1;
 136   2      		SCL=0;
 137   2      		_nop_();
 138   2      		SCL=1;
 139   2      		if(SDA) rdata=0x01;
 140   2      	}
 141   1      	no_ack();
 142   1      	stop_bit();
 143   1      	//EA=1;
 144   1      	return rdata;
 145   1      }
 146          
 147          
 148          /*-----------------------------------------------
 149          调用方式:void write24c16(uint address,uchar ddata)
 150          函数说明:写数据到24c16的指定地址(字节写)
 151          -----------------------------------------------*/
 152          void WriteFm24c256(unsigned int address,unsigned char ddata)
 153          {
 154   1      	//EA=0;  //避免与串口通讯等中断冲突
 155   1      	start_bit();
 156   1      	write_8bit(0xA0);
 157   1      	ack();
 158   1      	write_8bit(address/256);
 159   1      	ack();
 160   1      	write_8bit(address%256);
 161   1      	ack();
 162   1      	write_8bit(ddata);
 163   1      	ack();
 164   1      	stop_bit();
 165   1      	//EA=1;
 166   1      }
 167           void main ()
 168           {
 169   1        
 170   1        run=0;
 171   1        WriteFm24c256(0x1000,0x55);
 172   1         delay200();
 173   1         delay200();
 174   1         delay200();
 175   1         redata=ReadFm24c256(0x1000) ;
 176   1         delay200();
 177   1         while(1);
 178   1      }
C51 COMPILER V6.12  FM24C256                                                               07/17/2006 12:57:50 PAGE 4   

NAME                                    CLASS   MSPACE  TYPE    OFFSET  SIZE
====                                    =====   ======  ====    ======  ====


P1 . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0090H  1
P3 . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00B0H  1
T0 . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B4H  1
AC . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D6H  1
T1 . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B5H  1
T2 . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0090H  1
EA . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00AFH  1
_WriteFm24c256 . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  address. . . . . . . . . . . . . . .  AUTO     DATA   U_INT    0000H  2
  ddata. . . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0002H  1
IE . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00A8H  1
EXF2 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00CEH  1
RD . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B7H  1
ES . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00ACH  1
IP . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00B8H  1
RI . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0098H  1
INT0 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B2H  1
CY . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D7H  1
TI . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0099H  1
INT1 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B3H  1
PS . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00BCH  1
T2EX . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0091H  1
delay200 . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  i. . . . . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0000H  1
  k. . . . . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0001H  1
OV . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D2H  1
main . . . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
C_T2 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00C9H  1
WR . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B6H  1
RCLK . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00CDH  1
TCLK . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00CCH  1
ack. . . . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
SCON . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0098H  1
TCON . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0088H  1
IE0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0089H  1
IE1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      008BH  1
CP_RL2 . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00C8H  1
ET0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00A9H  1
ET1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00ABH  1
TF0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      008DH  1
ET2. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00ADH  1
TF1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      008FH  1
TF2. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00CFH  1
RB8. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      009AH  1
EX0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00A8H  1
IT0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0088H  1
TB8. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      009BH  1
EX1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00AAH  1
IT1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      008AH  1
P. . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D0H  1
SM0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      009FH  1
SM1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      009EH  1
start_bit. . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
SM2. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      009DH  1
PT0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B9H  1
PT1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00BBH  1
RS0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D3H  1
C51 COMPILER V6.12  FM24C256                                                               07/17/2006 12:57:50 PAGE 5   

NAME                                    CLASS   MSPACE  TYPE    OFFSET  SIZE
====                                    =====   ======  ====    ======  ====


run. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0091H  1
PT2. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00BDH  1
TR0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      008CH  1
RS1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D4H  1
TR1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      008EH  1
SDA. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0097H  1
TR2. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00CAH  1
PX0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B8H  1
PX1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00BAH  1
SCL. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0096H  1
EXEN2. . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00CBH  1
REN. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      009CH  1
_write_8bit. . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  ch . . . . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0000H  1
  i. . . . . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0001H  1
T2CON. . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00C8H  1
stop_bit . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
no_ack . . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
RXD. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B0H  1
TXD. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B1H  1
redata . . . . . . . . . . . . . . . .  PUBLIC   DATA   U_CHAR   0000H  1
F0 . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D5H  1
_ReadFm24c256. . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  address. . . . . . . . . . . . . . .  AUTO     DATA   U_INT    0000H  2
  rdata. . . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0002H  1
  i. . . . . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0003H  1
PSW. . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00D0H  1


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