⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.lis

📁 前两年在一家模型公司开发的
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 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 + -