📄 fm24c256.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 + -