📄 display.lis
字号:
031A 2094 com R2
031C 6221 and R22,R2
031E .dbline 146
031E ; }
031E 97C0 xjmp L89
0320 L91:
0320 .dbline 148
0320 ; else //有闭锁则不输出
0320 ; {
0320 .dbline 149
0320 ; d&= ~(1<<i);
0320 01E0 ldi R16,1
0322 1C2D mov R17,R12
0324 0E940000 xcall lsl8
0328 202E mov R2,R16
032A 2094 com R2
032C A220 and R10,R2
032E .dbline 150
032E ; dd&= ~(1<<i);
032E 01E0 ldi R16,1
0330 1C2D mov R17,R12
0332 0E940000 xcall lsl8
0336 202E mov R2,R16
0338 2094 com R2
033A 6221 and R22,R2
033C .dbline 151
033C ; }
033C .dbline 152
033C ; }
033C 88C0 xjmp L89
033E L88:
033E .dbline 153
033E ; else if(pannel_led[j*8+i].state==normal) //正常显示
033E 88E0 ldi R24,8
0340 849F mul R24,R20
0342 102D mov R17,R0
0344 1C0D add R17,R12
0346 04E1 ldi R16,20
0348 0102 muls R16,R17
034A F001 movw R30,R0
034C 80E0 ldi R24,<_pannel_led+13
034E 90E0 ldi R25,>_pannel_led+13
0350 E80F add R30,R24
0352 F91F adc R31,R25
0354 2080 ldd R2,z+0
0356 2220 tst R2
0358 79F4 brne L94
035A .dbline 154
035A ; {
035A .dbline 155
035A ; d&= ~(1<<i);
035A 01E0 ldi R16,1
035C 1C2D mov R17,R12
035E 0E940000 xcall lsl8
0362 202E mov R2,R16
0364 2094 com R2
0366 A220 and R10,R2
0368 .dbline 156
0368 ; dd&= ~(1<<i);
0368 01E0 ldi R16,1
036A 1C2D mov R17,R12
036C 0E940000 xcall lsl8
0370 202E mov R2,R16
0372 2094 com R2
0374 6221 and R22,R2
0376 .dbline 157
0376 ; }
0376 6BC0 xjmp L95
0378 L94:
0378 .dbline 158
0378 ; else if(pannel_led[j*8+i].state==acked) //应答显示
0378 88E0 ldi R24,8
037A 849F mul R24,R20
037C 102D mov R17,R0
037E 1C0D add R17,R12
0380 04E1 ldi R16,20
0382 0102 muls R16,R17
0384 F001 movw R30,R0
0386 80E0 ldi R24,<_pannel_led+13
0388 90E0 ldi R25,>_pannel_led+13
038A E80F add R30,R24
038C F91F adc R31,R25
038E 8081 ldd R24,z+0
0390 8230 cpi R24,2
0392 39F5 brne L97
0394 .dbline 159
0394 ; {
0394 .dbline 161
0394 ;
0394 ; if(pannel_led[j*8+i].cut_off==off)
0394 88E0 ldi R24,8
0396 849F mul R24,R20
0398 102D mov R17,R0
039A 1C0D add R17,R12
039C 0102 muls R16,R17
039E F001 movw R30,R0
03A0 80E0 ldi R24,<_pannel_led+16
03A2 90E0 ldi R25,>_pannel_led+16
03A4 E80F add R30,R24
03A6 F91F adc R31,R25
03A8 8081 ldd R24,z+0
03AA 853A cpi R24,165
03AC 59F4 brne L100
03AE .dbline 162
03AE ; {
03AE .dbline 163
03AE ; d|=(1<<i);
03AE 01E0 ldi R16,1
03B0 1C2D mov R17,R12
03B2 0E940000 xcall lsl8
03B6 A02A or R10,R16
03B8 .dbline 164
03B8 ; dd|= (1<<i);
03B8 01E0 ldi R16,1
03BA 1C2D mov R17,R12
03BC 0E940000 xcall lsl8
03C0 602B or R22,R16
03C2 .dbline 165
03C2 ; }
03C2 45C0 xjmp L98
03C4 L100:
03C4 .dbline 167
03C4 ; else
03C4 ; {
03C4 .dbline 168
03C4 ; d&= ~(1<<i);
03C4 01E0 ldi R16,1
03C6 1C2D mov R17,R12
03C8 0E940000 xcall lsl8
03CC 202E mov R2,R16
03CE 2094 com R2
03D0 A220 and R10,R2
03D2 .dbline 169
03D2 ; dd&= ~(1<<i);
03D2 01E0 ldi R16,1
03D4 1C2D mov R17,R12
03D6 0E940000 xcall lsl8
03DA 202E mov R2,R16
03DC 2094 com R2
03DE 6221 and R22,R2
03E0 .dbline 170
03E0 ; }
03E0 .dbline 171
03E0 ; }
03E0 36C0 xjmp L98
03E2 L97:
03E2 .dbline 172
03E2 ; else if(pannel_led[j*8+i].state==fault) //故障显示
03E2 88E0 ldi R24,8
03E4 849F mul R24,R20
03E6 102D mov R17,R0
03E8 1C0D add R17,R12
03EA 04E1 ldi R16,20
03EC 0102 muls R16,R17
03EE F001 movw R30,R0
03F0 80E0 ldi R24,<_pannel_led+13
03F2 90E0 ldi R25,>_pannel_led+13
03F4 E80F add R30,R24
03F6 F91F adc R31,R25
03F8 8081 ldd R24,z+0
03FA 8330 cpi R24,3
03FC 41F5 brne L103
03FE .dbline 173
03FE ; {
03FE .dbline 174
03FE ; if(pannel_led[j*8+i].cut_off==off)
03FE 88E0 ldi R24,8
0400 849F mul R24,R20
0402 102D mov R17,R0
0404 1C0D add R17,R12
0406 0102 muls R16,R17
0408 F001 movw R30,R0
040A 80E0 ldi R24,<_pannel_led+16
040C 90E0 ldi R25,>_pannel_led+16
040E E80F add R30,R24
0410 F91F adc R31,R25
0412 8081 ldd R24,z+0
0414 853A cpi R24,165
0416 69F4 brne L106
0418 .dbline 175
0418 ; {
0418 .dbline 176
0418 ; d|=(1<<i);
0418 01E0 ldi R16,1
041A 1C2D mov R17,R12
041C 0E940000 xcall lsl8
0420 A02A or R10,R16
0422 .dbline 177
0422 ; dd&= ~(1<<i);
0422 01E0 ldi R16,1
0424 1C2D mov R17,R12
0426 0E940000 xcall lsl8
042A 202E mov R2,R16
042C 2094 com R2
042E 6221 and R22,R2
0430 .dbline 178
0430 ; }
0430 0EC0 xjmp L107
0432 L106:
0432 .dbline 180
0432 ; else
0432 ; {
0432 .dbline 181
0432 ; d&= ~(1<<i);
0432 01E0 ldi R16,1
0434 1C2D mov R17,R12
0436 0E940000 xcall lsl8
043A 202E mov R2,R16
043C 2094 com R2
043E A220 and R10,R2
0440 .dbline 182
0440 ; dd&= ~(1<<i);
0440 01E0 ldi R16,1
0442 1C2D mov R17,R12
0444 0E940000 xcall lsl8
0448 202E mov R2,R16
044A 2094 com R2
044C 6221 and R22,R2
044E .dbline 183
044E ; }
044E L107:
044E .dbline 184
044E ; }
044E L103:
044E L98:
044E L95:
044E L89:
044E .dbline 185
044E L85:
044E .dbline 138
044E C394 inc R12
0450 L87:
0450 .dbline 138
0450 8C2D mov R24,R12
0452 8830 cpi R24,8
0454 08F4 brsh X2
0456 3BCF xjmp L84
0458 X2:
0458 .dbline 186
0458 A895 wdr
045A .dbline 187
045A 20900000 lds R2,_T1
045E 2A82 std y+2,R2
0460 6883 std y+0,R22
0462 2A2D mov R18,R10
0464 042F mov R16,R20
0466 0E940000 xcall _led_on
046A .dbline 189
046A L81:
046A .dbline 134
046A 4395 inc R20
046C L83:
046C .dbline 134
046C 4630 cpi R20,6
046E 08F4 brsh X3
0470 2ACF xjmp L80
0472 X3:
0472 .dbline -2
0472 L79:
0472 2396 adiw R28,3
0474 0E940000 xcall pop_gset4
0478 .dbline 0 ; func end
0478 0895 ret
047A .dbsym r dd 22 c
047A .dbsym r d 10 c
047A .dbsym r j 20 c
047A .dbsym r i 12 c
047A .dbend
047A .dbfunc e turn_display _turn_display fV
047A ; t4 -> R22
047A ; t3 -> R12
047A ; t5 -> R20,R21
047A ; t2 -> R10
047A ; t1 -> R14
047A ; data -> y+17
047A ; point_flag -> y+15
047A ; channel -> y+13
.even
047A _turn_display::
047A 0E940000 xcall push_arg4
047E 0E940000 xcall push_gset5
0482 2397 sbiw R28,3
0484 .dbline -1
0484 .dbline 195
0484 ; }
0484 ; WDR();
0484 ; led_on(j,d,dd,T1);
0484 ;
0484 ; }
0484 ; }
0484 ;
0484 ;
0484 ;
0484 ; void turn_display(unsigned char channel,unsigned char point_flag,unsigned int data)
0484 ; {
0484 .dbline 198
0484 ; unsigned char t1,t2,t3,t4;
0484 ; unsigned int t5;
0484 ; if( pannel_led[channel].alarm_type==above)
0484 84E1 ldi R24,20
0486 0D84 ldd R0,y+13
0488 809D mul R24,R0
048A F001 movw R30,R0
048C 80E0 ldi R24,<_pannel_led+3
048E 90E0 ldi R25,>_pannel_led+3
0490 E80F add R30,R24
0492 F91F adc R31,R25
0494 8081 ldd R24,z+0
0496 8A35 cpi R24,90
0498 09F0 breq X4
049A 3AC0 xjmp L110
049C X4:
049C .dbline 199
049C ; {
049C .dbline 200
049C ; if( (pannel_led[channel].state==noack)||(pannel_led[channel].state==acked)) //上限报警指示
049C 84E1 ldi R24,20
049E 0D84 ldd R0,y+13
04A0 809D mul R24,R0
04A2 80E0 ldi R24,<_pannel_led+13
04A4 90E0 ldi R25,>_pannel_led+13
04A6 F001 movw R30,R0
04A8 E80F add R30,R24
04AA F91F adc R31,R25
04AC 8081 ldd R24,z+0
04AE 8130 cpi R24,1
04B0 41F0 breq L117
04B2 80E0 ldi R24,<_pannel_led+13
04B4 90E0 ldi R25,>_pannel_led+13
04B6 F001 movw R30,R0
04B8 E80F add R30,R24
04BA F91F adc R31,R25
04BC 8081 ldd R24,z+0
04BE 8230 cpi R24,2
04C0 29F4 brne L113
04C2 L117:
04C2 .dbline 201
04C2 ; {
04C2 .dbline 202
04C2 ; PORTD |= 0x01;
04C2 589A sbi 0xb,0
04C4 .dbline 203
04C4 ; PORTD &= 0x7f;
04C4 8BB1 in R24,0xb
04C6 8F77 andi R24,127
04C8 8BB9 out 0xb,R24
04CA .dbline 204
04CA ; }
04CA 66C0 xjmp L111
04CC L113:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -