?? alarmprocess.lis
字號:
01EC .dbline 51
01EC ; pannel_led[i].soundoff = normal;
01EC 84E1 ldi R24,20
01EE 849F mul R24,R20
01F0 F001 movw R30,R0
01F2 80E0 ldi R24,<_pannel_led+17
01F4 90E0 ldi R25,>_pannel_led+17
01F6 E80F add R30,R24
01F8 F91F adc R31,R25
01FA 2224 clr R2
01FC 2082 std z+0,R2
01FE .dbline 52
01FE ; buzzer_off();
01FE 0E940000 xcall _buzzer_off
0202 .dbline 53
0202 ; relay1_off();
0202 0E940000 xcall _relay1_off
0206 .dbline 54
0206 ; }
0206 L16:
0206 .dbline 55
0206 L12:
0206 .dbline 33
0206 4395 inc R20
0208 L14:
0208 .dbline 33
0208 4033 cpi R20,48
020A 08F4 brsh X0
020C C6CF xjmp L11
020E X0:
020E .dbline 57
020E ; }
020E ;
020E ; if(pannel_led[i].soundoff==acked)
020E 84E1 ldi R24,20
0210 849F mul R24,R20
0212 F001 movw R30,R0
0214 80E0 ldi R24,<_pannel_led+17
0216 90E0 ldi R25,>_pannel_led+17
0218 E80F add R30,R24
021A F91F adc R31,R25
021C 8081 ldd R24,z+0
021E 8230 cpi R24,2
0220 21F4 brne L24
0222 .dbline 58
0222 ; {
0222 .dbline 59
0222 ; buzzer_off();
0222 0E940000 xcall _buzzer_off
0226 .dbline 60
0226 ; relay1_off();
0226 0E940000 xcall _relay1_off
022A .dbline 61
022A ; }
022A L24:
022A .dbline 63
022A 84E1 ldi R24,20
022C 849F mul R24,R20
022E 80E0 ldi R24,<_pannel_led+17
0230 90E0 ldi R25,>_pannel_led+17
0232 F001 movw R30,R0
0234 E80F add R30,R24
0236 F91F adc R31,R25
0238 8081 ldd R24,z+0
023A 8130 cpi R24,1
023C 61F4 brne L27
023E 80E0 ldi R24,<_pannel_led+16
0240 90E0 ldi R25,>_pannel_led+16
0242 F001 movw R30,R0
0244 E80F add R30,R24
0246 F91F adc R31,R25
0248 8081 ldd R24,z+0
024A 853A cpi R24,165
024C 21F4 brne L27
024E .dbline 64
024E .dbline 65
024E 0E940000 xcall _buzzer_on
0252 .dbline 66
0252 0E940000 xcall _relay1_on
0256 .dbline 67
0256 L27:
0256 .dbline -2
0256 L10:
0256 0E940000 xcall pop_gset1
025A .dbline 0 ; func end
025A 0895 ret
025C .dbsym r i 20 c
025C .dbend
025C .dbfunc e channel_process _channel_process fV
025C ; temp2 -> R20,R21
025C ; temp1 -> R22,R23
025C ; i -> R10
.even
025C _channel_process::
025C 0E940000 xcall push_gset3
0260 .dbline -1
0260 .dbline 72
0260 ;
0260 ; if((pannel_led[i].soundoff==noack)&&(pannel_led[i].cut_off==off))
0260 ; {
0260 ; buzzer_on();
0260 ; relay1_on();
0260 ; }
0260 ; }
0260 ;
0260 ;
0260 ; void channel_process(void)
0260 ; {
0260 .dbline 75
0260 ; unsigned char i;
0260 ; unsigned int temp1,temp2;
0260 ; for(i=0;i<48;i++)
0260 AA24 clr R10
0262 7EC3 xjmp L35
0264 L32:
0264 .dbline 76
0264 ; {
0264 .dbline 77
0264 ; WDR();
0264 A895 wdr
0266 .dbline 78
0266 ; if(pannel_led[i].sen_typed==ma)
0266 84E1 ldi R24,20
0268 8A9D mul R24,R10
026A F001 movw R30,R0
026C 80E0 ldi R24,<_pannel_led
026E 90E0 ldi R25,>_pannel_led
0270 E80F add R30,R24
0272 F91F adc R31,R25
0274 2080 ldd R2,z+0
0276 2220 tst R2
0278 09F0 breq X2
027A 4EC1 xjmp L36
027C X2:
027C .dbline 79
027C ; {WDR();
027C .dbline 79
027C A895 wdr
027E .dbline 80
027E ; temp1 = rece_data[pannel_led[i].ID].Data[2*pannel_led[i].channel]; //高位
027E 84E1 ldi R24,20
0280 8A9D mul R24,R10
0282 1001 movw R2,R0
0284 80E0 ldi R24,<_pannel_led+1
0286 90E0 ldi R25,>_pannel_led+1
0288 F101 movw R30,R2
028A E80F add R30,R24
028C F91F adc R31,R25
028E 4080 ldd R4,z+0
0290 8CE0 ldi R24,12
0292 849D mul R24,R4
0294 2001 movw R4,R0
0296 80E0 ldi R24,<_rece_data+4
0298 90E0 ldi R25,>_rece_data+4
029A 480E add R4,R24
029C 591E adc R5,R25
029E 80E0 ldi R24,<_pannel_led+2
02A0 90E0 ldi R25,>_pannel_led+2
02A2 F101 movw R30,R2
02A4 E80F add R30,R24
02A6 F91F adc R31,R25
02A8 2080 ldd R2,z+0
02AA 82E0 ldi R24,2
02AC 829D mul R24,R2
02AE F001 movw R30,R0
02B0 E40D add R30,R4
02B2 F51D adc R31,R5
02B4 6081 ldd R22,z+0
02B6 7727 clr R23
02B8 .dbline 81
02B8 ; temp2 = rece_data[pannel_led[i].ID].Data[2*pannel_led[i].channel+1]; //低位
02B8 84E1 ldi R24,20
02BA 8A9D mul R24,R10
02BC 1001 movw R2,R0
02BE 80E0 ldi R24,<_pannel_led+1
02C0 90E0 ldi R25,>_pannel_led+1
02C2 F101 movw R30,R2
02C4 E80F add R30,R24
02C6 F91F adc R31,R25
02C8 4080 ldd R4,z+0
02CA 8CE0 ldi R24,12
02CC 849D mul R24,R4
02CE 2001 movw R4,R0
02D0 80E0 ldi R24,<_rece_data+4
02D2 90E0 ldi R25,>_rece_data+4
02D4 480E add R4,R24
02D6 591E adc R5,R25
02D8 80E0 ldi R24,<_pannel_led+2
02DA 90E0 ldi R25,>_pannel_led+2
02DC F101 movw R30,R2
02DE E80F add R30,R24
02E0 F91F adc R31,R25
02E2 2080 ldd R2,z+0
02E4 82E0 ldi R24,2
02E6 829D mul R24,R2
02E8 F001 movw R30,R0
02EA 3196 adiw R30,1
02EC E40D add R30,R4
02EE F51D adc R31,R5
02F0 4081 ldd R20,z+0
02F2 5527 clr R21
02F4 .dbline 82
02F4 ; temp1 = temp1*256;
02F4 00E0 ldi R16,256
02F6 11E0 ldi R17,1
02F8 9B01 movw R18,R22
02FA 0E940000 xcall empy16s
02FE B801 movw R22,R16
0300 .dbline 83
0300 ; temp1 = temp1+temp2;
0300 640F add R22,R20
0302 751F adc R23,R21
0304 .dbline 84
0304 ; pannel_led[i].data = temp1;
0304 84E1 ldi R24,20
0306 8A9D mul R24,R10
0308 F001 movw R30,R0
030A 80E0 ldi R24,<_pannel_led+11
030C 90E0 ldi R25,>_pannel_led+11
030E E80F add R30,R24
0310 F91F adc R31,R25
0312 7183 std z+1,R23
0314 6083 std z+0,R22
0316 .dbline 85
0316 ; if(pannel_led[i].data<400)
0316 84E1 ldi R24,20
0318 8A9D mul R24,R10
031A F001 movw R30,R0
031C 80E0 ldi R24,<_pannel_led+11
031E 90E0 ldi R25,>_pannel_led+11
0320 E80F add R30,R24
0322 F91F adc R31,R25
0324 8081 ldd R24,z+0
0326 9181 ldd R25,z+1
0328 8039 cpi R24,144
032A E1E0 ldi R30,1
032C 9E07 cpc R25,R30
032E 50F4 brsh L45
0330 .dbline 86
0330 ; {
0330 .dbline 87
0330 ; pannel_led[i].current_state = fault; //傳感器故障
0330 84E1 ldi R24,20
0332 8A9D mul R24,R10
0334 F001 movw R30,R0
0336 80E0 ldi R24,<_pannel_led+14
0338 90E0 ldi R25,>_pannel_led+14
033A E80F add R30,R24
033C F91F adc R31,R25
033E 83E0 ldi R24,3
0340 8083 std z+0,R24
0342 .dbline 88
0342 ; }
0342 0DC3 xjmp L37
0344 L45:
0344 .dbline 91
0344 ;
0344 ; else
0344 ; {
0344 .dbline 92
0344 ; pannel_led[i].displaydata=current_jisuan(pannel_led[i].fullscal,pannel_led[i].data); //顯示值計算
0344 84E1 ldi R24,20
0346 8A9D mul R24,R10
0348 1001 movw R2,R0
034A 80E0 ldi R24,<_pannel_led+11
034C 90E0 ldi R25,>_pannel_led+11
034E F101 movw R30,R2
0350 E80F add R30,R24
0352 F91F adc R31,R25
0354 2081 ldd R18,z+0
0356 3181 ldd R19,z+1
0358 80E0 ldi R24,<_pannel_led+8
035A 90E0 ldi R25,>_pannel_led+8
035C F101 movw R30,R2
035E E80F add R30,R24
0360 F91F adc R31,R25
0362 0081 ldd R16,z+0
0364 1181 ldd R17,z+1
0366 0F92 push R0
0368 1F92 push R1
036A 4ADE xcall _current_jisuan
036C 3F90 pop R3
036E 2F90 pop R2
0370 80E0 ldi R24,<_pannel_led+18
0372 90E0 ldi R25,>_pannel_led+18
0374 F101 movw R30,R2
0376 E80F add R30,R24
0378 F91F adc R31,R25
037A 1183 std z+1,R17
037C 0083 std z+0,R16
037E .dbline 94
037E ;
037E ; if(pannel_led[i].alarm_type==above) //上限報警處理
037E 84E1 ldi R24,20
0380 8A9D mul R24,R10
0382 F001 movw R30,R0
0384 80E0 ldi R24,<_pannel_led+3
0386 90E0 ldi R25,>_pannel_led+3
0388 E80F add R30,R24
038A F91F adc R31,R25
038C 8081 ldd R24,z+0
038E 8A35 cpi R24,90
0390 09F0 breq X3
0392 61C0 xjmp L52
0394 X3:
0394 .dbline 95
0394 ; {
0394 .dbline 96
0394 ; if(pannel_led[i].displaydata>pannel_led[i].limit+pannel_led[i].zone)
0394 84E1 ldi R24,20
0396 8A9D mul R24,R10
0398 80E0 ldi R24,<_pannel_led+6
039A 90E0 ldi R25,>_pannel_led+6
039C F001 movw R30,R0
039E E80F add R30,R24
03A0 F91F adc R31,R25
03A2 2080 ldd R2,z+0
03A4 3180 ldd R3,z+1
03A6 80E0 ldi R24,<_pannel_led+4
03A8 90E0 ldi R25,>_pannel_led+4
03AA F001 movw R30,R0
03AC E80F add R30,R24
03AE F91F adc R31,R25
03B0 4080 ldd R4,z+0
03B2 5180 ldd R5,z+1
03B4 420C add R4,R2
03B6 531C adc R5,R3
03B8 80E0 ldi R24,<_pannel_led+18
03BA 90E0 ldi R25,>_pannel_led+18
03BC F001 movw R30,R0
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -