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 + -
显示快捷键?