📄 function.lis
字号:
0670 L37:
0670 .dbline 217
0670 .dbline 217
0670 A895 wdr
0672 .dbline 218
0672 81E0 ldi R24,1
0674 8A83 std y+2,R24
0676 2224 clr R2
0678 2882 std y+0,R2
067A 22E0 ldi R18,2
067C 0FE0 ldi R16,15
067E 24D3 xcall _led7_display
0680 .dbline 219
0680 81E0 ldi R24,1
0682 8A83 std y+2,R24
0684 2224 clr R2
0686 2882 std y+0,R2
0688 23E0 ldi R18,3
068A 01E1 ldi R16,17
068C 1DD3 xcall _led7_display
068E .dbline 220
068E 81E0 ldi R24,1
0690 8A83 std y+2,R24
0692 2224 clr R2
0694 2882 std y+0,R2
0696 24E0 ldi R18,4
0698 00E1 ldi R16,16
069A 16D3 xcall _led7_display
069C .dbline 221
069C 81E0 ldi R24,1
069E 8A83 std y+2,R24
06A0 2224 clr R2
06A2 2882 std y+0,R2
06A4 25E0 ldi R18,5
06A6 00E1 ldi R16,16
06A8 0FD3 xcall _led7_display
06AA .dbline 222
06AA L38:
06AA .dbline -2
06AA L10:
06AA 2396 adiw R28,3
06AC 0E940000 xcall pop_gset5
06B0 2296 adiw R28,2
06B2 .dbline 0 ; func end
06B2 0895 ret
06B4 .dbsym r t4 22 c
06B4 .dbsym r t3 12 c
06B4 .dbsym r t5 20 i
06B4 .dbsym r t2 10 c
06B4 .dbsym r t1 14 c
06B4 .dbsym l data 15 i
06B4 .dbsym l point_flag 13 c
06B4 .dbsym r channel 20 c
06B4 .dbend
06B4 .dbfunc e delay_1us _delay_1us fV
.even
06B4 _delay_1us::
06B4 .dbline -1
06B4 .dbline 226
06B4 ;
06B4 ; else
06B4 ; {WDR();
06B4 ; led7_display(15,2,0,1);
06B4 ; led7_display(17,3,0,1);
06B4 ; led7_display(16,4,0,1);
06B4 ; led7_display(16,5,0,1);
06B4 ; }
06B4 ; }
06B4 ;
06B4 ; void delay_1us(void)
06B4 ; {asm("nop");}
06B4 .dbline 226
06B4 0000 nop
06B6 .dbline -2
06B6 L66:
06B6 .dbline 0 ; func end
06B6 0895 ret
06B8 .dbend
06B8 .dbfunc e delay_us _delay_us fV
06B8 ; i -> R20,R21
06B8 ; n -> R22,R23
.even
06B8 _delay_us::
06B8 0E940000 xcall push_gset2
06BC B801 movw R22,R16
06BE .dbline -1
06BE .dbline 229
06BE ;
06BE ; void delay_us(uint n)
06BE ; {
06BE .dbline 230
06BE ; uint i=0;
06BE 4427 clr R20
06C0 5527 clr R21
06C2 .dbline 231
06C2 ; for(i=0;i<n;i++)
06C2 03C0 xjmp L71
06C4 L68:
06C4 .dbline 232
06C4 F7DF xcall _delay_1us
06C6 L69:
06C6 .dbline 231
06C6 4F5F subi R20,255 ; offset = 1
06C8 5F4F sbci R21,255
06CA L71:
06CA .dbline 231
06CA 4617 cp R20,R22
06CC 5707 cpc R21,R23
06CE D0F3 brlo L68
06D0 .dbline -2
06D0 L67:
06D0 0E940000 xcall pop_gset2
06D4 .dbline 0 ; func end
06D4 0895 ret
06D6 .dbsym r i 20 i
06D6 .dbsym r n 22 i
06D6 .dbend
06D6 .dbfunc e delay_1ms _delay_1ms fV
06D6 ; i -> R16,R17
.even
06D6 _delay_1ms::
06D6 .dbline -1
06D6 .dbline 236
06D6 ; delay_1us();
06D6 ; }
06D6 ;
06D6 ; void delay_1ms(void)
06D6 ; {
06D6 .dbline 238
06D6 ; uint i;
06D6 ; for(i=1;i<(uint)(xtal*143-2);i++)
06D6 01E0 ldi R16,1
06D8 10E0 ldi R17,0
06DA 02C0 xjmp L76
06DC L73:
06DC .dbline 239
06DC L74:
06DC .dbline 238
06DC 0F5F subi R16,255 ; offset = 1
06DE 1F4F sbci R17,255
06E0 L76:
06E0 .dbline 238
06E0 8EEE ldi R24,2286
06E2 98E0 ldi R25,8
06E4 0817 cp R16,R24
06E6 1907 cpc R17,R25
06E8 C8F3 brlo L73
06EA .dbline -2
06EA L72:
06EA .dbline 0 ; func end
06EA 0895 ret
06EC .dbsym r i 16 i
06EC .dbend
06EC .dbfunc e delay_ms _delay_ms fV
06EC ; i -> R20,R21
06EC ; n -> R22,R23
.even
06EC _delay_ms::
06EC 0E940000 xcall push_gset2
06F0 B801 movw R22,R16
06F2 .dbline -1
06F2 .dbline 242
06F2 ; ;
06F2 ; }
06F2 ; void delay_ms(uint n)
06F2 ; {
06F2 .dbline 243
06F2 ; uint i=0;
06F2 4427 clr R20
06F4 5527 clr R21
06F6 .dbline 244
06F6 ; for(i=0;i<n;i++)
06F6 03C0 xjmp L81
06F8 L78:
06F8 .dbline 245
06F8 EEDF xcall _delay_1ms
06FA L79:
06FA .dbline 244
06FA 4F5F subi R20,255 ; offset = 1
06FC 5F4F sbci R21,255
06FE L81:
06FE .dbline 244
06FE 4617 cp R20,R22
0700 5707 cpc R21,R23
0702 D0F3 brlo L78
0704 .dbline -2
0704 L77:
0704 0E940000 xcall pop_gset2
0708 .dbline 0 ; func end
0708 0895 ret
070A .dbsym r i 20 i
070A .dbsym r n 22 i
070A .dbend
070A .dbfunc e get_id _get_id fc
070A ; temp -> R16
.even
070A _get_id::
070A .dbline -1
070A .dbline 248
070A ; delay_1ms();
070A ; }
070A ; unsigned char get_id(void) //读取拨码开关
070A ; {
070A .dbline 250
070A ; unsigned char temp;
070A ; PORTC = addr_id;
070A 80EF ldi R24,240
070C 88B9 out 0x8,R24
070E .dbline 251
070E ; WDR();
070E A895 wdr
0710 .dbline 252
0710 ; asm("nop");
0710 0000 nop
0712 .dbline 253
0712 ; asm("nop");
0712 0000 nop
0714 .dbline 254
0714 ; asm("nop");
0714 0000 nop
0716 .dbline 255
0716 ; asm("nop");
0716 0000 nop
0718 .dbline 256
0718 ; asm("nop");
0718 0000 nop
071A .dbline 257
071A ; asm("nop");
071A 0000 nop
071C .dbline 258
071C ; temp = PINB;
071C 03B1 in R16,0x3
071E .dbline 259
071E ; temp = ~(temp);
071E 0095 com R16
0720 .dbline 260
0720 ; temp = temp&0x7f;
0720 0F77 andi R16,127
0722 .dbline 261
0722 ; return temp;
0722 .dbline -2
0722 L82:
0722 .dbline 0 ; func end
0722 0895 ret
0724 .dbsym r temp 16 c
0724 .dbend
0724 .dbfunc e buzzer_on _buzzer_on fV
0724 ; temp -> <dead>
.even
0724 _buzzer_on::
0724 .dbline -1
0724 .dbline 265
0724 ; }
0724 ;
0724 ; void buzzer_on(void)
0724 ; {
0724 .dbline 267
0724 ; unsigned char temp;
0724 ; WDR();
0724 A895 wdr
0726 .dbline 268
0726 ; out_state|=0x01;
0726 80910000 lds R24,_out_state
072A 8160 ori R24,1
072C 80930000 sts _out_state,R24
0730 .dbline 269
0730 ; PORTC&=0xef;
0730 88B1 in R24,0x8
0732 8F7E andi R24,239
0734 88B9 out 0x8,R24
0736 .dbline 271
0736 ;
0736 ; PORTE = (out_state<<2);
0736 20900000 lds R2,_out_state
073A 220C lsl R2
073C 220C lsl R2
073E 2EB8 out 0xe,R2
0740 .dbline 272
0740 ; PORTD |= 0x80;
0740 5F9A sbi 0xb,7
0742 .dbline 273
0742 ; asm("nop");
0742 0000 nop
0744 .dbline 274
0744 ; asm("nop");
0744 0000 nop
0746 .dbline 275
0746 ; PORTD &= 0x7f;
0746 8BB1 in R24,0xb
0748 8F77 andi R24,127
074A 8BB9 out 0xb,R24
074C .dbline -2
074C L83:
074C .dbline 0 ; func end
074C 0895 ret
074E .dbsym l temp 1 c
074E .dbend
074E .dbfunc e buzzer_off _buzzer_off fV
074E ; temp -> <dead>
.even
074E _buzzer_off::
074E .dbline -1
074E .dbline 279
074E ; }
074E ;
074E ; void buzzer_off(void)
074E ; {
074E .dbline 281
074E ; unsigned char temp;
074E ; WDR();
074E A895 wdr
0750 .dbline 282
0750 ; PORTC&=0xef;
0750 88B1 in R24,0x8
0752 8F7E andi R24,239
0754 88B9 out 0x8,R24
0756 .dbline 283
0756 ; out_state&=0xfe;
0756 80910000 lds R24,_out_state
075A 8E7F andi R24,254
075C 80930000 sts _out_state,R24
0760 .dbline 284
0760 ; PORTE = (out_state<<2);
0760 282E mov R2,R24
0762 220C lsl R2
0764 220C lsl R2
0766 2EB8 out 0xe,R2
0768 .dbline 285
0768 ; PORTD |= 0x80;
0768 5F9A sbi 0xb,7
076A .dbline 286
076A ; asm("nop");
076A 0000 nop
076C .dbline 287
076C ; asm("nop");
076C
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -