?? at24c.lst
字號:
C51 COMPILER V8.02 AT24C 02/12/2009 21:21:07 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE AT24C
OBJECT MODULE PLACED IN AT24C.OBJ
COMPILER INVOKED BY: E:\protues_keil\keil\C51\BIN\C51.EXE AT24C.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include<reg51.h>
2 #include<intrins.h>
3 #define uchar unsigned char
4 #define uint unsigned int
5 #define nop _nop_();_nop_();_nop_();//定義空指令
6 #define addwr 0xa0
7 #define addrd 0xa1
8 sbit wp=P1^2;
9 sbit scl=P1^0;
10 sbit sda=P1^1;
11 uchar Number=0xaa;
12
13 mdelay(char j)
14 {
15 1 unsigned int i;
16 1 for(;j>0;j--)
17 1 {
18 2 for(i=0;i<20;i++);
19 2 }
20 1 }
21
22 void star(void) //起始條件
23 {scl=1;
24 1 nop;
25 1 sda=1;
26 1 nop;
27 1 sda=0;
28 1 nop;
29 1 }
30
31 void stop(void) //停止
32 {
33 1 sda=0;
34 1 nop;
35 1 scl=1;
36 1 nop;
37 1 sda=1;
38 1 nop;
39 1 }
40
41 void ask(void) //應(yīng)答
42 {
43 1
44 1
45 1 scl=1;
46 1 nop;
47 1 sda=1;
48 1 mdelay(20);
49 1 scl=0;
50 1 nop;
51 1 }
52
53
54
55 void send(uchar date) //發(fā)送寫器件地址
C51 COMPILER V8.02 AT24C 02/12/2009 21:21:07 PAGE 2
56 {
57 1 uchar i,temp;
58 1 temp=date;
59 1 for(i=0;i<8;i++)
60 1 {
61 2 temp=temp<<1;
62 2 scl=0;
63 2 nop;
64 2 sda=CY;
65 2 nop;
66 2 scl=1;
67 2 nop;
68 2 }
69 1 scl=0;
70 1 nop
71 1 sda=1;
72 1 nop
73 1 }
74
75 uchar read(void) //讀一個字節(jié)
76 {
77 1 uchar m,k;
78 1 scl=0;
79 1 nop;
80 1 sda=1;
81 1 nop;
82 1 for(m=0;m<8;m++)
83 1 {
84 2 scl=1;
85 2 nop;
86 2 k=(k<<1)|sda;
87 2 scl=0;
88 2 nop;
89 2 }
90 1 return k;
91 1
92 1 }
93
94 void write_rom(uchar data1,uchar add1) //寫ROM
95 {
96 1 star();
97 1 nop;
98 1 send(addwr);
99 1 nop;
100 1 ask();
101 1 send(add1);
102 1 nop;
103 1 ask();
104 1 nop;
105 1 send(data1);
106 1 nop;
107 1 ask();
108 1 nop;
109 1 stop();
110 1 nop;
111 1 mdelay(20);
112 1 nop;
113 1 }
114
115
116 void read_rom(uchar add2) //讀ROM
117 {uchar hehe;
C51 COMPILER V8.02 AT24C 02/12/2009 21:21:07 PAGE 3
118 1 star();
119 1 nop;
120 1 send(addwr);
121 1 nop;
122 1 ask();
123 1 nop;
124 1 send(add2);
125 1 nop;
126 1 ask();nop;
127 1 star();nop;
128 1 send(addrd);nop;
129 1 ask();nop;
130 1 hehe=read();nop;
131 1 scl=0;
132 1 stop();
133 1 Number=hehe;
134 1 }
135
136
137 void main()
138 {
139 1 wp=0;
140 1 write_rom(Number,4);
141 1 mdelay(20);
142 1 Number=0;
143 1 read_rom(4);
144 1 P2=Number;
145 1 while(1);
146 1
147 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 310 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 1 ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -