📄 icc17-1.lis
字号:
00B0 0000 nop
00B2 .dbline 46
00B2 0000 nop
00B4 .dbline 47
00B4 ;
00B4 4BBB out 0x1b,R20
00B6 .dbline 48
00B6 ; /******************************/
00B6 C29A sbi 0x18,2
00B8 .dbline 48
00B8 0000 nop
00BA .dbline 48
00BA 0000 nop
00BC .dbline 49
00BC ; void timer1_init(void)
00BC C298 cbi 0x18,2
00BE .dbline 49
00BE 0000 nop
00C0 .dbline 49
00C0 0000 nop
00C2 .dbline -2
00C2 L12:
00C2 0E940000 xcall pop_gset2
00C6 .dbline 0 ; func end
00C6 0895 ret
00C8 .dbsym l sel_r 4 c
00C8 .dbsym r sel_l 22 c
00C8 .dbsym r c 20 c
00C8 .dbend
00C8 .dbfunc e lw _lw fV
00C8 ; dd -> y+5
00C8 ; y -> R22
00C8 ; x -> R20
.even
00C8 _lw::
00C8 0E940000 xcall push_gset2
00CC 622F mov R22,R18
00CE 402F mov R20,R16
00D0 2197 sbiw R28,1
00D2 .dbline -1
00D2 .dbline 53
00D2 ; {
00D2 ; CLI();
00D2 ; TCCR1B = 0x00; //stop
00D2 ; TCNT1H = 0xE1; //setup
00D2 .dbline 54
00D2 ; TCNT1L = 0x7C;
00D2 4034 cpi R20,64
00D4 50F0 brlo L18
00D6 .dbline 55
00D6 ; TCCR1A = 0x00;
00D6 .dbline 55
00D6 262F mov R18,R22
00D8 042F mov R16,R20
00DA 0054 subi R16,64
00DC 20D0 xcall _set_xy
00DE .dbline 56
00DE ; TCCR1B = 0x05; //start Timer
00DE 81E0 ldi R24,1
00E0 8883 std y+0,R24
00E2 2227 clr R18
00E4 0D81 ldd R16,y+5
00E6 CCDF xcall _wdata
00E8 .dbline 56
00E8 08C0 xjmp L19
00EA L18:
00EA .dbline 58
00EA .dbline 58
00EA 262F mov R18,R22
00EC 042F mov R16,R20
00EE 17D0 xcall _set_xy
00F0 .dbline 59
00F0 2224 clr R2
00F2 2882 std y+0,R2
00F4 21E0 ldi R18,1
00F6 0D81 ldd R16,y+5
00F8 C3DF xcall _wdata
00FA .dbline 59
00FA L19:
00FA .dbline -2
00FA L17:
00FA 2196 adiw R28,1
00FC 0E940000 xcall pop_gset2
0100 .dbline 0 ; func end
0100 0895 ret
0102 .dbsym l dd 5 c
0102 .dbsym r y 22 c
0102 .dbsym r x 20 c
0102 .dbend
0102 .dbfunc e set_startline _set_startline fV
0102 ; i -> R20
.even
0102 _set_startline::
0102 0E940000 xcall push_gset1
0106 402F mov R20,R16
0108 2197 sbiw R28,1
010A .dbline -1
010A .dbline 63
010A ; TIMSK = 0x04;
010A ; SEI();
010A ; }
010A ; /*************主函数*************/
010A ; void main(void)
010A ; {
010A ; uchar loop,tempday;
010A .dbline 64
010A ; m16_init();
010A 4054 subi R20,64 ; addi 192
010C .dbline 65
010C ; lcd_init();
010C 81E0 ldi R24,1
010E 8883 std y+0,R24
0110 21E0 ldi R18,1
0112 042F mov R16,R20
0114 91DF xcall _wcode
0116 .dbline -2
0116 L20:
0116 2196 adiw R28,1
0118 0E940000 xcall pop_gset1
011C .dbline 0 ; func end
011C 0895 ret
011E .dbsym r i 20 c
011E .dbend
011E .dbfunc e set_xy _set_xy fV
011E ; y -> R20
011E ; x -> R22
.even
011E _set_xy::
011E 0E940000 xcall push_gset2
0122 422F mov R20,R18
0124 602F mov R22,R16
0126 2197 sbiw R28,1
0128 .dbline -1
0128 .dbline 69
0128 ; display_tu(1);
0128 ; Delay_nms(3000);
0128 ; display_tu(0);
0128 ; Delay_nms(3000);
0128 .dbline 70
0128 ; lcd_init();
0128 605C subi R22,192 ; addi 64
012A .dbline 71
012A ; display_chinese();
012A 4854 subi R20,72 ; addi 184
012C .dbline 72
012C ; Delay_nms(5000);
012C 81E0 ldi R24,1
012E 8883 std y+0,R24
0130 21E0 ldi R18,1
0132 062F mov R16,R22
0134 81DF xcall _wcode
0136 .dbline 73
0136 ; lcd_init();
0136 81E0 ldi R24,1
0138 8883 std y+0,R24
013A 21E0 ldi R18,1
013C 042F mov R16,R20
013E 7CDF xcall _wcode
0140 .dbline -2
0140 L21:
0140 2196 adiw R28,1
0142 0E940000 xcall pop_gset2
0146 .dbline 0 ; func end
0146 0895 ret
0148 .dbsym r y 20 c
0148 .dbsym r x 22 c
0148 .dbend
0148 .dbfunc e dison_off _dison_off fV
0148 ; o -> R20
.even
0148 _dison_off::
0148 0E940000 xcall push_gset1
014C 402F mov R20,R16
014E 2197 sbiw R28,1
0150 .dbline -1
0150 .dbline 77
0150 ; //***********************************/
0150 ; display_hz(4,0,0,1,nian);
0150 ; display_hz(8,0,0,1,yue);
0150 ; display_hz(12,0,0,1,ri);
0150 .dbline 78
0150 ; display_hz(4,2,0,1,shi);
0150 425C subi R20,194 ; addi 62
0152 .dbline 79
0152 ; display_hz(8,2,0,1,fen);
0152 81E0 ldi R24,1
0154 8883 std y+0,R24
0156 21E0 ldi R18,1
0158 042F mov R16,R20
015A 6EDF xcall _wcode
015C .dbline -2
015C L22:
015C 2196 adiw R28,1
015E 0E940000 xcall pop_gset1
0162 .dbline 0 ; func end
0162 0895 ret
0164 .dbsym r o 20 c
0164 .dbend
0164 .dbfunc e reset _reset fV
.even
0164 _reset::
0164 .dbline -1
0164 .dbline 83
0164 ; display_hz(12,2,0,1,miao);
0164 ; /**********************************/
0164 ; col=0;row=4;Putstr(STR,16);
0164 ; /***********************************/
0164 .dbline 84
0164 ; for(loop=0;loop<5;loop++)
0164 C598 cbi 0x18,5
0166 .dbline 85
0166 ; {display_hz(2*loop,6,loop,1,temperature);}
0166 0AE0 ldi R16,10
0168 10E0 ldi R17,0
016A 0E94B409 xcall _Delay_nms
016E .dbline 86
016E ; display_hz(14,6,0,1,du);
016E C59A sbi 0x18,5
0170 .dbline 87
0170 ; /***********************************/
0170 0AE0 ldi R16,10
0172 10E0 ldi R17,0
0174 0E94B409 xcall _Delay_nms
0178 .dbline -2
0178 L23:
0178 .dbline 0 ; func end
0178 0895 ret
017A .dbend
017A .dbfunc e lcd_init _lcd_init fV
017A ; y -> R20
017A ; x -> R22
.even
017A _lcd_init::
017A 0E940000 xcall push_gset2
017E 2197 sbiw R28,1
0180 .dbline -1
0180 .dbline 91
0180 ; for(;;)
0180 ; {
0180 ; if(Flag_1820Error==0)read_temperature();
0180 ; tempday=conv(year,month);
0180 .dbline 92
0180 ; if(second>59){second=0;minute++;}
0180 F1DF xcall _reset
0182 .dbline 93
0182 ; if(minute>59){minute=0;hour++;}
0182 0027 clr R16
0184 BEDF xcall _set_startline
0186 .dbline 94
0186 ; if(hour>23){hour=0;date++;}
0186 0027 clr R16
0188 DFDF xcall _dison_off
018A .dbline 95
018A ; if(date>tempday){date=1;month++;}
018A 4427 clr R20
018C 0BC0 xjmp L28
018E L25:
018E .dbline 96
018E ; if(month>12){month=1;year++;}
018E .dbline 97
018E 6627 clr R22
0190 06C0 xjmp L32
0192 L29:
0192 .dbline 97
0192 2224 clr R2
0194 2882 std y+0,R2
0196 242F mov R18,R20
0198 062F mov R16,R22
019A 96DF xcall _lw
019C L30:
019C .dbline 97
019C 6395 inc R22
019E L32:
019E .dbline 97
019E 6038 cpi R22,128
01A0 C0F3 brlo L29
01A2 .dbline 98
01A2 L26:
01A2 .dbline 95
01A2 4395 inc R20
01A4 L28:
01A4 .dbline 95
01A4 4830 cpi R20,8
01A6 98F3 brlo L25
01A8 .dbline 99
01A8 ; if(year>9999)year=0;
01A8 ; dis_time();
01A8 ; //----------------------------------
01A8 01E0 ldi R16,1
01AA CEDF xcall _dison_off
01AC .dbline -2
01AC L24:
01AC 2196 adiw R28,1
01AE 0E940000 xcall pop_gset2
01B2 .dbline 0 ; func end
01B2 0895 ret
01B4 .dbsym r y 20 c
01B4 .dbsym r x 22 c
01B4 .dbend
01B4 .dbfunc e display_hz _display_hz fV
01B4 ; dx -> R20
01B4 ; i -> R22
01B4 ; p -> R10,R11
01B4 ; fb -> R12
01B4 ; n -> R14
01B4 ; yy -> y+13
01B4 ; xx -> y+11
.even
01B4 _display_hz::
01B4 0E940000 xcall push_arg4
01B8 0E940000 xcall push_gset5
01BC 2197 sbiw R28,1
01BE EF84 ldd R14,y+15
01C0 C988 ldd R12,y+17
01C2 AB88 ldd R10,y+19
01C4 BC88 ldd R11,y+20
01C6 .dbline -1
01C6 .dbline 103
01C6 ; if(d[0]==1)
01C6 ; {
01C6 ; if((hour==set_hour1)&&(minute==set_minute1))Led_On;
01C6 ; }
01C6 .dbline 105
01C6 ; //----------------------------------
01C6 ; if(d[1]==1)
01C6 6627 clr R22
01C8 37C0 xjmp L37
01CA L34:
01CA .dbline 106
01CA ; {
01CA .dbline 106
01CA 80E2 ldi R24,32
01CC 8E9D mul R24,R14
01CE 1001 movw R2,R0
01D0 82E0 ldi R24,2
01D2 869F mul R24,R22
01D4 F001 movw R30,R0
01D6 E20D add R30,R2
01D8 F31D adc R31,R3
01DA EA0D add R30,R10
01DC FB1D adc R31,R11
01DE 4491 lpm R20,Z
01E0 .dbline 107
01E0 ; if((hour==set_hour2)&&(minute==set_minute2))Led_Off;
01E0 CC20 tst R12
01E2 29F0 breq L38
01E4 .dbline 107
01E4 242E mov R2,R20
01E6 3324 clr R3
01E8 4FEF ldi R20,255
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -