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

📄 nd22.src

📁 S3F9454的源代码
💻 SRC
📖 第 1 页 / 共 2 页
字号:
;*******************************************************
;   	Heat Fan Controller for Media NFG15A		
;		MCU	:Samsung S3F9454B(20DIP)
;		Remote	:5104
;		Editor	:Teddy Guo
;		Start	:Dec.02,2005
;		End	:Dec.08,2005
;		Close	:
;*******************************************************
;
	.include	"D:\OPENice\Include\Reg\S3C9454.reg"
;------------	Pin ---------------
;GND		;VSS		1
;4M		;XIN/P1.0	2
;4M		;XOUT/P1.1	3
;KEYIN		;RESET/P1.2	4
;HEAT_HI	;P20		5
;HEAT_LOW	;P21		6
;IR_RCV		;P22		7
;LED_COM1	;P23		8
;LED_COM2	;P24		9
;BUZ		;P25		10
;
;LED_SAVE/KEY_ON/S	;P26		11
;LED_HEAT/KEY_INC	;P07		12
;LED_POWER/KEY_MODE	;P06		13
;LED_I/KEY_DEC		;P05		14
;LED_II/KEY_SYML	;P04		15
;LED_TIMER		;P03		16
;LED_SEG7		;P02		17
;LED_SEG8		;P01		18
;NTC			;P00		19
;+5V			;VDD		20
;
;P2 PORT
HEAT_HI_or	.EQU	00000001B
HEAT_HI_and	.EQU	11111110B
HEAT_LOW_or	.EQU	00000010B
HEAT_LOW_and	.EQU	11111101B
;
IR_RCV_or	.EQU	00000100B
RCV_mask	.EQU	11111011B
;	
LED_COM1_or	.EQU	00001000B
LED_COM1_and	.EQU	11110111B
LED_COM2_or	.EQU	00010000B
LED_COM2_and	.EQU	11101111B
;
BUZ_or		.EQU	00100000B
BUZ_and		.EQU	11011111B
;
LED_SEG1_or	.EQU	01000000B
LED_SEG1_and	.EQU	10111111B
;
;P0 PORT
AD_NTC		.EQU	00000000B	;ADC2
;
;P1 PORT	
KEY_IN_or	.EQU	00000100B
;
;-------------	RAM	----------------
AD2_VALUE_L	.EQU	02
AD2_VALUE_H	.EQU	03
;
TMR_5MS		.EQU	04		;FOR LED & ADKEY;0.125*40
TMR_50MS	.EQU	05		;FOR NTC
LED_COM1	.EQU	06
LED_COM2	.EQU	07
LED_A_or	.EQU	00000001B
LED_DOT_or	.EQU	00000010B
LED_DOT_and	.EQU	11111101B
LED_COM3	.EQU	08
LED_HEAT_or	.EQU	10000000B
LED_HEAT_and	.EQU	01111111B
LED_POWER_or	.EQU	01000000B
LED_POWER_and	.EQU	10111111B
LED_I_or	.EQU	00100000B
LED_I_and	.EQU	11011111B
LED_II_or	.EQU	00010000B
LED_II_and	.EQU	11101111B
LED_TIMER_or	.EQU	00001000B
LED_TIMER_and	.EQU	11110111B
LED_SAVE_or	.EQU	00000100B
LED_SAVE_and	.EQU	11111011B
DIGIT		.EQU	09		;0,1,2
TMR_COLON	.EQU	0AH
ADNTC_CNT	.EQU	0BH
;
ERROR_FG	.EQU	0CH
NTCOPEN_FG	.EQU	1
NTCSHORT_FG	.EQU	2
LOWTEMP_FG	.EQU	3
OVERHEAT_FG	.EQU	4
;
ADNTC_SUML	.EQU	0EH
ADNTC_SUMH	.EQU	0FH

WORK_FG		.EQU	10H
BUZ_ON_or	.EQU	00000001B
BUZ_ON_and	.EQU	11111110B

HI_ON_or	.EQU	00000010B
HI_ON_and	.EQU	11111101B

LO_ON_or	.EQU	00000100B
LO_ON_and	.EQU	11111011B
;
DISP_FG_or	.EQU	00001000B
DISP_FG_and	.EQU	11110111B
;
ADNTC_FG_or	.EQU	00010000B
ADNTC_FG_and	.EQU	11101111B
;
LOCK_FG_or	.EQU	00100000B
LOCK_FG_and	.EQU	11011111B
;
LOCK_DISP_FG_or	.EQU	01000000B
LOCK_DISP_FG_and	.EQU	10111111B
;
KEYDEC_FG_or	.EQU	10000000B
KEYDEC_FG_and	.EQU	01111111B
;
STATE_FG	.EQU	11H
ONOFF_FG_or	.EQU	00000001B
ONOFF_FG_and	.EQU	11111110B
;
HEAT_SET_FG_or	.EQU	00000010B	;1=HIGH
HEAT_SET_FG_and	.EQU	11111101B	;0=LOW
;
ENRCV_FG_or	.EQU	00000100B
ENRCV_FG_and	.EQU	11111011B
;
SYML_SAVE_FG_or	.EQU	00001000B
SYML_SAVE_FG_and	.EQU	11110111B
;
CONTKEY_FG_or	.EQU	00010000B
CONTKEY_FG_and	.EQU	11101111B
;
KEY_PRESS_FG_or	.EQU	00100000B
KEY_PRESS_FG_and	.EQU	11011111B
;
HEAT_ON_FG_or	.EQU	01000000B
HEAT_ON_FG_and	.EQU	10111111B
;
FIRHEATON_FG_or	.EQU	10000000B
FIRHEATON_FG_and	.EQU	01111111B
;
;
ADNTC_MAXL	.EQU	16H
ADNTC_MAXH	.EQU	17H
ADNTC_MINL	.EQU	18H
ADNTC_MINH	.EQU	19H
;
NTC_ADVALUEL	.EQU	1CH
NTC_ADVALUEH	.EQU	1DH
;
COMMAND		.EQU	1EH
MODE_SET	.EQU	1FH
;
TEMP_SET	.EQU	20H	
TIMER_SET	.EQU	21H
;
TMR_BEEP	.EQU	22H
BEEP_CNT	.EQU	23H
;
RCV_STATE	.EQU	25H
RCV_LOW_CNT	.EQU	26H
RCV_HIGH_CNT	.EQU	27H
;
RCV_DATA1	.EQU	28H		;Extern to 48-bit
RCV_DATA2	.EQU	29H
RCV_DATA3	.EQU	2AH
RCV_DATA4	.EQU	2BH
RCV_DATA5	.EQU	2CH
RCV_DATA6	.EQU	2DH
;
RCV_DATA_CNT	.EQU	2EH
;
RCV_FG		.EQU	2FH
RCVKEY_FG_or	.EQU	00000001B
RCVKEY_FG_and	.EQU	11111110B
;
T_250us_FG_or	.EQU	00000010B
T_250us_FG_and	.EQU	11111101B
;
KEY_DB_FG_or	.EQU	00000100B
KEY_DB_FG_and	.EQU	11111011B
;
NTC_ERR_FG_or	.EQU	00001000B
NTC_ERR_FG_and	.EQU	11110111B
;
FLASH_FG_or	.EQU	00010000B
FLASH_FG_and	.EQU	11101111B
;
ENFLASH_FG_or	.EQU	00100000B
ENFLASH_FG_and	.EQU	11011111B
;
ALARM_FG_or	.EQU	01000000B
ALARM_FG_and	.EQU	10111111B
;
T_AIR		.EQU	30H
SHIFT_CNT	.EQU	31H
TMR_FLASH	.EQU	32H
LED_FLASH1	.EQU	33H
LED_FLASH2	.EQU	34H
HEAT_FG		.EQU	35H
HEAT_LO_FG_or	.EQU	00000001B
HEAT_LO_FG_and	.EQU	11111110B
HEAT_HI_FG_or	.EQU	00000010B
HEAT_HI_FG_and	.EQU	11111101B
;
NEWKEY		.EQU	40H
OLDKEY		.EQU	41H
KEYVALUE	.EQU	42H
KEY_CNT		.EQU	43H
TMR_DBKEY	.EQU	44H
TMR_DISP	.EQU	45H
;
TMR_MIN		.EQU	46H
TMR_HOUR	.EQU	47H
;
;------------	CONSTANT	-----------
T_FLASH		.EQU	10
LED_FLASH	.EQU	LED_TIMER_or
;
RCV_LEAD_L_MIN	.EQU	20H	;6MS
RCV_LEAD_L_MAX	.EQU	60H	;12MS
RCV_LEAD_H_MIN	.EQU	10H	;3MS
RCV_LEAD_H_MAX	.EQU	34H	;6MS
RCV_DATA_L_MIN	.EQU	1	;
RCV_DATA_L_MAX	.EQU	8
RCV_DATA_H_MIN	.EQU	1
RCV_DATA_H0_MAX	.EQU	6
RCV_DATA_H1_MIN	.EQU	6
RCV_DATA_H_MAX	.EQU	18H
R_DATA_CNT	.EQU	32	;48
;
AD_NTC_SHORTL	.EQU	0F0H
AD_NTC_SHORTH	.EQU	03H
AD_NTC_OPENL	.EQU	10H
AD_NTC_OPENH	.EQU	0
;
AD_NTC_NEG25L	.EQU	175
AD_NTC_NEG25H	.EQU	0
;
AD_NTC_40L	.EQU	28
AD_NTC_40H	.EQU	3
;
AD_NTC_0L	.EQU	167
AD_NTC_0H	.EQU	1
;
T_T0		.EQU	125/2	;120/2	;60*8/4M=120us	;96 for 3.2M;120 for 4M
T_BEEP		.EQU	20	;20*5MS=100MS
T_BEEPOFF	.EQU	20	;
T_5MS		.EQU	40	;30 FOR 3.75	40 FOR 5ms
T_50MS		.EQU	10	;25*2=50MS
T_LO2HI		.EQU	250	;250*2=500MS
T_DBKEY		.EQU	1	;5MS*4=20MS
T_05S		.EQU	25
T_1S		.EQU	50
T_2S		.EQU	50	;=1S
T_3S		.EQU	150	;150*20MS
;
T_COLON		.EQU	10
;
T_5S		.EQU	100	;50MS*100=5S
;
T_MIN		.EQU	120	;120*0.5s
T_HOUR		.EQU	60	;60MIN
;
KEY_LOCK	.EQU	7
KEY_OFF		.EQU	6
KEY_ON		.EQU	5
KEY_INC		.EQU	4
KEY_DEC		.EQU	3
KEY_MODE	.EQU	2
KEY_SYML	.EQU	1
;
RCV_ONOFF	.EQU	0A0H
RCV_SYML	.EQU	80H	;48H
RCV_MODE	.EQU	68H
RCV_DEC		.EQU	88H
RCV_INC		.EQU	0B0H

;<<Interrupt Vector Address>>

	ORG	000H
	Vector	00H,INT_9454
	
;<<Smart Option Setting>>

	ORG	003CH
	DB	00H		;Must be 00
	DB	00H		;Must be 00
	DB	0B3H		;LVD 3.9V enable
	DB	00		;4MHz	;03H	;Internal RC(3.2MHz @5V)
	
;<<Reset>>
	
	ORG	0100H
RESET:
	DI			;Disable interrupt
	LD	BTCON,#10100011B;Watch-dog Enable
	LD	CLKCON,#00011000B;Select non-divided CPU clock
	LD	SP,#0C0H	;SP initilization
;	
	LD	P2,#01011100B
	LD	P0,#11111111B
	LD	P0CONH,#10101010B;P05 as ADC,P07/P06/P04 as OUTPUT	
	LD	P0CONL,#10101011B;P03 as INPUT,P02 as ADC,P01 as OUTPUT,P00 as interrupt
	LD	P0PND,#00000010B;Enable INT0 falling edge interrupt
	LD	P1CON,#00001010B;P1.0-P1.1 push-pull OUTPUT
	LD	P2CONH,#01001001B;P26/P25/P24 as OUTPUT
	LD	P2CONL,#10101010B;P23/P22/P21 as OUTPUT
	LD	PWMCON,#0;fosc/64,6-bit,Disable PWM(1.28ms)
	LD	STOPCON,#0	;Disable STOP instruction
	LD	SYM,#0		
;
;-------<<Timer 0 settings>>
	LD	T0DATA,#T_T0	;CPU=3.2MHz,interrupt interval=125us
	LD	T0CON,#10001010B;fosc/8,Timer 0 interrupt enable
;	
;-------<<Clear all data register from 00H to 0BFH>>
	LD	R0,#0
RAM_CLR:
	CLR	@R0
	INC	R0
	CP	R0,#0BFH
	JP	ULE,RAM_CLR
;
;-------<<Initialize other registers>>
;
	LD	TMR_5MS,#T_5MS
	LD	TMR_50MS,#T_50MS
	LD	ADNTC_CNT,#10
	LD	TMR_COLON,#T_COLON
	LD	TMR_MIN,#T_MIN
	LD	TMR_HOUR,#T_HOUR
;
	LD	TMR_BEEP,#T_BEEP
	LD	BEEP_CNT,#1
	OR	WORK_FG,#BUZ_ON_or
	LD	TEMP_SET,#24
;
	LD	ADNTC_MINL,#0FFH
	LD	ADNTC_MINH,#0FFH
	CLR	ADNTC_MAXL
	CLR	ADNTC_MAXH
	EI
;
	OR	LED_COM3,#LED_POWER_or
;-------<<Main loop>>
MAIN:
	LD	BTCON,#00000010B	;Clear basic timer
;
	CALL	GETTAIR
;	CALL	AD_NTC_READ
;
;	CALL	LED_DISPLAY
;
	CALL	KEY_PROCESS
;
	CALL	JOB
;
	JR	T,MAIN
;
KEY_PROCESS:
	TM	RCV_FG,#RCVKEY_FG_or
	JP	Z,KKKK
	AND	RCV_FG,#RCVKEY_FG_and
	JP	T,KEYPRS
KKKK:
	CP	ERROR_FG,#0
	JP	NZ,NOKEYPRS
	CP	COMMAND,#KEY_LOCK
	JR	Z,LOCKPRS
	CP	COMMAND,#0
	JP	Z,NOKEYPRS
	TM	WORK_FG,#LOCK_FG_or
	JP	NZ,KEYLOCKPRS
	TM	STATE_FG,#KEY_PRESS_FG_or
	JP	NZ,NOKEYPRS
KEYPRS:
	CP	COMMAND,#KEY_ON
	JP	Z,ONOFFPRS
	CP	COMMAND,#KEY_MODE
	JP	Z,MODEPRS
	CP	COMMAND,#KEY_INC
	JP	Z,INCPRS
	CP	COMMAND,#KEY_DEC
	JP	Z,DECPRS			;DEBUG	
	CP	COMMAND,#KEY_SYML
	JP	Z,SYMLPRS
	CP	COMMAND,#KEY_OFF
	JP	Z,OFFPRS
	JP	T,NOKEYPRS
LOCKPRS:
	XOR	WORK_FG,#LOCK_FG_or
	TM	WORK_FG,#LOCK_FG_or
	JR	NZ,LOCKDSP
	AND	WORK_FG,#LOCK_DISP_FG_and
	JP	T,KEYBEEP	
KEYLOCKPRS:
;	CP	COMMAND,#KEY_OFF
;	JP	Z,OFFPRS
	LD	TMR_DISP,#T_5S
	OR	WORK_FG,#LOCK_DISP_FG_or
	JP	T,NOKEYPRS
LOCKDSP:
	LD	TMR_DISP,#T_5S
	OR	WORK_FG,#LOCK_DISP_FG_or
	JP	T,KEYBEEP	
SYMLPRS:
	OR	STATE_FG,#KEY_PRESS_FG_or
	TM	STATE_FG,#ONOFF_FG_or
	JP	Z,NOKEYPRS
	XOR	STATE_FG,#SYML_SAVE_FG_or
	JP	T,KEYBEEP
INCPRS:
	OR	STATE_FG,#KEY_PRESS_FG_or
	TM	STATE_FG,#ONOFF_FG_or
	JP	Z,NOKEYPRS
	CP	MODE_SET,#1
	JR	Z,TSETINC
	CP	MODE_SET,#2
	JR	Z,TMINC
	JP	T,NOKEYPRS
TSETINC:	
	LD	TMR_DISP,#T_5S
	INC	TEMP_SET
	CP	TEMP_SET,#31
	JP	NC,T30MAX
	TM	STATE_FG,#CONTKEY_FG_or
	JP	NZ,NOKEYPRS
	OR	STATE_FG,#CONTKEY_FG_or
	JP	T,KEYBEEP
T30MAX:	
	LD	TEMP_SET,#30
	JP	T,NOKEYPRS
TMINC:
	LD	TMR_DISP,#T_5S
	LD	TMR_MIN,#T_MIN
	LD	TMR_HOUR,#T_HOUR
	INC	TIMER_SET
	CP	TIMER_SET,#25
	JP	NC,T24MAX
	TM	STATE_FG,#CONTKEY_FG_or
	JP	NZ,NOKEYPRS
	OR	STATE_FG,#CONTKEY_FG_or
	JP	T,KEYBEEP
T24MAX:
	LD	TIMER_SET,#24
	JP	T,NOKEYPRS	
;
DECPRS:
	OR	STATE_FG,#KEY_PRESS_FG_or
	TM	STATE_FG,#ONOFF_FG_or
	JP	Z,NOKEYPRS
	CP	MODE_SET,#1
	JR	Z,TSETDEC
	CP	MODE_SET,#2
	JR	Z,TMDEC
	JP	T,NOKEYPRS
TSETDEC:
	LD	TMR_DISP,#T_5S
	DEC	TEMP_SET	
	CP	TEMP_SET,#5
	JP	C,T5MIN
	TM	STATE_FG,#CONTKEY_FG_or
	JP	NZ,NOKEYPRS
	OR	STATE_FG,#CONTKEY_FG_or
	JP	T,KEYBEEP
T5MIN:		
	LD	TEMP_SET,#5
	JP	T,NOKEYPRS
TMDEC:
	LD	TMR_DISP,#T_5S
	LD	TMR_MIN,#T_MIN
	LD	TMR_HOUR,#T_HOUR
	SUB	TIMER_SET,#1
	JP	C,T0MIN
	TM	STATE_FG,#CONTKEY_FG_or
	JP	NZ,NOKEYPRS
	OR	STATE_FG,#CONTKEY_FG_or
	JP	T,KEYBEEP
T0MIN:	
	CLR	TIMER_SET
	JP	T,NOKEYPRS	
MODEPRS:
	OR	STATE_FG,#KEY_PRESS_FG_or
	TM	STATE_FG,#ONOFF_FG_or
	JP	Z,NOKEYPRS
	XOR	STATE_FG,#HEAT_SET_FG_or
	JP	T,KEYBEEP
;
OFFPRS:
	OR	STATE_FG,#KEY_PRESS_FG_or
	TM	STATE_FG,#ONOFF_FG_or
	JP	Z,NOKEYPRS
	CALL	PWROFF
;	CLR	OLDKEY
	LD	TMR_DBKEY,#0FFH
	JP	T,KEYBEEP
;
PWROFF:	
	AND	STATE_FG,#ONOFF_FG_and
	AND	STATE_FG,#FIRHEATON_FG_and
	AND	RCV_FG,#ENFLASH_FG_and
	CLR	LED_COM1
	CLR	LED_COM2
	CLR	LED_COM3
	OR	LED_COM3,#LED_POWER_or
	AND	WORK_FG,#HI_ON_and
	AND	WORK_FG,#LO_ON_and
	AND	P2,#HEAT_HI_and
	AND	P2,#HEAT_LOW_and
	CLR	TIMER_SET
	AND	WORK_FG,#LOCK_FG_and
;
	RET
;
ONOFFPRS:
	OR	STATE_FG,#KEY_PRESS_FG_or
	TM	RCV_FG,#ALARM_FG_or
	JP	NZ,NOKEYPRS
	TM	STATE_FG,#ONOFF_FG_or
	JR	NZ,SETTINGPRS
ONPRS:
	OR	STATE_FG,#ONOFF_FG_or
	CLR	MODE_SET
	CLR	TIMER_SET
;	OR	LED_COM3,#LED_I_or
	JP	T,KEYBEEP	
SETTINGPRS:
	LD	TMR_DISP,#T_5S
	OR	RCV_FG,#ENFLASH_FG_or
	LD	TMR_FLASH,#T_FLASH
	INC	MODE_SET
	CP	MODE_SET,#1
	JR	NZ,FM2
	OR	LED_COM1,#LED_DOT_or
FM2:
	CP	MODE_SET,#2
	JR	NZ,FM3
	OR	LED_COM3,#LED_TIMER_or
	AND	LED_COM1,#LED_DOT_and
FM3:	
	CP	MODE_SET,#3
	JR	NZ,KEYBEEP
	CLR	MODE_SET
	AND	LED_COM1,#LED_DOT_and
	CP	TIMER_SET,#0
	JR	NZ,TLEDON
	AND	LED_COM3,#LED_TIMER_and
	JP	T,KEYBEEP
TLEDON:
	OR	LED_COM3,#LED_TIMER_or
	JP	T,KEYBEEP	
;
KEYBEEP:
	OR	WORK_FG,#BUZ_ON_or
	LD	TMR_BEEP,#T_BEEP	;200MS
	LD	BEEP_CNT,#1
NOKEYPRS:
	CLR	COMMAND
	RET
;
;-------<<Subroutines>>---------
;
UP8SEGH:
	LD	R4,#LED_COM2
	JR	T,UP8SEG
UP8SEGL:
	LD	R4,#LED_COM1
UP8SEG:
	LD	R3,#TIMERDSPTAB
	LD	R2,#TIMERDSPTAB/100H
	ADD	R3,R0			;LOW 8 SEG
	LDC	R0,@RR2
SHIFTSEG:
	LD	R2,@R4
	AND	R2,#00000010B
	OR	R0,R2
	LD	@R4,R0
	RET
;
TIMERDSPTAB:
;		BCDEFG0A
	DB	11111001B	;0
	DB	11000000B	;1
	DB	10110101B	;2
	DB	11100101B	;3
	DB	11001100B	;4
	DB	01101101B	;5
	DB	01111101B	;6
	DB	11000001B	;7
	DB	11111101B	;8
	DB	11101101B	;9
	DB	11011101B	;A
	DB	01110100B	;b
	DB	00111001B	;C
	DB	11100001B	;D
	DB	00111101B	;E
	DB	00000000B	;F
;
AD_NTC_READ:
	TM	WORK_FG,#ADNTC_FG_or
	JP	Z,ADNTCRET
	AND	WORK_FG,#ADNTC_FG_and
	LD	ADCON,#00000111B	;Start ADC0
WAITADNTC:
	TM	ADCON,#00001000B
	JR	Z,WAITADNTC
	CLR	R1
	LD	R0,ADDATAH
	RCF
	RLC	R0
	RLC	R1
	RCF
	RLC	R0
	RLC	R1
;	LD	R0,ADDATAL
;	AND	R0,#00000011B
	OR	R0,ADDATAL
	LD	R2,R0
	LD	R4,R0
	LD	AD2_VALUE_L,R0
	LD	R3,R1
	LD	R5,R1
	LD	AD2_VALUE_H,R1
	SUB	R0,ADNTC_MINL
	SBC	R1,ADNTC_MINH
	JR	NC,CHKADNTCMAX
	LD	ADNTC_MINL,R2
	LD	ADNTC_MINH,R3
CHKADNTCMAX:
	SUB	R2,ADNTC_MAXL
	SBC	R3,ADNTC_MAXH
	JR	C,ADNTCSUM
	LD	ADNTC_MAXL,R4
	LD	ADNTC_MAXH,R5
ADNTCSUM:
	ADD	ADNTC_SUML,R4
	ADC	ADNTC_SUMH,R5
;
	DEC	ADNTC_CNT
	JP	NZ,ADNTCRET
	LD	ADNTC_CNT,#10
	SUB	ADNTC_SUML,ADNTC_MINL
	SBC	ADNTC_SUMH,ADNTC_MINH
	SUB	ADNTC_SUML,ADNTC_MAXL
	SBC	ADNTC_SUMH,ADNTC_MAXH
;
	RCF
	RRC	ADNTC_SUMH
	RRC	ADNTC_SUML
	RCF
	RRC	ADNTC_SUMH
	RRC	ADNTC_SUML
	RCF
	RRC	ADNTC_SUMH
	RRC	ADNTC_SUML
;
	LD	NTC_ADVALUEL,ADNTC_SUML
	LD	NTC_ADVALUEH,ADNTC_SUMH
;
	CLR	ADNTC_SUML
	CLR	ADNTC_SUMH
	LD	ADNTC_MINL,#0FFH
	LD	ADNTC_MINH,#0FFH
	CLR	ADNTC_MAXL
	CLR	ADNTC_MAXH
;
	LD	R0,NTC_ADVALUEL
	LD	R1,NTC_ADVALUEH
;
	SUB	R0,#AD_NTC_OPENL
	SBC	R1,#AD_NTC_OPENH
	JR	C,NTCERROROPEN
	LD	R0,NTC_ADVALUEL
	LD	R1,NTC_ADVALUEH
	SUB	R0,#AD_NTC_SHORTL
	SBC	R1,#AD_NTC_SHORTH
	JR	C,NTCOKRET
NTCERRSHORT
	CP	ERROR_FG,#NTCSHORT_FG
	JR	Z,UPNTCSHORT
	AND	RCV_FG,#NTC_ERR_FG_and
UPNTCSHORT:	
	LD	ERROR_FG,#NTCSHORT_FG
	JR	T,BEEPERR	
NTCERROROPEN:
	CP	ERROR_FG,#NTCOPEN_FG
	JR	Z,UPNTCOPEN
	AND	RCV_FG,#NTC_ERR_FG_and
UPNTCOPEN:	
	LD	ERROR_FG,#NTCOPEN_FG
	JR	T,BEEPERR
;
NTCOKRET:
	LD	R0,NTC_ADVALUEL
	LD	R1,NTC_ADVALUEH
	SUB	R0,#AD_NTC_NEG25L
	SBC	R1,#AD_NTC_NEG25H
	JR	C,NTCERRORLT
	LD	R0,NTC_ADVALUEL
	LD	R1,NTC_ADVALUEH
	SUB	R0,#AD_NTC_40L
	SBC	R1,#AD_NTC_40H
	JR	C,NTCOK
NTCERROROT:
	CP	ERROR_FG,#OVERHEAT_FG
	JR	Z,UPNTCOT
	AND	RCV_FG,#NTC_ERR_FG_and
UPNTCOT:	
	LD	ERROR_FG,#OVERHEAT_FG
	JR	T,BEEPERR
NTCERRORLT:		
	CP	ERROR_FG,#LOWTEMP_FG
	JR	Z,UPNTCLT
	AND	RCV_FG,#NTC_ERR_FG_and
UPNTCLT:	
	LD	ERROR_FG,#LOWTEMP_FG
;
BEEPERR:
	TM	RCV_FG,#NTC_ERR_FG_or
	JR	NZ,NTCER
	OR	RCV_FG,#NTC_ERR_FG_or
	LD	TMR_BEEP,#T_BEEP
	LD	BEEP_CNT,#9
	OR	WORK_FG,#BUZ_ON_or	
	LD	TMR_FLASH,#T_FLASH
	OR	RCV_FG,#ENFLASH_FG_or
	AND	RCV_FG,#FLASH_FG_and
NTCER:	
	RET
;	
NTCOK:	
	CLR	ERROR_FG
	AND	RCV_FG,#NTC_ERR_FG_and
	TM	STATE_FG,#ONOFF_FG_or
	JR	NZ,ADNTCRET
	CLR	LED_COM1
	CLR	LED_COM2
ADNTCRET:
	RET

⌨️ 快捷键说明

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