📄 ds12997.lis
字号:
02C2 FA01 movw R30,R20
02C4 0481 ldd R16,z+4
02C6 0E940000 xcall div8u
02CA 802F mov R24,R16
02CC 805D subi R24,208 ; addi 48
02CE FA01 movw R30,R20
02D0 8587 std z+13,R24
02D2 .dbline 355
02D2 ; Time->DateString[7] = Time->Day%10 + '0';
02D2 1AE0 ldi R17,10
02D4 FA01 movw R30,R20
02D6 0481 ldd R16,z+4
02D8 0E940000 xcall mod8u
02DC 802F mov R24,R16
02DE 805D subi R24,208 ; addi 48
02E0 FA01 movw R30,R20
02E2 8687 std z+14,R24
02E4 .dbline 356
02E4 ; Time->DateString[8] = '\0';
02E4 2224 clr R2
02E6 FA01 movw R30,R20
02E8 2786 std z+15,R2
02EA .dbline 358
02EA ;
02EA ; y[0]=Time->DateString[0];
02EA FA01 movw R30,R20
02EC 2780 ldd R2,z+7
02EE 20920000 sts _y,R2
02F2 .dbline 359
02F2 ; y[1]=Time->DateString[1]; //年
02F2 FA01 movw R30,R20
02F4 2084 ldd R2,z+8
02F6 20920100 sts _y+1,R2
02FA .dbline 361
02FA ;
02FA ; y[3]=Time->DateString[3];
02FA FA01 movw R30,R20
02FC 2284 ldd R2,z+10
02FE 20920300 sts _y+3,R2
0302 .dbline 362
0302 ; y[4]=Time->DateString[4]; //月
0302 FA01 movw R30,R20
0304 2384 ldd R2,z+11
0306 20920400 sts _y+4,R2
030A .dbline 364
030A ;
030A ; y[6]=Time->DateString[6];
030A FA01 movw R30,R20
030C 2584 ldd R2,z+13
030E 20920600 sts _y+6,R2
0312 .dbline 365
0312 ; y[7]=Time->DateString[7]; //日
0312 FA01 movw R30,R20
0314 2684 ldd R2,z+14
0316 20920700 sts _y+7,R2
031A .dbline -2
031A L49:
031A 0E940000 xcall pop_gset1
031E .dbline 0 ; func end
031E 0895 ret
0320 .dbsym r Time 20 pS[_SYSTEMTIME_]
0320 .dbend
0320 .dbfunc e TimeToStr _TimeToStr fV
0320 ; Time -> R20,R21
.even
0320 _TimeToStr::
0320 0E940000 xcall push_gset1
0324 A801 movw R20,R16
0326 .dbline -1
0326 .dbline 372
0326 ;
0326 ; }
0326 ;
0326 ;
0326 ; /*********************时间转化成字符***********************************/
0326 ; void TimeToStr(SYSTEMTIME *Time)
0326 ; {
0326 .dbline 373
0326 ; Time->TimeString[0] = Time->Hour/10 + '0';
0326 1AE0 ldi R17,10
0328 FA01 movw R30,R20
032A 0281 ldd R16,z+2
032C 0E940000 xcall div8u
0330 802F mov R24,R16
0332 805D subi R24,208 ; addi 48
0334 FA01 movw R30,R20
0336 808B std z+16,R24
0338 .dbline 374
0338 ; Time->TimeString[1] = Time->Hour%10 + '0';
0338 1AE0 ldi R17,10
033A FA01 movw R30,R20
033C 0281 ldd R16,z+2
033E 0E940000 xcall mod8u
0342 802F mov R24,R16
0344 805D subi R24,208 ; addi 48
0346 FA01 movw R30,R20
0348 818B std z+17,R24
034A .dbline 375
034A ; Time->TimeString[2] = ':';
034A 8AE3 ldi R24,58
034C FA01 movw R30,R20
034E 828B std z+18,R24
0350 .dbline 376
0350 ; Time->TimeString[3] = Time->Minute/10 + '0';
0350 1AE0 ldi R17,10
0352 FA01 movw R30,R20
0354 0181 ldd R16,z+1
0356 0E940000 xcall div8u
035A 802F mov R24,R16
035C 805D subi R24,208 ; addi 48
035E FA01 movw R30,R20
0360 838B std z+19,R24
0362 .dbline 377
0362 ; Time->TimeString[4] = Time->Minute%10 + '0';
0362 1AE0 ldi R17,10
0364 FA01 movw R30,R20
0366 0181 ldd R16,z+1
0368 0E940000 xcall mod8u
036C 802F mov R24,R16
036E 805D subi R24,208 ; addi 48
0370 FA01 movw R30,R20
0372 848B std z+20,R24
0374 .dbline 378
0374 ; Time->TimeString[5] = ':';
0374 8AE3 ldi R24,58
0376 FA01 movw R30,R20
0378 858B std z+21,R24
037A .dbline 379
037A ; Time->TimeString[6] = Time->Second/10 + '0';
037A 1AE0 ldi R17,10
037C FA01 movw R30,R20
037E 0081 ldd R16,z+0
0380 0E940000 xcall div8u
0384 802F mov R24,R16
0386 805D subi R24,208 ; addi 48
0388 FA01 movw R30,R20
038A 868B std z+22,R24
038C .dbline 380
038C ; Time->TimeString[7] = Time->Second%10 + '0';
038C 1AE0 ldi R17,10
038E FA01 movw R30,R20
0390 0081 ldd R16,z+0
0392 0E940000 xcall mod8u
0396 802F mov R24,R16
0398 805D subi R24,208 ; addi 48
039A FA01 movw R30,R20
039C 878B std z+23,R24
039E .dbline 381
039E ; Time->TimeString[8] = '\0';
039E 2224 clr R2
03A0 FA01 movw R30,R20
03A2 208E std z+24,R2
03A4 .dbline 383
03A4 ;
03A4 ; y[9]=Time->TimeString[0];
03A4 FA01 movw R30,R20
03A6 2088 ldd R2,z+16
03A8 20920900 sts _y+9,R2
03AC .dbline 384
03AC ; y[10]=Time->TimeString[1]; //时
03AC FA01 movw R30,R20
03AE 2188 ldd R2,z+17
03B0 20920A00 sts _y+10,R2
03B4 .dbline 386
03B4 ;
03B4 ; y[12]=Time->TimeString[3];
03B4 FA01 movw R30,R20
03B6 2388 ldd R2,z+19
03B8 20920C00 sts _y+12,R2
03BC .dbline 387
03BC ; y[13]=Time->TimeString[4]; //分
03BC FA01 movw R30,R20
03BE 2488 ldd R2,z+20
03C0 20920D00 sts _y+13,R2
03C4 .dbline 389
03C4 ;
03C4 ; y[15]=Time->TimeString[6];
03C4 FA01 movw R30,R20
03C6 2688 ldd R2,z+22
03C8 20920F00 sts _y+15,R2
03CC .dbline 390
03CC ; y[16]=Time->TimeString[7]; //秒
03CC FA01 movw R30,R20
03CE 2788 ldd R2,z+23
03D0 20921000 sts _y+16,R2
03D4 .dbline -2
03D4 L55:
03D4 0E940000 xcall pop_gset1
03D8 .dbline 0 ; func end
03D8 0895 ret
03DA .dbsym r Time 20 pS[_SYSTEMTIME_]
03DA .dbend
03DA .dbfunc e init_devices _init_devices fV
.even
03DA _init_devices::
03DA .dbline -1
03DA .dbline 397
03DA ;
03DA ; }
03DA ;
03DA ;
03DA ; /********************初始化器件************************************/
03DA ; void init_devices(void)
03DA ; {
03DA .dbline 398
03DA ; port_init();
03DA 1EDE xcall _port_init
03DC .dbline 399
03DC ; usart_init();
03DC 11DE xcall _usart_init
03DE .dbline -2
03DE L62:
03DE .dbline 0 ; func end
03DE 0895 ret
03E0 .dbend
03E0 .dbfunc e main _main fV
03E0 ; temp -> R20
03E0 ; CurrentTime -> y+0
.even
03E0 _main::
03E0 6997 sbiw R28,25
03E2 .dbline -1
03E2 .dbline 403
03E2 ; }
03E2 ; /***************主函数*****************************/
03E2 ; void main(void)
03E2 ; {
03E2 .dbline 406
03E2 ; SYSTEMTIME CurrentTime;
03E2 ; uchar temp;
03E2 ; init_devices();
03E2 FBDF xcall _init_devices
03E4 .dbline 407
03E4 ; DS12887_Init(); //只读时间的时候可以屏蔽该句
03E4 F0DE xcall _DS12887_Init
03E6 .dbline 408
03E6 ; DS12887_GetTime(&CurrentTime);
03E6 8E01 movw R16,R28
03E8 08DF xcall _DS12887_GetTime
03EA .dbline 412
03EA ; /*************时间初始化设置 ,2009-3-4 16:57:00************/
03EA ; //时钟调准后屏蔽该段程序
03EA ; //*
03EA ; DS12887_SetTime(DS12887_Second, 0); //设置秒
03EA 2227 clr R18
03EC 0027 clr R16
03EE F5DE xcall _DS12887_SetTime
03F0 .dbline 413
03F0 ; DS12887_SetTime(DS12887_Minute, 57); //设置分
03F0 29E3 ldi R18,57
03F2 02E0 ldi R16,2
03F4 F2DE xcall _DS12887_SetTime
03F6 .dbline 414
03F6 ; DS12887_SetTime(DS12887_Hour,16); //设置时
03F6 20E1 ldi R18,16
03F8 04E0 ldi R16,4
03FA EFDE xcall _DS12887_SetTime
03FC .dbline 415
03FC ; DS12887_SetTime(DS12887_Day, 4); //设置天
03FC 24E0 ldi R18,4
03FE 07E0 ldi R16,7
0400 ECDE xcall _DS12887_SetTime
0402 .dbline 416
0402 ; DS12887_SetTime(DS12887_Month, 3); //设置月
0402 23E0 ldi R18,3
0404 08E0 ldi R16,8
0406 E9DE xcall _DS12887_SetTime
0408 .dbline 417
0408 ; DS12887_SetTime(DS12887_Year, 9); //设置年
0408 29E0 ldi R18,9
040A 09E0 ldi R16,9
040C E6DE xcall _DS12887_SetTime
040E .dbline 419
040E ; //*/
040E ; usart_str_send("DS12887工作中.......");
040E 00E0 ldi R16,<L64
0410 10E0 ldi R17,>L64
0412 10DE xcall _usart_str_send
0414 11C0 xjmp L66
0416 L65:
0416 .dbline 421
0416 ; while(1)
0416 ; {
0416 .dbline 422
0416 ; DS12887_GetTime(&CurrentTime);
0416 8E01 movw R16,R28
0418 F0DE xcall _DS12887_GetTime
041A .dbline 423
041A ; DateToStr(&CurrentTime);
041A 8E01 movw R16,R28
041C 24DF xcall _DateToStr
041E .dbline 424
041E ; TimeToStr(&CurrentTime);
041E 8E01 movw R16,R28
0420 7FDF xcall _TimeToStr
0422 .dbline 425
0422 ; temp=usart_char_receive();
0422 2ADE xcall _usart_char_receive
0424 402F mov R20,R16
0426 .dbline 426
0426 ; if(temp=='0') //字符0----数据传送启动指令
0426 0033 cpi R16,48
0428 19F4 brne L68
042A .dbline 427
042A ; usart_str_send("现在时间是:");
042A 00E0 ldi R16,<L70
042C 10E0 ldi R17,>L70
042E 02DE xcall _usart_str_send
0430 L68:
0430 .dbline 428
0430 11DE xcall _usart_send_arry
0432 .dbline 429
0432 00E0 ldi R16,<L71
0434 10E0 ldi R17,>L71
0436 FEDD xcall _usart_str_send
0438 .dbline 430
0438 L66:
0438 .dbline 420
0438 EECF xjmp L65
043A X1:
043A .dbline -2
043A L63:
043A 6996 adiw R28,25
043C .dbline 0 ; func end
043C 0895 ret
043E .dbsym r temp 20 c
043E .dbsym l CurrentTime 0 S[_SYSTEMTIME_]
043E .dbend
.area bss(ram, con, rel)
0000 .dbfile C:\DOCUME~1\wangqinbo\MYDOCU~1\avrc\ds12997.c
0000 _y6::
0000 .blkb 1
0001 .dbsym e y6 _y6 c
0001 _y5::
0001 .blkb 1
0002 .dbsym e y5 _y5 c
0002 _y4::
0002 .blkb 1
0003 .dbsym e y4 _y4 c
0003 _y3::
0003 .blkb 1
0004 .dbsym e y3 _y3 c
0004 _y2::
0004 .blkb 1
0005 .dbsym e y2 _y2 c
0005 _y1::
0005 .blkb 1
0006 .dbsym e y1 _y1 c
.area data(ram, con, rel)
0013 .dbfile C:\DOCUME~1\wangqinbo\MYDOCU~1\avrc\ds12997.c
0013 L71:
0013 .blkb 3
.area idata
0013 202000 .byte 32,32,0
.area data(ram, con, rel)
0016 .dbfile C:\DOCUME~1\wangqinbo\MYDOCU~1\avrc\ds12997.c
0016 L70:
0016 .blkb 13
.area idata
0016 CFD6D4DACAB1BCE4CAC7A3BA00 .byte 207,214,212,218,202,177,188,228,202,199,163,186,0
.area data(ram, con, rel)
0023 .dbfile C:\DOCUME~1\wangqinbo\MYDOCU~1\avrc\ds12997.c
0023 L64:
0023 .blkb 21
.area idata
0023 44533132383837B9A4D7F7D6D02E2E2E .byte 'D,'S,49,50,56,56,55,185,164,215,247,214,208,46,46,46
0033 2E2E2E2E00 .byte 46,46,46,46,0
.area data(ram, con, rel)
0038 .dbfile C:\DOCUME~1\wangqinbo\MYDOCU~1\avrc\ds12997.c
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -