📄 main.s
字号:
sta *__r0
ldhx *__r0
lda 1,x
sta *__r1
lda ,x
tsx
sta *__r0
mov *__r1,*__r3
mov *__r0,*__r2
clr *__r1
clr *__r0
lda #-24
psha
lda #3
psha
clra
psha
psha
lda 11,X
psha
lda 10,X
psha
lda 9,X
psha
lda 8,X
psha
jsr __mul32u
ais #4
pula
sta *__r4
pula
sta *__r5
pula
sta *__r6
pula
add *__r3
sta 11,X
lda *__r6
adc *__r2
sta 10,X
lda *__r5
adc *__r1
sta 9,X
lda *__r4
adc *__r0
sta 8,X
.dbline 241
; if(ADtoPHY_b0[i]==0)
clr *__r0
lda 16,X
sta *__r1
lsl *__r1
rol *__r0
lda *__r1
add #<_ADtoPHY_b0
sta *__r1
lda *__r0
adc #>_ADtoPHY_b0
sta *__r0
ldhx *__r0
lda 1,x
sta *__r1
lda ,x
sta *__r0
ldhx *__r0
cphx #0
tsx
bne L53
.dbline 242
; tmp=k*adv+b;
clr *__r1
clr *__r0
lda 20,X
sta *__r3
lda 19,X
sta *__r2
lda 15,X
psha
lda 14,X
psha
lda 13,X
psha
lda 12,X
psha
lda *__r3
psha
lda *__r2
psha
lda *__r1
psha
lda *__r0
psha
jsr __mul32u
ais #4
pula
sta *__r0
pula
sta *__r1
pula
sta *__r2
pula
add 11,X
sta 7,X
lda *__r2
adc 10,X
sta 6,X
lda *__r1
adc 9,X
sta 5,X
lda *__r0
adc 8,X
sta 4,X
bra L54
L53:
.dbline 244
; else
; tmp=k*adv-b;
clr *__r1
clr *__r0
lda 20,X
sta *__r3
lda 19,X
sta *__r2
lda 15,X
psha
lda 14,X
psha
lda 13,X
psha
lda 12,X
psha
lda *__r3
psha
lda *__r2
psha
lda *__r1
psha
lda *__r0
psha
jsr __mul32u
ais #4
pula
sta *__r0
pula
sta *__r1
pula
sta *__r2
pula
sub 11,X
sta 7,X
lda *__r2
sbc 10,X
sta 6,X
lda *__r1
sbc 9,X
sta 5,X
lda *__r0
sbc 8,X
sta 4,X
L54:
.dbline 245
; y=tmp/1000;
lda 7,X
psha
lda 6,X
psha
lda 5,X
psha
lda 4,X
psha
lda #-24
psha
lda #3
psha
clra
psha
psha
jsr __divmod32u
ais #4
pula
pula
pula
sta *__r2
pula
sta *__r1
lda *__r2
sta 2,X
lda *__r1
sta 3,X
.dbline 246
; break;
bra L49
L51:
.dbline 248
L48:
.dbline 233
dec 16,X
L50:
.dbline 233
lda 16,X
cmp #0
blo X18
jmp L47
X18:
L49:
.dbline 249
; }
; }
; return(y);
lda 3,X
sta *__r1
lda 2,X
sta *__r0
.dbline -2
L46:
ais #17
.dbline 0 ; func end
rts
.dbsym l x 0 i
.dbsym l y 2 i
.dbsym l tmp 4 l
.dbsym l b 8 l
.dbsym l k 12 l
.dbsym l i 16 c
.dbsym l adv 19 i
.dbend
.dbfunc e ConvertT _ConvertT fi
; tmp -> 0,X
; adv -> 6,X
_ConvertT::
.dbline -1
ais #-4
tsx
.dbline 260
;
;
; }
; //-------------------------------------------------------------------------*
; //函数名:ConvertT *
; //参 数:AD值 *
; //返 回:AD值对应的设定温度 *
; //功 能:将AD值转换为设定温度 *
; //-------------------------------------------------------------------------*
; INT16U ConvertT(INT16U adv)
; {
.dbline 263
; INT32U tmp; //32位
;
; tmp=adv;
clra
sta 1,X
sta ,X
lda 7,X
sta 3,X
lda 6,X
sta 2,X
.dbline 265
; //按线性关系,将AD值范围分为C_TmpBound等分
; tmp=((tmp*C_TmpBound)/C_RADMax)/10+C_MinTmp;
lda #-48
psha
lda #7
psha
clra
psha
psha
lda 3,X
psha
lda 2,X
psha
lda 1,X
psha
lda ,X
psha
jsr __mul32u
ais #4
lda #-52
psha
lda #12
psha
clra
psha
psha
jsr __divmod32u
ais #4
lda #10
psha
clra
psha
psha
psha
jsr __divmod32u
ais #4
pula
sta *__r0
pula
sta *__r1
pula
sta *__r2
pula
add #25
sta 3,X
lda *__r2
adc #0
sta 2,X
lda *__r1
adc #0
sta 1,X
lda *__r0
adc #0
sta ,X
.dbline 266
; return(tmp);
lda 3,x
sta *__r3
lda 2,x
sta *__r2
tsx
mov *__r3,*__r1
mov *__r2,*__r0
.dbline -2
L55:
ais #4
.dbline 0 ; func end
rts
.dbsym l tmp 0 l
.dbsym l adv 6 i
.dbend
.dbfunc e ConvertTime _ConvertTime fi
; tmp -> 0,X
; adv -> 6,X
_ConvertTime::
.dbline -1
ais #-4
tsx
.dbline 275
; }
; //-------------------------------------------------------------------------*
; //函数名:ConvertTime *
; //参 数:AD值 *
; //返 回:AD值对应的设定时间 *
; //功 能:将AD值转换为设定时间 *
; //-------------------------------------------------------------------------*
; INT16U ConvertTime(INT16U adv)
; {
.dbline 278
; INT32U tmp; //32位
;
; tmp=adv;
clra
sta 1,X
sta ,X
lda 7,X
sta 3,X
lda 6,X
sta 2,X
.dbline 280
; //按线性关系,将AD值范围分为C_TimBound等分
; tmp=((tmp*C_TimBound)/C_RADMax/10+C_MinTim);
lda #-80
psha
lda #4
psha
clra
psha
psha
lda 3,X
psha
lda 2,X
psha
lda 1,X
psha
lda ,X
psha
jsr __mul32u
ais #4
lda #-52
psha
lda #12
psha
clra
psha
psha
jsr __divmod32u
ais #4
lda #10
psha
clra
psha
psha
psha
jsr __divmod32u
ais #4
pula
sta *__r0
pula
sta *__r1
pula
sta *__r2
pula
add #5
sta 3,X
lda *__r2
adc #0
sta 2,X
lda *__r1
adc #0
sta 1,X
lda *__r0
adc #0
sta ,X
.dbline 281
; return(tmp); //显示可精确到0.1分,此处计时只精确到1分
lda 3,x
sta *__r3
lda 2,x
sta *__r2
tsx
mov *__r3,*__r1
mov *__r2,*__r0
.dbline -2
L56:
ais #4
.dbline 0 ; func end
rts
.dbsym l tmp 0 l
.dbsym l adv 6 i
.dbend
.dbfunc e LightAlarm _LightAlarm fV
; i -> 0,X
; j -> 1,X
; Light -> 4,X
_LightAlarm::
.dbline -1
ais #-2
tsx
.dbline 294
; /////////////////////////////////////////
; //return(2);
; //////////////////////////////////////////////////////////
; }
;
; //-------------------------------------------------------------------------*
; //函数名:LightAlarm *
; //参 数:无 *
; //返 回:无 *
; //功 能:切掉Bake炉电源、通过不同颜色灯闪,提示进一步操作 *
; //-------------------------------------------------------------------------*
; void LightAlarm(INT8U Light)
; {
.dbline 298
; INT8U i,j;
;
; //Bake炉内温度异常,切掉Bake炉电源,指示灯灭
; SwitchOutput(C_BakeSw,0);
clra
psha
lda #3
psha
jsr _SwitchOutput
ais #2
.dbline 299
; LightOut(0);
clra
psha
jsr _LightOut
ais #1
.dbline 303
; // BakeFlag=0;
;
; //绿灯灭
; SwitchOutput(C_GreenLight,0);
clra
psha
lda #1
psha
jsr _SwitchOutput
ais #2
tsx
.dbline 306
;
; //灯亮
; SwitchOutput(Light,1);
lda #1
psha
lda 4,X
psha
jsr _SwitchOutput
ais #2
tsx
.dbline 309
;
; //延时
; for(i=0;i<200;i++)
clr ,X
bra L61
L58:
.dbline 310
clr 1,X
bra L65
L62:
.dbline 310
L63:
.dbline 310
inc 1,X
L65:
.dbline 310
lda 1,X
cmp #-56
blo L62
L59:
.dbline 309
inc ,X
L61:
.dbline 309
lda ,X
cmp #-56
blo L58
.dbline 313
; for(j=0;j<200;j++);
;
; //灯灭
; SwitchOutput(Light,0);
clra
psha
lda 4,X
psha
jsr _SwitchOutput
ais #2
tsx
.dbline 316
;
; //延时
; for(i=0;i<200;i++)
clr ,X
bra L69
L66:
.dbline 317
clr 1,X
bra L73
L70:
.dbline 317
L71:
.dbline 317
inc 1,X
L73:
.dbline 317
lda 1,X
cmp #-56
blo L70
L67:
.dbline 316
inc ,X
L69:
.dbline 316
lda ,X
cmp #-56
blo L66
.dbline -2
L57:
ais #2
.dbline 0 ; func end
rts
.dbsym l i 0 c
.dbsym l j 1 c
.dbsym l Light 4 c
.dbend
.dbfunc e ReFlash _ReFlash fV
; j -> 0,X
; i -> 1,X
; RecvFlash -> 2,X
_ReFlash::
.dbline -1
ais #-114
tsx
.dbline 323
; for(j=0;j<200;j++);
; }
;
;
; //校准当前温度,或修改MCU号,写flash函数
; void ReFlash(void)
; {
.dbline 329
; INT8U RecvFlash[112];
; INT8U i,j;
;
;
; //校准当前温度
; if(FlashFlag1==1)
lda _FlashFlag1
cmp #1
bne L75
.dbline 330
; {
.dbline 331
; DisableMCUInterrupt(); //擦些Flash时要关中断
SEI
.dbline 332
; FLBPR=0b11111111; //不保护FLASH区域
lda #-1
sta 0xff7e
.dbline 333
; EraseFlash(0x8080); //擦除0x8000为始址的一个页
ldhx #-32640
pshx
pshh
jsr _EraseFlash
ais #2
.dbline 334
; FLBPR=0b11111111; //不保护FLASH区域
lda #-1
sta 0xff7e
.dbline 335
; WriteFlash(0x8080); //将FlashData[8]数组的8个数据写入0x8000为始址的一个页
ldhx #-32640
pshx
pshh
jsr _WriteFlash
ais #2
.dbline 336
; EnableMCUInterrupt();
CLI
.dbline 338
;
; SCISendN(110,(INT8U *)0x8080);
ldhx #-32640
pshx
pshh
lda #110
psha
jsr _SCISendN
ais #3
tsx
.dbline 339
; FlashFlag1=0;
clra
sta _FlashFlag1
.dbline 340
; }
L75:
.dbline 343
lda _FlashFlag2
cmp #1
bne L77
.dbline 344
.dbline 345
lda _NewMCUno
sta _FlashData
.dbline 346
clra
sta _FlashFlag2
.dbline 348
lda #1
sta _N
.dbline 349
SEI
.dbline 350
ldhx #-32768
pshx
pshh
jsr _EraseFlash
ais #2
.dbline 351
ldhx #-32768
pshx
pshh
jsr _WriteFlash
ais #2
tsx
.dbline 352
CLI
.dbline 353
L77:
.dbline -2
L74:
ais #114
.dbline 0 ; func end
rts
.dbsym l j 0 c
.dbsym l i 1 c
.dbsym l RecvFlash 2 A[112:112]c
.dbend
.area bss
.dbfile Main.c
_faddr::
.blkb 2
.dbfile c:\documents and settings\sd\桌面\25\bake_mcu/Includes.h
.dbsym e faddr _faddr i
_pend::
.blkb 2
.dbsym e pend _pend i
_pbase::
.blkb 2
.dbsym e pbase _pbase i
_FlashData::
.blkb 110
.dbsym e FlashData _FlashData A[110:110]c
_N::
.blkb 1
.dbsym e N _N c
_FlashFlag2::
.blkb 1
.dbsym e FlashFlag2 _FlashFlag2 c
_FlashFlag1::
.blkb 1
.dbsym e FlashFlag1 _FlashFlag1 c
_SendFlag::
.blkb 1
.dbsym e SendFlag _SendFlag c
_BakeFlag::
.blkb 1
.dbsym e BakeFlag _BakeFlag c
_ResetFlag::
.blkb 1
.dbsym e ResetFlag _ResetFlag c
_CoolFlag::
.blkb 1
.dbsym e CoolFlag _CoolFlag c
_StateFlag::
.blkb 1
.dbsym e StateFlag _StateFlag c
_CaptureTime::
.blkb 1
.dbsym e CaptureTime _CaptureTime c
_NewMCUno::
.blkb 1
.dbsym e NewMCUno _NewMCUno c
_TmaxAdjust::
.blkb 2
.dbsym e TmaxAdjust _TmaxAdjust i
_ADCurtTmp::
.blkb 2
.dbsym e ADCurtTmp _ADCurtTmp i
_MntTim::
.blkb 2
.dbsym e MntTim _MntTim i
_ScdTim::
.blkb 1
.dbsym e ScdTim _ScdTim c
_Infrared::
.blkb 2
.dbsym e Infrared _Infrared i
_Time::
.blkb 2
.dbsym e Time _Time i
_CurtTime::
.blkb 2
.dbsym e CurtTime _CurtTime i
_Temper::
.blkb 2
.dbsym e Temper _Temper i
_CurtTmp::
.blkb 2
.dbsym e CurtTmp _CurtTmp i
_ADValue::
.blkb 22
.dbsym e ADValue _ADValue A[22:11]i
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -