📄 at24.lst
字号:
C51 COMPILER V8.02 AT24 07/17/2012 10:52:35 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE AT24
OBJECT MODULE PLACED IN AT24.OBJ
COMPILER INVOKED BY: D:\keil\C51\BIN\C51.EXE AT24.C BROWSE DEBUG OBJECTEXTEND
line level source
1 #include <reg51.h>
2 #define uchar unsigned char
3 #define uint unsigned int
4 bit write=0;
5 sbit seg1=P2^0;
6 sbit seg2=P2^1;
7 sbit scl=P2^6;
8 sbit sda=P2^7;
9 uchar sec,temp,aa;
10 uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
11 void delay()
12 {;;;}
13 void delayms(uint z)
14 {
15 1 uint i,j;
16 1 for(i=z;i>0;i--)
17 1 for(j=110;j>0;j--);
18 1 }
19 void start()
20 {
21 1 sda=1;
22 1 delay();
23 1 scl=1;
24 1 delay();
25 1 sda=0;
26 1 delay();
27 1 }
28 void stop()
29 {
30 1 sda=0;
31 1 delay();
32 1 scl=1;
33 1 delay();
34 1 sda=1;
35 1 delay();
36 1 }
37 void respons()
38 {
39 1 uchar x;
40 1 scl=1;
41 1 delay();
42 1 while((sda==1)&&(x<250))
43 1 x++;
44 1 scl=0;
45 1 delay();
46 1 }
47 void init()
48 { seg1=1;
49 1 seg2=1;
50 1 sda=1;
51 1 delay();
52 1 scl=1;
53 1 delay();
54 1 }
55 void write_byte(uchar date)
C51 COMPILER V8.02 AT24 07/17/2012 10:52:35 PAGE 2
56 {
57 1 uchar i,j;
58 1 j=date;
59 1 for(i=0;i<8;i++)
60 1 {
61 2 j=j<<1;
62 2 scl=0;
63 2 delay();
64 2 sda=CY;
65 2 delay();
66 2 scl=1;
67 2 delay();
68 2 }
69 1 scl=0;
70 1 delay();
71 1 sda=1;
72 1 delay();
73 1 }
74 uchar read_byte()
75 {
76 1 uchar i,k;
77 1 scl=0;
78 1 delay();
79 1 sda=1;
80 1 delay();
81 1 for(i=0;i<8;i++)
82 1 {
83 2 scl=1;
84 2 delay();
85 2 k=(k<<1)|sda;
86 2 scl=0;
87 2 delay();
88 2 }
89 1 return k;
90 1 }
91 void write_add(uchar address,uchar date)
92 {
93 1 start();
94 1 write_byte(0xa0);
95 1 respons();
96 1 write_byte(address);
97 1 respons();
98 1 write_byte(date);
99 1 respons();
100 1 stop();
101 1 }
102 uchar read_add(uchar address)
103 {
104 1 uchar date;
105 1 start();
106 1 write_byte(0xa0);
107 1 respons();
108 1 write_byte(address);
109 1 respons();
110 1 start();
111 1 write_byte(0xa1);
112 1 respons();
113 1 date=read_byte();
114 1 stop();
115 1 return date;
116 1 }
117 void display(uchar shi,uchar ge)
C51 COMPILER V8.02 AT24 07/17/2012 10:52:35 PAGE 3
118 {
119 1 P0=0xff;
120 1 seg1=0;
121 1 P0=table[shi];
122 1 delayms(5);
123 1 seg1=1;
124 1 P0=0xff;
125 1 seg2=0;
126 1 P0=table[ge];
127 1 delayms(5);
128 1 seg2=1;
129 1 }
130 void main()
131 {
132 1 init();
133 1 TMOD=0x01;
134 1 ET0=1;
135 1 EA=1;
136 1 TH0=(65536-50000)/256;
137 1 TL0=(65536-50000)%256;
138 1 TR0=1;
139 1 while(1)
140 1 {
141 2 display(sec/10,sec%10);
142 2 if (write==1)
143 2 {
144 3 write=0;
145 3 write_add(2,sec);
146 3 }
147 2 aa=read_add(2);
148 2 if(aa==100)
149 2 aa=0;
150 2 P1=aa;
151 2 }
152 1 }
153 void ser() interrupt 1
154 {
155 1
156 1 TH0=(65536-50000)/256;
157 1 TL0=(65536-50000)%256;
158 1 temp++;
159 1 if(temp==20)
160 1 {
161 2 temp=0;
162 2 sec++;
163 2 write=1;
164 2 if(sec==100)
165 2 sec=0;
166 2 }
167 1 }
168
169
170
171
172
173
174
175
176
177
178
179
C51 COMPILER V8.02 AT24 07/17/2012 10:52:35 PAGE 4
180
181
182
183
184
185
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 364 ----
CONSTANT SIZE = 10 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 3 1
IDATA SIZE = ---- ----
BIT SIZE = 1 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -