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

📄 iron.asm

📁 電 熨 斗 程 序
💻 ASM
字号:
;==========================================================================================;		     		    SH69P822;;	 (c) Copyright 2006-2007, Sino Wealth Microelectronics Corporation Limited;		 	All Rights Reserved;; module name :	Iron.asm			version : 1.0; function    : ; by	      : CLR; in	      : 2007-02-13;;==========================================================================================IronProcessor:			lda		zIronMode	,0		ba3		IronIsSetting	IronIsWorking:				lda		zIronState	,0		ba0		BeginIronUnheat		ba1		IronUnheat		ba2		Ironheat		jmp		IronProcessor_Over		BeginIronUnheat:						ldi		rzTBR		,UnheatTab_TBR		ldi		zWk0		,0111b		and		zIronMode	,0		sta		zWk0		,0		adim		zWk0		,UnheatTab_ACC		   	 	eor		zWk0		,0    		adcm		rzTBR		,0   	 	lda		zWk0   	 	call		UnheatTab   	 	sta		zCounter_IronCtrl	,0   	 	lda		rzTBR			,0   	 	sta		zCounter_IronCtrl+1	,0   	 	lda		zCounter_IronCtrl	,0   	 	or		zCounter_IronCtrl+1	,0   	 	baz		BeginIronHeat   	 	   	 	   	 	andim		zIntFlag	,0111b   	 	ldi		zIronState	,0010b   	 	   	 	;set unheat request   	 	ldi		zIronCtrl	,0001b		;unheat		andim		PIN_IRON	,IRON^0x0f		//Ctrl = L   	 		IronUnheat:		lda		zIntFlag	,0		ba3		$+2		jmp		IronProcessor_Over		andim		zIntFlag	,0111b		sbim		zCounter_IronCtrl	,0x01		eor		zCounter_IronCtrl	,0		sbcm		zCounter_IronCtrl+1	,0		or		zCounter_IronCtrl	,0		bnz		IronProcessor_Over	BeginIronHeat:		ldi		rzTBR		,HeatTab_TBR		ldi		zWk0		,0111b		and		zIronMode	,0		sta		zWk0		,0		adim		zWk0		,HeatTab_ACC		   	 	eor		zWk0		,0    		adcm		rzTBR		,0   	 	lda		zWk0   	 	call		HeatTab   	 	sta		zCounter_IronCtrl	,0   	 	lda		rzTBR			,0   	 	sta		zCounter_IronCtrl+1	,0   	 		   	 	or		zCounter_IronCtrl	,0   	 	baz		BeginIronUnheat   	 	   	 	   	 	andim		zIntFlag	,0111b   	 	ldi		zIronState	,0100b   	 	   	 	;set heat reqest   	 	ldi		zIronCtrl	,0010b   	 		Ironheat:		   			lda		zIronCtrl	,0		ba1		IronProcessor_Over		 			lda		zIntFlag	,0		ba3		$+2		jmp		IronProcessor_Over		andim		zIntFlag	,0111b		sbim		zCounter_IronCtrl	,0x01		eor		zCounter_IronCtrl	,0		sbcm		zCounter_IronCtrl+1	,0		or		zCounter_IronCtrl	,0		bnz		IronProcessor_Over   	 				jmp		BeginIronUnheatIronIsSetting:				ldi		zIronCtrl	,0001b		;0001b		//unheat		;0010b		//heat//		orim		PIN_IRON	,IRON			//Ctrl = H			;unheat		andim		PIN_IRON	,IRON^0x0f		//Ctrl = L				ldi		zIronMode	,1000b+IRON_MODE6IronProcessor_Over:			jmp		Exit_IronProcessor															IncreaseIronSetpoint:;if in workMode,then system enter setMode		lda	zIronMode			,0		ba3	$+3		orim	zIronMode			,1000b	;the first time enter setMode will not increase setPoint immediately		jmp	?exit		;if setPoint already equal the maxValue,skip.		lda	zCFMaxValue+0		sub	zIronSP+0		bnz	?addSP		lda	zCFMaxValue+1		sub	zIronSP+1		bnz	?addSP		lda	zCFMaxValue+2		sub	zIronSP+2		baz	?exit	?addSP:			adim	zIronSP				,0x01		daa	zIronSP		eor	zIronSP				,0		adcm	zIronSP+1			,0		daa	zIronSP+1			eor	zIronSP+1			,0					adcm	zIronSP+2		daa	zIronSP+2	?exit:			jmp	AdjustSetpointOverDecreaseIronSetpoint:;if in workMode,then system enter setMode		lda	zIronMode			,0		ba3	$+3		orim	zIronMode			,1000b	;the first time enter setMode will not decrease setPoint immediately		jmp	?exit	;if setPoint already equal the minValue,skip.		lda	zCFMinValue+0		sub	zIronSP+0				bnz	?subSP		lda	zCFMinValue+1		sub	zIronSP+1		bnz	?subSP		lda	zCFMinValue+2		sub	zIronSP+2		baz	?exit	?subSP:		sbim	zIronSP				,0x01		das	zIronSP		eor	zIronSP				,0				sbcm	zIronSP+1			,0		das	zIronSP+1				eor	zIronSP+1			,0				sbcm	zIronSP+2		das	zIronSP+2	?exit:	AdjustSetpointOver:		;after adjust Setpoint,reinit setMode-life-span		andim	zIntFlag1			,1101b		ldi	zCounter_Iron5000ms		,(TIMER_IRON_5000MS) & 0x0f		ldi	zCounter_Iron5000ms+1		,(TIMER_IRON_5000MS>>4) & 0x0f		ldi	zCounter_Iron5000ms+2		,(TIMER_IRON_5000MS>>8) & 0x0f		rtni											   	 	   	 	UpdateWorkMode:		lda		zIronMode	,0		ba3		?exit				//2007-05-18		lda		zIronCT		,0		eor		zIronSP		,0		bnz		?update		lda		zIronCT+1	,0		eor		zIronSP+1	,0		bnz		?update		lda		zIronCT+2	,0		eor		zIronSP+2	,0		bnz		?update			nop		nop		jmp		?exit		//				?update:			andim		zIronMode	,1000b			lda		zIronCT		,0		sub		zIronSP		,0		sta		zWk0		,0		das		zWk0				lda		zIronCT+1	,0		sbc		zIronSP+1	,0					sta		zWk1		das		zWk1		lda		zIronCT+2	,0		sbc		zIronSP+2	,0					sta		zWk2		das		zWk2		bnc		?enterMode6				lda		zWk0		,0		or		zWk1		,0		or		zWk2		,0		baz		?enterMode6				?judge5:		lda		zCFIRON_N5		sub		zWk0						sta		zWk3		,0		das		zWk3		lda		zCFIRON_N5+1		sbc		zWk1		,0		sta		zWk3		,0		das		zWk3			lda		zCFIRON_N5+2		sbc		zWk2		,0		sta		zWk3		,0		das		zWk3		bnc		?enterMode5?judge4:				lda		zCFIRON_N4		sub		zWk0						sta		zWk3		,0		das		zWk3		lda		zCFIRON_N4+1		sbc		zWk1		,0		sta		zWk3		,0		das		zWk3			lda		zCFIRON_N4+2		sbc		zWk2		,0		sta		zWk3		,0		das		zWk3		bnc		?enterMode4?judge3:				lda		zCFIRON_N3		sub		zWk0						sta		zWk3		,0		das		zWk3		lda		zCFIRON_N3+1		sbc		zWk1		,0		sta		zWk3		,0		das		zWk3			lda		zCFIRON_N3+2		sbc		zWk2		,0		sta		zWk3		,0		das		zWk3		bnc		?enterMode3?judge2:				lda		zCFIRON_N2		sub		zWk0						sta		zWk3		,0		das		zWk3		lda		zCFIRON_N2+1		sbc		zWk1		,0		sta		zWk3		,0		das		zWk3			lda		zCFIRON_N2+2		sbc		zWk2		,0		sta		zWk3		,0		das		zWk3		bnc		?enterMode2?judge1:				lda		zCFIRON_N1		sub		zWk0						sta		zWk3		,0		das		zWk3		lda		zCFIRON_N1+1		sbc		zWk1		,0		sta		zWk3		,0		das		zWk3			lda		zCFIRON_N1+2		sbc		zWk2		,0		sta		zWk3		,0		das		zWk3		bnc		?enterMode1?enterMode0:		orim		zIronMode	,IRON_MODE0		jmp		?exit		?enterMode1:		orim		zIronMode	,IRON_MODE1		jmp		?exit?enterMode2:		orim		zIronMode	,IRON_MODE2		jmp		?exit		?enterMode3:		orim		zIronMode	,IRON_MODE3		jmp		?exit?enterMode4:		orim		zIronMode	,IRON_MODE4		jmp		?exit?enterMode5:		orim		zIronMode	,IRON_MODE5		jmp		?exit		?enterMode6:			orim		zIronMode	,IRON_MODE6?exit:		rtni								   	 	   ReturnToWorkState:   	 	   	 	lda	zIronMode			,0		ba3	$+2		jmp	?exit		lda	zIntFlag1			,0		ba1	$+2		jmp	?exit		andim	zIntFlag1			,1101b	?reWork:		;decount setMode-Life-Span here:		sbim	zCounter_Iron5000ms		,0x01		eor	zCounter_Iron5000ms		,0		sbcm	zCounter_Iron5000ms+1		,0				eor	zCounter_Iron5000ms+1		,0				sbcm	zCounter_Iron5000ms+2		,0				or	zCounter_Iron5000ms+1		,0				or	zCounter_Iron5000ms		,0				bnz	?exit		;system will reEnter workMode from setMode after setMode-Life-Span elapsed		andim	zIronMode			,0111b		ldi	zCounter_Iron5000ms		,(TIMER_IRON_5000MS) & 0x0f		ldi	zCounter_Iron5000ms+1		,(TIMER_IRON_5000MS>>4) & 0x0f		ldi	zCounter_Iron5000ms+2		,(TIMER_IRON_5000MS>>8) & 0x0f	?exit:						rtni	;----------------------------------END-----------------------------------------------------

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -