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

📄 app.inc

📁 本人编写的无线电话程序,给予PIC18C801设计,包括了uCOS的移植以及菜单,自己设计的拼音注入法,完整地一级汉字库,希望对大家有所帮助
💻 INC
字号:
;Macros
;PUSH & POP process in low level interrupt
lpush_all macro 
	movff	STATUS,PREINC1		;STATUS
	movff	BSR,PREINC1			;BSR
	movwf	PREINC1,0			;WREG
	movff	FSR2H,PREINC1		;FSR2H
	movff	FSR2L,PREINC1		;FSR2L
	movff	FSR0H,PREINC1		;FSR0H
	movff	FSR0L,PREINC1		;FSR0L
	movff	PRODH,PREINC1		;PRODH
	movff	PRODL,PREINC1		;PRODL
	movff	TBLPTRU,PREINC1		;TBLPTRU
	movff	TBLPTRH,PREINC1		;TBLPTRH
	movff	TBLPTRL,PREINC1		;TBLPTRL
	movff	TABLAT,PREINC1		;TABLAT
	movff	PCLATH,PREINC1		;PCLATH
	movff	PCLATU,PREINC1		;PCLATU
	movf	POSTINC1,0x01,0		;FSR1L++
	;
	;Save 0x2B Registers in BANK-0 from 0x000-0x02A
	clrf	FSR0H,0
	clrf	FSR0L,0
	movlw	SAVE_BANK0_PUSH_NUM
IntPushRegsInBank0:
	movff	POSTINC0,POSTINC1
	decf	WREG,0
	bnz		IntPushRegsInBank0
	endm
;===================================================
lpop_all macro
	movf	POSTDEC1,0x01,0		;FSR1L--
	clrf	FSR0H,0
	movlw	SAVE_BANK0_PUSH_END
	movwf	FSR0L,0
	movlw	SAVE_BANK0_PUSH_NUM-1	;except the last,to avoid under-stack
IntPopRegsInBank0:
	movff	POSTDEC1,POSTDEC0
	decf	WREG,0
	bnz		IntPopRegsInBank0
	movff	POSTDEC1,INDF0
	;
	movff	POSTDEC1,PCLATU		;PCLATU
	movff	POSTDEC1,PCLATH		;PCLATH
	movff	POSTDEC1,TABLAT
	movff	POSTDEC1,TBLPTRL
	movff	POSTDEC1,TBLPTRH
	movff	POSTDEC1,TBLPTRU
	movff	POSTDEC1,PRODL
	movff	POSTDEC1,PRODH
	movff	POSTDEC1,FSR0L
	movff	POSTDEC1,FSR0H
	movff	POSTDEC1,FSR2L
	movff	POSTDEC1,FSR2H
	movf	POSTDEC1,0x00,0
	movff	POSTDEC1,BSR
	movff	POSTDEC1,STATUS
	endm

;PUSH & POP process in high level interrupt
;Saved reg: WREG, STATUS, BSR, TABLAT, TBLTRX
;Thus, no local variables can be used in the high level INT
hpush_all macro 
	movff	WREG, WREG_SAVE	
	movff	STATUS, STATUS_SAVE	
	movff	BSR, BSR_SAVE	
	movff	TABLAT, TABLAT_SAVE
	movff	TBLPTRL, TBLPTRL_SAVE
	movff	TBLPTRH, TBLPTRH_SAVE
	movff	TBLPTRU, TBLPTRU_SAVE
	;movff	PCLATH,	PCLATH_SAVE
	;movff	PCLATU,	PCLATU_SAVE
	endm

hpop_all macro
	;movff	PCLATU_SAVE, PCLATU
	;movff	PCLATH_SAVE, PCLATH
	movff	TBLPTRU_SAVE, TBLPTRU
	movff	TBLPTRH_SAVE, TBLPTRH
	movff	TBLPTRL_SAVE, TBLPTRL
	movff	TABLAT_SAVE, TABLAT
	movff	BSR_SAVE, BSR
	movff	STATUS_SAVE, STATUS
	movff	WREG_SAVE, WREG
	endm

⌨️ 快捷键说明

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