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

📄 main.lis

📁 项目是为日本瑞萨工作所做的BAKE炉温控系统 整个文件夹包括设计文档
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 02B2 C6008D            lda _CurtTmp
 02B5 C2008B            sbc _Temper
 02B8 E704              sta 4,X
 02BA 2010              bra L27
 02BC           L26:
 02BC                   .dbline 151
 02BC           ;               else
 02BC           ;                  tmp=Temper-CurtTmp;
 02BC C6008C            lda _Temper+1
 02BF C0008E            sub _CurtTmp+1
 02C2 E705              sta 5,X
 02C4 C6008B            lda _Temper
 02C7 C2008D            sbc _CurtTmp
 02CA E704              sta 4,X
 02CC           L27:
 02CC                   .dbline 152
 02CC           ;               if(tmp>C_TmpPC)  //如果当前温度与设定温度偏差大于5,作异常处理
 02CC E605              lda 5,X
 02CE B700              sta *__r1
 02D0 E604              lda 4,X
 02D2 B700              sta *__r0
 02D4 5500              ldhx *__r0
 02D6 65000A            cphx #10
 02D9 95                tsx
 02DA 2324              bls L28
 02DC                   .dbline 153
 02DC           ;               {
 02DC                   .dbline 154
 02DC           ;                  SwitchOutput(C_BakeSw,0);    //断开Bake炉电源
 02DC 4F                clra
 02DD 87                psha
 02DE A603              lda #3
 02E0 87                psha
 02E1 CD0000            jsr _SwitchOutput
 02E4 A702              ais #2
 02E6                   .dbline 155
 02E6           ;                  LightOut(0);                 //Bake炉电源指示灯灭
 02E6 4F                clra
 02E7 87                psha
 02E8 CD0000            jsr _LightOut
 02EB A701              ais #1
 02ED                   .dbline 157
 02ED           ; //                 BakeFlag=0;
 02ED           ;                  SwitchOutput(C_GreenLight,0);//绿灯灭
 02ED 4F                clra
 02EE 87                psha
 02EF A601              lda #1
 02F1 87                psha
 02F2 CD0000            jsr _SwitchOutput
 02F5 A702              ais #2
 02F7 95                tsx
 02F8                   .dbline 158
 02F8           ;                  StateFlag=6;                 //进入状态6
 02F8 A606              lda #6
 02FA C7007B            sta _StateFlag
 02FD                   .dbline 159
 02FD           ;               }
 02FD CC039F            jmp L19
 0300           L28:
 0300                   .dbline 161
 0300           ;               else 
 0300           ;               {
 0300                   .dbline 162
 0300           ;                  StateFlag=4;                 //无异常,进入状态4
 0300 A604              lda #4
 0302 C7007B            sta _StateFlag
 0305                   .dbline 163
 0305           ;               }   
 0305                   .dbline 164
 0305           ;               break;
 0305 CC039F            jmp L19
 0308           L30:
 0308                   .dbline 166
 0308           ;        case 4://状态4:如果加热到设定时间,黄灯闪,提示将加热物体拿出放入冷却箱
 0308           ;               CurtTime=MntTim-InitTime;
 0308 C60083            lda _MntTim+1
 030B E003              sub 3,X
 030D C7008A            sta _CurtTime+1
 0310 C60082            lda _MntTim
 0313 E202              sbc 2,X
 0315 C70089            sta _CurtTime
 0318                   .dbline 167
 0318           ;               if(CurtTime>=Time)     //加热时间到,黄灯闪提示,直到Cool阀开
 0318 C60088            lda _Time+1
 031B B700              sta *__r1
 031D C60087            lda _Time
 0320 B700              sta *__r0
 0322 C6008A            lda _CurtTime+1
 0325 B700              sta *__r3
 0327 C60089            lda _CurtTime
 032A B700              sta *__r2
 032C 5500              ldhx *__r2
 032E 7500              cphx *__r0
 0330 95                tsx
 0331 2510              blo L31
 0333                   .dbline 168
 0333           ;               {
 0333                   .dbline 169
 0333           ;                  LightAlarm(C_YellowLight);   //断开Bake阀、绿灯灭、黄灯闪
 0333 A602              lda #2
 0335 87                psha
 0336 CD0742            jsr _LightAlarm
 0339 A701              ais #1
 033B 95                tsx
 033C                   .dbline 170
 033C           ;                  StateFlag=5;        //进入状态5
 033C A605              lda #5
 033E C7007B            sta _StateFlag
 0341                   .dbline 171
 0341           ;               }
 0341 205C              bra L19
 0343           L31:
 0343                   .dbline 173
 0343           ;               else
 0343           ;               {   
 0343                   .dbline 174
 0343           ;                  StateFlag=3;        //加热时间未到,回状态3,边判边等
 0343 A603              lda #3
 0345 C7007B            sta _StateFlag
 0348                   .dbline 175
 0348           ;               }   
 0348                   .dbline 176
 0348           ;               break;  
 0348 2055              bra L19
 034A           L33:
 034A                   .dbline 178
 034A           ;        case 5://状态5:冷却箱中无物体放入,黄灯继续闪
 034A           ;               if(Infrared>C_Exist)
 034A C60086            lda _Infrared+1
 034D B700              sta *__r1
 034F C60085            lda _Infrared
 0352 B700              sta *__r0
 0354 5500              ldhx *__r0
 0356 6500A0            cphx #160
 0359 95                tsx
 035A 2307              bls L34
 035C                   .dbline 179
 035C           ;                  StateFlag=4;        //无物体放入,回状态4,黄灯继续闪 
 035C A604              lda #4
 035E C7007B            sta _StateFlag
 0361 203C              bra L19
 0363           L34:
 0363                   .dbline 181
 0363           ;               else
 0363           ;                  StateFlag=7;        //有物体放入,去状态7
 0363 A607              lda #7
 0365 C7007B            sta _StateFlag
 0368                   .dbline 182
 0368           ;               break;
 0368 2035              bra L19
 036A           L36:
 036A                   .dbline 184
 036A           ;        case 6://状态6:Bake炉内温度异常后红灯报警,直至有复位开关按下
 036A           ;               SwitchOutput(C_RedLight,1);  //红灯亮并报警
 036A A601              lda #1
 036C 87                psha
 036D A605              lda #5
 036F 87                psha
 0370 CD0000            jsr _SwitchOutput
 0373 A702              ais #2
 0375 95                tsx
 0376                   .dbline 185
 0376           ;               if(ResetFlag==1)             
 0376 C60079            lda _ResetFlag
 0379 A101              cmp #1
 037B 2622              bne L19
 037D                   .dbline 186
 037D           ;               {
 037D                   .dbline 187
 037D           ;                  ResetFlag=0;
 037D 4F                clra
 037E C70079            sta _ResetFlag
 0381                   .dbline 188
 0381           ;                  SwitchOutput(C_RedLight,0);
 0381 4F                clra
 0382 87                psha
 0383 A605              lda #5
 0385 87                psha
 0386 CD0000            jsr _SwitchOutput
 0389 A702              ais #2
 038B 95                tsx
 038C                   .dbline 189
 038C           ;                  goto MainLoop;
 038C CC0021            jmp L2
 038F           X8:
 038F                   .dbline 191
 038F           ;               }
 038F           ;               break;
 038F           L39:
 038F                   .dbline 193
 038F           ;        case 7://状态7:Bake炉加热时间到后,等Bake炉电源重启按钮按下
 038F           ;               if(BakeFlag==1)
 038F C60078            lda _BakeFlag
 0392 A101              cmp #1
 0394 2609              bne L19
 0396                   .dbline 194
 0396           ;               {
 0396                   .dbline 195
 0396           ;                  BakeFlag=0;
 0396 4F                clra
 0397 C70078            sta _BakeFlag
 039A                   .dbline 196
 039A           ;                  StateFlag=1;  
 039A A601              lda #1
 039C C7007B            sta _StateFlag
 039F                   .dbline 197
 039F           ;               }
 039F                   .dbline 198
 039F           ;               break;
 039F           L18:
 039F           L19:
 039F                   .dbline 202
 039F           ;      }//switch
 039F           ;      
 039F           ;      //3 冷却箱的处理
 039F           ;      if(Infrared<=C_Exist && CoolFlag==0)      //从无到有
 039F C60086            lda _Infrared+1
 03A2 B700              sta *__r1
 03A4 C60085            lda _Infrared
 03A7 B700              sta *__r0
 03A9 5500              ldhx *__r0
 03AB 6500A0            cphx #160
 03AE 95                tsx
 03AF 2218              bhi L42
 03B1 C6007A            lda _CoolFlag
 03B4 2613              bne L42
 03B6                   .dbline 203
 03B6           ;      {
 03B6                   .dbline 204
 03B6           ;         SwitchOutput(C_CoolSw,1);              //打开冷却阀
 03B6 A601              lda #1
 03B8 87                psha
 03B9 A604              lda #4
 03BB 87                psha
 03BC CD0000            jsr _SwitchOutput
 03BF A702              ais #2
 03C1 95                tsx
 03C2                   .dbline 205
 03C2           ;         CoolFlag=1;        //有物体放入置此标志
 03C2 A601              lda #1
 03C4 C7007A            sta _CoolFlag
 03C7                   .dbline 206
 03C7           ;      }
 03C7 2028              bra L43
 03C9           L42:
 03C9                   .dbline 207
 03C9           ;      else  if(Infrared>C_Exist && CoolFlag==1) //从有到无
 03C9 C60086            lda _Infrared+1
 03CC B700              sta *__r1
 03CE C60085            lda _Infrared
 03D1 B700              sta *__r0
 03D3 5500              ldhx *__r0
 03D5 6500A0            cphx #160
 03D8 95                tsx
 03D9 2316              bls L44
 03DB C6007A            lda _CoolFlag
 03DE A101              cmp #1
 03E0 260F              bne L44
 03E2                   .dbline 208
 03E2           ;      {
 03E2                   .dbline 209
 03E2           ;         SwitchOutput(C_CoolSw,0);             //关冷却阀
 03E2 4F                clra
 03E3 87                psha
 03E4 A604              lda #4
 03E6 87                psha
 03E7 CD0000            jsr _SwitchOutput
 03EA A702              ais #2
 03EC 95                tsx
 03ED                   .dbline 210
 03ED           ;         CoolFlag=0;        //没有物体放入清此标志
 03ED 4F                clra
 03EE C7007A            sta _CoolFlag
 03F1                   .dbline 211
 03F1           ;      }
 03F1           L44:
 03F1           L43:
 03F1                   .dbline 213
 03F1           L4:
 03F1                   .dbline 62
 03F1 CC004E            jmp L3
 03F4           X9:
 03F4                   .dbline -2
 03F4           L1:
 03F4 A709              ais #9
 03F6                   .dbline 0 ; func end
 03F6 81                rts
 03F7                   .dbsym l InitTime 2 i
 03F7                   .dbsym l tmp 4 i
 03F7                   .dbsym l sum 6 i
 03F7                   .dbsym l i 8 c
 03F7                   .dbend
 03F7                   .dbfunc e ConvertCT _ConvertCT fi
 03F7           ;              x -> 0,X
 03F7           ;              y -> 2,X
 03F7           ;            tmp -> 4,X
 03F7           ;              b -> 8,X
 03F7           ;              k -> 12,X
 03F7           ;              i -> 16,X
 03F7           ;            adv -> 19,X
 03F7           _ConvertCT::
 03F7                   .dbline -1
 03F7 A7EF              ais #-17
 03F9 95                tsx
 03FA                   .dbline 229
 03FA           ;  
 03FA           ;    }//while    
 03FA           ; 
 03FA           ; }
 03FA           ; 
 03FA           ; 
 03FA           ; //**************************************************************************
 03FA           ; //                              内部函数                                   *
 03FA           ; //**************************************************************************
 03FA           ; 
 03FA           ; //-------------------------------------------------------------------------*
 03FA           ; //函数名:ConvertCT                                                         *
 03FA           ; //参  数:AD值                                                              *
 03FA           ; //返  回:AD值对应的当前温度                                                *
 03FA           ; //功  能:将AD值转换为当前温度                                              *
 03FA           ; //-------------------------------------------------------------------------*
 03FA           ; INT16U ConvertCT(INT16U adv)
 03FA           ; {
 03FA                   .dbline 233
 03FA           ;      INT8U i;
 03FA           ;      INT16U x,y;
 03FA           ;      INT32U k,b,tmp;
 03FA           ;      for(i=9;i>=0;i--)
 03FA A609              lda #9
 03FC E710              sta 16,X
 03FE CC0648            jmp L50
 0401           L47:
 0401                   .dbline 234
 0401           ;      {
 0401                   .dbline 235
 0401           ;          if(ADtoPHY_X[i]!=0 && adv>=ADtoPHY_X[i])
 0401 3F00              clr *__r0
 0403 E610              lda 16,X
 0405 B700              sta *__r1
 0407 3800              lsl *__r1
 0409 3900              rol *__r0
 040B B600              lda *__r1

⌨️ 快捷键说明

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