📄 function.lis
字号:
0168 2A93 st -y,r18
016A 0E940000 xcall push_gset5
016E 402F mov R20,R16
0170 2397 sbiw R28,3
0172 .dbline -1
0172 .dbline 35
0172 ; }
0172 ;
0172 ; void turn_display(unsigned char channel,unsigned char point_flag,unsigned int data)
0172 ; {
0172 .dbline 38
0172 ; unsigned char t1,t2,t3,t4;
0172 ; unsigned int t5;
0172 ; if( pannel_led[channel].up_down==0xa5)
0172 8AE1 ldi R24,26
0174 849F mul R24,R20
0176 F001 movw R30,R0
0178 80E0 ldi R24,<_pannel_led+6
017A 90E0 ldi R25,>_pannel_led+6
017C E80F add R30,R24
017E F91F adc R31,R25
0180 8081 ldd R24,z+0
0182 853A cpi R24,165
0184 09F0 breq X0
0186 2FC0 xjmp L11
0188 X0:
0188 .dbline 39
0188 ; {
0188 .dbline 40
0188 ; if( pannel_led[channel].state==0x5a)
0188 8AE1 ldi R24,26
018A 849F mul R24,R20
018C F001 movw R30,R0
018E 80E0 ldi R24,<_pannel_led+21
0190 90E0 ldi R25,>_pannel_led+21
0192 E80F add R30,R24
0194 F91F adc R31,R25
0196 8081 ldd R24,z+0
0198 8A35 cpi R24,90
019A 29F4 brne L14
019C .dbline 41
019C ; {
019C .dbline 42
019C ; PORTD |= 0x01;
019C 589A sbi 0xb,0
019E .dbline 43
019E ; PORTD &= 0x7f;
019E 8BB1 in R24,0xb
01A0 8F77 andi R24,127
01A2 8BB9 out 0xb,R24
01A4 .dbline 44
01A4 ; }
01A4 57C0 xjmp L12
01A6 L14:
01A6 .dbline 45
01A6 ; else if(pannel_led[channel].state==0)
01A6 8AE1 ldi R24,26
01A8 849F mul R24,R20
01AA F001 movw R30,R0
01AC 80E0 ldi R24,<_pannel_led+21
01AE 90E0 ldi R25,>_pannel_led+21
01B0 E80F add R30,R24
01B2 F91F adc R31,R25
01B4 2080 ldd R2,z+0
01B6 2220 tst R2
01B8 21F4 brne L17
01BA .dbline 46
01BA ; {
01BA .dbline 47
01BA ; PORTD&=0x7e;
01BA 8BB1 in R24,0xb
01BC 8E77 andi R24,126
01BE 8BB9 out 0xb,R24
01C0 .dbline 48
01C0 ; }
01C0 49C0 xjmp L12
01C2 L17:
01C2 .dbline 49
01C2 ; else if(pannel_led[channel].state==0xa5)
01C2 8AE1 ldi R24,26
01C4 849F mul R24,R20
01C6 F001 movw R30,R0
01C8 80E0 ldi R24,<_pannel_led+21
01CA 90E0 ldi R25,>_pannel_led+21
01CC E80F add R30,R24
01CE F91F adc R31,R25
01D0 8081 ldd R24,z+0
01D2 853A cpi R24,165
01D4 09F0 breq X1
01D6 3EC0 xjmp L12
01D8 X1:
01D8 .dbline 50
01D8 ; {
01D8 .dbline 51
01D8 ; PORTD |= 0x03;
01D8 8BB1 in R24,0xb
01DA 8360 ori R24,3
01DC 8BB9 out 0xb,R24
01DE .dbline 52
01DE ; PORTD &= 0x7f;
01DE 8BB1 in R24,0xb
01E0 8F77 andi R24,127
01E2 8BB9 out 0xb,R24
01E4 .dbline 53
01E4 ; }
01E4 .dbline 54
01E4 ; }
01E4 37C0 xjmp L12
01E6 L11:
01E6 .dbline 55
01E6 ; else if(pannel_led[channel].up_down==0x5a)
01E6 8AE1 ldi R24,26
01E8 849F mul R24,R20
01EA F001 movw R30,R0
01EC 80E0 ldi R24,<_pannel_led+6
01EE 90E0 ldi R25,>_pannel_led+6
01F0 E80F add R30,R24
01F2 F91F adc R31,R25
01F4 8081 ldd R24,z+0
01F6 8A35 cpi R24,90
01F8 69F5 brne L23
01FA .dbline 56
01FA ; {
01FA .dbline 57
01FA ; if( pannel_led[channel].state==0x5a)
01FA 8AE1 ldi R24,26
01FC 849F mul R24,R20
01FE F001 movw R30,R0
0200 80E0 ldi R24,<_pannel_led+21
0202 90E0 ldi R25,>_pannel_led+21
0204 E80F add R30,R24
0206 F91F adc R31,R25
0208 8081 ldd R24,z+0
020A 8A35 cpi R24,90
020C 29F4 brne L26
020E .dbline 58
020E ; {
020E .dbline 59
020E ; PORTD |= 0x02;
020E 599A sbi 0xb,1
0210 .dbline 60
0210 ; PORTD &= 0x7f;
0210 8BB1 in R24,0xb
0212 8F77 andi R24,127
0214 8BB9 out 0xb,R24
0216 .dbline 61
0216 ; }
0216 1EC0 xjmp L27
0218 L26:
0218 .dbline 62
0218 ; else if(pannel_led[channel].state==0)
0218 8AE1 ldi R24,26
021A 849F mul R24,R20
021C F001 movw R30,R0
021E 80E0 ldi R24,<_pannel_led+21
0220 90E0 ldi R25,>_pannel_led+21
0222 E80F add R30,R24
0224 F91F adc R31,R25
0226 2080 ldd R2,z+0
0228 2220 tst R2
022A 21F4 brne L29
022C .dbline 63
022C ; {
022C .dbline 64
022C ; PORTD&=0xfd;
022C 8BB1 in R24,0xb
022E 8D7F andi R24,253
0230 8BB9 out 0xb,R24
0232 .dbline 65
0232 ; }
0232 10C0 xjmp L30
0234 L29:
0234 .dbline 66
0234 ; else if(pannel_led[channel].state==0xa5)
0234 8AE1 ldi R24,26
0236 849F mul R24,R20
0238 F001 movw R30,R0
023A 80E0 ldi R24,<_pannel_led+21
023C 90E0 ldi R25,>_pannel_led+21
023E E80F add R30,R24
0240 F91F adc R31,R25
0242 8081 ldd R24,z+0
0244 853A cpi R24,165
0246 31F4 brne L32
0248 .dbline 67
0248 ; {
0248 .dbline 68
0248 ; PORTD |= 0x03;
0248 8BB1 in R24,0xb
024A 8360 ori R24,3
024C 8BB9 out 0xb,R24
024E .dbline 69
024E ; PORTD &= 0x7f;
024E 8BB1 in R24,0xb
0250 8F77 andi R24,127
0252 8BB9 out 0xb,R24
0254 .dbline 70
0254 ; }
0254 L32:
0254 L30:
0254 L27:
0254 .dbline 71
0254 ; }
0254 L23:
0254 L12:
0254 .dbline 74
0254 ;
0254 ;
0254 ; t1 = channel/10;
0254 1AE0 ldi R17,10
0256 042F mov R16,R20
0258 0E940000 xcall div8u
025C E02E mov R14,R16
025E .dbline 75
025E ; t2 = channel%10;
025E 1AE0 ldi R17,10
0260 042F mov R16,R20
0262 0E940000 xcall mod8u
0266 A02E mov R10,R16
0268 .dbline 76
0268 ; if(!t1)
0268 EE20 tst R14
026A 41F4 brne L35
026C .dbline 77
026C ; led7_display(12,0,0,1);
026C 81E0 ldi R24,1
026E 8A83 std y+2,R24
0270 2224 clr R2
0272 2882 std y+0,R2
0274 2227 clr R18
0276 0CE0 ldi R16,12
0278 27D5 xcall _led7_display
027A 07C0 xjmp L36
027C L35:
027C .dbline 79
027C ; else
027C ; led7_display(t1,0,0,1);
027C 81E0 ldi R24,1
027E 8A83 std y+2,R24
0280 2224 clr R2
0282 2882 std y+0,R2
0284 2227 clr R18
0286 0E2D mov R16,R14
0288 1FD5 xcall _led7_display
028A L36:
028A .dbline 81
028A ;
028A ; led7_display(t2,1,0,1);
028A 81E0 ldi R24,1
028C 8A83 std y+2,R24
028E 2224 clr R2
0290 2882 std y+0,R2
0292 21E0 ldi R18,1
0294 0A2D mov R16,R10
0296 18D5 xcall _led7_display
0298 .dbline 82
0298 ; if(pannel_led[channel].state!=0xa5)
0298 8AE1 ldi R24,26
029A 849F mul R24,R20
029C F001 movw R30,R0
029E 80E0 ldi R24,<_pannel_led+21
02A0 90E0 ldi R25,>_pannel_led+21
02A2 E80F add R30,R24
02A4 F91F adc R31,R25
02A6 8081 ldd R24,z+0
02A8 853A cpi R24,165
02AA 09F4 brne X2
02AC E1C1 xjmp L37
02AE X2:
02AE .dbline 83
02AE ; {WDR();
02AE .dbline 83
02AE A895 wdr
02B0 .dbline 84
02B0 ; if(channel<36)
02B0 4432 cpi R20,36
02B2 08F0 brlo X3
02B4 94C1 xjmp L40
02B6 X3:
02B6 .dbline 85
02B6 ; {
02B6 .dbline 86
02B6 ; if(point_flag == 1)
02B6 8D85 ldd R24,y+13
02B8 8130 cpi R24,1
02BA 09F0 breq X4
02BC C6C0 xjmp L42
02BE X4:
02BE .dbline 87
02BE ; {
02BE .dbline 88
02BE ; CLI();
02BE F894 cli
02C0 .dbline 89
02C0 ; WDR();
02C0 A895 wdr
02C2 .dbline 90
02C2 ; t5 = data;
02C2 4F85 ldd R20,y+15
02C4 5889 ldd R21,y+16
02C6 .dbline 91
02C6 ; t1 = t5/1000;
02C6 28EE ldi R18,1000
02C8 33E0 ldi R19,3
02CA 8A01 movw R16,R20
02CC 0E940000 xcall div16u
02D0 E02E mov R14,R16
02D2 .dbline 92
02D2 ; t2 = (t5%1000)/100;
02D2 28EE ldi R18,1000
02D4 33E0 ldi R19,3
02D6 8A01 movw R16,R20
02D8 0E940000 xcall mod16u
02DC 24E6 ldi R18,100
02DE 30E0 ldi R19,0
02E0 0E940000 xcall div16u
02E4 A02E mov R10,R16
02E6 .dbline 93
02E6 ; t3 = ((t5%1000)%100)/10;
02E6 28EE ldi R18,1000
02E8 33E0 ldi R19,3
02EA 8A01 movw R16,R20
02EC 0E940000 xcall mod16u
02F0 24E6 ldi R18,100
02F2 30E0 ldi R19,0
02F4 0E940000 xcall mod16u
02F8 2AE0 ldi R18,10
02FA 30E0 ldi R19,0
02FC 0E940000 xcall div16u
0300 C02E mov R12,R16
0302 .dbline 94
0302 ; t4 = ((t5%1000)%100)%10;
0302 28EE ldi R18,1000
0304 33E0 ldi R19,3
0306 8A01 movw R16,R20
0308 0E940000 xcall mod16u
030C 24E6 ldi R18,100
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -