ds1302.lst

来自「AT89C51开发例程 protues仿真 keil编程」· LST 代码 · 共 1,311 行 · 第 1/4 页

LST
1,311
字号
 357               	.LM54:
 358 016c E92F      		mov r30,r25
 359 016e FF27      		clr r31
 360 0170 EF70      		andi r30,lo8(15)
 361 0172 F070      		andi r31,hi8(15)
 362 0174 E20F      		add r30,r18
 363 0176 F31F      		adc r31,r19
 364 0178 8081      		ld r24,Z
 365 017a 8093 0000 		sts dsp+5,r24
 366               	/* epilogue: frame size=0 */
 367 017e 0895      		ret
 368               	/* epilogue end (size=1) */
 369               	/* function bcd_change size 63 (62) */
 370               	.LFE10:
 372               	.global	reflash
 374               	reflash:
 375               	.LFB11:
 376               	.LM55:
 377               	/* prologue: frame size=0 */
 378               	/* prologue end (size=0) */
 379               	.LM56:
 380 0180 8FEF      		ldi r24,lo8(-1)
 381 0182 87BB      		out 55-0x20,r24
 382               	.LM57:
 383 0184 84BB      		out 52-0x20,r24
 384               	.LM58:
 385 0186 70E0      		ldi r23,lo8(0)
 386               	.LM59:
 387 0188 972F      		mov r25,r23
 388 018a E0E0      		ldi r30,lo8(dsp)
 389 018c F0E0      		ldi r31,hi8(dsp)
 390               	.L40:
 391               	.LM60:
 392 018e 8191      		ld r24,Z+
 393 0190 803C      		cpi r24,lo8(-64)
 394 0192 11F0      		breq .L38
 395               	.LM61:
 396 0194 792F      		mov r23,r25
 397               	.LM62:
 398 0196 03C0      		rjmp .L37
 399               	.L38:
 400               	.LM63:
 401 0198 9F5F      		subi r25,lo8(-(1))
 402 019a 9630      		cpi r25,lo8(6)
 403 019c C0F3      		brlo .L40
 404               	.L37:
 405               	.LM64:
 406 019e 9530      		cpi r25,lo8(5)
 407 01a0 09F4      		brne .L41
 408               	.LM65:
 409 01a2 76E0      		ldi r23,lo8(6)
 410               	.L41:
 411               	.LM66:
 412 01a4 8091 0000 		lds r24,dsp_state
 413 01a8 8823      		tst r24
 414 01aa 99F4      		brne .L42
 415 01ac E0E0      		ldi r30,lo8(dsp)
 416 01ae F0E0      		ldi r31,hi8(dsp)
 417 01b0 95E0      		ldi r25,lo8(5)
 418               	.L46:
 419               	.LM67:
 420 01b2 8081      		ld r24,Z
 421 01b4 8068      		ori r24,lo8(-128)
 422 01b6 8193      		st Z+,r24
 423               	.LM68:
 424 01b8 9150      		subi r25,lo8(-(-1))
 425 01ba 97FF      		sbrs r25,7
 426 01bc FACF      		rjmp .L46
 427               	.LM69:
 428 01be 8091 0000 		lds r24,modify_bit
 429 01c2 E82F      		mov r30,r24
 430 01c4 FF27      		clr r31
 431 01c6 E050      		subi r30,lo8(-(dsp))
 432 01c8 F040      		sbci r31,hi8(-(dsp))
 433 01ca 8081      		ld r24,Z
 434 01cc 8F77      		andi r24,lo8(127)
 435 01ce 8083      		st Z,r24
 436 01d0 2FC0      		rjmp .L51
 437               	.L42:
 438               	.LM70:
 439 01d2 8130      		cpi r24,lo8(1)
 440 01d4 E1F4      		brne .L47
 441               	.LM71:
 442 01d6 8091 0000 		lds r24,time_dog
 443 01da 8F5F      		subi r24,lo8(-(1))
 444 01dc 8093 0000 		sts time_dog,r24
 445               	.LM72:
 446 01e0 8E31      		cpi r24,lo8(30)
 447 01e2 50F4      		brsh .L48
 448               	.LM73:
 449 01e4 8091 0000 		lds r24,dsp+1
 450 01e8 8F77      		andi r24,lo8(127)
 451 01ea 8093 0000 		sts dsp+1,r24
 452               	.LM74:
 453 01ee 8091 0000 		lds r24,dsp+3
 454 01f2 8F77      		andi r24,lo8(127)
 455 01f4 8093 0000 		sts dsp+3,r24
 456               	.L48:
 457               	.LM75:
 458 01f8 9091 0000 		lds r25,dsp+5
 459 01fc 8091 0000 		lds r24,dog_none
 460 0200 9817      		cp r25,r24
 461 0202 B1F0      		breq .L51
 462               	.LM76:
 463 0204 9093 0000 		sts dog_none,r25
 464               	.LM77:
 465 0208 1092 0000 		sts time_dog,__zero_reg__
 466 020c 11C0      		rjmp .L51
 467               	.L47:
 468               	.LM78:
 469 020e 8330      		cpi r24,lo8(3)
 470 0210 61F4      		brne .L50
 471               	.LM79:
 472 0212 70E0      		ldi r23,lo8(0)
 473               	.LM80:
 474 0214 8091 0000 		lds r24,dsp+1
 475 0218 8F77      		andi r24,lo8(127)
 476 021a 8093 0000 		sts dsp+1,r24
 477               	.LM81:
 478 021e 8091 0000 		lds r24,dsp+3
 479 0222 8F77      		andi r24,lo8(127)
 480 0224 8093 0000 		sts dsp+3,r24
 481 0228 03C0      		rjmp .L51
 482               	.L50:
 483               	.LM82:
 484 022a 8230      		cpi r24,lo8(2)
 485 022c 09F4      		brne .L51
 486               	.LM83:
 487 022e 75E0      		ldi r23,lo8(5)
 488               	.L51:
 489 0230 61E0      		ldi r22,lo8(1)
 490               	.L66:
 491               	.LM84:
 492 0232 7630      		cpi r23,lo8(6)
 493 0234 B8F4      		brsh .L73
 494 0236 24EF      		ldi r18,lo8(500)
 495 0238 31E0      		ldi r19,hi8(500)
 496 023a 40E0      		ldi r20,hlo8(500)
 497 023c 50E0      		ldi r21,hhi8(500)
 498 023e 872F      		mov r24,r23
 499 0240 9927      		clr r25
 500 0242 DC01      		movw r26,r24
 501 0244 A050      		subi r26,lo8(-(dsp))
 502 0246 B040      		sbci r27,hi8(-(dsp))
 503 0248 FC01      		movw r30,r24
 504 024a E050      		subi r30,lo8(-(dig))
 505 024c F040      		sbci r31,hi8(-(dig))
 506               	.L65:
 507               	.LM85:
 508 024e 15BA      		out 53-0x20,__zero_reg__
 509               	.LM86:
 510 0250 8191      		ld r24,Z+
 511 0252 85BB      		out 53-0x20,r24
 512               	.LM87:
 513 0254 8D91      		ld r24,X+
 514 0256 88BB      		out 56-0x20,r24
 515               	.LBB2:
 516               	.LBB3:
 517               	.LBB4:
 518               	.LBB5:
 519               	.LM88:
 520 0258 C901      		movw r24,r18
 521               	/* #APP */
 522 025a 0197      		1: sbiw r24,1
 523 025c F1F7      		brne 1b
 524               	/* #NOAPP */
 525               	.LBE5:
 526               	.LBE4:
 527               	.LBE3:
 528               	.LBE2:
 529               	.LM89:
 530 025e 7F5F      		subi r23,lo8(-(1))
 531 0260 7630      		cpi r23,lo8(6)
 532 0262 A8F3      		brlo .L65
 533               	.L73:
 534               	.LM90:
 535 0264 6150      		subi r22,lo8(-(-1))
 536 0266 67FF      		sbrs r22,7
 537 0268 E4CF      		rjmp .L66
 538               	/* epilogue: frame size=0 */
 539 026a 0895      		ret
 540               	/* epilogue end (size=1) */
 541               	/* function reflash size 120 (119) */
 542               	.LFE11:
 544               	.global	main
 546               	main:
 547               	.LFB12:
 548               	.LM91:
 549               	/* prologue: frame size=0 */
 550 026c C0E0      		ldi r28,lo8(__stack - 0)
 551 026e D0E0      		ldi r29,hi8(__stack - 0)
 552 0270 DEBF      		out __SP_H__,r29
 553 0272 CDBF      		out __SP_L__,r28
 554               	/* prologue end (size=4) */
 555               	.LM92:
 556 0274 CFEF      		ldi r28,lo8(-1)
 557 0276 C7BB      		out 55-0x20,r28
 558               	.LM93:
 559 0278 81B3      		in r24,49-0x20
 560 027a 8770      		andi r24,lo8(7)
 561 027c 81BB      		out 49-0x20,r24
 562               	.LM94:
 563 027e 85B7      		in r24,85-0x20
 564 0280 8860      		ori r24,lo8(8)
 565 0282 85BF      		out 85-0x20,r24
 566               	.LM95:
 567 0284 85B7      		in r24,85-0x20
 568 0286 8B7F      		andi r24,lo8(-5)
 569 0288 85BF      		out 85-0x20,r24
 570               	.LM96:
 571 028a 8AB7      		in r24,90-0x20
 572 028c 8F77      		andi r24,lo8(127)
 573 028e 8ABF      		out 90-0x20,r24
 574               	.LM97:
 575 0290 8FB7      		in r24,95-0x20
 576 0292 8068      		ori r24,lo8(-128)
 577 0294 8FBF      		out 95-0x20,r24
 578               	.LM98:
 579 0296 8BB7      		in r24,91-0x20
 580 0298 8068      		ori r24,lo8(-128)
 581 029a 8BBF      		out 91-0x20,r24
 582               	.LM99:
 583 029c 65EA      		ldi r22,lo8(-91)
 584 029e 80E9      		ldi r24,lo8(-112)
 585 02a0 E6DE      		rcall write_ds1302
 586               	.LM100:
 587 02a2 81E8      		ldi r24,lo8(-127)
 588 02a4 F4DE      		rcall in_byte
 589 02a6 87FF      		sbrs r24,7
 590 02a8 03C0      		rjmp .L75
 591               	.LM101:
 592 02aa 60E0      		ldi r22,lo8(0)
 593 02ac 80E8      		ldi r24,lo8(-128)
 594 02ae DFDE      		rcall write_ds1302
 595               	.L75:
 596               	.LM102:
 597 02b0 81E0      		ldi r24,lo8(1)
 598 02b2 8093 0000 		sts dsp_state,r24
 599               	.LM103:
 600 02b6 C7BB      		out 55-0x20,r28
 601               	.LM104:
 602 02b8 C4BB      		out 52-0x20,r28
 603               	.L76:
 604               	.LM105:
 605 02ba 8FB7      		in r24,95-0x20
 606 02bc 8F77      		andi r24,lo8(127)
 607 02be 8FBF      		out 95-0x20,r24
 608               	.LM106:
 609 02c0 8091 0000 		lds r24,dsp_state
 610 02c4 9927      		clr r25
 611 02c6 8230      		cpi r24,2
 612 02c8 9105      		cpc r25,__zero_reg__
 613 02ca B9F0      		breq .L81
 614 02cc 8330      		cpi r24,3
 615 02ce 9105      		cpc r25,__zero_reg__
 616 02d0 1CF4      		brge .L84
 617 02d2 0197      		sbiw r24,1
 618 02d4 21F0      		breq .L80
 619 02d6 29C0      		rjmp .L78
 620               	.L84:
 621 02d8 0397      		sbiw r24,3
 622 02da C1F0      		breq .L82
 623 02dc 26C0      		rjmp .L78
 624               	.L80:
 625               	.LM107:
 626 02de 85E8      		ldi r24,lo8(-123)
 627 02e0 D6DE      		rcall in_byte
 628 02e2 8F73      		andi r24,lo8(63)
 629 02e4 8093 0000 		sts bcd_dsp,r24
 630               	.LM108:
 631 02e8 83E8      		ldi r24,lo8(-125)
 632 02ea D1DE      		rcall in_byte
 633 02ec 8F77      		andi r24,lo8(127)
 634 02ee 8093 0000 		sts bcd_dsp+1,r24
 635               	.LM109:
 636 02f2 81E8      		ldi r24,lo8(-127)
 637 02f4 CCDE      		rcall in_byte
 638 02f6 8F77      		andi r24,lo8(127)
 639 02f8 15C0      		rjmp .L85
 640               	.L81:
 641               	.LM110:
 642 02fa 1092 0000 		sts bcd_dsp,__zero_reg__
 643               	.LM111:
 644 02fe 1092 0000 		sts bcd_dsp+1,__zero_reg__
 645               	.LM112:
 646 0302 8BE8      		ldi r24,lo8(-117)
 647 0304 C4DE      		rcall in_byte
 648 0306 8770      		andi r24,lo8(7)
 649 0308 8150      		subi r24,lo8(-(-1))
 650 030a 0CC0      		rjmp .L85
 651               	.L82:
 652               	.LM113:
 653 030c 8DE8      		ldi r24,lo8(-115)
 654 030e BFDE      		rcall in_byte
 655 0310 8093 0000 		sts bcd_dsp,r24
 656               	.LM114:
 657 0314 89E8      		ldi r24,lo8(-119)
 658 0316 BBDE      		rcall in_byte
 659 0318 8F71      		andi r24,lo8(31)
 660 031a 8093 0000 		sts bcd_dsp+1,r24
 661               	.LM115:
 662 031e 87E8      		ldi r24,lo8(-121)
 663 0320 B6DE      		rcall in_byte
 664 0322 8F73      		andi r24,lo8(63)
 665               	.L85:
 666 0324 8093 0000 		sts bcd_dsp+2,r24
 667               	.LM116:
 668 0328 ECDE      		rcall bcd_change
 669               	.L78:
 670               	.LM117:
 671 032a 2ADF      		rcall reflash
 672               	.LM118:
 673 032c 8FB7      		in r24,95-0x20
 674 032e 8068      		ori r24,lo8(-128)
 675 0330 8FBF      		out 95-0x20,r24
 676 0332 C3CF      		rjmp .L76
 677               	/* epilogue: frame size=0 */
 678               	/* epilogue: noreturn */
 679               	/* epilogue end (size=0) */
 680               	/* function main size 102 (98) */
 681               	.LFE12:
 683               	.global	__vector_2
 685               	__vector_2:
 686               	.LFB13:
 687               	.LM119:
 688               	/* prologue: frame size=0 */
 689 0334 1F92      		push __zero_reg__
 690 0336 0F92      		push __tmp_reg__

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?