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

📄 main.lst

📁 发动机控制
💻 LST
📖 第 1 页 / 共 3 页
字号:
                     189                             ; SOURCE LINE # 50
0013 D2AA            190             SETB    EX1
A51 MACRO ASSEMBLER  MAIN                                                                   14/08/06 08:50:17 PAGE     4

                     191     ;       PX1 = 1;
                     192                             ; SOURCE LINE # 51
0015 D2BA            193             SETB    PX1
                     194     ; }
                     195                             ; SOURCE LINE # 52
0017 22              196             RET     
                     197     ; END OF initsys
                     198     
                     199     ; //--------------------------------------------------------------------------
                     200     ; // 主程序
                     201     ; //--------------------------------------------------------------------------
                     202     ; void main(void)
                     203     
----                 204             RSEG  ?PR?main?MAIN
                     205             USING   0
0000                 206     main:
                     207                             ; SOURCE LINE # 56
                     208     ; {  
                     209                             ; SOURCE LINE # 57
                     210     ;    init();          //变量初始化
                     211                             ; SOURCE LINE # 58
0000 120000   F      212             LCALL   init
                     213     ;    initsys();       //系统初始化
                     214                             ; SOURCE LINE # 59
0003 120000   F      215             LCALL   initsys
0006                 216     ?C0003:
                     217     ;    while(1){
                     218                             ; SOURCE LINE # 60
                     219     ;         Delay(500);
                     220                             ; SOURCE LINE # 61
0006 7FF4            221             MOV     R7,#0F4H
0008 7E01            222             MOV     R6,#01H
000A 120000   F      223             LCALL   _Delay
                     224     ;    }
                     225                             ; SOURCE LINE # 62
000D 80F7            226             SJMP    ?C0003
                     227     ; }
                     228                             ; SOURCE LINE # 63
000F 22              229             RET     
                     230     ; END OF main
                     231     
----                 232     CSEG    AT      00013H
0013 020000   F      233             LJMP    intersvr1
                     234     
                     235     ; //--------------------------------------------------------------------------
                     236     ; // 中断1子程序//点火信号检测
                     237     ; //--------------------------------------------------------------------------
                     238     ; void intersvr1(void) interrupt 2 using 1
                     239     
----                 240             RSEG  ?PR?intersvr1?MAIN
                     241             USING   1
0000                 242     intersvr1:
                     243                             ; SOURCE LINE # 67
                     244     ; {
                     245     ;       //曲轴转动信号处理
                     246     ;       TurnLed = 1;
                     247                             ; SOURCE LINE # 70
0000 D290            248             SETB    TurnLed
                     249     ;       TH1=0xEC;
                     250                             ; SOURCE LINE # 71
0002 758DEC          251             MOV     TH1,#0ECH
                     252     ;       TL1=0x77;
                     253                             ; SOURCE LINE # 72
0005 758B77          254             MOV     TL1,#077H
                     255     ;       TR1 = 1;                     //启动T1;
                     256                             ; SOURCE LINE # 73
A51 MACRO ASSEMBLER  MAIN                                                                   14/08/06 08:50:17 PAGE     5

0008 D28E            257             SETB    TR1
                     258     ; }
                     259                             ; SOURCE LINE # 74
000A 32              260             RETI    
                     261     ; END OF intersvr1
                     262     
----                 263     CSEG    AT      0001BH
001B 020000   F      264             LJMP    time1
                     265     
                     266     ; //--------------------------------------------------------------------------
                     267     ; // T1中断子程序
                     268     ; //--------------------------------------------------------------------------
                     269     ; void time1(void) interrupt 3 using 1
                     270     
----                 271             RSEG  ?PR?time1?MAIN
                     272             USING   1
0000                 273     time1:
                     274                             ; SOURCE LINE # 78
                     275     ; {
                     276     ;       TurnLed = 0;
                     277                             ; SOURCE LINE # 80
0000 C290            278             CLR     TurnLed
                     279     ;       TR1 = 0;                     //停止T1;
                     280                             ; SOURCE LINE # 81
0002 C28E            281             CLR     TR1
                     282     ; }
                     283                             ; SOURCE LINE # 82
0004 32              284             RETI    
                     285     ; END OF time1
                     286     
----                 287     CSEG    AT      0000BH
000B 020000   F      288             LJMP    time0
                     289     
                     290     ; //--------------------------------------------------------------------------
                     291     ; // T0中断子程序
                     292     ; //--------------------------------------------------------------------------
                     293     ; void time0(void) interrupt 1 using 1
                     294     
----                 295             RSEG  ?PR?time0?MAIN
                     296             USING   1
0000                 297     time0:
0000 C0E0            298             PUSH    ACC
0002 C0D0            299             PUSH    PSW
0004 75D008          300             MOV     PSW,#08H
                     301                             ; SOURCE LINE # 86
                     302     ; {
                     303     ;      TH0=0xFC;
                     304                             ; SOURCE LINE # 88
0007 758CFC          305             MOV     TH0,#0FCH
                     306     ;      TL0=0x21;
                     307                             ; SOURCE LINE # 89
000A 758A21          308             MOV     TL0,#021H
                     309     ;      if(++base==1000){      //1秒信号
                     310                             ; SOURCE LINE # 90
000D 0500     F      311             INC     base+01H
000F E500     F      312             MOV     A,base+01H
0011 7002            313             JNZ     ?C0020
0013 0500     F      314             INC     base
0015                 315     ?C0020:
0015 AE00     F      316             MOV     R6,base
0017 B4E80F          317             CJNE    A,#0E8H,?C0008
001A EE              318             MOV     A,R6
001B B4030B          319             CJNE    A,#03H,?C0008
                     320     ;       base = 0;
                     321                             ; SOURCE LINE # 91
001E E4              322             CLR     A
A51 MACRO ASSEMBLER  MAIN                                                                   14/08/06 08:50:17 PAGE     6

001F F500     F      323             MOV     base,A
0021 F500     F      324             MOV     base+01H,A
                     325     ;       halfMinLed = !halfMinLed;
                     326                             ; SOURCE LINE # 92
0023 B295            327             CPL     halfMinLed
                     328     ;       RunLed = !RunLed;
                     329                             ; SOURCE LINE # 93
0025 B297            330             CPL     RunLed
                     331     ;      }else if(base==500){   //半秒信号
                     332                             ; SOURCE LINE # 94
0027 800C            333             SJMP    ?C0011
0029                 334     ?C0008:
0029 E500     F      335             MOV     A,base+01H
002B B4F407          336             CJNE    A,#0F4H,?C0011
002E E500     F      337             MOV     A,base
0030 B40102          338             CJNE    A,#01H,?C0011
                     339     ;       halfMinLed = !halfMinLed;
                     340                             ; SOURCE LINE # 95
0033 B295            341             CPL     halfMinLed
                     342     ;      }
                     343                             ; SOURCE LINE # 96
                     344     ; }
                     345                             ; SOURCE LINE # 97
0035                 346     ?C0011:
0035 D0D0            347             POP     PSW
0037 D0E0            348             POP     ACC
0039 32              349             RETI    
                     350     ; END OF time0
                     351     
                     352     ; //延时dtime 毫秒
                     353     ; void Delay(int dtime)
                     354     
----                 355             RSEG  ?PR?_Delay?MAIN
                     356             USING   0
0000                 357     _Delay:
0000 8E00     F      358             MOV     dtime?60,R6
0002 8F00     F      359             MOV     dtime?60+01H,R7
                     360                             ; SOURCE LINE # 99
                     361     ; {
                     362                             ; SOURCE LINE # 100
                     363     ;         UCHAR i,j;
                     364     ;         for(i=0;i<dtime;i++)
                     365                             ; SOURCE LINE # 102
0004 E4              366             CLR     A
0005 F500     F      367             MOV     i?61,A
0007                 368     ?C0012:
0007 C3              369             CLR     C
0008 E500     F      370             MOV     A,i?61
000A 9500     F      371             SUBB    A,dtime?60+01H
000C E500     F      372             MOV     A,dtime?60
000E 6480            373             XRL     A,#080H
0010 F8              374             MOV     R0,A
0011 7480            375             MOV     A,#080H
0013 98              376             SUBB    A,R0
0014 5015            377             JNC     ?C0018
                     378     ;       {
                     379                             ; SOURCE LINE # 103
                     380     ;               for(j=0;j<250;j++)
                     381                             ; SOURCE LINE # 104
0016 E4              382             CLR     A
0017 F500     F      383             MOV     j?61,A

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -