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

📄 main.s

📁 项目是为日本瑞萨工作所做的BAKE炉温控系统 整个文件夹包括设计文档
💻 S
📖 第 1 页 / 共 3 页
字号:
	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 + -