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

📄 main.asm

📁 電 熨 斗 程 序
💻 ASM
字号:
;==========================================================================================;		     		    SH69P822;;	 (c) Copyright 2006-2007, Sino Wealth Microelectronics Corporation Limited;		 	All Rights Reserved;; module name :	Main.asm			version : 1.0; function    : ; by	      : CLR; in	      : 2007-02-13;;==========================================================================================;==========================================================================================;		Entrance of Power On,Reset key,LVR reset and WDT reset ;==========================================================================================POWERON:		nop		nop		nop		nopSTRAT:		ldi		rzIE		,00h			ldi		rzWDT		,1000b	;watchdog time up = 4ms		call		InitSys		;init system IO		call		ClearLED		call		ClrRAM		;clear user reg				ldi		rzWDT		,1000b	;watchdog time up = 4ms		call		InitGlobal	;init user registers				call		InitSys		;init system IO again		ldi		1aH		,ADC_330Tad + ADC_Tad_8Tosc		ldi		1bH		,ADC_Module_On + ADC_Channel0		orim		rzADC_GODONE	,1000b		;enable AD moudule			ldi		rzTM0		,TIMER0_OSC_PRESCALER			ldi		rzTL0		,TIMER0_System_Base&0fh		ldi		rzTH0		,(TIMER0_System_Base>>4)&0fh				orim	zIronMode			,1000b	//	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				andim		rzIRQP		,0000b		;clear all irq flag		andim		rzIRQ		,0000b			ldi		rzIEP		,0000b		;disable port interrupt		ldi		zIEBackup	,INT_Timer0	;enable Timer0 interrupt		sta		rzIE		,0			;------------------------------------------------------------------------------------------Main:		halt		ldi		rzWDT		,1000b	;reset watchdog timer.				jmp		TimerProcessorExit_TimerProcessor:				jmp		ADCProcessorExit_ADCProcessor:						jmp		ScanRTExit_ScanRT:					lda		zSystemHealthy	,0	;until obtain stable temperatur		ba0		$+2		jmp		Main			jmp		ScanWheelExit_ScanWheel:			jmp		ZeroDetectExit_ZeroDetect:		//-----------------------------------------------------------------------------------------ComeIntoPause:	;2007-04-03		lda		zIntFlag2	,0		ba3		$+2		jmp		ComeIntoPasue_Over				orim		PIN_IRON	,IRON				ldi		zSparkBuf	,0x0f			ldi		zIronMode	,IRON_MODE6					ldi		zIronCT+3	,0x00	;"OFF"		ldi		zIronCT+2	,0x00		ldi		zIronCT+1	,0x0f		ldi		zIronCT+0	,0x0fComeIntoPasue_Over:		//-----------------------------------------------------------------------------------------				jmp		IronProcessorExit_IronProcessor:		jmp		LEDProcessor	Exit_LEDProcessor:				jmp		Main						;==========================================================================================;			Init User registers;==========================================================================================InitGlobal:		;init all system timer		ldi		zCounter_System5ms	,TIMER_SYSTEM_5MS		ldi		zCounter_System100ms_L	,TIMER_SYSTEM_100MS&0fh		ldi		zCounter_System100ms_H	,(TIMER_SYSTEM_100MS>>4)&0fh		ldi		zCounter_System500ms_L	,TIMER_SYSTEM_500MS&0fh		ldi		zCounter_System500ms_H	,(TIMER_SYSTEM_500MS>>4)&0fh		ldi		zCounter_System30min+0	,TIMER_SYSTEM_30MIN&0fh		ldi		zCounter_System30min+1	,(TIMER_SYSTEM_30MIN>>4)&0fh		ldi		zCounter_System30min+2	,(TIMER_SYSTEM_30MIN>>8)&0fh		;init LED refresh time		ldi		zLEDRefreshTime	,LED_REFRESH_TIME		;init LED spark buffer		ldi		zSparkBuf	,0x0f			;init Mode		ldi		zIronMode	,IRON_MODE6		;begin heet process		ldi		zIronState	,0001b		ReadOption:	;option: C/F			zOPTION		EQU		zWk0		zOPTION_BUF	EQU		zWk1		zREPEAT_COUNTER	EQU		zWk3		zRETRY_COUNTER	EQU		zWk3		ldi		zOPTION		,0000b		ldi		zOPTION_BUF	,0000b		ldi		zRETRY_COUNTER	,0x05	?begin:			sbim		zRETRY_COUNTER	,0x01		baz		?selectCelsius			;error: select Celsius		ldi		zREPEAT_COUNTER	,0x03		;read 3 time to confirm		lda		zOPTION		,0				sta		zOPTION_BUF	,0	?loop:		andim		rzPBOUT		,1101b		// C/F share with PB1		orim		rzPB		,0010b		nop		nop		nop		nop		nop		nop		nop		nop		nop		nop		nop		nop		lda		rzPB		,0		sta		zOPTION		,0		eor		zOPTION_BUF	,0		bnz		?begin		sbim		zREPEAT_COUNTER	,0x01		bnz		?loop					lda		zOPTION		ba1		?selectCelsius			// C/F share with PB1	?selectFahrenheit:		ldi		zCFOption	,Fahrenheit		ldi		zIronSP2	,(Fahrenheit_SP_Default>>8)&0x0f		ldi		zIronSP1	,(Fahrenheit_SP_Default>>4)&0x0f		ldi		zIronSP		,(Fahrenheit_SP_Default)&0x0f		ldi		zCFMinValue	,Fahrenheit_SP_MinValue & 0x0f		ldi		zCFMinValue1	,(Fahrenheit_SP_MinValue>>4) & 0x0f		ldi		zCFMinValue2	,(Fahrenheit_SP_MinValue>>8) & 0x0f		ldi		zCFMaxValue	,Fahrenheit_SP_MaxValue & 0x0f		ldi		zCFMaxValue1	,(Fahrenheit_SP_MaxValue>>4) & 0x0f		ldi		zCFMaxValue2	,(Fahrenheit_SP_MaxValue>>8) & 0x0f		ldi		zCFIRON_N1	,Fahrenheit_IRON_N1 & 0x0f		ldi		zCFIRON_N1+1	,(Fahrenheit_IRON_N1>>4) & 0x0f		ldi		zCFIRON_N1+2	,(Fahrenheit_IRON_N1>>8) & 0x0f		ldi		zCFIRON_N2	,Fahrenheit_IRON_N2 & 0x0f		ldi		zCFIRON_N2+1	,(Fahrenheit_IRON_N2>>4) & 0x0f		ldi		zCFIRON_N2+2	,(Fahrenheit_IRON_N2>>8) & 0x0f		ldi		zCFIRON_N3	,Fahrenheit_IRON_N3 & 0x0f		ldi		zCFIRON_N3+1	,(Fahrenheit_IRON_N3>>4) & 0x0f		ldi		zCFIRON_N3+2	,(Fahrenheit_IRON_N3>>8) & 0x0f		ldi		zCFIRON_N4	,Fahrenheit_IRON_N4 & 0x0f		ldi		zCFIRON_N4+1	,(Fahrenheit_IRON_N4>>4) & 0x0f		ldi		zCFIRON_N4+2	,(Fahrenheit_IRON_N4>>8) & 0x0f		ldi		zCFIRON_N5	,Fahrenheit_IRON_N5 & 0x0f		ldi		zCFIRON_N5+1	,(Fahrenheit_IRON_N5>>4) & 0x0f		ldi		zCFIRON_N5+2	,(Fahrenheit_IRON_N5>>8) & 0x0f		jmp		?next	?selectCelsius:		ldi		zCFOption	,Celsius		ldi		zIronSP2	,(Celsius_SP_Default>>8)&0x0f		ldi		zIronSP1	,(Celsius_SP_Default>>4)&0x0f		ldi		zIronSP		,(Celsius_SP_Default)&0x0f		ldi		zCFMinValue	,Celsius_SP_MinValue & 0x0f		ldi		zCFMinValue1	,(Celsius_SP_MinValue>>4) & 0x0f		ldi		zCFMinValue2	,(Celsius_SP_MinValue>>8) & 0x0f		ldi		zCFMaxValue	,Celsius_SP_MaxValue & 0x0f		ldi		zCFMaxValue1	,(Celsius_SP_MaxValue>>4) & 0x0f		ldi		zCFMaxValue2	,(Celsius_SP_MaxValue>>8) & 0x0f		ldi		zCFIRON_N1	,Celsius_IRON_N1 & 0x0f		ldi		zCFIRON_N1+1	,(Celsius_IRON_N1>>4) & 0x0f		ldi		zCFIRON_N1+2	,(Celsius_IRON_N1>>8) & 0x0f		ldi		zCFIRON_N2	,Celsius_IRON_N2 & 0x0f		ldi		zCFIRON_N2+1	,(Celsius_IRON_N2>>4) & 0x0f		ldi		zCFIRON_N2+2	,(Celsius_IRON_N2>>8) & 0x0f		ldi		zCFIRON_N3	,Celsius_IRON_N3 & 0x0f		ldi		zCFIRON_N3+1	,(Celsius_IRON_N3>>4) & 0x0f		ldi		zCFIRON_N3+2	,(Celsius_IRON_N3>>8) & 0x0f		ldi		zCFIRON_N4	,Celsius_IRON_N4 & 0x0f		ldi		zCFIRON_N4+1	,(Celsius_IRON_N4>>4) & 0x0f		ldi		zCFIRON_N4+2	,(Celsius_IRON_N4>>8) & 0x0f		ldi		zCFIRON_N5	,Celsius_IRON_N5 & 0x0f		ldi		zCFIRON_N5+1	,(Celsius_IRON_N5>>4) & 0x0f		ldi		zCFIRON_N5+2	,(Celsius_IRON_N5>>8) & 0x0f	?next:				ldi		rzPBOUT	,0011b							ldi		rzPB	,0000b				rtni		;==========================================================================================;			Clear & Refresh LED;==========================================================================================		ClearLED:				ldi		z74LS164Buf3	,0x0f		ldi		z74LS164Buf2	,0x0f		ldi		z74LS164Buf1	,0x0f		ldi		z74LS164Buf	,0x0f			RefreshLED:		; PB1:Output	----	74164 SCK		; PB0:Output	----	74164 SDA		ldi		rzPBOUT	,0011b		//2007/05/07					ldi		rzPB	,0000b		nop		nop		nop		nop		nop	L1:		orim		PIN_SDA164	,SDA164			lda		z74LS164Buf+3	,0		ba3		$+2		andim		PIN_SDA164	,SDA164^0x0f		andim		PIN_SCK164	,SCK164^0x0f		orim		PIN_SCK164	,SCK164		L2:		orim		PIN_SDA164	,SDA164			lda		z74LS164Buf+3	,0		ba2		$+2		andim		PIN_SDA164	,SDA164^0x0f		andim		PIN_SCK164	,SCK164^0x0f		orim		PIN_SCK164	,SCK164		L3:		orim		PIN_SDA164	,SDA164			lda		z74LS164Buf+3	,0		ba1		$+2		andim		PIN_SDA164	,SDA164^0x0f		andim		PIN_SCK164	,SCK164^0x0f		orim		PIN_SCK164	,SCK164		L4:		orim		PIN_SDA164	,SDA164			lda		z74LS164Buf+3	,0		ba0		$+2		andim		PIN_SDA164	,SDA164^0x0f		andim		PIN_SCK164	,SCK164^0x0f		orim		PIN_SCK164	,SCK164		L5:		orim		PIN_SDA164	,SDA164			lda		z74LS164Buf+2	,0		ba3		$+2		andim		PIN_SDA164	,SDA164^0x0f		andim		PIN_SCK164	,SCK164^0x0f		orim		PIN_SCK164	,SCK164		L6:		orim		PIN_SDA164	,SDA164			lda		z74LS164Buf+2	,0		ba2		$+2		andim		PIN_SDA164	,SDA164^0x0f		andim		PIN_SCK164	,SCK164^0x0f		orim		PIN_SCK164	,SCK164		L7:		orim		PIN_SDA164	,SDA164			lda		z74LS164Buf+2	,0		ba1		$+2		andim		PIN_SDA164	,SDA164^0x0f		andim		PIN_SCK164	,SCK164^0x0f		orim		PIN_SCK164	,SCK164		L8:		orim		PIN_SDA164	,SDA164			lda		z74LS164Buf+2	,0		ba0		$+2		andim		PIN_SDA164	,SDA164^0x0f		andim		PIN_SCK164	,SCK164^0x0f		orim		PIN_SCK164	,SCK164		L9:		orim		PIN_SDA164	,SDA164			lda		z74LS164Buf+1	,0		ba3		$+2		andim		PIN_SDA164	,SDA164^0x0f		andim		PIN_SCK164	,SCK164^0x0f		orim		PIN_SCK164	,SCK164		L10:		orim		PIN_SDA164	,SDA164			lda		z74LS164Buf+1	,0		ba2		$+2		andim		PIN_SDA164	,SDA164^0x0f		andim		PIN_SCK164	,SCK164^0x0f		orim		PIN_SCK164	,SCK164		L11:		orim		PIN_SDA164	,SDA164			lda		z74LS164Buf+1	,0		ba1		$+2		andim		PIN_SDA164	,SDA164^0x0f		andim		PIN_SCK164	,SCK164^0x0f		orim		PIN_SCK164	,SCK164		L12:		orim		PIN_SDA164	,SDA164			lda		z74LS164Buf+1	,0		ba0		$+2		andim		PIN_SDA164	,SDA164^0x0f		andim		PIN_SCK164	,SCK164^0x0f		orim		PIN_SCK164	,SCK164		L13:		orim		PIN_SDA164	,SDA164			lda		z74LS164Buf+0	,0		ba3		$+2		andim		PIN_SDA164	,SDA164^0x0f		andim		PIN_SCK164	,SCK164^0x0f		orim		PIN_SCK164	,SCK164		L14:		orim		PIN_SDA164	,SDA164			lda		z74LS164Buf+0	,0		ba2		$+2		andim		PIN_SDA164	,SDA164^0x0f		andim		PIN_SCK164	,SCK164^0x0f		orim		PIN_SCK164	,SCK164		L15:		orim		PIN_SDA164	,SDA164			lda		z74LS164Buf+0	,0		ba1		$+2		andim		PIN_SDA164	,SDA164^0x0f		andim		PIN_SCK164	,SCK164^0x0f		orim		PIN_SCK164	,SCK164																					; PB1:Output	----	74164 SCK		; PB0:Output	----	74164 SDA		ldi		rzPBOUT	,0010b		//2007/05/07					andim		rzPB	,1110b								rtni					;RefreshLED2:;		ldi		zWk4		,15		;	?loop:;		lda		z74LS164Buf	,0;		addm		z74LS164Buf	,0;		lda		z74LS164Buf1	,0;		adcm		z74LS164Buf1	,0;		lda		z74LS164Buf2	,0;		adcm		z74LS164Buf2	,0;		lda		z74LS164Buf3	,0;		adcm		z74LS164Buf3	,0;		bc		?txdBit1;	?txdBit0:;		andim		PIN_SDA164	,SDA164^0x0f;		jmp		$+2;	?txdBit1:	;		orim		PIN_SDA164	,SDA164;		andim		PIN_SCK164	,SCK164^0x0f;		orim		PIN_SCK164	,SCK164		;		sbim		zWk4		,0x01;		bnz		?loop;		rtni		;--------------------------------------End-------------------------------------------------

⌨️ 快捷键说明

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