📄 ac20-1.s
字号:
lds R24,_allchangdu_x
lds R25,_allchangdu_x+1
lsr R25
ror R24
adiw R24,30
sts _allchangdu+1,R25
sts _allchangdu,R24
.dbline 429
; st_changdu=allchangdu;}
movw R2,R24
sts _st_changdu+1,R3
sts _st_changdu,R2
.dbline 429
L391:
.dbline 432
;
; //if(changdu<30)
; {TCCR2=0x71;SACE_0;inc_dec_flag=0;
.dbline 432
ldi R24,113
out 0x25,R24
.dbline 432
sbi 0x12,6
.dbline 432
clr R2
sts _inc_dec_flag,R2
.dbline 433
; sp_pl=0;wide=0;OCR2=wide;
clr R3
sts _sp_pl+1,R3
sts _sp_pl,R2
.dbline 433
sts _wide,R2
.dbline 433
out 0x23,R2
.dbline 434
; round_cnt=0;PWMOUT_0;}
sts _round_cnt+1,R3
sts _round_cnt,R2
.dbline 434
sbi 0x12,7
.dbline 434
.dbline -2
L377:
.dbline 0 ; func end
ret
.dbend
.dbfunc e input_stoptime _input_stoptime fV
.even
_input_stoptime::
sbiw R28,2
.dbline -1
.dbline 442
; //else {status=130;}
;
; }
;
;
; /*=========待机状态(status=40)时的输入门靠墙停顿时间=========*/
; void input_stoptime(void)
; {
.dbline 443
sbic 0x16,1
rjmp L393
.dbline 443
.dbline 443
ldi R16,30
ldi R17,0
xcall _delay
.dbline 443
sbic 0x16,1
rjmp L395
.dbline 443
lds R24,_val
subi R24,255 ; addi 1
sts _val,R24
L395:
.dbline 443
; if(KEY_ADD==0){delay(30);if(KEY_ADD==0)val++;}
L393:
.dbline 444
; if(val>9)val=0;
ldi R24,9
lds R2,_val
cp R24,R2
brsh L397
.dbline 444
clr R2
sts _val,R2
L397:
.dbline 445
; if(KEY_OK==0){delay(30);
sbic 0x16,2
rjmp L399
.dbline 445
.dbline 445
ldi R16,30
ldi R17,0
xcall _delay
.dbline 446
; if(KEY_OK==0)
sbic 0x16,2
rjmp L401
.dbline 447
; {SREG=0x00;stoptime=val;
.dbline 447
clr R2
out 0x3f,R2
.dbline 447
lds R2,_val
sts _stoptime,R2
.dbline 448
; EEPROM_WRITE(stoptime_address,val);
ldi R24,1
ldi R25,0
std y+1,R25
std y+0,R24
ldi R18,<_val
ldi R19,>_val
ldi R16,10
ldi R17,0
xcall _EEPROMWriteBytes
.dbline 449
; eep_temp=55;
ldi R24,55
sts _eep_temp,R24
.dbline 450
; EEPROM_WRITE(stoptime_address+1,eep_temp);
ldi R24,1
ldi R25,0
std y+1,R25
std y+0,R24
ldi R18,<_eep_temp
ldi R19,>_eep_temp
ldi R16,11
ldi R17,0
xcall _EEPROMWriteBytes
.dbline 451
; PORTA=0x00;
clr R2
out 0x1b,R2
.dbline 452
; delay(500);
ldi R16,500
ldi R17,1
xcall _delay
.dbline 453
; SREG|=0x80; }
bset 7
.dbline 453
L401:
.dbline 454
; }
L399:
.dbline 455
; delay(300);
ldi R16,300
ldi R17,1
xcall _delay
.dbline -2
L392:
adiw R28,2
.dbline 0 ; func end
ret
.dbend
.dbfunc e input_openmaxspeed _input_openmaxspeed fV
.even
_input_openmaxspeed::
sbiw R28,2
.dbline -1
.dbline 461
; }
;
;
; /*==========待机状态(status=40)时的输入开门最大速度===========*/
; void input_openmaxspeed(void)
; {
.dbline 462
sbic 0x16,1
rjmp L404
.dbline 462
.dbline 462
ldi R16,30
ldi R17,0
xcall _delay
.dbline 462
sbic 0x16,1
rjmp L406
.dbline 462
lds R24,_val
subi R24,255 ; addi 1
sts _val,R24
L406:
.dbline 462
; if(KEY_ADD==0){delay(30);if(KEY_ADD==0)val++;}
L404:
.dbline 463
; if(val>9)val=0;
ldi R24,9
lds R2,_val
cp R24,R2
brsh L408
.dbline 463
clr R2
sts _val,R2
L408:
.dbline 464
; if(KEY_OK==0){delay(30);
sbic 0x16,2
rjmp L410
.dbline 464
.dbline 464
ldi R16,30
ldi R17,0
xcall _delay
.dbline 465
; if(KEY_OK==0)
sbic 0x16,2
rjmp L412
.dbline 466
; {SREG=0x00;open_max_temp=val;
.dbline 466
clr R2
out 0x3f,R2
.dbline 466
lds R2,_val
sts _open_max_temp,R2
.dbline 467
; EEPROM_WRITE(open_max_address,val);
ldi R24,1
ldi R25,0
std y+1,R25
std y+0,R24
ldi R18,<_val
ldi R19,>_val
ldi R16,20
ldi R17,0
xcall _EEPROMWriteBytes
.dbline 468
; eep_temp=55;
ldi R24,55
sts _eep_temp,R24
.dbline 469
; EEPROM_WRITE(open_max_address+1,eep_temp);
ldi R24,1
ldi R25,0
std y+1,R25
std y+0,R24
ldi R18,<_eep_temp
ldi R19,>_eep_temp
ldi R16,21
ldi R17,0
xcall _EEPROMWriteBytes
.dbline 470
; PORTA=0x00;
clr R2
out 0x1b,R2
.dbline 471
; delay(500);
ldi R16,500
ldi R17,1
xcall _delay
.dbline 472
; SREG|=0x80; }
bset 7
.dbline 472
L412:
.dbline 473
; }
L410:
.dbline 474
; delay(300);
ldi R16,300
ldi R17,1
xcall _delay
.dbline -2
L403:
adiw R28,2
.dbline 0 ; func end
ret
.dbend
.dbfunc e input_openminspeed _input_openminspeed fV
.even
_input_openminspeed::
sbiw R28,2
.dbline -1
.dbline 480
; }
;
;
; /*=======待机状态(status=40)时的输入开门最小速度==========*/
; void input_openminspeed(void)
; {
.dbline 481
sbic 0x16,1
rjmp L415
.dbline 481
.dbline 481
ldi R16,30
ldi R17,0
xcall _delay
.dbline 481
sbic 0x16,1
rjmp L417
.dbline 481
lds R24,_val
subi R24,255 ; addi 1
sts _val,R24
L417:
.dbline 481
; if(KEY_ADD==0){delay(30);if(KEY_ADD==0)val++;}
L415:
.dbline 482
; if(val>9)val=0;
ldi R24,9
lds R2,_val
cp R24,R2
brsh L419
.dbline 482
clr R2
sts _val,R2
L419:
.dbline 483
; if(KEY_OK==0){delay(30);
sbic 0x16,2
rjmp L421
.dbline 483
.dbline 483
ldi R16,30
ldi R17,0
xcall _delay
.dbline 484
; if(KEY_OK==0)
sbic 0x16,2
rjmp L423
.dbline 485
; {SREG=0x00;open_min_temp=val;
.dbline 485
clr R2
out 0x3f,R2
.dbline 485
lds R2,_val
sts _open_min_temp,R2
.dbline 486
; EEPROM_WRITE(open_min_address,val);
ldi R24,1
ldi R25,0
std y+1,R25
std y+0,R24
ldi R18,<_val
ldi R19,>_val
ldi R16,25
ldi R17,0
xcall _EEPROMWriteBytes
.dbline 487
; eep_temp=55;
ldi R24,55
sts _eep_temp,R24
.dbline 488
; EEPROM_WRITE(open_min_address+1,eep_temp);
ldi R24,1
ldi R25,0
std y+1,R25
std y+0,R24
ldi R18,<_eep_temp
ldi R19,>_eep_temp
ldi R16,26
ldi R17,0
xcall _EEPROMWriteBytes
.dbline 489
; PORTA=0x00;
clr R2
out 0x1b,R2
.dbline 490
; delay(500);
ldi R16,500
ldi R17,1
xcall _delay
.dbline 491
; SREG|=0x80; }
bset 7
.dbline 491
L423:
.dbline 492
; }
L421:
.dbline 493
; delay(300);
ldi R16,300
ldi R17,1
xcall _delay
.dbline -2
L414:
adiw R28,2
.dbline 0 ; func end
ret
.dbend
.dbfunc e input_openforce _input_openforce fV
.even
_input_openforce::
.dbline -1
.dbline 498
; }
;
; //待机状态(40)时的输入开门受挤灵敏度子函数
; void input_openforce(void)
; {
.dbline -2
L425:
.dbline 0 ; func end
ret
.dbend
.dbfunc e input_closemaxspeed _input_closemaxspeed fV
.even
_input_closemaxspeed::
sbiw R28,2
.dbline -1
.dbline 504
;
; }
;
; /*=========待机状态(status=40)时的输入关门最大速度=========*/
; void input_closemaxspeed(void)
; {
.dbline 505
sbic 0x16,1
rjmp L427
.dbline 505
.dbline 505
ldi R16,30
ldi R17,0
xcall _delay
.dbline 505
sbic 0x16,1
rjmp L429
.dbline 505
lds R24,_val
subi R24,255 ; addi 1
sts _val,R24
L429:
.dbline 505
; if(KEY_ADD==0){delay(30);if(KEY_ADD==0)val++;}
L427:
.dbline 506
; if(val>9)val=0;
ldi R24,9
lds R2,_val
cp R24,R2
brsh L431
.dbline 506
clr R2
sts _val,R2
L431:
.dbline 507
; if(KEY_OK==0){delay(30);
sbic 0x16,2
rjmp L433
.dbline 507
.dbline 507
ldi R16,30
ldi R17,0
xcall _delay
.dbline 508
; if(KEY_OK==0)
sbic 0x16,2
rjmp L435
.dbline 509
; {SREG=0x00;close_max_temp=val;
.dbline 509
clr R2
out 0x3f,R2
.dbline 509
lds R2,_val
sts _close_max_temp,R2
.dbline 510
; EEPROM_WRITE(close_max_address,val);
ldi R24,1
ldi R25,0
std y+1,R25
std y+0,R24
ldi R18,<_val
ldi R19,>_val
ldi R16,30
ldi R17,0
xcall _EEPROMWriteBytes
.dbline 511
; eep_temp=55;
ldi R24,55
sts _eep_temp,R24
.dbline 512
; EEPROM_WRITE(close_max_address+1,eep_temp);
ldi R24,1
ldi R25,0
std y+1,R25
std y+0,R24
ldi R18,<_eep_temp
ldi R19,>_eep_temp
ldi R16,31
ldi R17,0
xcall _EEPROMWriteBytes
.dbline 513
; PORTA=0x00;
clr R2
out 0x1b,R2
.dbline 514
; delay(500);
ldi R16,500
ldi R17,1
xcall _delay
.dbline 515
; SREG|=0x80; }
bset 7
.dbline 515
L435:
.dbline 516
; }
L433:
.dbline 517
; delay(300);
ldi R16,300
ldi R17,1
xcall _delay
.dbline -2
L426:
adiw R28,2
.dbline 0 ; func end
ret
.dbend
.dbfunc e input_closeminspeed _input_closeminspeed fV
.even
_input_closeminspeed::
sbiw R28,2
.dbline -1
.dbline 523
; }
;
;
; /*=========待机状态(status=40)时输入关门最小速度==========*/
; void input_closeminspeed(void)
; {
.dbline 524
sbic 0x16,1
rjmp L438
.dbline 524
.dbline 524
ldi R16,30
ldi R17,0
xcall _delay
.dbline 524
sbic 0x16,1
rjmp L440
.dbline 524
lds R24,_val
subi R24,255 ; addi 1
sts _val,R24
L440:
.dbline 524
; if(KEY_ADD==0){delay(30);if(KEY_ADD==0)val++;}
L438:
.dbline 525
; if(val>9)val=0;
ldi R24,9
lds R2,_val
cp R24,R2
brsh L442
.dbline 525
clr R2
sts _val,R2
L442:
.dbline 526
; if(KEY_OK==0){delay(30);
sbic 0x16,2
rjmp L444
.dbline 526
.dbline 526
ldi R16,30
ldi R17,0
xcall _delay
.dbline 527
; if(KEY_OK==0)
sbic 0x16,2
rjmp L446
.dbline 528
; {SREG=0x00;close_min_temp=val;
.dbline 528
clr R2
out 0x3f,R2
.dbline 528
lds R2,_val
sts _close_min_temp,R2
.dbline 529
; EEPROM_WRITE(close_min_address,val);
ldi R24,1
ldi R25,0
std y+1,R25
std y+0,R24
ldi R18,<_val
ldi R19,>_val
ldi R16,35
ldi R17,0
xcall _EEPROMWriteBytes
.dbline 530
; eep_temp=55;
ldi R24,55
sts _eep_temp,R24
.dbline 531
; EEPROM_WRITE(close_min_address+1,eep_temp);
ldi R24,1
ldi R25,0
std y+1,R25
std y+0,R24
ldi R18,<_eep_temp
ldi R19,>_eep_temp
ldi R16,36
ldi R17,0
xcall _EEPROMWriteBytes
.dbline 532
; PORTA=0x00;
clr R2
out 0x1b,R2
.dbline 533
; delay(500);
ldi R16,500
ldi R17,1
xcall _delay
.dbline 534
; SREG|=0x80; }
bset 7
.dbline 534
L446:
.dbline 535
; }
L444:
.dbline 536
; delay(300);
ldi R16,300
ldi R17,1
xcall _delay
.dbline -2
L437:
adiw R28,2
.dbline 0 ; func end
ret
.dbend
.dbfunc e input_closeforce _input_closeforce fV
.even
_input_closeforce::
.dbline -1
.dbline 541
; }
;
; //待机状态(40)时的输入关门受挤灵敏度子函数
; void input_closeforce(void)
; {
.dbline -2
L448:
.dbline 0 ; func end
ret
.dbend
.dbfunc e input_studyspeed _input_studyspeed fV
.even
_input_studyspeed::
sbiw R28,2
.dbline -1
.dbline 547
;
; }
;
; /*============待机状态(status=40)时输入学习速度=========*/
; void input_studyspeed(void)
; {
.dbline 548
sbic 0x16,1
rjmp L450
.dbline 548
.dbline 548
ldi R16,30
ldi R17,0
xcall _delay
.dbline 548
sbic 0x16,1
rjmp L452
.dbline 548
lds R24,_val
subi R24,255 ; addi 1
sts _val,R24
L452:
.dbline 548
; if(KEY_ADD==0){delay(30);if(KEY_ADD==0)val++;}
L450:
.dbline 549
; if(val>9)val=0;
ldi R24,9
lds R2,_val
cp R24,R2
brsh L454
.dbline 549
clr R2
sts _val,R2
L454:
.dbline 550
; if(KEY_OK==0){delay(30);
sbic 0x16,2
rjmp L456
.dbline 550
.dbline 550
ldi R16,30
ldi R17,0
xcall _delay
.dbline 551
; if(KEY_OK==0)
sbic 0x16,2
rjmp L458
.dbline 552
; {SREG=0x00;study_speed_temp=val;
.dbline 552
clr R2
out 0x3f,R2
.dbline 552
lds R2,_val
sts _study_speed_temp,R2
.dbline 553
; EEPROM_WRITE(study_speed_address,val);
ldi R24,1
ldi R25,0
std y+1,R25
std y+0,R24
ldi R18,<_val
ldi R19,>_val
ldi R16,15
ldi R17,0
xcall _EEPROMWriteBytes
.dbline 554
; eep_temp=55;
ldi R24,55
sts _eep_temp,R24
.dbline 555
; EEPROM_WRITE(study_speed_address+1,eep_temp);
ldi R24,1
ldi R25,0
std y+1,R25
std y+0,R24
ldi R18,<_eep_temp
ldi R19,>_eep_temp
ldi R16,16
ldi R17,0
xcall _EEPROMWriteBytes
.dbline 556
; PORTA=0x00;
clr R2
out 0x1b,R2
.dbline 557
; delay(500);
ldi R16,500
ldi R17,1
xcall _delay
.dbline 558
; SREG|=0x80; }
bset 7
.dbline 558
L458:
.dbline 559
; }
L456:
.dbline 560
; delay(300);
ldi R16,300
ldi R17,1
xcall _delay
.dbline -2
L449:
adiw R28,2
.dbline 0 ; func end
ret
.dbend
.dbfunc e fnc_inc_dec _fnc_inc_dec fV
; x -> R20
; i -> R22
.even
_fnc_inc_dec::
xcall push_gset2
.dbline -1
.dbline 566
; }
;
;
; /*================计算出开门关门的加减速曲线===============*/
; void fnc_inc_dec(void)
; { uchar i,x;
.dbline 567
; x=0;
clr R20
.dbline 569
; //计算出开门的加速曲线
; open_max=open_max_tab[open_max_temp];//取得开门速度最大脉宽
ldi R24,<_open_max_tab
ldi R25,>_open_max_tab
lds R30,_open_max_t
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -