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

📄 interrupt.asm

📁 应用松翰母体写的一款电磁炉
💻 ASM
字号:
;************************************************
;Name	:InterruptSub
;Function:
;Input  :
;Output	:
;Register Used:
;*************************************************
InterruptSub:
	XCH	A,AccBuf
	XCH	A,PFLAG
	B0MOV	PflagBuf,A


;	b0bts0	FTC0IRQ		;//Analyse the Interrupt resourc
;	jmp	TC0INTR

	b0bts0	FTC1IRQ		
	jmp	TC1INTR

	b0bts0	FADCIRQ
	jmp	FADCINTR
	
InterrupEnd:
	XCH	A,PflagBuf
	B0MOV	PFLAG,A
	XCH	A,AccBuf				;//For release the Acc And Pflag
	RETI

;****************************************************************
TC1INTR:
	b0bclr	FTC1IRQ
	incms	time8ms
	cjb_	time8ms,#125,TC1INTR_10
	b0bset	second_f
	b0bset	second1_f
	clr	time8ms
	incms	second
	cjb_	second,#60,TC1INTR_10
	clr	second
	b0bset	minute_f

;-----------------------------------------判断是否显示、闪烁电池状态
TC1INTR_10:
	incms	timekey_8ms1
	jb1	EnableCharge_f,TC1INTR_15
	cjb_	timekey_8ms1,#125,TC1INTR_20	;每1s显示一次
	b0bset	DisBattery_f
	jmp	TC1INTR_18
TC1INTR_15:
	cjb_	timekey_8ms1,#31,TC1INTR_20	;每500ms闪烁一次
	notbit	DisFlashBat_f
	jb0	DisFlashBat_f,TC1INTR_19

TC1INTR_18:
	b0bset	BatteryChange_f
TC1INTR_19:
	clr	timekey_8ms1

;-----------------------------------------对按键的按下时间进行分析
TC1INTR_20:
	b0bts1	keytiming_f
	jmp	TC1INTR_30
	incms	timekey_8ms
	cjb_	timekey_8ms,#62,TC1INTR_30
	clr	timekey_8ms
	incms	timekey_500ms
	nop

;-----------------------------------------对菜单无操作定时
TC1INTR_30:
	jb0	MenuNoOpenration_f,TC1INTR_40
	incms	time8ms1
	cjb_	time8ms1,#62,TC1INTR_40
	clr	time8ms1
	incms	time500ms
	nop
TC1INTR_40:
	incms	time8mstwink
	cjb_	time8mstwink,#62,TC1INTR_50
	notbit	Twinkle_f
	clr	time8mstwink


TC1INTR_50:
	jb0	EnableRest_f,TC1INTR_60
	incms	timerest_8ms
;	nop
	cjb_	timerest_8ms,#32,TC1INTR_60 ;//2005-3-25,改为0.25s,carman
	b0bclr	EnableRest_f
	b0bset	enableplay_f

TC1INTR_60:
	jb0	Enablelamp_f,TC1INTR_70
	incms	lemp8ms
	cjb_	lemp8ms,#62,TC1INTR_70
	clr	lemp8ms
	incms	lemp500ms
	cjb_	lemp500ms,#6,TC1INTR_70
;	clr	lemp500ms
	b0bclr	Enablelamp_f
	b0bclr	led_P

TC1INTR_70:
	incms	Time8msPis
	cjbe_	Time8msPis,#4,TC1INTR_80
	mov_	Time8msPis,#1

TC1INTR_80:
/*
	jb1	OuterPower_f,TC1INTR_90
	jb0	second_f,TC1INTR_90
	incms	timebattery
	cjb_	timebattery,#2,TC1INTR_90
	b0bset	EnEnInspectBat01_f
	clr	timebattery
*/	
TC1INTR_90:
	jb0	Err691_f,TC1INTR_100
	incms	TimeErr691

TC1INTR_100:
;	clr	TimeErr691

TC1INTREnd:
	b0bclr	second_f
	jmp	InterrupEnd


;---------------------------------------
;TC0INTR:
;	nop
;TC0INTREnd:
;	b0bclr	FTC0IRQ
;	jmp	InterrupEnd


;***************** ADC转换 **********************************
FADCINTR:
	b0bclr	FADCIRQ
	b0bclr	FEOC			;Progressing ADC

	mov	a,ADR
	and	a,#0fh
	mov	AdcValue,a
	swapm	AdcValue
	mov	a,ADB
	and	a,#0fh
	or	AdcValue,a
	swap	AdcValue
	add	AdcValueL,a
	mov	a,ADB
	and	a,#0f0h
	mov	AdcValue,a
	swap	AdcValue
	adc	AdcValueH,a
	b0bset	FADS			;ADC start
	decms	TempAdc
	jmp	FADCINTR_end
	b0bclr	fc
	RRCM	AdcValueH
	rrcm	AdcValueL
	b0bclr	fc
	RRCM	AdcValueH
	rrcm	AdcValueL

	b0bclr	FADCIEN
	b0bclr	fadenb
	b0bclr	FGCHS			;To release AINx input channel
	b0bclr	FADS
	b0bclr	p4.4
	b0bset	AdcConOver_f

FADCINTR_end:
	jmp	InterrupEnd

⌨️ 快捷键说明

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