📄 main.lis
字号:
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 + -