📄 ac11-3.lis
字号:
0344 2224 clr R2
0346 20920000 sts _set_min,R2
034A L53:
034A .dbline 75
034A ; if(S4==0){set_min++;if(set_min>59)set_min=0;}
034A L51:
034A .dbline 76
034A ; if(SINT0==0){time_flag=1;}
034A 8299 sbic 0x10,2
034C 03C0 rjmp L55
034E .dbline 76
034E .dbline 76
034E 81E0 ldi R24,1
0350 80930900 sts _time_flag,R24
0354 .dbline 76
0354 L55:
0354 .dbline 77
0354 ; if(SINT1==0){write_flag=1;}
0354 8399 sbic 0x10,3
0356 03C0 rjmp L57
0358 .dbline 77
0358 .dbline 77
0358 81E0 ldi R24,1
035A 80930A00 sts _write_flag,R24
035E .dbline 77
035E L57:
035E .dbline 78
035E L37:
035E .dbline -2
035E L4:
035E 0E940000 xcall pop_gset1
0362 2990 ld R2,y+
0364 2FBE out 0x3f,R2
0366 F991 ld R31,y+
0368 E991 ld R30,y+
036A 9991 ld R25,y+
036C 8991 ld R24,y+
036E 3991 ld R19,y+
0370 2991 ld R18,y+
0372 1991 ld R17,y+
0374 0991 ld R16,y+
0376 3990 ld R3,y+
0378 2990 ld R2,y+
037A .dbline 0 ; func end
037A 1895 reti
037C .dbend
037C .dbfunc e delay _delay fV
037C ; i -> R20,R21
037C ; j -> R22,R23
037C ; k -> R16,R17
.even
037C _delay::
037C 0E940000 xcall push_gset2
0380 .dbline -1
0380 .dbline 82
0380 ; }
0380 ; }
0380 ; /***********************/
0380 ; void delay(uint k)
0380 ; {
0380 .dbline 84
0380 ; uint i,j;
0380 ; for(i=0;i<k;i++)
0380 4427 clr R20
0382 5527 clr R21
0384 0BC0 xjmp L63
0386 L60:
0386 .dbline 85
0386 ; {
0386 .dbline 86
0386 6627 clr R22
0388 7727 clr R23
038A 02C0 xjmp L67
038C L64:
038C .dbline 86
038C L65:
038C .dbline 86
038C 6F5F subi R22,255 ; offset = 1
038E 7F4F sbci R23,255
0390 L67:
0390 .dbline 86
0390 6C38 cpi R22,140
0392 E0E0 ldi R30,0
0394 7E07 cpc R23,R30
0396 D0F3 brlo L64
0398 .dbline 87
0398 L61:
0398 .dbline 84
0398 4F5F subi R20,255 ; offset = 1
039A 5F4F sbci R21,255
039C L63:
039C .dbline 84
039C 4017 cp R20,R16
039E 5107 cpc R21,R17
03A0 90F3 brlo L60
03A2 .dbline -2
03A2 L59:
03A2 0E940000 xcall pop_gset2
03A6 .dbline 0 ; func end
03A6 0895 ret
03A8 .dbsym r i 20 i
03A8 .dbsym r j 22 i
03A8 .dbsym r k 16 i
03A8 .dbend
03A8 .dbfunc e main _main fV
.even
03A8 _main::
03A8 2297 sbiw R28,2
03AA .dbline -1
03AA .dbline 91
03AA ; for(j=0;j<140;j++);
03AA ; }
03AA ; }
03AA ; /***********************/
03AA ; void main(void)
03AA ; {
03AA .dbline 92
03AA ; init_devices();
03AA 3CDE xcall _init_devices
03AC 61C0 xjmp L70
03AE L69:
03AE .dbline 94
03AE ; while(1)
03AE ; {
03AE .dbline 95
03AE ; if(write_flag==1)
03AE 80910A00 lds R24,_write_flag
03B2 8130 cpi R24,1
03B4 19F5 brne L72
03B6 .dbline 96
03B6 ; {SREG=0x00;
03B6 .dbline 96
03B6 2224 clr R2
03B8 2FBE out 0x3f,R2
03BA .dbline 97
03BA ; EEPROM_WRITE(200,set_sec);delay(10);
03BA 81E0 ldi R24,1
03BC 90E0 ldi R25,0
03BE 9983 std y+1,R25
03C0 8883 std y+0,R24
03C2 20E0 ldi R18,<_set_sec
03C4 30E0 ldi R19,>_set_sec
03C6 08EC ldi R16,200
03C8 10E0 ldi R17,0
03CA 0E940000 xcall _EEPROMWriteBytes
03CE .dbline 97
03CE 0AE0 ldi R16,10
03D0 10E0 ldi R17,0
03D2 D4DF xcall _delay
03D4 .dbline 98
03D4 ; EEPROM_WRITE(201,set_min);delay(10);
03D4 81E0 ldi R24,1
03D6 90E0 ldi R25,0
03D8 9983 std y+1,R25
03DA 8883 std y+0,R24
03DC 20E0 ldi R18,<_set_min
03DE 30E0 ldi R19,>_set_min
03E0 09EC ldi R16,201
03E2 10E0 ldi R17,0
03E4 0E940000 xcall _EEPROMWriteBytes
03E8 .dbline 98
03E8 0AE0 ldi R16,10
03EA 10E0 ldi R17,0
03EC C7DF xcall _delay
03EE .dbline 99
03EE ; write_flag=0;
03EE 2224 clr R2
03F0 20920A00 sts _write_flag,R2
03F4 .dbline 100
03F4 ; dpw=1;
03F4 81E0 ldi R24,1
03F6 80930C00 sts _dpw,R24
03FA .dbline 101
03FA ; SREG|=0x80;
03FA 7894 bset 7
03FC .dbline 102
03FC ; }
03FC L72:
03FC .dbline 103
03FC ; if(time_flag==1)
03FC 80910900 lds R24,_time_flag
0400 8130 cpi R24,1
0402 19F5 brne L74
0404 .dbline 104
0404 ; {SREG=0x00;
0404 .dbline 104
0404 2224 clr R2
0406 2FBE out 0x3f,R2
0408 .dbline 105
0408 ; EEPROM_READ(200,set_sec);delay(10);
0408 81E0 ldi R24,1
040A 90E0 ldi R25,0
040C 9983 std y+1,R25
040E 8883 std y+0,R24
0410 20E0 ldi R18,<_set_sec
0412 30E0 ldi R19,>_set_sec
0414 08EC ldi R16,200
0416 10E0 ldi R17,0
0418 0E940000 xcall _EEPROMReadBytes
041C .dbline 105
041C 0AE0 ldi R16,10
041E 10E0 ldi R17,0
0420 ADDF xcall _delay
0422 .dbline 106
0422 ; EEPROM_READ(201,set_min);delay(10);
0422 81E0 ldi R24,1
0424 90E0 ldi R25,0
0426 9983 std y+1,R25
0428 8883 std y+0,R24
042A 20E0 ldi R18,<_set_min
042C 30E0 ldi R19,>_set_min
042E 09EC ldi R16,201
0430 10E0 ldi R17,0
0432 0E940000 xcall _EEPROMReadBytes
0436 .dbline 106
0436 0AE0 ldi R16,10
0438 10E0 ldi R17,0
043A A0DF xcall _delay
043C .dbline 107
043C ; SREG|=0x80;
043C 7894 bset 7
043E .dbline 108
043E ; dpt=1;
043E 81E0 ldi R24,1
0440 80930B00 sts _dpt,R24
0444 .dbline 109
0444 ; time_flag=0;
0444 2224 clr R2
0446 20920900 sts _time_flag,R2
044A .dbline 110
044A ; }
044A L74:
044A .dbline 111
044A ; if(dpt==1)
044A 80910B00 lds R24,_dpt
044E 8130 cpi R24,1
0450 79F4 brne L76
0452 .dbline 112
0452 ; {
0452 .dbline 113
0452 ; if((sec==set_sec)&&(min==set_min))LED1_0;
0452 20900100 lds R2,_set_sec
0456 30900300 lds R3,_sec
045A 3214 cp R3,R2
045C 49F4 brne L78
045E 20900000 lds R2,_set_min
0462 30900200 lds R3,_min
0466 3214 cp R3,R2
0468 19F4 brne L78
046A .dbline 113
046A 88B3 in R24,0x18
046C 8E7F andi R24,254
046E 88BB out 0x18,R24
0470 L78:
0470 .dbline 114
0470 ; }
0470 L76:
0470 .dbline 115
0470 L70:
0470 .dbline 93
0470 9ECF xjmp L69
0472 X12:
0472 .dbline -2
0472 L68:
0472 2296 adiw R28,2
0474 .dbline 0 ; func end
0474 0895 ret
0476 .dbend
.area bss(ram, con, rel)
0000 .dbfile d:\MYDOCU~1\ac11-3\ac11-3.c
0000 _set_min::
0000 .blkb 1
0001 .dbsym e set_min _set_min c
0001 _set_sec::
0001 .blkb 1
0002 .dbsym e set_sec _set_sec c
0002 _min::
0002 .blkb 1
0003 .dbsym e min _min c
0003 _sec::
0003 .blkb 1
0004 .dbsym e sec _sec c
0004 _ms_cnt::
0004 .blkb 2
0006 .dbsym e ms_cnt _ms_cnt i
0006 _key_cnt::
0006 .blkb 2
0008 .dbsym e key_cnt _key_cnt i
0008 _cnt::
0008 .blkb 1
0009 .dbsym e cnt _cnt c
0009 _time_flag::
0009 .blkb 1
000A .dbsym e time_flag _time_flag c
000A _write_flag::
000A .blkb 1
000B .dbsym e write_flag _write_flag c
000B _dpt::
000B .blkb 1
000C .dbsym e dpt _dpt c
000C _dpw::
000C .blkb 1
000D .dbsym e dpw _dpw c
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -