⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ds1302.lst

📁 基于AVRGCC的时钟DS1302的完整应用源代码
💻 LST
📖 第 1 页 / 共 2 页
字号:
  80:ds1302.c      **** {
 300               	.LM42:
 301               	/* #APP */
 302 0078 F894      		cli
  81:ds1302.c      **** 	cbi(DS1302_PORT, DS1302_RST);
 304               	.LM43:
 305               	/* #NOAPP */
 306 007a 0E94 0000 		call _DS1302_WR_Byte
  82:ds1302.c      **** 	cbi(DS1302_PORT, DS1302_SCLK);
 308               	.LM44:
 309 007e 812F      		mov r24,r17
 310 0080 0E94 0000 		call _DS1302_WR_Byte
  83:ds1302.c      **** 	sbi(DS1302_PORT, DS1302_RST);
 312               	.LM45:
 313               	/* #APP */
 314 0084 7894      		sei
  84:ds1302.c      **** 	cli();
 316               	.LM46:
 317               	/* #NOAPP */
 318 0086 9598      		cbi 50-0x20,5
 319               	/* epilogue: frame size=0 */
 320 0088 1F91      		pop r17
 321 008a 0895      		ret
 322               	/* epilogue end (size=2) */
 323               	/* function DS1302_Write size 17 (14) */
 329               	.global	DS1302_Get_Time
 331               	DS1302_Get_Time:
  85:ds1302.c      ****     _DS1302_WR_Byte(addr);       
  86:ds1302.c      ****     _DS1302_WR_Byte(value);      
  87:ds1302.c      **** 	sei();
  88:ds1302.c      **** 	cbi(DS1302_PORT, DS1302_RST);
 333               	.LM47:
 334               	/* prologue: frame size=0 */
 335 008c CF92      		push r12
 336 008e DF92      		push r13
 337 0090 EF92      		push r14
 338 0092 FF92      		push r15
 339 0094 0F93      		push r16
 340 0096 1F93      		push r17
 341               	/* prologue end (size=6) */
 342 0098 8C01      		movw r16,r24
 343 009a 7B01      		movw r14,r22
 344 009c 6A01      		movw r12,r20
  89:ds1302.c      **** }
 346               	.LM48:
 347 009e 85E8      		ldi r24,lo8(-123)
 348 00a0 0E94 0000 		call DS1302_Read
 349 00a4 0E94 0000 		call bcd2bin
 350 00a8 F801      		movw r30,r16
 351 00aa 8083      		st Z,r24
  90:ds1302.c      **** 
 353               	.LM49:
 354 00ac 83E8      		ldi r24,lo8(-125)
 355 00ae 0E94 0000 		call DS1302_Read
 356 00b2 0E94 0000 		call bcd2bin
 357 00b6 F701      		movw r30,r14
 358 00b8 8083      		st Z,r24
  91:ds1302.c      **** void DS1302_Get_Time(unsigned char *hour, unsigned char *min, unsigned char *sec)
 360               	.LM50:
 361 00ba 81E8      		ldi r24,lo8(-127)
 362 00bc 0E94 0000 		call DS1302_Read
 363 00c0 0E94 0000 		call bcd2bin
 364 00c4 F601      		movw r30,r12
 365 00c6 8083      		st Z,r24
 366               	/* epilogue: frame size=0 */
 367 00c8 1F91      		pop r17
 368 00ca 0F91      		pop r16
 369 00cc FF90      		pop r15
 370 00ce EF90      		pop r14
 371 00d0 DF90      		pop r13
 372 00d2 CF90      		pop r12
 373 00d4 0895      		ret
 374               	/* epilogue end (size=7) */
 375               	/* function DS1302_Get_Time size 37 (24) */
 381               	.global	DS1302_Set_Time
 383               	DS1302_Set_Time:
  92:ds1302.c      **** {
  93:ds1302.c      **** 	*hour = bcd2bin(DS1302_Read(DS1302_RD_HOUR));
  94:ds1302.c      **** 	*min  = bcd2bin(DS1302_Read(DS1302_RD_MINUTE));
  95:ds1302.c      **** 	*sec  = bcd2bin(DS1302_Read(DS1302_RD_SECOND));
 385               	.LM51:
 386               	/* prologue: frame size=0 */
 387 00d6 FF92      		push r15
 388 00d8 0F93      		push r16
 389 00da 1F93      		push r17
 390               	/* prologue end (size=3) */
 391 00dc 182F      		mov r17,r24
 392 00de 062F      		mov r16,r22
 393 00e0 F42E      		mov r15,r20
  96:ds1302.c      **** }
 395               	.LM52:
 396 00e2 60E0      		ldi r22,lo8(0)
 397 00e4 8EE8      		ldi r24,lo8(-114)
 398 00e6 0E94 0000 		call DS1302_Write
  97:ds1302.c      **** 
 400               	.LM53:
 401 00ea 812F      		mov r24,r17
 402 00ec 0E94 0000 		call bin2bcd
 403 00f0 682F      		mov r22,r24
 404 00f2 84E8      		ldi r24,lo8(-124)
 405 00f4 0E94 0000 		call DS1302_Write
  98:ds1302.c      **** void DS1302_Set_Time(unsigned char hour, unsigned char min, unsigned char sec)
  99:ds1302.c      **** {
 407               	.LM54:
 408 00f8 60E0      		ldi r22,lo8(0)
 409 00fa 8EE8      		ldi r24,lo8(-114)
 410 00fc 0E94 0000 		call DS1302_Write
 100:ds1302.c      **** 	DS1302_Write(DS1302_WR_CTRL, 0x00);
 412               	.LM55:
 413 0100 802F      		mov r24,r16
 414 0102 0E94 0000 		call bin2bcd
 415 0106 682F      		mov r22,r24
 416 0108 82E8      		ldi r24,lo8(-126)
 417 010a 0E94 0000 		call DS1302_Write
 101:ds1302.c      **** 	DS1302_Write(DS1302_WR_HOUR, bin2bcd(hour));
 102:ds1302.c      **** 
 419               	.LM56:
 420 010e 60E0      		ldi r22,lo8(0)
 421 0110 8EE8      		ldi r24,lo8(-114)
 422 0112 0E94 0000 		call DS1302_Write
 103:ds1302.c      **** 	DS1302_Write(DS1302_WR_CTRL, 0x00);
 424               	.LM57:
 425 0116 8F2D      		mov r24,r15
 426 0118 0E94 0000 		call bin2bcd
 427 011c 682F      		mov r22,r24
 428 011e 80E8      		ldi r24,lo8(-128)
 429 0120 0E94 0000 		call DS1302_Write
 430               	/* epilogue: frame size=0 */
 431 0124 1F91      		pop r17
 432 0126 0F91      		pop r16
 433 0128 FF90      		pop r15
 434 012a 0895      		ret
 435               	/* epilogue end (size=4) */
 436               	/* function DS1302_Set_Time size 43 (36) */
 443               	.global	DS1302_Get_Date
 445               	DS1302_Get_Date:
 104:ds1302.c      **** 	DS1302_Write(DS1302_WR_MINUTE, bin2bcd(min));
 105:ds1302.c      **** 
 106:ds1302.c      **** 	DS1302_Write(DS1302_WR_CTRL, 0x00);
 107:ds1302.c      **** 	DS1302_Write(DS1302_WR_SECOND, bin2bcd(sec));
 447               	.LM58:
 448               	/* prologue: frame size=0 */
 449 012c AF92      		push r10
 450 012e BF92      		push r11
 451 0130 CF92      		push r12
 452 0132 DF92      		push r13
 453 0134 EF92      		push r14
 454 0136 FF92      		push r15
 455 0138 0F93      		push r16
 456 013a 1F93      		push r17
 457               	/* prologue end (size=8) */
 458 013c 8C01      		movw r16,r24
 459 013e 7B01      		movw r14,r22
 460 0140 6A01      		movw r12,r20
 461 0142 5901      		movw r10,r18
 108:ds1302.c      **** }
 463               	.LM59:
 464 0144 8DE8      		ldi r24,lo8(-115)
 465 0146 0E94 0000 		call DS1302_Read
 466 014a 0E94 0000 		call bcd2bin
 467 014e F801      		movw r30,r16
 468 0150 8083      		st Z,r24
 109:ds1302.c      **** 
 470               	.LM60:
 471 0152 89E8      		ldi r24,lo8(-119)
 472 0154 0E94 0000 		call DS1302_Read
 473 0158 0E94 0000 		call bcd2bin
 474 015c F701      		movw r30,r14
 475 015e 8083      		st Z,r24
 110:ds1302.c      **** void DS1302_Get_Date(unsigned char *year, unsigned char *month, unsigned char *day, unsigned char *
 477               	.LM61:
 478 0160 87E8      		ldi r24,lo8(-121)
 479 0162 0E94 0000 		call DS1302_Read
 480 0166 0E94 0000 		call bcd2bin
 481 016a F601      		movw r30,r12
 482 016c 8083      		st Z,r24
 111:ds1302.c      **** {
 484               	.LM62:
 485 016e 8BE8      		ldi r24,lo8(-117)
 486 0170 0E94 0000 		call DS1302_Read
 487 0174 0E94 0000 		call bcd2bin
 488 0178 F501      		movw r30,r10
 489 017a 8083      		st Z,r24
 490               	/* epilogue: frame size=0 */
 491 017c 1F91      		pop r17
 492 017e 0F91      		pop r16
 493 0180 FF90      		pop r15
 494 0182 EF90      		pop r14
 495 0184 DF90      		pop r13
 496 0186 CF90      		pop r12
 497 0188 BF90      		pop r11
 498 018a AF90      		pop r10
 499 018c 0895      		ret
 500               	/* epilogue end (size=9) */
 501               	/* function DS1302_Get_Date size 49 (32) */
 508               	.global	DS1302_Set_Date
 510               	DS1302_Set_Date:
 112:ds1302.c      **** 	*year  = bcd2bin(DS1302_Read(DS1302_RD_YEAR));
 113:ds1302.c      **** 	*month = bcd2bin(DS1302_Read(DS1302_RD_MONTH));
 114:ds1302.c      **** 	*day   = bcd2bin(DS1302_Read(DS1302_RD_DAY));
 115:ds1302.c      **** 	*week  = bcd2bin(DS1302_Read(DS1302_RD_WEEK));
 512               	.LM63:
 513               	/* prologue: frame size=0 */
 514 018e EF92      		push r14
 515 0190 FF92      		push r15
 516 0192 0F93      		push r16
 517 0194 1F93      		push r17
 518               	/* prologue end (size=4) */
 519 0196 182F      		mov r17,r24
 520 0198 062F      		mov r16,r22
 521 019a F42E      		mov r15,r20
 522 019c E22E      		mov r14,r18
 116:ds1302.c      **** }
 524               	.LM64:
 525 019e 60E0      		ldi r22,lo8(0)
 526 01a0 8EE8      		ldi r24,lo8(-114)
 527 01a2 0E94 0000 		call DS1302_Write
 117:ds1302.c      **** 
 529               	.LM65:
 530 01a6 812F      		mov r24,r17
 531 01a8 0E94 0000 		call bin2bcd
 532 01ac 682F      		mov r22,r24
 533 01ae 8CE8      		ldi r24,lo8(-116)
 534 01b0 0E94 0000 		call DS1302_Write
 118:ds1302.c      **** void DS1302_Set_Date(unsigned char year, unsigned char month, unsigned char day, unsigned char week
 119:ds1302.c      **** {
 536               	.LM66:
 537 01b4 60E0      		ldi r22,lo8(0)
 538 01b6 8EE8      		ldi r24,lo8(-114)
 539 01b8 0E94 0000 		call DS1302_Write
 120:ds1302.c      **** 	DS1302_Write(DS1302_WR_CTRL, 0x00);
 541               	.LM67:
 542 01bc 802F      		mov r24,r16
 543 01be 0E94 0000 		call bin2bcd
 544 01c2 682F      		mov r22,r24
 545 01c4 88E8      		ldi r24,lo8(-120)
 546 01c6 0E94 0000 		call DS1302_Write
 121:ds1302.c      **** 	DS1302_Write(DS1302_WR_YEAR, bin2bcd(year));
 122:ds1302.c      **** 
 548               	.LM68:
 549 01ca 60E0      		ldi r22,lo8(0)
 550 01cc 8EE8      		ldi r24,lo8(-114)
 551 01ce 0E94 0000 		call DS1302_Write
 123:ds1302.c      **** 	DS1302_Write(DS1302_WR_CTRL, 0x00);
 553               	.LM69:
 554 01d2 8F2D      		mov r24,r15
 555 01d4 0E94 0000 		call bin2bcd
 556 01d8 682F      		mov r22,r24
 557 01da 86E8      		ldi r24,lo8(-122)
 558 01dc 0E94 0000 		call DS1302_Write
 124:ds1302.c      **** 	DS1302_Write(DS1302_WR_MONTH, bin2bcd(month));
 125:ds1302.c      **** 
 560               	.LM70:
 561 01e0 60E0      		ldi r22,lo8(0)
 562 01e2 8EE8      		ldi r24,lo8(-114)
 563 01e4 0E94 0000 		call DS1302_Write
 126:ds1302.c      **** 	DS1302_Write(DS1302_WR_CTRL, 0x00);
 565               	.LM71:
 566 01e8 8E2D      		mov r24,r14
 567 01ea 0E94 0000 		call bin2bcd
 568 01ee 682F      		mov r22,r24
 569 01f0 8AE8      		ldi r24,lo8(-118)
 570 01f2 0E94 0000 		call DS1302_Write
 571               	/* epilogue: frame size=0 */
 572 01f6 1F91      		pop r17
 573 01f8 0F91      		pop r16
 574 01fa FF90      		pop r15
 575 01fc EF90      		pop r14
 576 01fe 0895      		ret
 577               	/* epilogue end (size=5) */
 578               	/* function DS1302_Set_Date size 57 (48) */
 580               		.text
 582               	Letext:
 583               	/* File "ds1302.c": code  266 = 0x010a ( 213), prologues  22, epilogues  31 */
DEFINED SYMBOLS
                            *ABS*:00000000 ds1302.c
                            *ABS*:0000003f __SREG__
                            *ABS*:0000003e __SP_H__
                            *ABS*:0000003d __SP_L__
                            *ABS*:00000000 __tmp_reg__
                            *ABS*:00000001 __zero_reg__
C:\DOCUME~1\ZHOUNA~1\LOCALS~1\Temp/ccEvaaaa.s:54     .text:00000000 DS1302_Init
C:\DOCUME~1\ZHOUNA~1\LOCALS~1\Temp/ccEvaaaa.s:76     .text:00000008 _DS1302_RD_Byte
C:\DOCUME~1\ZHOUNA~1\LOCALS~1\Temp/ccEvaaaa.s:171    .text:00000034 _DS1302_WR_Byte
C:\DOCUME~1\ZHOUNA~1\LOCALS~1\Temp/ccEvaaaa.s:236    .text:00000056 DS1302_Read
C:\DOCUME~1\ZHOUNA~1\LOCALS~1\Temp/ccEvaaaa.s:283    .text:0000006e DS1302_Write
C:\DOCUME~1\ZHOUNA~1\LOCALS~1\Temp/ccEvaaaa.s:331    .text:0000008c DS1302_Get_Time
C:\DOCUME~1\ZHOUNA~1\LOCALS~1\Temp/ccEvaaaa.s:383    .text:000000d6 DS1302_Set_Time
C:\DOCUME~1\ZHOUNA~1\LOCALS~1\Temp/ccEvaaaa.s:445    .text:0000012c DS1302_Get_Date
C:\DOCUME~1\ZHOUNA~1\LOCALS~1\Temp/ccEvaaaa.s:510    .text:0000018e DS1302_Set_Date
C:\DOCUME~1\ZHOUNA~1\LOCALS~1\Temp/ccEvaaaa.s:582    .text:00000200 Letext

UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
bcd2bin
bin2bcd

⌨️ 快捷键说明

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