📄 text.lst
字号:
C51 COMPILER V7.02b TEXT 04/25/2003 13:52:13 PAGE 1
C51 COMPILER V7.02b, COMPILATION OF MODULE TEXT
OBJECT MODULE PLACED IN Text.OBJ
COMPILER INVOKED BY: D:\KEIL_704\C51\BIN\C51.EXE Text.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include <stdio.h>
2 #include <reg51.h>
3
4 #define WriteDeviceAddress 0xa0
5 #define ReadDeviceAddress 0xa1
6
7 sbit SCL=P3^5;
8 sbit SDA=P3^7;
9 sbit WRITEOK=P1^0;
10 sbit READOK=P1^1;
11 sbit COMPAREOK=P1^2;
12 sbit COMPAREERROR=P1^3;
13 sbit led4=P1^4;
14 sbit led5=P1^5;
15 sbit led6=P1^6;
16
17 void W_Ok_Delay(unsigned int number){
18 1 unsigned long temp;
19 1 for(;number!=0;number--){
20 2 for(temp=3000;temp!=0;temp--){}
21 2 WRITEOK=!WRITEOK;
22 2 }
23 1 }
24
25 void R_Ok_Delay(unsigned int number){
26 1 unsigned long temp;
27 1 for(;number!=0;number--){
28 2 for(temp=3000;temp!=0;temp--){}
29 2 READOK=!READOK;
30 2 }
31 1 }
32
33 void Compare_Ok_Delay(unsigned int number){
34 1 unsigned long temp;
35 1 for(;number!=0;number--){
36 2 for(temp=3000;temp!=0;temp--){}
37 2 COMPAREOK=!COMPAREOK;
38 2 }
39 1 }
40
41 void Start(){
42 1 SDA=1;
43 1 SCL=1;
44 1 SDA=0;
45 1 SCL=0;
46 1 }
47
48 void Stop(){
49 1 SCL=0;
50 1 SDA=0;
51 1 SCL=1;
52 1 SDA=1;
53 1 }
54
55 void Ack(){
C51 COMPILER V7.02b TEXT 04/25/2003 13:52:13 PAGE 2
56 1 SDA=0;
57 1 SCL=1;
58 1 SCL=0;
59 1 SDA=1;
60 1 }
61
62 void NoAck(){
63 1 SDA=1;
64 1 SCL=1;
65 1 SCL=0;
66 1 //SDA=0;
67 1 }
68
69 //void TestAck(){
70 // bit Errorbit;
71 // SDA=1;
72 // SCL=1;
73 // Errorbit=SDA;
74 // SCL=0;
75 // return(Errorbit);
76 //}
77
78 Write8Bit(unsigned char input){
79 1 unsigned char temp;
80 1 for(temp=8;temp!=0;temp--){
81 2 SDA=(bit)(input&0x80);
82 2 SCL=1;
83 2 SCL=0;
84 2 input=input<<1;
85 2 }
86 1 }
87
88 void Write24C01(unsigned char RomAddress,unsigned char Data[],
89 unsigned char Number){
90 1 unsigned char *Wdata;
91 1 Wdata=Data;
92 1 Start();
93 1 Write8Bit(WriteDeviceAddress);
94 1 Ack();
95 1 Write8Bit(RomAddress);
96 1 Ack();
97 1 for(;Number!=0;Number--){
98 2 Write8Bit(*Wdata);
99 2 Ack();
100 2 Wdata++;
101 2 }
102 1 Stop();
103 1 W_Ok_Delay(10);
104 1 }
105
106 Read8Bit(){
107 1 unsigned char temp,rbyte=0;
108 1 for(temp=8;temp!=0;temp--){
109 2 SCL=1;
110 2 rbyte=rbyte<<1;
111 2 rbyte=rbyte|((unsigned char)(SDA));
112 2 SCL=0;
113 2 }
114 1 return(rbyte);
115 1 }
116
117 void Read24C01(unsigned char RomAddress,unsigned char RamAddress[],
C51 COMPILER V7.02b TEXT 04/25/2003 13:52:13 PAGE 3
118 unsigned char Number){
119 1 Start();
120 1 Write8Bit(WriteDeviceAddress);
121 1 Ack();
122 1 Write8Bit(RomAddress);
123 1 Ack();
124 1 Start();
125 1 Write8Bit(ReadDeviceAddress);
126 1 Ack();
127 1 for(;Number!=1;Number--){
128 2 *RamAddress=Read8Bit();
129 2 Ack();
130 2 RamAddress++;
131 2 }
132 1
133 1 *RamAddress=Read8Bit();
134 1 NoAck();
135 1 Stop();
136 1 R_Ok_Delay(10);
137 1 }
138
139 void Compare(unsigned char Compare1[],unsigned char Compare2[],
140 unsigned char Number){
141 1 unsigned char *Cdata1;
142 1 unsigned char *Cdata2;
143 1 Cdata1=Compare1;
144 1 Cdata2=Compare2;
145 1 for(;Number!=0;Number--){
146 2 if(*Cdata1!=*Cdata2) break;
147 2 Cdata1++;
148 2 Cdata2++;
149 2 Compare_Ok_Delay(2);
150 2 }
151 1 }
152
153 void main(void){
154 1
155 1 unsigned char SendBufer[8]={0x11,0x22,0x33,0x44,0x55,0x66,0x77,0x88};
156 1 unsigned char ReceiveBufer[8]={0,0,0,0,0,0,0,0};
157 1 Write24C01(0x00,SendBufer,8);
158 1 Read24C01(0x00,ReceiveBufer,8);
159 1 Write24C01(0x10,ReceiveBufer,8);
160 1
161 1 Compare(SendBufer,ReceiveBufer,8);
162 1 while(1);
163 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 606 ----
CONSTANT SIZE = 16 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 51
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 + -