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

📄 main.lis

📁 项目是为日本瑞萨工作所做的BAKE炉温控系统 整个文件夹包括设计文档
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 00EE 87                psha
 00EF C6008C            lda _Temper+1
 00F2 87                psha
 00F3 C6008B            lda _Temper
 00F6 87                psha
 00F7 C6008E            lda _CurtTmp+1
 00FA 87                psha
 00FB C6008D            lda _CurtTmp
 00FE 87                psha
 00FF CD0000            jsr _InBuff
 0102 A70A              ais #10
 0104                   .dbline 90
 0104           ;     //显示LcdShowBuff中的数据 
 0104           ;     LcdShCh(LcdShowBuff);
 0104 A600              lda #<_LcdShowBuff
 0106 87                psha
 0107 A600              lda #>_LcdShowBuff
 0109 87                psha
 010A CD0000            jsr _LcdShCh
 010D A702              ais #2
 010F                   .dbline 92
 010F           ;     //在Lcd上显示自定义32*16点阵的字符
 010F           ;     LcdShBigNum(0,0,(INT16U *)BigNumCode,CurtTmp);
 010F C6008E            lda _CurtTmp+1
 0112 87                psha
 0113 C6008D            lda _CurtTmp
 0116 87                psha
 0117 A600              lda #<_BigNumCode
 0119 87                psha
 011A A600              lda #>_BigNumCode
 011C 87                psha
 011D 4F                clra
 011E 87                psha
 011F 87                psha
 0120 CD0000            jsr _LcdShBigNum
 0123 A706              ais #6
 0125 95                tsx
 0126                   .dbline 97
 0126           ; 
 0126           ; 
 0126           ; 
 0126           ;      //2 将校准参数或MCU号写Flash
 0126           ;      if((FlashFlag1==1) ||(FlashFlag2==1))  //需要将校准值或MCU号写flash
 0126 C60076            lda _FlashFlag1
 0129 A101              cmp #1
 012B 2707              beq L15
 012D C60075            lda _FlashFlag2
 0130 A101              cmp #1
 0132 2630              bne L13
 0134           L15:
 0134                   .dbline 98
 0134           ;      {  
 0134                   .dbline 99
 0134           ;        ReFlash();
 0134 CD07A5            jsr _ReFlash
 0137 95                tsx
 0138                   .dbline 101
 0138           ;        
 0138           ;        CurtTmp=ConvertCT(sum);   //第0路为当前温度
 0138 E607              lda 7,X
 013A 87                psha
 013B E606              lda 6,X
 013D 87                psha
 013E CD03F7            jsr _ConvertCT
 0141 A702              ais #2
 0143 B600              lda *__r0
 0145 C7008D            sta _CurtTmp
 0148 B600              lda *__r1
 014A C7008E            sta _CurtTmp+1
 014D                   .dbline 102
 014D           ;        LcdShBigNum(0,0,(INT16U *)BigNumCode,CurtTmp);
 014D C6008E            lda _CurtTmp+1
 0150 87                psha
 0151 C6008D            lda _CurtTmp
 0154 87                psha
 0155 A600              lda #<_BigNumCode
 0157 87                psha
 0158 A600              lda #>_BigNumCode
 015A 87                psha
 015B 4F                clra
 015C 87                psha
 015D 87                psha
 015E CD0000            jsr _LcdShBigNum
 0161 A706              ais #6
 0163 95                tsx
 0164                   .dbline 104
 0164           ;   
 0164           ;     }
 0164           L13:
 0164                   .dbline 107
 0164           ;         
 0164           ;      //3 接收到PC读数据的请求就发送显示参数
 0164           ;      if(SendFlag==1)  
 0164 C60077            lda _SendFlag
 0167 A101              cmp #1
 0169 2678              bne L16
 016B                   .dbline 108
 016B           ;      {
 016B                   .dbline 110
 016B           ;      
 016B           ;          SCISend1('S');              //帧头'S'
 016B A653              lda #83
 016D 87                psha
 016E CD0000            jsr _SCISend1
 0171 A701              ais #1
 0173                   .dbline 111
 0173           ;          SCISend1(CurtTmp>>8);       //当前温度
 0173 C6008D            lda _CurtTmp
 0176 87                psha
 0177 CD0000            jsr _SCISend1
 017A A701              ais #1
 017C                   .dbline 112
 017C           ;          SCISend1(CurtTmp);
 017C C6008E            lda _CurtTmp+1
 017F 87                psha
 0180 CD0000            jsr _SCISend1
 0183 A701              ais #1
 0185                   .dbline 113
 0185           ;          SCISend1(Temper>>8);        //设定温度
 0185 C6008B            lda _Temper
 0188 87                psha
 0189 CD0000            jsr _SCISend1
 018C A701              ais #1
 018E                   .dbline 114
 018E           ;          SCISend1(Temper);
 018E C6008C            lda _Temper+1
 0191 87                psha
 0192 CD0000            jsr _SCISend1
 0195 A701              ais #1
 0197                   .dbline 115
 0197           ;          SCISend1(CurtTime>>8);      //当前时间
 0197 C60089            lda _CurtTime
 019A 87                psha
 019B CD0000            jsr _SCISend1
 019E A701              ais #1
 01A0                   .dbline 116
 01A0           ;          SCISend1((INT8U)CurtTime);
 01A0 C6008A            lda _CurtTime+1
 01A3 87                psha
 01A4 CD0000            jsr _SCISend1
 01A7 A701              ais #1
 01A9                   .dbline 117
 01A9           ;          SCISend1(Time>>8);          //设定时间
 01A9 C60087            lda _Time
 01AC 87                psha
 01AD CD0000            jsr _SCISend1
 01B0 A701              ais #1
 01B2                   .dbline 118
 01B2           ;          SCISend1(Time);
 01B2 C60088            lda _Time+1
 01B5 87                psha
 01B6 CD0000            jsr _SCISend1
 01B9 A701              ais #1
 01BB                   .dbline 119
 01BB           ;          SCISend1(ScdTim);           //当前秒数,供PC显示横坐标刻度
 01BB C60084            lda _ScdTim
 01BE 87                psha
 01BF CD0000            jsr _SCISend1
 01C2 A701              ais #1
 01C4 95                tsx
 01C5                   .dbline 120
 01C5           ;          SCISend1(sum>>8);    //当前温度的AD值
 01C5 E606              lda 6,X
 01C7 87                psha
 01C8 CD0000            jsr _SCISend1
 01CB A701              ais #1
 01CD 95                tsx
 01CE                   .dbline 121
 01CE           ;          SCISend1(sum);
 01CE E607              lda 7,X
 01D0 87                psha
 01D1 CD0000            jsr _SCISend1
 01D4 A701              ais #1
 01D6                   .dbline 122
 01D6           ;          SCISend1('E');              //帧尾'E'
 01D6 A645              lda #69
 01D8 87                psha
 01D9 CD0000            jsr _SCISend1
 01DC A701              ais #1
 01DE 95                tsx
 01DF                   .dbline 123
 01DF           ;          SendFlag=0;                 //清标志     
 01DF 4F                clra
 01E0 C70077            sta _SendFlag
 01E3                   .dbline 124
 01E3           ;      } 
 01E3           L16:
 01E3                   .dbline 131
 01E3           ; 
 01E3           ; 
 01E3           ; 
 01E3           ; 
 01E3           ; 
 01E3           ;      //4 Bake炉根据不同状态,作不同处理
 01E3           ;      switch(StateFlag)
 01E3 7F                clr ,X
 01E4 C6007B            lda _StateFlag
 01E7 E701              sta 1,X
 01E9 F6                lda ,X
 01EA 2606              bne X0
 01EC E601              lda 1,X
 01EE A101              cmp #1
 01F0 2748              beq L21
 01F2           X0:
 01F2 F6                lda ,X
 01F3 2606              bne X1
 01F5 E601              lda 1,X
 01F7 A102              cmp #2
 01F9 2764              beq L22
 01FB           X1:
 01FB F6                lda ,X
 01FC 2609              bne X2
 01FE E601              lda 1,X
 0200 A103              cmp #3
 0202 2603              bne X10
 0204 CC028F            jmp L25
 0207           X10:
 0207           X2:
 0207 F6                lda ,X
 0208 2609              bne X3
 020A E601              lda 1,X
 020C A104              cmp #4
 020E 2603              bne X11
 0210 CC0308            jmp L30
 0213           X11:
 0213           X3:
 0213 F6                lda ,X
 0214 2609              bne X4
 0216 E601              lda 1,X
 0218 A105              cmp #5
 021A 2603              bne X12
 021C CC034A            jmp L33
 021F           X12:
 021F           X4:
 021F F6                lda ,X
 0220 2609              bne X5
 0222 E601              lda 1,X
 0224 A106              cmp #6
 0226 2603              bne X13
 0228 CC036A            jmp L36
 022B           X13:
 022B           X5:
 022B F6                lda ,X
 022C 2609              bne X6
 022E E601              lda 1,X
 0230 A107              cmp #7
 0232 2603              bne X14
 0234 CC038F            jmp L39
 0237           X14:
 0237           X6:
 0237 CC039F            jmp L18
 023A           X7:
 023A                   .dbline 132
 023A           ;      {
 023A           L21:
 023A                   .dbline 134
 023A           ;        case 1://状态1:绿灯亮,Bake炉电源接通,其电源指示灯亮
 023A           ;               SwitchOutput(C_GreenLight,1); //系统开始工作后,绿灯常亮
 023A A601              lda #1
 023C 87                psha
 023D 87                psha
 023E CD0000            jsr _SwitchOutput
 0241 A702              ais #2
 0243                   .dbline 135
 0243           ;               SwitchOutput(C_BakeSw,1);     //使Bake炉电源接通
 0243 A601              lda #1
 0245 87                psha
 0246 A603              lda #3
 0248 87                psha
 0249 CD0000            jsr _SwitchOutput
 024C A702              ais #2
 024E                   .dbline 136
 024E           ;               LightOut(1);                  //Bake炉电源指示灯亮
 024E A601              lda #1
 0250 87                psha
 0251 CD0000            jsr _LightOut
 0254 A701              ais #1
 0256 95                tsx
 0257                   .dbline 138
 0257           ; //              BakeFlag=1;
 0257           ;               StateFlag=2;                  //进入状态2
 0257 A602              lda #2
 0259 C7007B            sta _StateFlag
 025C                   .dbline 139
 025C           ;               break;
 025C CC039F            jmp L19
 025F           L22:
 025F                   .dbline 141
 025F           ;        case 2://状态2:等待炉内温度达到设定值
 025F           ;               if(CurtTmp>=Temper)   //温度达到设定值
 025F C6008C            lda _Temper+1
 0262 B700              sta *__r1
 0264 C6008B            lda _Temper
 0267 B700              sta *__r0
 0269 C6008E            lda _CurtTmp+1
 026C B700              sta *__r3
 026E C6008D            lda _CurtTmp
 0271 B700              sta *__r2
 0273 5500              ldhx *__r2
 0275 7500              cphx *__r0
 0277 95                tsx
 0278 2403              bhs X15
 027A CC039F            jmp L19
 027D           X15:
 027D                   .dbline 142
 027D           ;               {
 027D                   .dbline 143
 027D           ;                 InitTime=MntTim;    //记录此刻时间,作为加热时间的基值
 027D C60082            lda _MntTim
 0280 E702              sta 2,X
 0282 C60083            lda _MntTim+1
 0285 E703              sta 3,X
 0287                   .dbline 144
 0287           ;                 StateFlag=3;        //进入状态3
 0287 A603              lda #3
 0289 C7007B            sta _StateFlag
 028C                   .dbline 145
 028C           ;               }
 028C                   .dbline 146
 028C           ;               break;
 028C CC039F            jmp L19
 028F           L25:
 028F                   .dbline 148
 028F           ;        case 3://状态3:如果当前炉内温度偏离设定温度过大,则报警提示复位系统
 028F           ;               if(CurtTmp>Temper)    //允许正负偏一定值,tmp为两者的差值
 028F C6008C            lda _Temper+1
 0292 B700              sta *__r1
 0294 C6008B            lda _Temper
 0297 B700              sta *__r0
 0299 C6008E            lda _CurtTmp+1
 029C B700              sta *__r3
 029E C6008D            lda _CurtTmp
 02A1 B700              sta *__r2
 02A3 5500              ldhx *__r2
 02A5 7500              cphx *__r0
 02A7 95                tsx
 02A8 2312              bls L26
 02AA                   .dbline 149
 02AA           ;                  tmp=CurtTmp-Temper;
 02AA C6008E            lda _CurtTmp+1
 02AD C0008C            sub _Temper+1
 02B0 E705              sta 5,X

⌨️ 快捷键说明

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