📄 spi.ls
字号:
1 ; C Compiler for ST7 (COSMIC Software)
2 ; Generator V4.4a - 17 Dec 2001
3 ; Optimizer V4.2g - 21 Dec 2001
35 ; 55 void SPI_Init(void)
35 ; 56 {
36 .text: section .text,new
37 0000 _SPI_Init:
40 ; 57 SPICR = 0x20; // cpol 0
42 0000 a620 ld a,#32
43 0002 b700 ld _SPICR,a
44 ; 61 SPICSR = 0x03; // ssm ssi
46 0004 a603 ld a,#3
47 0006 b700 ld _SPICSR,a
48 ; 63 SetBit(SPICR,4); // master mode
50 0008 1800 bset _SPICR,#4
51 ; 64 }
54 000a 81 ret
79 ; 78 BOOL Chk_WP_Bit(void)
79 ; 79 {
80 .text: section .text,new
81 0000 _Chk_WP_Bit:
84 ; 80 SetBit(SPICR,6); // spi enable
86 0000 1c00 bset _SPICR,#6
87 ; 82 BitClr(Select);
89 0002 b603 ld a,3
90 0004 a4fe and a,#254
91 0006 b703 ld 3,a
92 ; 84 while(!ValBit(SPICSR,7));
95 0008 a605 ld a,#5
96 000a b700 ld _SPIDR,a
98 000c L53:
101 000c 0f00fd btjf _SPICSR,#7,L53
102 ; 86 while(!ValBit(SPICSR,7));
105 000f a605 ld a,#5
106 0011 b700 ld _SPIDR,a
108 0013 L54:
111 0013 0f00fd btjf _SPICSR,#7,L54
112 ; 87 BitSet(Select);
114 0016 b603 ld a,3
115 0018 aa01 or a,#1
116 001a b703 ld 3,a
117 ; 88 ClrBit(SPICR,6); // spi disable
119 001c 1d00 bres _SPICR,#6
120 ; 90 if (ValBit(SPIDR,0)) return(TRUE);
122 001e 010003 btjf _SPIDR,#0,L15
125 0021 a601 ld a,#1
128 0023 81 ret
129 0024 L15:
130 ; 91 else return(FALSE);
132 0024 4f clr a
135 0025 81 ret
180 ; 106 u8 Read_EEPROM(u8 add)
180 ; 107 {
181 .text: section .text,new
183 xref.b _Read_EEPROM$L
184 0000 _Read_EEPROM:
186 0000 b700 ld _Read_EEPROM$L,a
188 ; 110 SetBit(SPICR,6); // spi enable
190 0002 1c00 bset _SPICR,#6
191 ; 112 BitClr(Select);
193 0004 b603 ld a,3
194 0006 a4fe and a,#254
195 0008 b703 ld 3,a
196 ; 114 while(!ValBit(SPICSR,7));
199 000a a603 ld a,#3
200 000c b700 ld _SPIDR,a
202 000e L301:
205 000e 0f00fd btjf _SPICSR,#7,L301
206 ; 116 while(!ValBit(SPICSR,7));
209 0011 b600 ld a,_Read_EEPROM$L
210 0013 b700 ld _SPIDR,a
212 0015 L311:
215 0015 0f00fd btjf _SPICSR,#7,L311
216 ; 118 while(!ValBit(SPICSR,7));
219 0018 b700 ld _SPIDR,a
221 001a L321:
224 001a 0f00fd btjf _SPICSR,#7,L321
225 ; 119 data = SPIDR;
227 001d b600 ld a,_SPIDR
228 001f b7ff ld _Read_EEPROM$L-1,a
229 ; 120 BitSet(Select);
231 0021 b603 ld a,3
232 0023 aa01 or a,#1
233 0025 b703 ld 3,a
234 ; 121 ClrBit(SPICR,6); // spi disable
236 0027 1d00 bres _SPICR,#6
237 ; 123 return (data);
239 0029 b6ff ld a,_Read_EEPROM$L-1
242 002b 81 ret
288 ; 138 void Send_EEPROM(u8 add, u8 data)
288 ; 139 {
289 .text: section .text,new
291 xref.b _Send_EEPROM$L
292 0000 _Send_EEPROM:
294 0000 b700 ld _Send_EEPROM$L,a
296 ; 140 SetBit(SPICR,6); // spi enable
298 0002 1c00 bset _SPICR,#6
299 ; 142 BitClr(Select);
301 0004 b603 ld a,3
302 0006 a4fe and a,#254
303 0008 b703 ld 3,a
304 ; 144 while(!ValBit(SPICSR,7));
307 000a a606 ld a,#6
308 000c b700 ld _SPIDR,a
310 000e L551:
313 000e 0f00fd btjf _SPICSR,#7,L551
314 ; 145 SPIDR;
316 0011 b600 ld a,_SPIDR
317 ; 146 BitSet(Select);
319 0013 b603 ld a,3
320 ; 148 Nop();
323 0015 9d nop
325 ; 150 BitClr(Select);
328 0016 a4fe and a,#254
329 0018 b703 ld 3,a
330 ; 152 while(!ValBit(SPICSR,7));
333 001a a602 ld a,#2
334 001c b700 ld _SPIDR,a
336 001e L561:
339 001e 0f00fd btjf _SPICSR,#7,L561
340 ; 154 while(!ValBit(SPICSR,7));
343 0021 b600 ld a,_Send_EEPROM$L
344 0023 b700 ld _SPIDR,a
346 0025 L571:
349 0025 0f00fd btjf _SPICSR,#7,L571
350 ; 156 while(!ValBit(SPICSR,7));
353 0028 b601 ld a,_Send_EEPROM$L+1
354 002a b700 ld _SPIDR,a
356 002c L502:
359 002c 0f00fd btjf _SPICSR,#7,L502
360 ; 157 SPIDR;
362 002f b600 ld a,_SPIDR
363 ; 158 BitSet(Select);
365 0031 b603 ld a,3
366 0033 aa01 or a,#1
367 0035 b703 ld 3,a
368 ; 160 ClrBit(SPICR,6); // spi disable
370 0037 1d00 bres _SPICR,#6
371 ; 161 }
374 0039 81 ret
386 xdef _Send_EEPROM
387 xdef _Read_EEPROM
388 xdef _SPI_Init
389 xdef _Chk_WP_Bit
390 xref.b _SPICSR
391 xref.b _SPICR
392 xref.b _SPIDR
411 end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -