📄 init.lis
字号:
03AC .dbsym r j 20 c
03AC .dbsym r i 22 c
03AC .dbend
.area vector(rom, abs)
.org 18
0012 D6C1 rjmp _timer2_ovf_isr
.area text(rom, con, rel)
03AC .dbfile E:\abol\file\EMD\programme\init.c
03AC .dbfunc e timer2_ovf_isr _timer2_ovf_isr fV
03AC ; i -> <dead>
.even
03AC _timer2_ovf_isr::
03AC 00D0 rcall push_lset
03AE .dbline -1
03AE .dbline 265
03AE ; }//6
03AE ; give_up:
03AE ; data[0]=0;
03AE ; data[1]=0;
03AE ; data[2]=0;
03AE ; BITCOUNTER=CODELANGTH;
03AE ; DECODER_FLAG_L;
03AE ; LO_COUNT_SAVE=0;
03AE ; HI_COUNT_SAVE=0;
03AE ; }//1
03AE ;
03AE ; }
03AE ; #pragma interrupt_handler timer2_ovf_isr:10
03AE ; void timer2_ovf_isr(void) //中断程序
03AE ; {//00
03AE .dbline 269
03AE ; unsigned char i;
03AE ; //RF_ON;//关RF使能
03AE ; //DECODER_EN_L;//关RF接收数据
03AE ; flag|=0x80;
03AE 80910000 lds R24,_flag
03B2 8068 ori R24,128
03B4 80930000 sts _flag,R24
03B8 .dbline 270
03B8 ; flagh|=0x80;
03B8 80910000 lds R24,_flagh
03BC 8068 ori R24,128
03BE 80930000 sts _flagh,R24
03C2 .dbline 271
03C2 ; bitclr(PORTD,0);
03C2 5898 cbi 0xb,0
03C4 .dbline 272
03C4 ; acount++;
03C4 80910000 lds R24,_acount
03C8 8F5F subi R24,255 ; addi 1
03CA 80930000 sts _acount,R24
03CE .dbline 273
03CE ; if(acount>1)
03CE 81E0 ldi R24,1
03D0 20900000 lds R2,_acount
03D4 8215 cp R24,R2
03D6 50F4 brsh L80
03D8 .dbline 274
03D8 ; {
03D8 .dbline 275
03D8 ; tm1620(); //刷新显示
03D8 00D0 rcall _tm1620
03DA .dbline 276
03DA ; flagh^=0x04; //闪烁LED 32768/32*2=0.5s
03DA 84E0 ldi R24,4
03DC 20900000 lds R2,_flagh
03E0 2826 eor R2,R24
03E2 20920000 sts _flagh,R2
03E6 .dbline 277
03E6 ; acount=0;
03E6 2224 clr R2
03E8 20920000 sts _acount,R2
03EC .dbline 278
03EC ; }
03EC L80:
03EC .dbline 279
03EC ; bcount++;
03EC 80910000 lds R24,_bcount
03F0 8F5F subi R24,255 ; addi 1
03F2 80930000 sts _bcount,R24
03F6 .dbline 280
03F6 ; if(bcount>3) //
03F6 83E0 ldi R24,3
03F8 20900000 lds R2,_bcount
03FC 8215 cp R24,R2
03FE 08F0 brlo X9
0400 9AC0 rjmp L82
0402 X9:
0402 .dbline 281
0402 ; {//3
0402 .dbline 282
0402 ; if(SPFC!=0) //开蜂鸣器
0402 20900000 lds R2,_SPFC
0406 2220 tst R2
0408 29F0 breq L84
040A .dbline 283
040A ; {
040A .dbline 284
040A ; bitset(PORTD,0);
040A 589A sbi 0xb,0
040C .dbline 285
040C ; SPFC--;
040C 822D mov R24,R2
040E 8150 subi R24,1
0410 80930000 sts _SPFC,R24
0414 .dbline 286
0414 ; }
0414 L84:
0414 .dbline 296
0414 ; /* RF_OFF; //开RF使能
0414 ; data[0]=0;
0414 ; data[1]=0;
0414 ; data[2]=0;
0414 ; BITCOUNTER=CODELANGTH;
0414 ; DECODER_FLAG_L;
0414 ; LO_COUNT_SAVE=0;
0414 ; HI_COUNT_SAVE=0;
0414 ; DECODER_EN_H;//开RF接收数据 */
0414 ; flag&=~0x80;
0414 80910000 lds R24,_flag
0418 8F77 andi R24,127
041A 80930000 sts _flag,R24
041E .dbline 297
041E ; bcount=0;
041E 2224 clr R2
0420 20920000 sts _bcount,R2
0424 .dbline 298
0424 ; sec--;
0424 80910000 lds R24,_sec
0428 8150 subi R24,1
042A 80930000 sts _sec,R24
042E .dbline 299
042E ; sec0--;
042E 80910000 lds R24,_sec0
0432 8150 subi R24,1
0434 80930000 sts _sec0,R24
0438 .dbline 300
0438 ; if(sec0==0)
0438 8823 tst R24
043A 41F4 brne L86
043C .dbline 301
043C ; {
043C .dbline 302
043C ; sec0=3;
043C 83E0 ldi R24,3
043E 80930000 sts _sec0,R24
0442 .dbline 303
0442 ; flagh |=BIT(1); //3sec
0442 80910000 lds R24,_flagh
0446 8260 ori R24,2
0448 80930000 sts _flagh,R24
044C .dbline 304
044C ; }
044C L86:
044C .dbline 305
044C ; if(sec==0) //秒判断 32768/32*4*SEC
044C 20900000 lds R2,_sec
0450 2220 tst R2
0452 09F0 breq X10
0454 70C0 rjmp L88
0456 X10:
0456 .dbline 306
0456 ; {//4
0456 .dbline 307
0456 ; flagh |=BIT(0); //倒计时时间到
0456 80910000 lds R24,_flagh
045A 8160 ori R24,1
045C 80930000 sts _flagh,R24
0460 .dbline 308
0460 ; sec=60;
0460 8CE3 ldi R24,60
0462 80930000 sts _sec,R24
0466 .dbline 309
0466 ; if((PIND&0X06)==2)
0466 89B1 in R24,0x9
0468 8670 andi R24,6
046A 8230 cpi R24,2
046C 81F5 brne L90
046E .dbline 310
046E ; {
046E .dbline 311
046E ; minu15++;
046E 80910000 lds R24,_minu15
0472 8F5F subi R24,255 ; addi 1
0474 80930000 sts _minu15,R24
0478 .dbline 312
0478 ; if(minu15>15) //15分钟自动全部清除
0478 8FE0 ldi R24,15
047A 20900000 lds R2,_minu15
047E 8215 cp R24,R2
0480 30F5 brsh L92
0482 .dbline 313
0482 ; {
0482 .dbline 314
0482 ; datas[0]=datas[1]=datas[2]=datas[3]=datas[4]=datas[5]=datas[6]=datas[7]=0;
0482 2224 clr R2
0484 20920700 sts _datas+7,R2
0488 20920600 sts _datas+6,R2
048C 20920500 sts _datas+5,R2
0490 20920400 sts _datas+4,R2
0494 20920300 sts _datas+3,R2
0498 20920200 sts _datas+2,R2
049C 20920100 sts _datas+1,R2
04A0 20920000 sts _datas,R2
04A4 .dbline 315
04A4 ; dipdata[3]=dipdata[4]=dipdata[5]=0;
04A4 20920500 sts _dipdata+5,R2
04A8 20920400 sts _dipdata+4,R2
04AC 20920300 sts _dipdata+3,R2
04B0 .dbline 316
04B0 ; dipdata[0]=dipdata[1]=dipdata[2]=0;
04B0 20920200 sts _dipdata+2,R2
04B4 20920100 sts _dipdata+1,R2
04B8 20920000 sts _dipdata,R2
04BC .dbline 317
04BC ; dipdata[5]|=0x80; //电源LED
04BC 80910500 lds R24,_dipdata+5
04C0 8068 ori R24,128
04C2 80930500 sts _dipdata+5,R24
04C6 .dbline 318
04C6 ; minu15=0;
04C6 20920000 sts _minu15,R2
04CA .dbline 319
04CA ; minu30=0;
04CA 20920000 sts _minu30,R2
04CE .dbline 320
04CE ; }
04CE L92:
04CE .dbline 321
04CE ; }
04CE L90:
04CE .dbline 322
04CE ; if((PIND&0X06)==4)
04CE 89B1 in R24,0x9
04D0 8670 andi R24,6
04D2 8430 cpi R24,4
04D4 81F5 brne L107
04D6 .dbline 323
04D6 ; {
04D6 .dbline 324
04D6 ; minu30++;
04D6 80910000 lds R24,_minu30
04DA 8F5F subi R24,255 ; addi 1
04DC 80930000 sts _minu30,R24
04E0 .dbline 325
04E0 ; if(minu30>30) //30分钟自动全部清除
04E0 8EE1 ldi R24,30
04E2 20900000 lds R2,_minu30
04E6 8215 cp R24,R2
04E8 30F5 brsh L109
04EA .dbline 326
04EA ; {
04EA .dbline 327
04EA ; datas[0]=datas[1]=datas[2]=datas[3]=datas[4]=datas[5]=datas[6]=datas[7]=0;
04EA 2224 clr R2
04EC 20920700 sts _datas+7,R2
04F0 20920600 sts _datas+6,R2
04F4 20920500 sts _datas+5,R2
04F8 20920400 sts _datas+4,R2
04FC 20920300 sts _datas+3,R2
0500 20920200 sts _datas+2,R2
0504 20920100 sts _datas+1,R2
0508 20920000 sts _datas,R2
050C .dbline 328
050C ; dipdata[3]=dipdata[4]=dipdata[5]=0;
050C 20920500 sts _dipdata+5,R2
0510 20920400 sts _dipdata+4,R2
0514 20920300 sts _dipdata+3,R2
0518 .dbline 329
0518 ; dipdata[0]=dipdata[1]=dipdata[2]=0;
0518 20920200 sts _dipdata+2,R2
051C 20920100 sts _dipdata+1,R2
0520 20920000 sts _dipdata,R2
0524 .dbline 330
0524 ; dipdata[5]|=0x80; //电源LED
0524 80910500 lds R24,_dipdata+5
0528 8068 ori R24,128
052A 80930500 sts _dipdata+5,R24
052E .dbline 331
052E ; minu30=0;
052E 20920000 sts _minu30,R2
0532 .dbline 332
0532 ; minu15=0;
0532 20920000 sts _minu15,R2
0536 .dbline 333
0536 ; }
0536 L109:
0536 .dbline 334
0536 ; }
0536 L107:
0536 .dbline 335
0536 ; }//4
0536 L88:
0536 .dbline 336
0536 L82:
0536 .dbline -2
0536 L79:
0536 00D0 rcall pop_lset
0538 .dbline 0 ; func end
0538 1895 reti
053A .dbsym l i 1 c
053A .dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -