📄 ads1100.lst
字号:
C51 COMPILER V7.06 ADS1100 04/09/2005 13:15:55 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE ADS1100
OBJECT MODULE PLACED IN ads1100.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE ads1100.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #define ADS1100_C
2 #include "common.h"
3 #include "ads1100.h"
4 #include "intrins.h"
5 #include "stdio.h"
6 #include "system.h"
7
8 #define nops(); _nop_(); _nop_(); _nop_(); _nop_();
9
10 void startads1100()
11 {
12 1 EA = 0;
13 1 ADS1100_SDA = 1;
14 1 ADS1100_SCL = 1;
15 1 nops();
16 1 ADS1100_SDA = 0;
17 1 nops();
18 1 ADS1100_SCL = 0;
19 1 EA = 1;
20 1 }
21
22 void stopads1100()
23 {
24 1 EA = 0;
25 1 ADS1100_SCL = 0;
26 1 ADS1100_SDA = 0;
27 1 ADS1100_SCL = 1;
28 1 nops();
29 1 ADS1100_SDA = 1;
30 1 nops();
31 1 ADS1100_SCL = 0;
32 1 EA = 1;
33 1 }
34
35 void ackads1100()
36 {
37 1 EA = 0;
38 1 ADS1100_SCL = 0;
39 1 ADS1100_SDA = 0;
40 1 nops();
41 1 ADS1100_SCL = 1;
42 1 nops();
43 1 ADS1100_SCL = 0;
44 1 nops();
45 1 EA = 1;
46 1 }
47 /*
48 void noackads1100()
49 {
50 ADS1100_SDA = 1;
51 nops();
52 ADS1100_SCL = 0;
53 nops();
54 ADS1100_SCL = 1;
55 nops();
C51 COMPILER V7.06 ADS1100 04/09/2005 13:15:55 PAGE 2
56 ADS1100_SCL = 0;
57 nops();
58 }
59 */
60 uchar waitackads1100()
61 {
62 1 uchar i=255;
63 1
64 1 EA = 0;
65 1 ADS1100_SDA = 1;
66 1 while(i--)
67 1 {
68 2 nops();
69 2 if(ADS1100_SDA == 0)
70 2 {
71 3 ADS1100_SCL = 0;
72 3 nops();
73 3 ADS1100_SCL = 1;
74 3 nops();
75 3 ADS1100_SCL = 0;
76 3 nops();
77 3 return 1;
78 3 }
79 2 }
80 1
81 1 stopads1100();
82 1 EA = 1;
83 1
84 1 return 0;
85 1 }
86
87 void clockoutads1100(uchar dat)
88 {
89 1 uchar i;
90 1
91 1 EA = 0;
92 1
93 1 for(i=0;i<8;i++)
94 1 {
95 2 ADS1100_SCL = 0;
96 2 nops();
97 2
98 2 if(dat &0x80)
99 2 ADS1100_SDA = 1;
100 2 else
101 2 ADS1100_SDA = 0;
102 2 dat <<= 1;
103 2
104 2 ADS1100_SCL = 1;
105 2 nops();
106 2
107 2 ADS1100_SCL = 0;
108 2 nops();
109 2 }
110 1
111 1 EA = 1;
112 1 }
113
114 uchar clockinads1100()
115 {
116 1 uchar i;
117 1 uchar c = 0;
C51 COMPILER V7.06 ADS1100 04/09/2005 13:15:55 PAGE 3
118 1 EA = 0;
119 1
120 1 for(i=0;i<8;i++)
121 1 {
122 2 c <<= 1;
123 2
124 2 ADS1100_SCL = 0;
125 2 nops();
126 2
127 2 ADS1100_SCL = 1;
128 2 nops();
129 2
130 2 ADS1100_SDA = 1;
131 2 if(ADS1100_SDA == 1)
132 2 c |= 0x01;
133 2
134 2 ADS1100_SCL = 0;
135 2 nops();
136 2 }
137 1
138 1 EA = 1;
139 1
140 1 return c;
141 1 }
142
143 uchar readads1100(ushort *pdat)
144 {
145 1 uchar c1,c2;
146 1
147 1 EA = 0;
148 1
149 1 startads1100();
150 1
151 1 //device address
152 1 clockoutads1100(0x9f);
153 1 if(!waitackads1100()) return 0;
154 1
155 1 //read data
156 1 c1 = clockinads1100();
157 1 ackads1100();
158 1 c2 = clockinads1100();
159 1 ackads1100();
160 1
161 1 stopads1100();
162 1
163 1 *pdat = c1*256+c2;
164 1
165 1 EA = 1;
166 1
167 1 return 1;
168 1 }
169
170 /*
171 uchar readads1100(uchar addr,uchar *pdat)
172 {
173 uchar c;
174
175 startads1100();
176
177 //device address
178 c = 0x9e;
179 clockoutads1100(c);
C51 COMPILER V7.06 ADS1100 04/09/2005 13:15:55 PAGE 4
180 if(!waitackads1100()) return 0;
181
182 //memory address
183 c = addr;
184 clockoutads1100(c);
185 if(!waitackads1100()) return 0;
186
187 startads1100();
188
189 //device address
190 c = 0x9f;
191 clockoutads1100(c);
192 if(!waitackads1100()) return 0;
193
194 //read data
195 *pdat = clockinads1100();
196
197 noackads1100();
198
199 stopads1100();
200
201 return 1;
202 }
203 */
204 uchar writeads1100(uchar dat)
205 {
206 1 EA = 0;
207 1
208 1 startads1100();
209 1
210 1 //device address
211 1 clockoutads1100(0x9e);
212 1 if(!waitackads1100()) return 0;
213 1
214 1 //memory address
215 1 // c = addr;
216 1 // clockoutads1100(c);
217 1 // if(!waitackads1100()) return 0;
218 1
219 1 //write data
220 1 clockoutads1100(dat);
221 1 if(!waitackads1100()) return 0;
222 1
223 1 stopads1100();
224 1
225 1 EA = 1;
226 1
227 1 return 1;
228 1 }
229
230 uchar resetads1100()
231 {
232 1 EA = 0;
233 1
234 1 startads1100();
235 1
236 1 //device address
237 1 clockoutads1100(0x00);
238 1 if(!waitackads1100()) return 0;
239 1
240 1 //write data
241 1 clockoutads1100(0x06);
C51 COMPILER V7.06 ADS1100 04/09/2005 13:15:55 PAGE 5
242 1 if(!waitackads1100()) return 0;
243 1
244 1 stopads1100();
245 1
246 1 EA = 1;
247 1
248 1 return 1;
249 1 }
250
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 337 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
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 + -