main.lis
来自「为日本瑞萨苏州分公司做的一个温控系统」· LIS 代码 · 共 1,434 行 · 第 1/4 页
LIS
1,434 行
0303 87 psha
0304 A60C lda #12
0306 87 psha
0307 4F clra
0308 87 psha
0309 87 psha
030A CD0000 jsr __divmod32u
030D A704 ais #4
030F A60A lda #10
0311 87 psha
0312 4F clra
0313 87 psha
0314 87 psha
0315 87 psha
0316 CD0000 jsr __divmod32u
0319 A704 ais #4
031B 86 pula
031C B700 sta *__r0
031E 86 pula
031F B700 sta *__r1
0321 86 pula
0322 B700 sta *__r2
0324 86 pula
0325 AB19 add #25
0327 E703 sta 3,X
0329 B600 lda *__r2
032B A900 adc #0
032D E702 sta 2,X
032F B600 lda *__r1
0331 A900 adc #0
0333 E701 sta 1,X
0335 B600 lda *__r0
0337 A900 adc #0
0339 F7 sta ,X
033A .dbline 169
033A ; return(tmp);
033A E603 lda 3,x
033C B700 sta *__r3
033E E602 lda 2,x
0340 B700 sta *__r2
0342 95 tsx
0343 4E0000 mov *__r3,*__r1
0346 4E0000 mov *__r2,*__r0
0349 .dbline -2
0349 L36:
0349 A704 ais #4
034B .dbline 0 ; func end
034B 81 rts
034C .dbsym l tmp 0 l
034C .dbsym l adv 6 i
034C .dbend
034C .dbfunc e ConvertTime _ConvertTime fi
034C ; tmp -> 0,X
034C ; adv -> 6,X
034C _ConvertTime::
034C .dbline -1
034C A7FC ais #-4
034E 95 tsx
034F .dbline 178
034F ; }
034F ; //-------------------------------------------------------------------------*
034F ; //函数名:ConvertTime *
034F ; //参 数:AD值 *
034F ; //返 回:AD值对应的设定时间 *
034F ; //功 能:将AD值转换为设定时间 *
034F ; //-------------------------------------------------------------------------*
034F ; INT16U ConvertTime(INT16U adv)
034F ; {
034F .dbline 181
034F ; INT32U tmp; //32位
034F ;
034F ; tmp=adv;
034F 4F clra
0350 E701 sta 1,X
0352 F7 sta ,X
0353 E607 lda 7,X
0355 E703 sta 3,X
0357 E606 lda 6,X
0359 E702 sta 2,X
035B .dbline 183
035B ; //按线性关系,将AD值范围分为C_TimBound等分
035B ; tmp=((tmp*C_TimBound)/C_RADMax/10+C_MinTim);
035B A670 lda #112
035D 87 psha
035E A617 lda #23
0360 87 psha
0361 4F clra
0362 87 psha
0363 87 psha
0364 E603 lda 3,X
0366 87 psha
0367 E602 lda 2,X
0369 87 psha
036A E601 lda 1,X
036C 87 psha
036D F6 lda ,X
036E 87 psha
036F CD0000 jsr __mul32u
0372 A704 ais #4
0374 A6CC lda #-52
0376 87 psha
0377 A60C lda #12
0379 87 psha
037A 4F clra
037B 87 psha
037C 87 psha
037D CD0000 jsr __divmod32u
0380 A704 ais #4
0382 A60A lda #10
0384 87 psha
0385 4F clra
0386 87 psha
0387 87 psha
0388 87 psha
0389 CD0000 jsr __divmod32u
038C A704 ais #4
038E 86 pula
038F B700 sta *__r0
0391 86 pula
0392 B700 sta *__r1
0394 86 pula
0395 B700 sta *__r2
0397 86 pula
0398 AB1E add #30
039A E703 sta 3,X
039C B600 lda *__r2
039E A900 adc #0
03A0 E702 sta 2,X
03A2 B600 lda *__r1
03A4 A900 adc #0
03A6 E701 sta 1,X
03A8 B600 lda *__r0
03AA A900 adc #0
03AC F7 sta ,X
03AD .dbline 184
03AD ; return(tmp); //显示可精确到0.1分,此处计时只精确到1分
03AD E603 lda 3,x
03AF B700 sta *__r3
03B1 E602 lda 2,x
03B3 B700 sta *__r2
03B5 95 tsx
03B6 4E0000 mov *__r3,*__r1
03B9 4E0000 mov *__r2,*__r0
03BC .dbline -2
03BC L37:
03BC A704 ais #4
03BE .dbline 0 ; func end
03BE 81 rts
03BF .dbsym l tmp 0 l
03BF .dbsym l adv 6 i
03BF .dbend
03BF .dbfunc e LightAlarm _LightAlarm fV
03BF ; i -> 0,X
03BF ; j -> 1,X
03BF ; Light -> 4,X
03BF _LightAlarm::
03BF .dbline -1
03BF A7FE ais #-2
03C1 95 tsx
03C2 .dbline 197
03C2 ; /////////////////////////////////////////
03C2 ; //return(2);
03C2 ; //////////////////////////////////////////////////////////
03C2 ; }
03C2 ;
03C2 ; //-------------------------------------------------------------------------*
03C2 ; //函数名:LightAlarm *
03C2 ; //参 数:无 *
03C2 ; //返 回:无 *
03C2 ; //功 能:切掉Bake炉电源、通过不同颜色灯闪,提示进一步操作 *
03C2 ; //-------------------------------------------------------------------------*
03C2 ; void LightAlarm(INT8U Light)
03C2 ; {
03C2 .dbline 201
03C2 ; INT8U i,j;
03C2 ;
03C2 ; //Bake炉内温度异常,切掉Bake炉电源
03C2 ; SwitchOutput(C_BakeSw,0);
03C2 4F clra
03C3 87 psha
03C4 A603 lda #3
03C6 87 psha
03C7 CD0000 jsr _SwitchOutput
03CA A702 ais #2
03CC .dbline 203
03CC ; //绿灯灭
03CC ; SwitchOutput(C_GreenLight,0);
03CC 4F clra
03CD 87 psha
03CE A601 lda #1
03D0 87 psha
03D1 CD0000 jsr _SwitchOutput
03D4 A702 ais #2
03D6 95 tsx
03D7 .dbline 206
03D7 ;
03D7 ; //灯亮
03D7 ; SwitchOutput(Light,1);
03D7 A601 lda #1
03D9 87 psha
03DA E604 lda 4,X
03DC 87 psha
03DD CD0000 jsr _SwitchOutput
03E0 A702 ais #2
03E2 95 tsx
03E3 .dbline 209
03E3 ;
03E3 ; //延时
03E3 ; for(i=0;i<200;i++)
03E3 7F clr ,X
03E4 200D bra L42
03E6 L39:
03E6 .dbline 210
03E6 6F01 clr 1,X
03E8 2002 bra L46
03EA L43:
03EA .dbline 210
03EA L44:
03EA .dbline 210
03EA 6C01 inc 1,X
03EC L46:
03EC .dbline 210
03EC E601 lda 1,X
03EE A1C8 cmp #-56
03F0 25F8 blo L43
03F2 L40:
03F2 .dbline 209
03F2 7C inc ,X
03F3 L42:
03F3 .dbline 209
03F3 F6 lda ,X
03F4 A1C8 cmp #-56
03F6 25EE blo L39
03F8 .dbline 213
03F8 ; for(j=0;j<200;j++);
03F8 ;
03F8 ; //灯灭
03F8 ; SwitchOutput(Light,0);
03F8 4F clra
03F9 87 psha
03FA E604 lda 4,X
03FC 87 psha
03FD CD0000 jsr _SwitchOutput
0400 A702 ais #2
0402 95 tsx
0403 .dbline 216
0403 ;
0403 ; //延时
0403 ; for(i=0;i<200;i++)
0403 7F clr ,X
0404 200D bra L50
0406 L47:
0406 .dbline 217
0406 6F01 clr 1,X
0408 2002 bra L54
040A L51:
040A .dbline 217
040A L52:
040A .dbline 217
040A 6C01 inc 1,X
040C L54:
040C .dbline 217
040C E601 lda 1,X
040E A1C8 cmp #-56
0410 25F8 blo L51
0412 L48:
0412 .dbline 216
0412 7C inc ,X
0413 L50:
0413 .dbline 216
0413 F6 lda ,X
0414 A1C8 cmp #-56
0416 25EE blo L47
0418 .dbline -2
0418 L38:
0418 A702 ais #2
041A .dbline 0 ; func end
041A 81 rts
041B .dbsym l i 0 c
041B .dbsym l j 1 c
041B .dbsym l Light 4 c
041B .dbend
041B .dbfunc e ReFlash _ReFlash fV
041B _ReFlash::
041B .dbline -1
041B .dbline 223
041B ; for(j=0;j<200;j++);
041B ; }
041B ;
041B ;
041B ; //校准当前温度,或修改MCU号,写flash函数
041B ; void ReFlash(void)
041B ; {
041B .dbline 225
041B ;
041B ; DisableMCUInterrupt();
041B 9B SEI
041C .dbline 226
041C ; EraseFlash(0x8000); //擦除0x8000为始址的一个页
041C 458000 ldhx #-32768
041F 89 pshx
0420 8B pshh
0421 CD0000 jsr _EraseFlash
0424 A702 ais #2
0426 .dbline 227
0426 ; WriteFlash(0x8000);
0426 458000 ldhx #-32768
0429 89 pshx
042A 8B pshh
042B CD0000 jsr _WriteFlash
042E A702 ais #2
0430 95 tsx
0431 .dbline 228
0431 ; EnableMCUInterrupt();
0431 9A CLI
0432 .dbline -2
0432 L55:
0432 .dbline 0 ; func end
0432 81 rts
0433 .dbend
.area bss
0000 .dbfile Main.c
0000 _FlashFlag::
0000 .blkb 1
0001 .dbfile e:\04 瑞萨温控系统\04 软件\bake_mcu/Includes.h
0001 .dbsym e FlashFlag _FlashFlag c
0001 _CoolFlag::
0001 .blkb 1
0002 .dbsym e CoolFlag _CoolFlag c
0002 _StateFlag::
0002 .blkb 1
0003 .dbsym e StateFlag _StateFlag c
0003 _MntTim::
0003 .blkb 2
0005 .dbsym e MntTim _MntTim i
0005 _ScdTim::
0005 .blkb 1
0006 .dbsym e ScdTim _ScdTim c
0006 _Infrared::
0006 .blkb 2
0008 .dbsym e Infrared _Infrared i
0008 _Time::
0008 .blkb 2
000A .dbsym e Time _Time i
000A _CurtTime::
000A .blkb 2
000C .dbsym e CurtTime _CurtTime i
000C _CurtTmp::
000C .blkb 2
000E .dbsym e CurtTmp _CurtTmp i
000E _Temper::
000E .blkb 2
0010 .dbsym e Temper _Temper i
0010 _ADCurtTmp::
0010 .blkb 2
0012 .dbsym e ADCurtTmp _ADCurtTmp i
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?