📄 mdfan.lst
字号:
254 000009
255 000009 ;---------------------------DigiTable Definition---------------------
256 000010 ORG 10h
257 000010 Freq_Agil_Table:
258 000010 0002(1) DW 2,27,52,7,32,57,12,37,62,17,42,67,22,47,72
259 000011 001B(1)
260 000012 0034(1)
261 000013 0007(1)
262 000014 0020(1)
263 000015 0039(1)
264 000016 000C(1)
265 000017 0025(1)
266 000018 003E(1)
267 000019 0011(1)
268 00001A 002A(1)
269 00001B 0043(1)
270 00001C 0016(1)
271 00001D 002F(1)
272 00001E 0048(1)
273 00001F
274 00001F ;--------------------------------------------------------------------
275 00001F INCLUDE EEPROM24C02.ASM
276 00001F ;*******************************************************
277 00001F ;below is programmed by Wang WenCheng,modified by Figo
278 00001F ;==========================================
279 00001F ;------------I2C 24C02--------
280 00001F ;*****************************************************************
281 00001F ;Function:Save_AccessCode
282 00001F ;Description:Write Access Code to EEPROM via I2C bus.
283 00001F ;input:local_access_code0,local_access_code1
284 00001F ;output:none
285 00001F ;*****************************************************************
286 00001F Save_AccessCode:
287 00001F SaveData:
288 00001F 421A(1) bclr I2Csave
289 000020 2B1D(1) clr ErrorCount
290 000021 SaveData_loop:
291 000021 511A(1+S) bts0 I2CjoinErrorFlag
292 000022 0E00(2) ret
293 000023 clrwdt
294 000023 2D5A(1) MOV A, #5AH
295 000024 1FCC(1) MOV WDTR, A
296 000025 C0C5(2) call I2Cstart ;Start
297 000026 C0DC(2) call I2Cout1 ;Device address
298 000027 C0E7(2) call I2Cout0
299 000028 C0DC(2) call I2Cout1
300 000029 C0E7(2) call I2Cout0
301 00002A C0E7(2) call I2Cout0
302 00002B C0E7(2) call I2Cout0
303 00002C C0E7(2) call I2Cout0
304 00002D C0E7(2) call I2Cout0 ;R/W
305 00002E
306 00002E C0F2(2) call I2CwaitAck ;wait ACK
307 00002F 581A(1+S) bts1 I2CackFlag
308 000030 8067(2) jmp SaveDataError
309 000031
310 000031 C0E7(2) call I2Cout0 ;Word address
311 000032 C0E7(2) call I2Cout0
312 000033 C0E7(2) call I2Cout0
313 000034 C0E7(2) call I2Cout0
314 000035 C0E7(2) call I2Cout0
315 000036 C0E7(2) call I2Cout0
316 000037 C0E7(2) call I2Cout0
317 000038 C0E7(2) call I2Cout0
318 000039
319 000039 C0F2(2) call I2CwaitAck ;wait ACK
320 00003A 581A(1+S) bts1 I2CackFlag
321 00003B 8067(2) jmp SaveDataError
322 00003C
323 00003C 1E08(1) mov A, local_access_code0 ;DigiHigh--by Figo
324 00003D 1F1B(1) mov DataBuffer,A
325 00003E C0FE(2) call I2CwriteBit ;Write Data
326 00003F C0FE(2) call I2CwriteBit
327 000040 C0FE(2) call I2CwriteBit
328 000041 C0FE(2) call I2CwriteBit
329 000042 C0FE(2) call I2CwriteBit
330 000043 C0FE(2) call I2CwriteBit
331 000044 C0FE(2) call I2CwriteBit
332 000045 C0FE(2) call I2CwriteBit
333 000046
334 000046 C0F2(2) call I2CwaitAck ;wait ACK
335 000047 581A(1+S) bts1 I2CackFlag
336 000048 8067(2) jmp SaveDataError
337 000049
338 000049 1E09(1) mov A, local_access_code1 ;DigiLow--by Figo
339 00004A 1F1B(1) mov DataBuffer,A
340 00004B C0FE(2) call I2CwriteBit ;Write Data
341 00004C C0FE(2) call I2CwriteBit
342 00004D C0FE(2) call I2CwriteBit
343 00004E C0FE(2) call I2CwriteBit
344 00004F C0FE(2) call I2CwriteBit
345 000050 C0FE(2) call I2CwriteBit
346 000051 C0FE(2) call I2CwriteBit
347 000052 C0FE(2) call I2CwriteBit
348 000053
349 000053 C0F2(2) call I2CwaitAck ;wait ACK
350 000054 581A(1+S) bts1 I2CackFlag
351 000055 8067(2) jmp SaveDataError
352 000056
353 000056 1E0A(1) mov A, local_access_code2 ;WorkingState--by Figo
354 000057 1F1B(1) mov DataBuffer,A
355 000058 C0FE(2) call I2CwriteBit ;Write Data
356 000059 C0FE(2) call I2CwriteBit
357 00005A C0FE(2) call I2CwriteBit
358 00005B C0FE(2) call I2CwriteBit
359 00005C C0FE(2) call I2CwriteBit
360 00005D C0FE(2) call I2CwriteBit
361 00005E C0FE(2) call I2CwriteBit
362 00005F C0FE(2) call I2CwriteBit
363 000060
364 000060 C0F2(2) call I2CwaitAck ;wait ACK
365 000061 581A(1+S) bts1 I2CackFlag
366 000062 8067(2) jmp SaveDataError
367 000063
368 000063 C0D1(2) call I2Cstop ;Stop
369 000064 clrwdt
370 000064 2D5A(1) MOV A, #5AH
371 000065 1FCC(1) MOV WDTR, A
372 000066 0E00(2) ret
373 000067
374 000067 SaveDataError:
375 000067 161D(1+S) incms ErrorCount
376 000068 0000(1) nop
377 000069 2D0A(1) mov A,#10
378 00006A 221D(1) sub A,ErrorCount
379 00006B 5A86(1+S) bts1 FC
380 00006C 491A(1) bset I2CjoinErrorFlag
381 00006D 8021(2) jmp SaveData_loop
382 00006E
383 00006E ;*****************************************************************
384 00006E ;Function:Load_AccessCode
385 00006E ;Description:Read Access Code from EEPROM via I2C bus.
386 00006E ;input:none
387 00006E ;output:local_access_code0,local_access_code1
388 00006E ;*****************************************************************
389 00006E Load_AccessCode:
390 00006E ReloadData:
391 00006E 2B1D(1) clr ErrorCount
392 00006F ReloadData_Loop:
393 00006F 511A(1+S) bts0 I2CjoinErrorFlag
394 000070 0E00(2) ret
395 000071 clrwdt
396 000071 2D5A(1) MOV A, #5AH
397 000072 1FCC(1) MOV WDTR, A
398 000073 C0C5(2) call I2Cstart ;Start
399 000074 C0DC(2) call I2Cout1 ;Device address
400 000075 C0E7(2) call I2Cout0
401 000076 C0DC(2) call I2Cout1
402 000077 C0E7(2) call I2Cout0
403 000078 C0E7(2) call I2Cout0
404 000079 C0E7(2) call I2Cout0
405 00007A C0E7(2) call I2Cout0
406 00007B C0E7(2) call I2Cout0 ;R/W
407 00007C
408 00007C C0F2(2) call I2CwaitAck ;wait ACK
409 00007D 581A(1+S) bts1 I2CackFlag
410 00007E 80BE(2) jmp ReloadDataError
411 00007F 2B1D(1) clr ErrorCount
412 000080
413 000080 C0E7(2) call I2Cout0 ;Word address
414 000081 C0E7(2) call I2Cout0
415 000082 C0E7(2) call I2Cout0
416 000083 C0E7(2) call I2Cout0
417 000084 C0E7(2) call I2Cout0
418 000085 C0E7(2) call I2Cout0
419 000086 C0E7(2) call I2Cout0
420 000087 C0E7(2) call I2Cout0
421 000088
422 000088 C0F2(2) call I2CwaitAck ;wait ACK
423 000089 581A(1+S) bts1 I2CackFlag
424 00008A 80BE(2) jmp ReloadDataError
425 00008B 2B1D(1) clr ErrorCount
426 00008C
427 00008C C0C5(2) call I2Cstart
428 00008D C0DC(2) call I2Cout1 ;Device address
429 00008E C0E7(2) call I2Cout0
430 00008F C0DC(2) call I2Cout1
431 000090 C0E7(2) call I2Cout0
432 000091 C0E7(2) call I2Cout0
433 000092 C0E7(2) call I2Cout0
434 000093 C0E7(2) call I2Cout0
435 000094 C0DC(2) call I2Cout1 ;R/W
436 000095
437 000095 C0F2(2) call I2CwaitAck ;wait ACK
438 000096 581A(1+S) bts1 I2CackFlag
439 000097 80BE(2) jmp ReloadDataError
440 000098 2B1D(1) clr ErrorCount
441 000099
442 000099 C10C(2) call I2CreadBit ;Read Data
443 00009A C10C(2) call I2CreadBit
444 00009B C10C(2) call I2CreadBit
445 00009C C10C(2) call I2CreadBit
446 00009D C10C(2) call I2CreadBit
447 00009E C10C(2) call I2CreadBit
448 00009F C10C(2) call I2CreadBit
449 0000A0 C10C(2) call I2CreadBit
450 0000A1
451 0000A1 1E1B(1) mov A,DataBuffer
452 0000A2 1F08(1) mov local_access_code0,A ;DigiHigh--by Figo
453 0000A3 C0E7(2) call I2Cout0 ;out ACK
454 0000A4
455 0000A4 C10C(2) call I2CreadBit ;Read Data
456 0000A5 C10C(2) call I2CreadBit
457 0000A6 C10C(2) call I2CreadBit
458 0000A7 C10C(2) call I2CreadBit
459 0000A8 C10C(2) call I2CreadBit
460 0000A9 C10C(2) call I2CreadBit
461 0000AA C10C(2) call I2CreadBit
462 0000AB C10C(2) call I2CreadBit
463 0000AC
464 0000AC 1E1B(1) mov A,DataBuffer
465 0000AD 1F09(1) mov local_access_code1,A ;DigiLow--by Figo
466 0000AE C0E7(2) call I2Cout0 ;out ACK
467 0000AF
468 0000AF C10C(2) call I2CreadBit ;Read Data
469 0000B0 C10C(2) call I2CreadBit
470 0000B1 C10C(2) call I2CreadBit
471 0000B2 C10C(2) call I2CreadBit
472 0000B3 C10C(2) call I2CreadBit
473 0000B4 C10C(2) call I2CreadBit
474 0000B5 C10C(2) call I2CreadBit
475 0000B6 C10C(2) call I2CreadBit
476 0000B7 1E1B(1) mov A,DataBuffer
477 0000B8 1F0A(1) mov local_access_code2,A ;WorkingState--by Figo
478 0000B9 C0DC(2) call I2Cout1 ;out NACK
479 0000BA
480 0000BA C0D1(2) call I2Cstop ;Stop
481 0000BB clrwdt
482 0000BB 2D5A(1) MOV A, #5AH
483 0000BC 1FCC(1) MOV WDTR, A
484 0000BD 0E00(2) ret
485 0000BE
486 0000BE ReloadDataError:
487 0000BE 161D(1+S) incms ErrorCount
488 0000BF 0000(1) nop
489 0000C0 2D0A(1) mov A,#10
490 0000C1 221D(1) sub A,ErrorCount
491 0000C2 5A86(1+S) bts1 FC
492 0000C3 491A(1) bset I2CjoinErrorFlag
493 0000C4 806F(2) jmp ReloadData_Loop
494 0000C5 ;==========================================================
495 0000C5 I2Cstart:
496 0000C5 4BC1(1) bset SDA_IoSet ;set IO_SDA is Output port
497 0000C6 4BD1(1) bset SDA
498 0000C7 4AC1(1) bset SCL_IoSet ;set IO_SCL is Output port
499 0000C8 4AD1(1) bset SCL
500 0000C9 C11B(2) call Delay5us
501 0000CA C11B(2) call Delay5us
502 0000CB 43D1(1) bclr SDA
503 0000CC C11B(2) call Delay5us
504 0000CD C11B(2) call Delay5us
505 0000CE 42D1(1) bclr SCL
506 0000CF C11B(2) call Delay5us
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -