📄 spird.ls1
字号:
A51 MACRO ASSEMBLER SPIRD 03/14/2006 11:16:11 PAGE 4
191 ; SOURCE LINE # 47
0019 BC8004 192 CJNE R4,#080H,?C0004
001C D292 193 SETB RF_MOSI
001E 8002 194 SJMP ?C0005
0020 195 ?C0004:
196 ; else RF_MOSI=0;
197 ; SOURCE LINE # 48
0020 C292 198 CLR RF_MOSI
0022 199 ?C0005:
200 ; RF_SCK=1;
201 ; SOURCE LINE # 49
0022 D291 202 SETB RF_SCK
203 ; SpiAddress=_crol_(SpiAddress,1);
204 ; SOURCE LINE # 50
0024 7801 205 MOV R0,#01H
0026 EF 206 MOV A,R7
0027 08 207 INC R0
0028 8001 208 SJMP ?C0025
002A 209 ?C0024:
002A 23 210 RL A
002B 211 ?C0025:
002B D8FD 212 DJNZ R0,?C0024
002D FF 213 MOV R7,A
214 ; RF_SCK=0;
215 ; SOURCE LINE # 51
002E C291 216 CLR RF_SCK
217 ; }
218 ; SOURCE LINE # 52
0030 0D 219 INC R5
0031 BD08E1 220 CJNE R5,#08H,?C0001
0034 221 ?C0002:
222 ; //Send SpiAddress;
223 ; //Receive data
224 ;
225 ; for (k=0;k<8;k++)
226 ; SOURCE LINE # 56
227 ;---- Variable 'k?042' assigned to Register 'R5' ----
0034 E4 228 CLR A
0035 FD 229 MOV R5,A
0036 230 ?C0006:
231 ; {
232 ; SOURCE LINE # 57
233 ; RF_SCK=1;
234 ; SOURCE LINE # 58
0036 D291 235 SETB RF_SCK
236 ; CY=RF_MISO;
237 ; SOURCE LINE # 59
0038 A293 238 MOV C,RF_MISO
239 ; if (CY) rdata+=1;
240 ; SOURCE LINE # 60
003A 30D701 241 JNB CY,?C0009
003D 0E 242 INC R6
003E 243 ?C0009:
244 ; rdata=_crol_(rdata,1);
245 ; SOURCE LINE # 61
003E 7801 246 MOV R0,#01H
0040 AF06 247 MOV R7,AR6
0042 EF 248 MOV A,R7
0043 08 249 INC R0
0044 8001 250 SJMP ?C0027
0046 251 ?C0026:
0046 23 252 RL A
0047 253 ?C0027:
0047 D8FD 254 DJNZ R0,?C0026
0049 FE 255 MOV R6,A
256 ; RF_SCK=0;
A51 MACRO ASSEMBLER SPIRD 03/14/2006 11:16:11 PAGE 5
257 ; SOURCE LINE # 62
004A C291 258 CLR RF_SCK
259 ; _nop_();
260 ; SOURCE LINE # 63
004C 00 261 NOP
262 ; }
263 ; SOURCE LINE # 64
004D 0D 264 INC R5
004E BD08E5 265 CJNE R5,#08H,?C0006
0051 266 ?C0007:
267 ;
268 ;
269 ; RF_NSS=1;
270 ; SOURCE LINE # 67
0051 D294 271 SETB RF_NSS
272 ; CY=0;
273 ; SOURCE LINE # 68
0053 C2D7 274 CLR CY
275 ; return(rdata);
276 ; SOURCE LINE # 69
0055 AF06 277 MOV R7,AR6
278 ; }
279 ; SOURCE LINE # 70
0057 280 ?C0010:
0057 22 281 RET
282 ; END OF _SPIRead
283
284 ; /****************************************************************/
285 ; /*名称: SPIWrite */
286 ; /*功能: 该函数根据给定的地址写入FM1702SL的寄存器*/
287 ; /*输入: 寄存器地址<SpiAddress>,要写入的字节数<WriteCount> */
288 ; /*输出: N/A*/
289 ; /****************************************************************/
290 ; void SPIWrite(unsigned char idata SpiAddress,unsigned char idata SpiData)
291
---- 292 RSEG ?PR?_SPIWrite?SPIRD
0000 293 _SPIWrite:
294 USING 0
295 ; SOURCE LINE # 77
296 ;---- Variable 'temp?149' assigned to Register 'R6' ----
297 ;---- Variable 'SpiAddress?145' assigned to Register 'R7' ----
298 ;---- Variable 'SpiData?146' assigned to Register 'R5' ----
299 ; {
300 ; SOURCE LINE # 78
301 ; unsigned char data i,k,temp;
302 ;
303 ; // temp=SpiAddress&0xc0;
304 ; // if (temp!=0)
305 ; // {
306 ; // CY=1;
307 ; // return;
308 ; // }
309 ; SpiAddress=_crol_(SpiAddress,1);
310 ; SOURCE LINE # 87
0000 7801 311 MOV R0,#01H
0002 EF 312 MOV A,R7
0003 08 313 INC R0
0004 8001 314 SJMP ?C0029
0006 315 ?C0028:
0006 23 316 RL A
0007 317 ?C0029:
0007 D8FD 318 DJNZ R0,?C0028
0009 FF 319 MOV R7,A
320 ; SpiAddress=SpiAddress &0x7e;
321 ; SOURCE LINE # 88
000A 53077E 322 ANL AR7,#07EH
A51 MACRO ASSEMBLER SPIRD 03/14/2006 11:16:11 PAGE 6
323 ; RF_SCK=0;
324 ; SOURCE LINE # 89
000D C291 325 CLR RF_SCK
326 ; RF_NSS=0;
327 ; SOURCE LINE # 90
000F C294 328 CLR RF_NSS
329 ;
330 ; //Send SpiAddress
331 ; for (i=0;i<8;i++)
332 ; SOURCE LINE # 93
333 ;---- Variable 'i?147' assigned to Register 'R4' ----
0011 E4 334 CLR A
0012 FC 335 MOV R4,A
0013 336 ?C0011:
337 ; {
338 ; SOURCE LINE # 94
339 ; temp=SpiAddress&0x80;
340 ; SOURCE LINE # 95
0013 EF 341 MOV A,R7
0014 5480 342 ANL A,#080H
0016 FE 343 MOV R6,A
344 ; if (temp==0x80) RF_MOSI=1;
345 ; SOURCE LINE # 96
0017 BE8004 346 CJNE R6,#080H,?C0014
001A D292 347 SETB RF_MOSI
001C 8002 348 SJMP ?C0015
001E 349 ?C0014:
350 ; else RF_MOSI=0;
351 ; SOURCE LINE # 97
001E C292 352 CLR RF_MOSI
0020 353 ?C0015:
354 ; RF_SCK=1;
355 ; SOURCE LINE # 98
0020 D291 356 SETB RF_SCK
357 ; SpiAddress=_crol_(SpiAddress,1);
358 ; SOURCE LINE # 99
0022 7801 359 MOV R0,#01H
0024 EF 360 MOV A,R7
0025 08 361 INC R0
0026 8001 362 SJMP ?C0031
0028 363 ?C0030:
0028 23 364 RL A
0029 365 ?C0031:
0029 D8FD 366 DJNZ R0,?C0030
002B FF 367 MOV R7,A
368 ; RF_SCK=0;
369 ; SOURCE LINE # 100
002C C291 370 CLR RF_SCK
371 ; }
372 ; SOURCE LINE # 101
002E 0C 373 INC R4
002F BC08E1 374 CJNE R4,#08H,?C0011
0032 375 ?C0012:
376 ; //Send SpiAddress
377 ; // Send data;
378 ;
379 ; for(k=0;k<8;k++)
380 ; SOURCE LINE # 105
381 ;---- Variable 'k?148' assigned to Register 'R4' ----
0032 E4 382 CLR A
0033 FC 383 MOV R4,A
0034 384 ?C0016:
385 ; {
386 ; SOURCE LINE # 106
387 ; temp=SpiData&0x80;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -