📄 ze015_1.lis
字号:
0304 .dbline 133
0304 ; m_32mscountv=0;
0304 L64:
0304 .dbline 134
0304 ; jf_valvetotal();
0304 042F mov R16,R20
0306 .dbline -2
0306 L52:
0306 0E940000 xcall pop_gset5
030A .dbline 0 ; func end
030A 0895 ret
030C .dbsym r a_d2 12 c
030C .dbsym r a_d1 14 c
030C .dbsym r th_value 20 c
030C .dbsym r temp 22 c
030C .dbsym r n 10 c
030C .dbsym r thAD 16 c
030C .dbend
030C .dbfunc e ADStartP _ADStartP fV
.even
030C _ADStartP::
030C .dbline -1
030C .dbline 142
030C ; }
030C ; m_500mscount=m_500mscount+1;
030C ; }
030C ;
030C ; //TIMER1 initialize - prescale:64
030C ; // WGM: 0) Normal, TOP=0xFFFF
030C ; // desired value: 1Hz
030C ; // actual value: 1.000Hz (0.0%)
030C .dbline 143
030C ; void timer1_init(void)
030C 369A sbi 0x6,6
030E 01C0 xjmp L79
0310 L78:
0310 .dbline 144
0310 A895 wdr
0312 L79:
0312 .dbline 144
0312 ; {
0312 349B sbis 0x6,4
0314 FDCF rjmp L78
0316 .dbline 145
0316 ; TCCR1B = 0x00; //stop
0316 349A sbi 0x6,4
0318 .dbline -2
0318 L77:
0318 .dbline 0 ; func end
0318 0895 ret
031A .dbend
031A .dbfunc e funADsample _funADsample fV
.even
031A _funADsample::
031A .dbline -1
031A .dbline 155
031A ; TCNT1H = 0x0B; //setup
031A ; TCNT1L = 0xDC;
031A ; OCR1AH = 0xF4;
031A ; OCR1AL = 0x24;
031A ; OCR1BH = 0xF4;
031A ; OCR1BL = 0x24;
031A ; OCR1CH = 0xF4;
031A ; OCR1CL = 0x24;
031A ; ICR1H = 0xF4;
031A ; ICR1L = 0x24;
031A .dbline 157
031A ; TCCR1A = 0x00;
031A ; TCCR1B = 0x03; //start Timer
031A 86E8 ldi R24,134
031C 86B9 out 0x6,R24
031E .dbline 158
031E ; }
031E 82E4 ldi R24,66
0320 87B9 out 0x7,R24
0322 .dbline 159
0322 ;
0322 8AD5 xcall _delay_20us
0324 .dbline 160
0324 ; #pragma interrupt_handler timer1_ovf_isr:15
0324 F3DF xcall _ADStartP
0326 .dbline 161
0326 ; void timer1_ovf_isr(void)
0326 24B0 in R2,0x4
0328 3324 clr R3
032A 4090D500 lds R4,_i_defrost_sumADL
032E 5090D600 lds R5,_i_defrost_sumADL+1
0332 420C add R4,R2
0334 531C adc R5,R3
0336 5092D600 sts _i_defrost_sumADL+1,R5
033A 4092D500 sts _i_defrost_sumADL,R4
033E .dbline 162
033E ; {//20080201将定时1秒改在定时10MS中,增加快测
033E 85B1 in R24,0x5
0340 9927 clr R25
0342 8370 andi R24,3
0344 9070 andi R25,0
0346 2090D300 lds R2,_i_defrost_sumADH
034A 3090D400 lds R3,_i_defrost_sumADH+1
034E 280E add R2,R24
0350 391E adc R3,R25
0352 3092D400 sts _i_defrost_sumADH+1,R3
0356 2092D300 sts _i_defrost_sumADH,R2
035A .dbline 163
035A ; //TIMER1 has overflowed 1s 1秒定时
035A 0000 nop
035C .dbline 165
035C ; TCNT1H = 0x0b; //reload counter high value
035C ; TCNT1L = 0xdc; //reload counter low value
035C 81E4 ldi R24,65
035E 87B9 out 0x7,R24
0360 .dbline 166
0360 ; //20080201time_flag |=b_time_1s; //f_1s=1
0360 6BD5 xcall _delay_20us
0362 .dbline 167
0362 ; }
0362 D4DF xcall _ADStartP
0364 .dbline 168
0364 ; //TIMER2 initialize - prescale:8 中断未用,但用作蜂鸣器驱动2KHZ
0364 24B0 in R2,0x4
0366 3324 clr R3
0368 4090DD00 lds R4,_i_evin_sumADL
036C 5090DE00 lds R5,_i_evin_sumADL+1
0370 420C add R4,R2
0372 531C adc R5,R3
0374 5092DE00 sts _i_evin_sumADL+1,R5
0378 4092DD00 sts _i_evin_sumADL,R4
037C .dbline 169
037C ; // WGM: CTC
037C 85B1 in R24,0x5
037E 9927 clr R25
0380 8370 andi R24,3
0382 9070 andi R25,0
0384 2090DB00 lds R2,_i_evin_sumADH
0388 3090DC00 lds R3,_i_evin_sumADH+1
038C 280E add R2,R24
038E 391E adc R3,R25
0390 3092DC00 sts _i_evin_sumADH+1,R3
0394 2092DB00 sts _i_evin_sumADH,R2
0398 .dbline 170
0398 ; // desired value: 4KHz
0398 0000 nop
039A .dbline 173
039A ; // actual value: 3.992KHz (0.4%)
039A ; void timer2_init(void)
039A ; {
039A 80E4 ldi R24,64
039C 87B9 out 0x7,R24
039E .dbline 174
039E ; TCCR2 = 0x00; //stop
039E 4CD5 xcall _delay_20us
03A0 .dbline 175
03A0 ; TCNT2 = 0x87; //0x86; // 2048 Khz 0x83; //2khz
03A0 B5DF xcall _ADStartP
03A2 .dbline 176
03A2 ; OCR2 = 0x79; //0x7a; //0x7d;
03A2 24B0 in R2,0x4
03A4 3324 clr R3
03A6 4090D900 lds R4,_i_i_humid_sumADL
03AA 5090DA00 lds R5,_i_i_humid_sumADL+1
03AE 420C add R4,R2
03B0 531C adc R5,R3
03B2 5092DA00 sts _i_i_humid_sumADL+1,R5
03B6 4092D900 sts _i_i_humid_sumADL,R4
03BA .dbline 177
03BA ; }
03BA 85B1 in R24,0x5
03BC 9927 clr R25
03BE 8370 andi R24,3
03C0 9070 andi R25,0
03C2 2090D700 lds R2,_i_i_humid_sumADH
03C6 3090D800 lds R3,_i_i_humid_sumADH+1
03CA 280E add R2,R24
03CC 391E adc R3,R25
03CE 3092D800 sts _i_i_humid_sumADH+1,R3
03D2 2092D700 sts _i_i_humid_sumADH,R2
03D6 .dbline 178
03D6 ;
03D6 0000 nop
03D8 .dbline 179
03D8 ; #pragma interrupt_handler timer2_ovf_isr:11
03D8 83E4 ldi R24,67
03DA 87B9 out 0x7,R24
03DC .dbline 180
03DC ; void timer2_ovf_isr(void)
03DC 2DD5 xcall _delay_20us
03DE .dbline 181
03DE ; {//no use but remain,定时器2用途CTC蜂鸣器驱动
03DE 96DF xcall _ADStartP
03E0 .dbline 182
03E0 ; TCNT2 = 0x06; //reload counter value
03E0 24B0 in R2,0x4
03E2 3324 clr R3
03E4 4090D100 lds R4,_i_exghaust_sumADL
03E8 5090D200 lds R5,_i_exghaust_sumADL+1
03EC 420C add R4,R2
03EE 531C adc R5,R3
03F0 5092D200 sts _i_exghaust_sumADL+1,R5
03F4 4092D100 sts _i_exghaust_sumADL,R4
03F8 .dbline 183
03F8 ; }
03F8 85B1 in R24,0x5
03FA 8370 andi R24,3
03FC 2090D000 lds R2,_i_exghaust_sumADH
0400 280E add R2,R24
0402 2092D000 sts _i_exghaust_sumADH,R2
0406 .dbline 184
0406 ; //TIMER3未用
0406 0000 nop
0408 .dbline 185
0408 ; //TIMER3 initialize - prescale:256
0408 2224 clr R2
040A 26B8 out 0x6,R2
040C .dbline -2
040C L81:
040C .dbline 0 ; func end
040C 0895 ret
040E .dbend
040E .dbfunc e funADsum _funADsum fV
.even
040E _funADsum::
040E 0E940000 xcall push_gset1
0412 2497 sbiw R28,4
0414 .dbline -1
0414 .dbline 192
0414 ; // WGM: 0) Normal, TOP=0xFFFF
0414 ; // desired value: 100mSec
0414 ; // actual value: 100.000mSec (0.0%)
0414 ; void timer3_init(void)
0414 ; {
0414 ; TCCR3B = 0x00; //stop
0414 ; TCNT3H = 0x0B; //setup
0414 .dbline 193
0414 ; TCNT3L = 0xDC;
0414 82DF xcall _funADsample
0416 .dbline 194
0416 ; OCR3AH = 0xF4;
0416 8091ED00 lds R24,_ADsum_times
041A 8F5F subi R24,255 ; addi 1
041C 8093ED00 sts _ADsum_times,R24
0420 .dbline 195
0420 ; OCR3AL = 0x24;
0420 80912B00 lds R24,_ADsumTH_times
0424 8F5F subi R24,255 ; addi 1
0426 80932B00 sts _ADsumTH_times,R24
042A .dbline 196
042A ; OCR3BH = 0xF4;
042A 0000 nop
042C .dbline 197
042C ; OCR3BL = 0x24;
042C 8031 cpi R24,16
042E 08F4 brsh X0
0430 EEC0 xjmp L83
0432 X0:
0432 .dbline 198
0432 ; OCR3CH = 0xF4;
0432 .dbline 201
0432 ; OCR3CL = 0x24;
0432 ; ICR3H = 0xF4;
0432 ; ICR3L = 0x24;
0432 26E0 ldi R18,6
0434 30E0 ldi R19,0
0436 0091D100 lds R16,_i_exghaust_sumADL
043A 1091D200 lds R17,_i_exghaust_sumADL+1
043E 0E940000 xcall lsr16
0442 2090D000 lds R2,_i_exghaust_sumADH
0446 220C lsl R2
0448 220C lsl R2
044A 200E add R2,R16
044C 2092E700 sts _exghaust_AD,R2
0450 .dbline 203
0450 ; TCCR3A = 0x00;
0450 ; // TCCR3B = 0x03; //start Timer
0450 2090D500 lds R2,_i_defrost_sumADL
0454 3090D600 lds R3,_i_defrost_sumADL+1
0458 3694 lsr R3
045A 2794 ror R2
045C 3694 lsr R3
045E 2794 ror R2
0460 3694 lsr R3
0462 2794 ror R2
0464 3694 lsr R3
0466 2794 ror R2
0468 4090D300 lds R4,_i_defrost_sumADH
046C 5090D400 lds R5,_i_defrost_sumADH+1
0470 440C lsl R4
0472 551C rol R5
0474 440C lsl R4
0476 551C rol R5
0478 440C lsl R4
047A 551C rol R5
047C 440C lsl R4
047E 551C rol R5
0480 420C add R4,R2
0482 531C adc R5,R3
0484 5092EB00 sts _defrost_AD+1,R5
0488 4092EA00 sts _defrost_AD,R4
048C .dbline 204
048C ; TCCR3B = 0x00;
048C 2090DD00 lds R2,_i_evin_sumADL
0490 3090DE00 lds R3,_i_evin_sumADL+1
0494 3694 lsr R3
0496 2794 ror R2
0498 3694 lsr R3
049A 2794 ror R2
049C 3694 lsr R3
049E 2794 ror R2
04A0 3694 lsr R3
04A2 2794 ror R2
04A4 4090DB00 lds R4,_i_evin_sumADH
04A8 5090DC00 lds R5,_i_evin_sumADH+1
04AC 440C lsl R4
04AE 551C rol R5
04B0 440C lsl R4
04B2 551C rol R5
04B4 440C lsl R4
04B6 551C rol R5
04B8 440C lsl R4
04BA 551C rol R5
04BC 420C add R4,R2
04BE 531C adc R5,R3
04C0 5092E900 sts _evin_AD+1,R5
04C4 4092E800 sts _evin_AD,R4
04C8 .dbline 206
04C8 ; }
04C8 ;
04C8 0091E700 lds R16,_exghaust_AD
04CC B6DE xcall _Fun_ad_50k
04CE 0093E300 sts _exghaust_TH,R16
04D2 .dbline 207
04D2 ; #pragma interrupt_handler timer3_ovf_isr:30
04D2 8091EA00 lds R24,_defrost_AD
04D6 9091EB00 lds R25,_defrost_AD+1
04DA 8D31 cpi R24,29
04DC E0E0 ldi R30,0
04DE 9E07
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -