📄 main.lis
字号:
05B6 82E7 ldi R24,1650
05B8 96E0 ldi R25,6
05BA 8017 cp R24,R16
05BC 9107 cpc R25,R17
05BE A8F3 brlo L120
05C0 .dbline 359
05C0 L117:
05C0 .dbline 354
05C0 4395 inc R20
05C2 L119:
05C2 .dbline 354
05C2 4630 cpi R20,6
05C4 30F3 brlo L116
05C6 .dbline 360
05C6 ; while(compute()<1350||compute()>1650);
05C6 ; }
05C6 ; LED_set();
05C6 7EDD rcall _LED_set
05C8 .dbline 361
05C8 ; delay(10);
05C8 0AE0 ldi R16,10
05CA 10E0 ldi R17,0
05CC 5CDD rcall _delay
05CE .dbline 362
05CE ; LED_set();
05CE 7ADD rcall _LED_set
05D0 .dbline 363
05D0 ; }
05D0 08C0 rjmp L110
05D2 X3:
05D2 .dbline 365
05D2 ; else // 设置不对重来
05D2 ; {
05D2 L123:
05D2 .dbline 367
05D2 .dbline 368
05D2 78DD rcall _LED_set
05D4 .dbline 369
05D4 L124:
05D4 .dbline 366
05D4 ; while(key()<3)
05D4 BCDE rcall _key
05D6 0330 cpi R16,3
05D8 E0F3 brlo L123
05DA .dbline 370
05DA ; {
05DA ; LED_set();
05DA ; }
05DA ; delay(100);
05DA 04E6 ldi R16,100
05DC 10E0 ldi R17,0
05DE 53DD rcall _delay
05E0 .dbline 371
05E0 ; goto loop;
05E0 21CF rjmp L96
05E2 L110:
05E2 .dbline 374
05E2 L94:
05E2 .dbline -2
05E2 L93:
05E2 00D0 rcall pop_gset1
05E4 .dbline 0 ; func end
05E4 0895 ret
05E6 .dbsym r i 20 c
05E6 .dbend
05E6 .dbfunc e Read_E2rom _Read_E2rom fV
05E6 ; i -> R20
.even
05E6 _Read_E2rom::
05E6 00D0 rcall push_gset1
05E8 .dbline -1
05E8 .dbline 379
05E8 ;
05E8 ; }
05E8 ; }
05E8 ; }
05E8 ;
05E8 ;
05E8 ; void Read_E2rom(void)
05E8 ; {
05E8 .dbline 382
05E8 ; uchar i;
05E8 ;
05E8 ; for(i=0;i<7;i++) // 读EEPOM
05E8 4427 clr R20
05EA 0DC0 rjmp L130
05EC L127:
05EC .dbline 383
05EC .dbline 384
05EC 042F mov R16,R20
05EE 00D0 rcall _EEPROM_read
05F0 80E0 ldi R24,<_e2rom
05F2 90E0 ldi R25,>_e2rom
05F4 E42F mov R30,R20
05F6 FF27 clr R31
05F8 E80F add R30,R24
05FA F91F adc R31,R25
05FC 0083 std z+0,R16
05FE .dbline 385
05FE 05E0 ldi R16,5
0600 10E0 ldi R17,0
0602 41DD rcall _delay
0604 .dbline 386
0604 L128:
0604 .dbline 382
0604 4395 inc R20
0606 L130:
0606 .dbline 382
0606 4730 cpi R20,7
0608 88F3 brlo L127
060A .dbline 388
060A ; {
060A ; e2rom[i] = EEPROM_read(i);
060A ; delay(5);
060A ; }
060A ;
060A ; low = e2rom[0]*256+e2rom[1]; // 油门低位
060A 20911400 lds R18,_e2rom
060E 3327 clr R19
0610 00E0 ldi R16,256
0612 11E0 ldi R17,1
0614 00D0 rcall empy16s
0616 1801 movw R2,R16
0618 40901500 lds R4,_e2rom+1
061C 5524 clr R5
061E 240C add R2,R4
0620 351C adc R3,R5
0622 30920600 sts _low+1,R3
0626 20920500 sts _low,R2
062A .dbline 389
062A ; high = e2rom[2]*256+e2rom[3]; // 高位
062A 20911600 lds R18,_e2rom+2
062E 3327 clr R19
0630 00E0 ldi R16,256
0632 11E0 ldi R17,1
0634 00D0 rcall empy16s
0636 1801 movw R2,R16
0638 40901700 lds R4,_e2rom+3
063C 5524 clr R5
063E 240C add R2,R4
0640 351C adc R3,R5
0642 30920A00 sts _high+1,R3
0646 20920900 sts _high,R2
064A .dbline 390
064A ; middle = e2rom[4]*256+e2rom[5]; // 中位
064A 20911800 lds R18,_e2rom+4
064E 3327 clr R19
0650 00E0 ldi R16,256
0652 11E0 ldi R17,1
0654 00D0 rcall empy16s
0656 1801 movw R2,R16
0658 40901900 lds R4,_e2rom+5
065C 5524 clr R5
065E 240C add R2,R4
0660 351C adc R3,R5
0662 30920800 sts _middle+1,R3
0666 20920700 sts _middle,R2
066A .dbline 391
066A ; REV = e2rom[6]; // 倒车标致
066A 20901A00 lds R2,_e2rom+6
066E 20920400 sts _REV,R2
0672 .dbline 393
0672 ;
0672 ; if((low>800&&low<1300)&&(middle>1350&&middle<1650)&&(high>1700&&high<2200))
0672 80E2 ldi R24,800
0674 93E0 ldi R25,3
0676 20900500 lds R2,_low
067A 30900600 lds R3,_low+1
067E 8215 cp R24,R2
0680 9305 cpc R25,R3
0682 08F0 brlo X11
0684 4BC0 rjmp L137
0686 X11:
0686 C101 movw R24,R2
0688 8431 cpi R24,20
068A E5E0 ldi R30,5
068C 9E07 cpc R25,R30
068E 08F0 brlo X12
0690 45C0 rjmp L137
0692 X12:
0692 86E4 ldi R24,1350
0694 95E0 ldi R25,5
0696 20900700 lds R2,_middle
069A 30900800 lds R3,_middle+1
069E 8215 cp R24,R2
06A0 9305 cpc R25,R3
06A2 08F0 brlo X13
06A4 3BC0 rjmp L137
06A6 X13:
06A6 C101 movw R24,R2
06A8 8237 cpi R24,114
06AA E6E0 ldi R30,6
06AC 9E07 cpc R25,R30
06AE B0F5 brsh L137
06B0 84EA ldi R24,1700
06B2 96E0 ldi R25,6
06B4 20900900 lds R2,_high
06B8 30900A00 lds R3,_high+1
06BC 8215 cp R24,R2
06BE 9305 cpc R25,R3
06C0 68F5 brsh L137
06C2 C101 movw R24,R2
06C4 8839 cpi R24,152
06C6 E8E0 ldi R30,8
06C8 9E07 cpc R25,R30
06CA 40F5 brsh L137
06CC .dbline 394
06CC ; { // 读起的数据正确
06CC .dbline 395
06CC ; PE1 = ((high-middle)*10)/256+2;
06CC 20900700 lds R2,_middle
06D0 30900800 lds R3,_middle+1
06D4 9C01 movw R18,R24
06D6 2219 sub R18,R2
06D8 3309 sbc R19,R3
06DA 0AE0 ldi R16,10
06DC 10E0 ldi R17,0
06DE 00D0 rcall empy16s
06E0 C801 movw R24,R16
06E2 892F mov R24,R25
06E4 9927 clr R25
06E6 0296 adiw R24,2
06E8 90931300 sts _PE1+1,R25
06EC 80931200 sts _PE1,R24
06F0 .dbline 396
06F0 ; PE2 = ((middle-low )*10)/256+2;
06F0 20900500 lds R2,_low
06F4 30900600 lds R3,_low+1
06F8 20910700 lds R18,_middle
06FC 30910800 lds R19,_middle+1
0700 2219 sub R18,R2
0702 3309 sbc R19,R3
0704 0AE0 ldi R16,10
0706 10E0 ldi R17,0
0708 00D0 rcall empy16s
070A C801 movw R24,R16
070C 892F mov R24,R25
070E 9927 clr R25
0710 0296 adiw R24,2
0712 90931100 sts _PE2+1,R25
0716 80931000 sts _PE2,R24
071A .dbline 397
071A ; }
071A 1FC0 rjmp L138
071C L137:
071C .dbline 399
071C .dbline 400
071C 87E1 ldi R24,23
071E 90E0 ldi R25,0
0720 90931300 sts _PE1+1,R25
0724 80931200 sts _PE1,R24
0728 .dbline 401
0728 90931100 sts _PE2+1,R25
072C 80931000 sts _PE2,R24
0730 .dbline 402
0730 8CED ldi R24,1500
0732 95E0 ldi R25,5
0734 90930800 sts _middle+1,R25
0738 80930700 sts _middle,R24
073C .dbline 403
073C 8CE4 ldi R24,1100
073E 94E0 ldi R25,4
0740 90930600 sts _low+1,R25
0744 80930500 sts _low,R24
0748 .dbline 404
0748 8CE6 ldi R24,1900
074A 97E0 ldi R25,7
074C 90930A00 sts _high+1,R25
0750 80930900 sts _high,R24
0754 .dbline 405
0754 81E0 ldi R24,1
0756 80930400 sts _REV,R24
075A .dbline 406
075A L138:
075A .dbline -2
075A L126:
075A 00D0 rcall pop_gset1
075C .dbline 0 ; func end
075C 0895 ret
075E .dbsym r i 20 c
075E .dbend
.area vector(rom, abs)
.org 2
0002 AFC3 rjmp _int0_isr
.area text(rom, con, rel)
075E .dbfile E:\TWINTI~1\main.c
075E .dbfunc e int0_isr _int0_isr fV
.even
075E _int0_isr::
075E 2A92 st -y,R2
0760 3A92 st -y,R3
0762 8A93 st -y,R24
0764 2FB6 in R2,0x3f
0766 2A92 st -y,R2
0768 .dbline -1
0768 .dbline 416
0768 ; else // 读起的数据不正确使用默认值
0768 ; {
0768 ; PE1 = 23;
0768 ; PE2 = 23;
0768 ; middle = 1500;
0768 ; low = 1100;
0768 ; high = 1900;
0768 ; REV = 1;
0768 ; }
0768 ; }
0768 ;
0768 ;
0768 ;
0768 ; /*---------------------------------------------------------------
0768 ; INT0 中断油门接收
0768 ; ----------------------------------------------------------------*/
0768 ; #pragma interrupt_handler int0_isr:2
0768 ; void int0_isr(void)
0768 ; {
0768 .dbline 417
0768 ; if(EICRA==0x03) // 上升沿开始记时
0768 80916900 lds R24,105
076C 8330 cpi R24,3
076E 59F4 brne L140
0770 .dbline 418
0770 ; {
0770 .dbline 419
0770 ; TCNT1H = 0x00;
0770 2224 clr R2
0772 20928500 sts 133,R2
0776 .dbline 420
0776 ; TCNT1L = 0x00;
0776 20928400 sts 132,R2
077A .dbline 421
077A ; TCCR1B = 0x02; //start Timer1
077A 82E0 ldi R24,2
077C 80938100 sts 129,R24
0780 .dbline 422
0780 ; EICRA = 0x02;
0780 80936900 sts 105,R24
0784 .dbline 423
0784 ; }
0784 1FC0 rjmp L141
0786 L140:
0786 .dbline 424
0786 ; else if(EICRA==0x02) // 下降沿读计时数据
0786 80916900 lds R24,105
078A 8230 cpi R24,2
078C D9F4 brne L142
078E .db
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -