📄 jcsa89-01.lst
字号:
C51 COMPILER V7.09 JCSA89_01 08/18/2006 14:23:26 PAGE 1
C51 COMPILER V7.09, COMPILATION OF MODULE JCSA89_01
OBJECT MODULE PLACED IN JCSA89-01.OBJ
COMPILER INVOKED BY: C:\Keil\C51\Bin\c51.exe JCSA89-01.c DB OE SMALL ROM(LARGE)
line level source
1 #include <reg52.h>
2 #include <INTRINS.H>
3 sbit SDA=P1^6;
4 sbit SCL=P1^7;
5 sbit GO=P3^3;
6
7 void DelayXms(unsigned int i);
8 void I2CStart();
9 void I2CStop();
10 void I2CSent(unsigned char Data);
11 void ClearRAM();
12 void Initial();
13 void Display(unsigned char d);
14 void Wait();
15
16 void DelayXms(unsigned int i)
17 {
18 1 unsigned char a;
19 1 unsigned int b;
20 1 for(b=0;b<i;b++)
21 1 for(a=0;a<255;a++);
22 1 }
23
24 void I2CStart( void )
25 {
26 1 SDA=1;
27 1 _nop_();
28 1 SCL=1;
29 1 _nop_();
30 1 SDA=0;
31 1 _nop_();
32 1 SCL=0;
33 1 }
34
35 void I2CStop( void )
36 {
37 1 SDA=0;
38 1 _nop_();
39 1 SCL=1;
40 1 _nop_();
41 1 SDA=1;
42 1 }
43
44 void I2CSent(unsigned char Data)
45 {
46 1 unsigned char i,d;
47 1 bit ack;
48 1 SDA=1;
49 1 Resent:
50 1 d=Data;
51 1 for(i=0;i<8;i++)
52 1 {
53 2 if(d&0x80)
54 2 SDA=1;
55 2 else
C51 COMPILER V7.09 JCSA89_01 08/18/2006 14:23:26 PAGE 2
56 2 SDA=0;
57 2 d<<=1;
58 2 _nop_();
59 2 SCL=1;
60 2 _nop_();
61 2 SCL=0;
62 2 }
63 1 _nop_();
64 1 SDA=1;
65 1 _nop_();
66 1 SCL=1;
67 1 _nop_();
68 1 ack=SDA;
69 1 SCL=0;
70 1 _nop_();
71 1 if(ack==1)goto Resent;
72 1 }
73
74 void WriteData(unsigned char seg,unsigned char Data)
75 {
76 1 I2CStart();
77 1 I2CSent(0x70);
78 1 I2CSent(seg);
79 1 I2CSent(Data);
80 1 I2CStop();
81 1 }
82
83 void ClearRAM()
84 {
85 1 unsigned char i;
86 1 for(i=0;i<40;i++)
87 1 WriteData(i,0x00);
88 1 }
89
90 void Display(unsigned char d)
91 {
92 1 unsigned char i;
93 1 for(i=0;i<28;i++)
94 1 {
95 2 WriteData(i,d);
96 2 }
97 1 }
98
99 void Wait()
100 {
101 1 while(1)
102 1 {
103 2 if(GO==0)
104 2 {
105 3 DelayXms(500);
106 3 return;
107 3 }
108 2 }
109 1 }
110
111 void Initial()
112 {
113 1 I2CStart();
114 1 I2CSent(0x70);
115 1 I2CSent(0xe0); //Device select A0=A1=A2=0
116 1 I2CSent(0xc8); //Mode set
117 1 I2CSent(0xfE); //Bank select set
C51 COMPILER V7.09 JCSA89_01 08/18/2006 14:23:26 PAGE 3
118 1 I2CSent(0x00); //Data pointer address
119 1 I2CStop();
120 1 ClearRAM();
121 1 }
122
123
124
125 void main(void)
126 {
127 1 Initial();
128 1 while(1)
129 1 {
130 2 Display(0xff);
131 2 Wait();
132 2 Display(0x00);
133 2 Wait();
134 2 Display(0x55);
135 2 Wait();
136 2 Display(0xaa);
137 2 Wait();
138 2 }
139 1 }
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
C51 COMPILER V7.09 JCSA89_01 08/18/2006 14:23:26 PAGE 4
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 230 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
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 + -