📄 rtc.lis
字号:
0280 .dbline 246
0280 .dbline 246
0280 1CDF rcall _Ack
0282 .dbline 246
0282 L83:
0282 .dbline 246
0282 L80:
0282 .dbline 244
0282 6395 inc R22
0284 L82:
0284 .dbline 244
0284 6A15 cp R22,R10
0286 70F3 brlo L79
0288 .dbline 247
0288 ; if(x<(Number-1)) { Ack(); }}
0288 ; Nack();
0288 22DF rcall _Nack
028A .dbline 249
028A ; //第五步:发停止信号,结束读操作
028A ; Stop();
028A 0BDF rcall _Stop
028C .dbline -2
028C .dbline 250
028C ; }
028C L69:
028C 00D0 rcall pop_gset5
028E 2496 adiw R28,4
0290 .dbline 0 ; func end
0290 0895 ret
0292 .dbsym r data0 20 c
0292 .dbsym r x 22 c
0292 .dbsym r Number 10 c
0292 .dbsym r Array 12 pc
0292 .dbsym r Address 14 c
0292 .dbsym l Slave 10 c
0292 .dbend
.area lit(rom, con, rel)
0000 L86:
0000 0200 .byte 2,0
0002 0004 .byte 0,4
0004 0102 .byte 1,2
0006 0207 .byte 2,7
0008 0101 .byte 1,1
000A 0703 .byte 7,3
000C 0005 .byte 0,5
000E 00 .byte 0
000F L87:
000F 5030 .byte 'P,48
0011 1701 .byte 23,1
0013 2712 .byte 39,18
0015 04 .byte 4
.area text(rom, con, rel)
0292 .dbfile C:\DOCUME~1\Administrator\桌面\张军\PS2-ICC\RTC.C
0292 .dbfunc e main _main fV
0292 ; SD2303_Controller2 -> R20
0292 ; SD2303_Controller1 -> R22
0292 ; Set_Time -> y+18
0292 ; time -> y+3
0292 ; i -> R20
.even
0292 _main::
0292 6997 sbiw R28,25
0294 .dbline -1
0294 .dbline 253
0294 ;
0294 ; void main(void)
0294 ; {uchar i;
0294 .dbline 254
0294 ; uchar time[15]={2,0,0,4,1,2,2,7,1,1,7,3,0,5,0};
0294 80E0 ldi R24,<L86
0296 90E0 ldi R25,>L86
0298 EC2F mov R30,R28
029A FD2F mov R31,R29
029C 3396 adiw R30,3
029E 0FE0 ldi R16,15
02A0 10E0 ldi R17,0
02A2 FA93 st -y,R31
02A4 EA93 st -y,R30
02A6 9A93 st -y,R25
02A8 8A93 st -y,R24
02AA 00D0 rcall asgncblk
02AC .dbline 255
02AC ; uchar Set_Time[7]={0x50,0x30,0x17,0x01,0x27,0x12,0x04};
02AC 80E0 ldi R24,<L87
02AE 90E0 ldi R25,>L87
02B0 EC2F mov R30,R28
02B2 FD2F mov R31,R29
02B4 7296 adiw R30,18
02B6 07E0 ldi R16,7
02B8 10E0 ldi R17,0
02BA FA93 st -y,R31
02BC EA93 st -y,R30
02BE 9A93 st -y,R25
02C0 8A93 st -y,R24
02C2 00D0 rcall asgncblk
02C4 .dbline 257
02C4 ; // 2004-12-27 Monday 17-30-50
02C4 ; uchar SD2303_Controller1=0x00;//禁止中断
02C4 6627 clr R22
02C6 .dbline 258
02C6 ; uchar SD2303_Controller2=0x20;//24小时制;
02C6 40E2 ldi R20,32
02C8 .dbline 260
02C8 ; // InitLCD();
02C8 ; DDRA=0xff;
02C8 8FEF ldi R24,255
02CA 8ABB out 0x1a,R24
02CC .dbline 261
02CC ; DDRB=0xff;
02CC 87BB out 0x17,R24
02CE .dbline 262
02CE ; DDRC=0xFF;
02CE 84BB out 0x14,R24
02D0 .dbline 263
02D0 ; Write_1byte(SD2303,0x0e,SD2303_Controller1);
02D0 6883 std y+0,R22
02D2 2EE0 ldi R18,14
02D4 04E6 ldi R16,100
02D6 89DF rcall _Write_1byte
02D8 .dbline 264
02D8 ; Write_1byte(SD2303,0x0f,SD2303_Controller2);
02D8 4883 std y+0,R20
02DA 2FE0 ldi R18,15
02DC 04E6 ldi R16,100
02DE 85DF rcall _Write_1byte
02E0 .dbline 265
02E0 ; Write_Nbyte(SD2303,0x00,Set_Time,7);
02E0 87E0 ldi R24,7
02E2 8A83 std y+2,R24
02E4 8C2F mov R24,R28
02E6 9D2F mov R25,R29
02E8 4296 adiw R24,18
02EA 9983 std y+1,R25
02EC 8883 std y+0,R24
02EE 2227 clr R18
02F0 04E6 ldi R16,100
02F2 52DF rcall _Write_Nbyte
02F4 63C0 rjmp L89
02F6 L88:
02F6 .dbline 268
02F6 ;
02F6 ; while(1)
02F6 ; {Read_Nbyte(SD2303,0x00,Set_Time,7);
02F6 .dbline 268
02F6 87E0 ldi R24,7
02F8 8A83 std y+2,R24
02FA 8C2F mov R24,R28
02FC 9D2F mov R25,R29
02FE 4296 adiw R24,18
0300 9983 std y+1,R25
0302 8883 std y+0,R24
0304 2227 clr R18
0306 04E6 ldi R16,100
0308 8BDF rcall _Read_Nbyte
030A .dbline 269
030A ; time[2]=Set_Time[6]>>4; //年高位;
030A 888D ldd R24,y+24
030C 8295 swap R24
030E 8F70 andi R24,#0x0F
0310 8D83 std y+5,R24
0312 .dbline 270
0312 ; time[3]=Set_Time[6]&0x0f;//年低位;
0312 888D ldd R24,y+24
0314 8F70 andi R24,15
0316 8E83 std y+6,R24
0318 .dbline 271
0318 ; time[4]=Set_Time[5]>>4; //月高位;
0318 8F89 ldd R24,y+23
031A 8295 swap R24
031C 8F70 andi R24,#0x0F
031E 8F83 std y+7,R24
0320 .dbline 272
0320 ; time[5]=Set_Time[5]&0x0f; //月低位;
0320 8F89 ldd R24,y+23
0322 8F70 andi R24,15
0324 8887 std y+8,R24
0326 .dbline 273
0326 ; time[6]=Set_Time[4]>>4;//日高位;
0326 8E89 ldd R24,y+22
0328 8295 swap R24
032A 8F70 andi R24,#0x0F
032C 8987 std y+9,R24
032E .dbline 274
032E ; time[7]=Set_Time[4]&0x0f; //日低位;
032E 8E89 ldd R24,y+22
0330 8F70 andi R24,15
0332 8A87 std y+10,R24
0334 .dbline 275
0334 ; time[8]=Set_Time[3]; //WEEK;
0334 2D88 ldd R2,y+21
0336 2B86 std y+11,R2
0338 .dbline 276
0338 ; time[9]=Set_Time[2]>>4;//时高位;
0338 8C89 ldd R24,y+20
033A 8295 swap R24
033C 8F70 andi R24,#0x0F
033E 8C87 std y+12,R24
0340 .dbline 277
0340 ; time[10]=Set_Time[2]&0x0f; //时低位;
0340 8C89 ldd R24,y+20
0342 8F70 andi R24,15
0344 8D87 std y+13,R24
0346 .dbline 278
0346 ; time[11]=Set_Time[1]>>4; //分高位;
0346 8B89 ldd R24,y+19
0348 8295 swap R24
034A 8F70 andi R24,#0x0F
034C 8E87 std y+14,R24
034E .dbline 279
034E ; time[12]=Set_Time[1]&0x0f; //分低位;
034E 8B89 ldd R24,y+19
0350 8F70 andi R24,15
0352 8F87 std y+15,R24
0354 .dbline 280
0354 ; time[13]=Set_Time[0]>>4;//秒高位;
0354 8A89 ldd R24,y+18
0356 8295 swap R24
0358 8F70 andi R24,#0x0F
035A 888B std y+16,R24
035C .dbline 281
035C ; time[14]=Set_Time[0]&0x0f; //秒低位;
035C 8A89 ldd R24,y+18
035E 8F70 andi R24,15
0360 898B std y+17,R24
0362 .dbline 282
0362 ; for(i=0;i<200;i++)
0362 4427 clr R20
0364 06C0 rjmp L118
0366 L115:
0366 .dbline 283
0366 0C2F mov R16,R28
0368 1D2F mov R17,R29
036A 0D5F subi R16,253 ; offset = 3
036C 1F4F sbci R17,255
036E 56DE rcall _Display
0370 L116:
0370 .dbline 282
0370 4395 inc R20
0372 L118:
0372 .dbline 282
0372 483C cpi R20,200
0374 C0F3 brlo L115
0376 .dbline 284
0376 ; Display(time);
0376 ; for(i=0;i<200;i++)
0376 4427 clr R20
0378 06C0 rjmp L122
037A L119:
037A .dbline 285
037A 0C2F mov R16,R28
037C 1D2F mov R17,R29
037E 095F subi R16,249 ; offset = 7
0380 1F4F sbci R17,255
0382 4CDE rcall _Display
0384 L120:
0384 .dbline 284
0384 4395 inc R20
0386 L122:
0386 .dbline 284
0386 483C cpi R20,200
0388 C0F3 brlo L119
038A .dbline 286
038A ; Display(time+4);
038A ; for(i=0;i<200;i++)
038A 4427 clr R20
038C 06C0 rjmp L127
038E L124:
038E .dbline 287
038E 0C2F mov R16,R28
0390 1D2F mov R17,R29
0392 045F subi R16,244 ; offset = 12
0394 1F4F sbci R17,255
0396 42DE rcall _Display
0398 L125:
0398 .dbline 286
0398 4395 inc R20
039A L127:
039A .dbline 286
039A 483C cpi R20,200
039C C0F3 brlo L124
039E .dbline 288
039E ; Display(time+9);
039E ; for(i=0;i<200;i++)
039E 4427 clr R20
03A0 06C0 rjmp L132
03A2 L129:
03A2 .dbline 289
03A2 0C2F mov R16,R28
03A4 1D2F mov R17,R29
03A6 025F subi R16,242 ; offset = 14
03A8 1F4F sbci R17,255
03AA 38DE rcall _Display
03AC L130:
03AC .dbline 288
03AC 4395 inc R20
03AE L132:
03AE .dbline 288
03AE 483C cpi R20,200
03B0 C0F3 brlo L129
03B2 .dbline 290
03B2 0C2F mov R16,R28
03B4 1D2F mov R17,R29
03B6 0D5F subi R16,253 ; offset = 3
03B8 1F4F sbci R17,255
03BA 30DE rcall _Display
03BC .dbline 292
03BC L89:
03BC .dbline 267
03BC 9CCF rjmp L88
03BE X1:
03BE .dbline -2
03BE .dbline 293
03BE ; Display(time+11);
03BE ; Display(time);
03BE ;
03BE ; }
03BE ; }
03BE L85:
03BE 6996 adiw R28,25
03C0 .dbline 0 ; func end
03C0 0895 ret
03C2 .dbsym r SD2303_Controller2 20 c
03C2 .dbsym r SD2303_Controller1 22 c
03C2 .dbsym l Set_Time 18 A[7:7]c
03C2 .dbsym l time 3 A[15:15]c
03C2 .dbsym r i 20 c
03C2 .dbend
.area bss(ram, con, rel)
0000 .dbfile C:\DOCUME~1\Administrator\桌面\张军\PS2-ICC\RTC.C
0000 _F_Flag::
0000 .blkb 1
0001 .dbsym e F_Flag _F_Flag c
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -