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

📄 ice_259a.dt

📁 义隆259仿真机自动测试软件.可以实现ICE_259的各个功能的检测
💻 DT
📖 第 1 页 / 共 3 页
字号:
/*
ICE_259 test
JASON HUANG
SEP	04	08
P70 as the benchmark relative i/o port

*/
R0				==		0X00
TCC				==		0X01
PC				==		0X02
STATUS			==		0X03
R3				==		0X03
   Z			==		2
   C			==		0
R4				==		0X04
PORT5			==		0X05
PORT6			==		0X06
R7				==		0X07
AISR			==		0X08
ADCON			==		0X09
	ADRUN		==		4
RB				==		0X0B
RC				==		0X0C		
RD				==		0X0D
RE				==		0X0E
	ADIF		==		5
	CMPIF		==		4
	ADWE		==		3
	CMPWE		==		2
	ICWE		==		1
RF				==		0X0F
  	TCIF		==		0
  	ICIF		==		1
  	EXIF		==		2
  	TCCAIF		==		3
  	TCCBIF		==		4
  	TCCCIF		==		5
  	HPWTIF		==		6
  	LPWTIF		==		7

;R10-R1F and R20-R3F is general purpose register  
TEMP			==		0X11
ACC_BUF			==		0X12
R3_BUF			==		0X13
R4_BUF			==		0X14
BENCHMARK_VALUE	==		0X15		;P70 INPUT OK
BENCHMARK_TIME	==		0X16		;P70 OUTPUT OK	
R6_FLAG			==		0X17		;test port6 input
R5_FLAG			==		0X18		;test port5 input
RF_FLAG			==		0X19		;interrupter flag
	TCIF1		==		0
	ICIF1		==		1
	EXIF1		==		2
	TCCAIF1		==		3
	TCCBIF1		==		4
	TCCCIF1		==		5
	HPWTIF1		==		6
	LPWTIF1		==		7

R5_STATE		==		0X1A		;test port5 output
R6_STATE		==		0X1B		;test port6 output
R5_HIGH			==		0X1C		;test port5 pull high
R5_DOWN			==		0X1D		;port5 pull down
R5_AD			==		0X1E		;port5 A/D
	AD0			==		0
	AD1			==		1
	AD2			==		2
	AD3			==		3
	R70_IN		==		4
	R70_OUT		==		5
	
R7_STATE		==		0X1F		;port7 in/output

;BAKE0
POWERTEST1		==		0X20
POWERTEST2		==		0X21
DELAYTEMP		==		0X22
COUNT			==		0X23
MATH1			==		0X24
MATH2			==		0X25
MATH3			==		0X26
DATA_1			==		0X27
DATA_2			==		0X28
DATA_3			==		0X29
DATA_A			==		0X2A
DATA_B			==		0X2B

;****************************************************************


BAKE0		MACRO
			BC		R4,7
			BC		R4,6
			ENDM
			
BAKE1		MACRO
			BC		R4,7
			BS		R4,6
			ENDM
			
PAGE0		MACRO
			BC		R3,5
			ENDM
			
PAGE1		MACRO
			BS		R3,5
			ENDM
			
IOPAGE0		MACRO
			BC		R3,6
			ENDM
			
IOPAGE1		MACRO
			BS		R3,6
			ENDM

;******************************************************************************
			ORG		000H
			
			NOP
			JMP		POWERON
			ORG		003H
			NOP
			PAGE0
			JMP		EX_INT	
			
			
			ORG		006H
			NOP
			PAGE0
			JMP		PORT5_CHANGE
			
			
			ORG		009H
			NOP
			PAGE0
			JMP		TCC_INT
			
			
			ORG		00CH
			NOP
			PAGE0
			JMP		AD_INT
			
			NOP
			
			ORG		012H
			NOP
			PAGE0
			JMP		HP_INT
			
			
			ORG		015H
			NOP
			PAGE0
			JMP		LP_INT
			
			
			ORG		018H
			NOP
			PAGE0
			JMP		TCCA_INT
			
			
			ORG		01BH
			NOP
			PAGE0
			JMP		TCCB_INT
			
			NOP
		;	ORG		01EH
		;	JMP		TCCC_INT
			
			
			ORG		020H
			NOP
			PAGE0
			
;**************************************************************************			
EX_INT:
			
			DISI
			PAGE0
			JBC		RF,2
			JMP		EX_INT1
			
			BC		R3,6
			MOV		A,@0X04
			IOW		0X0F
			MOV		RF,A
			JMP		EXIT_EX_INT

EX_INT1:			
			MOV		A,@0XFB
			AND		A,RF
			MOV		RF,A
			
			BS		RF_FLAG,2
			
			BC		R3,6
			
			MOV		A,@0X00
			IOW		0X0F	;disable ext_int
			
EXIT_EX_INT:
			RETI
;*********************************************************************************
PORT5_CHANGE:
			DISI
			
			PAGE0
			JBC		RF,1
			JMP		PORT5_CHANGE1
			
			BC		R3,6
			MOV		A,@0X02
			IOW		0X0F
			MOV		RF,A
			JMP		EXIT_PORT5_CHANGE
			
PORT5_CHANGE1:
			MOV		A,@0XFD
			AND		A,RF
			MOV		RF,A
			
			BS		RF_FLAG,1
			
			BC		R3,6
			MOV		A,@0X00
			IOW		0X0F
			
			MOV		A,@0XFF
			IOW		0X0D	

EXIT_PORT5_CHANGE:			
			RETI
;***********************************************************************************
AD_INT:
			DISI
			PAGE0
			
			JBC		RE,5
			JMP		AD_INT1
			
			BC		R3,6
			MOV		A,@0X2F
			IOW		0X0E
			JMP		EXIT_AD_INT
AD_INT1:
			MOV		A,@0XDF
			AND		A,RE
			MOV		RE,A		;clean the A/D interrupter flag
			
			BS		RF_FLAG,5
			
			BC		R3,6
			MOV		A,@0X0F
			IOW		0X0E
			
			MOV		A,@0XFF
			IOW		0X0B
			IOW		0X0D
EXIT_AD_INT:			
			RETI
;***********************************************************************************

LP_INT:	
			DISI
			PAGE0
			JBC		RF,7
			JMP		LP_INT1
			
			BC		R3,6
			MOV		A,@0X80
			IOW		0X0F
			MOV		RF,A
			JMP		EXIT_LP_INT
			
LP_INT1:
			MOV		A,@0X7F
			AND		A,RF
			MOV		RF,A	;clean the LP interrupt flag
			
			BS		RF_FLAG,7
			
			BC		R3,6
			
			MOV		A,@0X00
			IOW		0X0F	
EXIT_LP_INT:			
			RETI
			
;***********************************************************************************
HP_INT:
			
			DISI
			PAGE0
			JBC		RF,6
			JMP		HP_INT1
			
			BC		R3,6
			MOV		A,@0X40
			IOW		0X0F
			MOV		RF,A
			JMP		EXIT_HP_INT

HP_INT1:
			MOV		A,@0XBF
			AND		A,RF
			MOV		RF,A	;clean the LP interrupt flag
			
			BS		RF_FLAG,6
			
			BC		R3,6
			
			MOV		A,@0X00
			IOW		0X0F	
EXIT_HP_INT:			
			RETI
;***********************************************************************************
TCCA_INT:
			DISI
			PAGE0
			JBC		RF,3
			JMP		TCCA_INT1
			
			BC		R3,6
			MOV		A,@0X08
			IOW		0X0F
			MOV		RF,A
			JMP		EXIT_TCCA_INT
			
TCCA_INT1:
			MOV		A,@0XF7
			AND		A,RF
			MOV		RF,A
			
			BS		RF_FLAG,3
			
			BC		R3,6
			MOV		A,@0X00
			IOW		0X0F
EXIT_TCCA_INT:			
			RETI
;***********************************************************************************
TCCB_INT:	
			DISI
			PAGE0
			JBC		RF,4
			JMP		TCCB_INT1
			
			BC		R3,6
			MOV		A,@0X10
			IOW		0X0F
			MOV		RF,A
			JMP		EXIT_TCCB_INT

TCCB_INT1:	
			MOV		A,@0XEF
			AND		A,RF
			MOV		RF,A
			
			BS		RF_FLAG,4
			
			BC		R3,6
			MOV		A,@0X00
			IOW		0X0F
EXIT_TCCB_INT:			
			RETI
;***********************************************************************************
TCC_INT:
			DISI
			PAGE0
			JBC		RF,0
			JMP		TCC_INT1
			
			BC		R3,6
			MOV		A,@0X01
			IOW		0X0F
			MOV		RF,A
			JMP		EXIT_TCC_INT

TCC_INT1:
			MOV		A,@0XFE
			AND		A,RF
			MOV		RF,A
			
			BS		RF_FLAG,0
			
			BC		R3,6
			MOV		A,@0X00
			IOW		0X0F
EXIT_TCC_INT:
			RETI
;***********************************************************************************
						
			
POWERON:
			
			NOP
			NOP
			DISI
			
			PAGE0	
			
			MOV		A,@0XFC		;select f=4MHZ 
			MOV		R7,A
			NOP
			NOP
			
			BC		R3,6		;select i/o page0
			
			MOV		A,@0XFF
			IOW		0X05
			IOW		0X06
			IOW		0X07		;define the relative i/o as input
			
			IOW		0X0B		;disable pull down
			IOW		0X0C		;disable open drain
			IOW		0X0D		;disable pull high
			
			MOV		A,@0X00
			IOW		0X08
			IOW		0X09
			IOW		0X0A
			IOW		0X0F
			CONTW
			
			
			MOV		A,@0X0F
			IOW		0X0E		;disable WDT
				
			JMP		CLRRAM
			
			MOV		A,@0X55
			XOR		A,POWERTEST1
			JBS		STATUS,Z
			JMP		CLRRAM
			
			MOV		A,@0XAA
			XOR		A,POWERTEST2
			JBS		STATUS,Z
			JMP		CLRRAM
			
			MOV		A,@0X18
			AND		A,STATUS
			XOR		A,@0X18
			JBS		STATUS,Z
			JMP		MAIN
			
CLRRAM:
			MOV		A,@0X7F
			MOV		R4,A
			
			CLR		R0
			DEC		R4
			
			MOV		A,@0X3F
			AND		A,R4
			SUB		A,@0X0F
			JBS		STATUS,C
			JMP		$-6
			
			MOV		R4,R4
			JBS		STATUS,Z
			JMP		$-8
			
MAIN:
			WDTC
			MOV		A,@0X55
			MOV		POWERTEST1,A
			
			MOV		A,@0XAA
			MOV		POWERTEST2,A
					
;*********************************************************************
BENCHMARK:
			BC		R3,6		;select i/o page0
			
			MOV		A,@0XFF
			IOW		0X07
			IOW		0X06
			
TEST_70_INPUT:
			MOV		A,@0XFE
			IOW		0X05		;P50 test P70 LOW	
			
			MOV		A,@0X00
			MOV		PORT6,A
			MOV		PORT5,A
			
P50_P70:			
			MOV		A,@0XFE
			MOV		PORT5,A
			CALL	DELAY
			JBC		R7,0
			JMP		P51_P70
			
			MOV		A,@0XFF		;P50 test P70 HIGH
			MOV		PORT5,A
			CALL	DELAY
			JBC		R7,0
			INC		BENCHMARK_VALUE
			
P51_P70:
			MOV		A,@0XFD
			IOW		0X05
			
			MOV		PORT5,A
			CALL	DELAY
			JBC		R7,0
			JMP		P52_P70
			
			MOV		A,@0XFF
			MOV		PORT5,A
			CALL	DELAY
			JBC		R7,0
			INC		BENCHMARK_VALUE

P52_P70:
			MOV		A,@0XFB
			IOW		0X05
			
			MOV		PORT5,A
			CALL	DELAY
			JBC		R7,0
			JMP		P53_P70
			
			MOV		A,@0XFF
			MOV		PORT5,A
			CALL	DELAY
			JBC		R7,0
			INC		BENCHMARK_VALUE	
				
P53_P70:
			MOV		A,@0XF7
			IOW		0X05
			
			MOV		PORT5,A
			CALL	DELAY
			JBC		R7,0
			JMP		P60_P70
			
			MOV		A,@0XFF
			MOV		PORT5,A
			CALL	DELAY
			JBC		R7,0
			INC		BENCHMARK_VALUE	
			
			MOV		A,@0XFF
			IOW		0X05		;PORT5 as input
			
P60_P70:
			MOV		A,@0XFE
			IOW		0X06
			
			MOV		PORT6,A
			CALL	DELAY
			JBC		R7,0
			JMP		P61_P70
			
			MOV		A,@0XFF
			MOV		PORT6,A
			CALL	DELAY
			JBC		R7,0
			INC		BENCHMARK_VALUE	
			
P61_P70:
			MOV		A,@0XFD
			IOW		0X06
			
			MOV		PORT6,A
			CALL	DELAY
			JBC		R7,0
			JMP		P62_P70
			
			MOV		A,@0XFF
			MOV		PORT6,A
			CALL	DELAY
			JBC		R7,0
			INC		BENCHMARK_VALUE	
			
			
P62_P70:
			MOV		A,@0XFB
			IOW		0X06
			
			MOV		PORT6,A
			CALL	DELAY
			JBC		R7,0
			JMP		P63_P70
			
			MOV		A,@0XFF
			MOV		PORT6,A
			CALL	DELAY
			JBC		R7,0
			INC		BENCHMARK_VALUE
			
P63_P70:
			MOV		A,@0XF7
			IOW		0X06
			
			MOV		PORT6,A
			CALL	DELAY
			JBC		R7,0
			JMP		TEST_P70_OUTPUT
			
			MOV		A,@0XFF
			MOV		PORT6,A
			CALL	DELAY
			JBC		R7,0
			INC		BENCHMARK_VALUE	
			
;*************************************************		
			
TEST_P70_OUTPUT:
			MOV		A,@0XFF
			IOW		0X06
			IOW		0X05
			MOV		A,@0XFE
			IOW		0X07
			

P50_P70_OUT:
			MOV		A,@0XFC
			MOV		R7,A
			CALL	DELAY			
			JBC		PORT5,0
			JMP		P51_P70_OUT
			
			MOV		A,@0XFD
			MOV		R7,A
			CALL	DELAY
			
			JBC		PORT5,0
			INC		BENCHMARK_TIME
			
P51_P70_OUT:
			MOV		A,@0XFC
			MOV		R7,A
			CALL	DELAY			
			JBC		PORT5,1
			JMP		P52_P70_OUT
			
			MOV		A,@0XFD
			MOV		R7,A
			CALL	DELAY
			
			JBC		PORT5,1
			INC		BENCHMARK_TIME
			
P52_P70_OUT:
			MOV		A,@0XFC
			MOV		R7,A
			CALL	DELAY			
			JBC		PORT5,2
			JMP		P53_P70_OUT
			
			MOV		A,@0XFD
			MOV		R7,A
			CALL	DELAY
			
			JBC		PORT5,2
			INC		BENCHMARK_TIME			
			
P53_P70_OUT:
			MOV		A,@0XFC
			MOV		R7,A
			CALL	DELAY			
			JBC		PORT5,3
			JMP		P60_P70_OUT
			
			MOV		A,@0XFD
			MOV		R7,A
			CALL	DELAY
			
			JBC		PORT5,3
			INC		BENCHMARK_TIME	
			
P60_P70_OUT:
			MOV		A,@0XFC
			MOV		R7,A
			CALL	DELAY			
			JBC		PORT6,0
			JMP		P61_P70_OUT
			
			MOV		A,@0XFD
			MOV		R7,A
			CALL	DELAY
			
			JBC		PORT6,0
			INC		BENCHMARK_TIME	
			
P61_P70_OUT:
			MOV		A,@0XFC
			MOV		R7,A
			CALL	DELAY			
			JBC		PORT6,1
			JMP		P62_P70_OUT
			
			MOV		A,@0XFD
			MOV		R7,A
			CALL	DELAY
			
			JBC		PORT6,1
			INC		BENCHMARK_TIME	
			
P62_P70_OUT:
			MOV		A,@0XFC
			MOV		R7,A
			CALL	DELAY			
			JBC		PORT6,2
			JMP		P63_P70_OUT
			
			MOV		A,@0XFD
			MOV		R7,A
			CALL	DELAY
			
			JBC		PORT6,2
			INC		BENCHMARK_TIME
			
P63_P70_OUT:
			MOV		A,@0XFC
			MOV		R7,A
			CALL	DELAY			
			JBC		PORT6,3
			JMP		RESULT_70
			
			MOV		A,@0XFD
			MOV		R7,A
			CALL	DELAY
			
			JBC		PORT6,3
			INC		BENCHMARK_TIME
			

⌨️ 快捷键说明

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