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

📄 softint.c

📁 通用OSD控制(51单片机控制的TFTLCD源码,MTV018)
💻 C
字号:
#pragma REGISTERBANK(0)

static bit in_softint = 1;

#pragma asm

	EXTRN	BIT (timerbh_pending)
	EXTRN	BIT (keybh_pending)
	EXTRN	CODE (timer_bh)
	EXTRN	CODE (key_bh)

?PR?soft_interrupt?SOFTINT     SEGMENT CODE 
	PUBLIC	soft_interrupt
  
	RSEG  ?PR?soft_interrupt?SOFTINT
soft_interrupt:
	USING	0
	JB   	in_softint,out

	CLR  	EA
	JB   	timerbh_pending,?C0004
	JNB  	keybh_pending,out_sti
?C0004:
	SETB 	in_softint

?do_softint?restart:
	SETB 	EA

  	PUSH 	ACC
  	PUSH 	B
  	PUSH 	DPH
  	PUSH 	DPL
  	PUSH 	PSW
  	MOV  	PSW,#00H
  	PUSH 	AR0
  	PUSH 	AR1
  	PUSH 	AR2
  	PUSH 	AR3
  	PUSH 	AR4
  	PUSH 	AR5
  	PUSH 	AR6
  	PUSH 	AR7
  	USING	0

	JBC  	timerbh_pending,call_timer_bh
	SJMP 	?C0006
call_timer_bh:
	LCALL	timer_bh

?C0006:
	JBC  	keybh_pending,call_key_bh
	SJMP 	?C0007
call_key_bh:
	LCALL	key_bh

?C0007:
  	POP  	AR7
  	POP  	AR6
  	POP  	AR5
  	POP  	AR4
  	POP  	AR3
  	POP  	AR2
  	POP  	AR1
  	POP  	AR0
  	POP  	PSW
  	POP  	DPL
  	POP  	DPH
  	POP  	B
  	POP  	ACC

	CLR  	EA
	JB   	timerbh_pending,?do_softint?restart
	JB   	keybh_pending,?do_softint?restart

	CLR  	in_softint
out_sti:
	SETB 	EA
out:
	RET  	

#pragma endasm

⌨️ 快捷键说明

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