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

📄 idwracadc.asm

📁 空调控制程序,MCU 采用NEC D789189
💻 ASM
字号:

;	NAME	A_Dcvrt
;========================================================================

;************************************************************************
;*	Module Name:	EL001ADC					*
;*	Function:	ad convert 3 channel				*
;*	Input:								*
;*	Output:		D_TMPinP,D_TMProom				*
;*	Break:		A,B,HL						*
;*	stack:								*
;************************************************************************
;	History:
;
;------------------------------------------------------------------------
; 	$include 	(LT0219sym.INC)
;	$include	(LT0219RAM.INC)
;	CSEG
;========================================================================
;	PUBLIC	ADcvrt	
;===================================
;       A/D	PROGRAM
;===================================
ADcvrt:
	BT   	ADIF0 , $ADCON00
	RET
ADCON00:
	CLR1	ADIF0
	CLR1	ADCS0

	MOVW	AX,ADCR0
	CP	D_ADtimes,#6
	JRNE	ADcvtr1	
	DEC	D_ADtimes
	LD	D_ADmin,A
	CLR	D_ADbuf
	CLR	D_ADbuf+1
	JP	ADCONRT
ADcvtr1:
	CP	D_ADtimes,#5
	JRNE	ADcvtr2
	DEC	D_ADtimes
	CP	A,D_ADmin
	JRUGE	ADcvrt11
	LD	X,A
	LD	A,D_ADmin
	XCH	A,X
	LD	D_ADmin,A
	XCH	A,X
ADcvrt11:
	LD	D_ADmax,A
	JP	ADCONRT

ADcvtr2:
	CP	A,D_ADmin
	JRUGE	ADcvrt21
	LD	X,A
	LD	A,D_ADmin
	XCH	A,X
	LD	D_ADmin,A
	XCH	A,X
ADcvrt21:	
	CP	A,D_ADmax
	JRULT	ADcvrt22
	LD	X,A
	LD	A,D_ADmin
	XCH	A,X
	LD	D_ADmin,A
	XCH	A,X
ADcvrt22:
	ADD	A,D_ADbuf
	LD	D_ADbuf,A
	LD	A,#0
	ADC	A,D_ADbuf+1
	LD	D_ADbuf+1,A
;------------------------------------------------------------------------
	DEC	D_ADtimes
	CP	D_ADtimes,#0
	JREQ	$+2+3
	JP	ADCONRT
	LD	D_ADtimes,#6
;------------------------------------------------------------------------
	RCF
	LD	A,D_ADbuf+1
	RRC	A
	LD	D_ADbuf+1,A
	LD	A,D_ADbuf
	RRC	A
	LD	D_ADbuf,A

	LD	A,D_ADbuf+1
	RRC	A
	LD	D_ADbuf+1,A
	LD	A,D_ADbuf
	RRC	A
	LD	D_ADbuf,A
	
;========================================================================
ADCON101:
	CMP     D_ADch , #00H
	BZ      $ADCON10R
	CMP     D_ADch , #01H
	BZ      $ADCON20
	CMP     D_ADch , #02H
	BZ      $ADCON30
        BR      ADCON40
ADCON10R:
	MOV     A , D_ADbuf
	MOV     D_ADroom , A
	CMP     A , #0BH
	BC	$ADCON12
	CMP	A,#0F0H
	BNC	$ADCON12
	CLR1    f_ERRTrm
	BR      ADCON13
ADCON12:
	SET1    f_ERRTrm
	MOV	A,#n_TMPdsp+120
	MOV	D_ADroom,A
ADCON13:
	CLR1    ADIF0
	MOV     D_ADch , #01H
	MOV     ADS0 , #01H
	SET1	ADCS0			;start ad convert
	BR      ADCONRT
ADCON20:
	MOV     A , D_ADbuf
	MOV     D_ADinP , A
	CMP     A , #0BH
	BC	$ADCON200
	CMP	A,#0F0H
	BNC	$ADCON200
	CLR1    f_ERRTinP
	BR      ADCON201

ADCON200:
	SET1    f_ERRTinP			;temp error ->f_ERR0
	MOV	A,#n_TMPdsp+120
	MOV	D_ADinP,A

ADCON201:
	CLR1    ADIF0
	MOV     D_ADch , #02H
	MOV     ADS0 , #02H
	SET1	ADCS0			;start ad convert
	BR      ADCONRT
ADCON30:
	MOV     A , D_ADbuf
	MOV     D_ADoutR , A
	CMP     A , #0BH
	BC     $ADCON300
	CMP	A,#0F0H
	BNC	$ADCON300
	CLR1    f_ERRoutR
	BR      ADCON301
ADCON300:
	SET1    f_ERRoutR
	MOV	A,#n_TMPdsp+120
	MOV	D_ADoutR,A
ADCON301:
	CLR1    ADIF0
	MOV     D_ADch , #03H
	MOV     ADS0 , #03H
	SET1	ADCS0			;start ad convert
	BR      ADCONRT

ADCON40:
	MOV     A , D_ADbuf
	MOV     D_ADoutP , A
	CMP     A , #0BH
	BC     $ADCON400
	CMP	A,#0F0H
	BNC	$ADCON400
	CLR1    f_ERRTdef
	BR      ADCON401
ADCON400:
	SET1    f_ERRTdef
	MOV	A,#n_TMPdsp+120
	MOV	D_ADoutP,A
ADCON401:

	CLR1    ADIF0
	MOV     D_ADch , #00H
	MOV     ADS0 , #00H
	SET1	ADCS0			;start ad convert
	BR      ADCONRT
ADCONRT:
	SET1	ADCS0
	CALL	!ADSTAB
	RET


;========================================================================
ADintit0:
	CLR1    ADIF0
	MOV     D_ADch , #00H
	MOV     ADS0 , #00H
	SET1	ADCS0			;start ad convert
	RET

;================================
;       A/D convert control
;================================
ADSTAB:
	BF	f_AD1s,$SKIPadROOM
	CLR1	f_AD1s

	MOV     A , D_ADroom
	CALL	!TEMPTAB
	MOV     D_TMPrm , A
SKIPadROOM:	
	MOV     A , D_ADinP
	CALL	!TEMPTAB
	MOV     D_TMPinP , A
	
	MOV     A , D_ADoutP
	CALL	!TEMPTAB
	MOV     D_TMPdef , A

	MOV     A , D_ADoutR
	CALL	!TEMPTAB
	MOV     D_TMPor , A
	
	RET
		
;************************************************************************
;************************************************************************

TEMPTAB:
	XCH	A,X
	XOR	A,A
	ADDW	AX,#Temp_Tab
	MOVW	HL,AX
	MOV	A,[HL]
	RET
		;温度			A/D
;========================================================================
;	degree F table	20k
;========================================================================
;		采样值
		;格力15k/15k		A/D

Temp_Tab:
;	db	温度-f		;tab
	db	n_TMPdsp+0		;0
	db	n_TMPdsp+0		;1
	db	n_TMPdsp+0		;2
	db	n_TMPdsp+0		;3
	db	n_TMPdsp+0		;4
	db	n_TMPdsp+0		;5
	db	n_TMPdsp+0		;6
	db	n_TMPdsp+0		;7
	db	n_TMPdsp+0		;8
	db	n_TMPdsp+0		;9
	db	n_TMPdsp+0		;10
	db	n_TMPdsp+0		;11
	db	n_TMPdsp+0		;12
	db	n_TMPdsp+0		;13
	db	n_TMPdsp+0		;14
	db	n_TMPdsp+0		;15
	db	n_TMPdsp+0		;16
	db	n_TMPdsp+0		;17
	db	n_TMPdsp+0		;18
	db	n_TMPdsp+0		;19
	db	n_TMPdsp+0		;20
	db	n_TMPdsp+0		;21
	db	n_TMPdsp+0		;22
	db	n_TMPdsp+0		;23
	db	n_TMPdsp+0		;24
	db	n_TMPdsp+0	;	25
	db	n_TMPdsp+0	;	26
	db	n_TMPdsp+1	;	27
	db	n_TMPdsp+1	;	28
	db	n_TMPdsp+3	;	29
	db	n_TMPdsp+5	;	30
	db	n_TMPdsp+5	;	31
	db	n_TMPdsp+7	;	32
	db	n_TMPdsp+9	;	33
	db	n_TMPdsp+9	;	34
	db	n_TMPdsp+10	;	35
	db	n_TMPdsp+10	;	36
	db	n_TMPdsp+12	;	37
	db	n_TMPdsp+14	;	38
	db	n_TMPdsp+14	;	39
	db	n_TMPdsp+16	;	40
	db	n_TMPdsp+16	;	41
	db	n_TMPdsp+18	;	42
	db	n_TMPdsp+18	;	43
	db	n_TMPdsp+19	;	44
	db	n_TMPdsp+19	;	45
	db	n_TMPdsp+21	;	46
	db	n_TMPdsp+21	;	47
	db	n_TMPdsp+23	;	48
	db	n_TMPdsp+23	;	49
	db	n_TMPdsp+25	;	50
	db	n_TMPdsp+25	;	51
	db	n_TMPdsp+27	;	52
	db	n_TMPdsp+27	;	53
	db	n_TMPdsp+28	;	54
	db	n_TMPdsp+28	;	55
	db	n_TMPdsp+28	;	56
	db	n_TMPdsp+30	;	57
	db	n_TMPdsp+30	;	58
	db	n_TMPdsp+32	;	59
	db	n_TMPdsp+32	;	60
	db	n_TMPdsp+34	;	61
	db	n_TMPdsp+34	;	62
	db	n_TMPdsp+34	;	63
	db	n_TMPdsp+36	;	64
	db	n_TMPdsp+36	;	65
	db	n_TMPdsp+37	;	66
	db	n_TMPdsp+37	;	67
	db	n_TMPdsp+37	;	68
	db	n_TMPdsp+39	;	69
	db	n_TMPdsp+39	;	70
	db	n_TMPdsp+41	;	71
	db	n_TMPdsp+41	;	72
	db	n_TMPdsp+41	;	73
	db	n_TMPdsp+43	;	74
	db	n_TMPdsp+43	;	75
	db	n_TMPdsp+45	;	76
	db	n_TMPdsp+45	;	77
	db	n_TMPdsp+45	;	78
	db	n_TMPdsp+46	;	79
	db	n_TMPdsp+46	;	80
	db	n_TMPdsp+46	;	81
	db	n_TMPdsp+48	;	82
	db	n_TMPdsp+48	;	83
	db	n_TMPdsp+48	;	84
	db	n_TMPdsp+50	;	85
	db	n_TMPdsp+50	;	86
	db	n_TMPdsp+52	;	87
	db	n_TMPdsp+52	;	88
	db	n_TMPdsp+52	;	89
	db	n_TMPdsp+54	;	90
	db	n_TMPdsp+54	;	91
	db	n_TMPdsp+54	;	92
	db	n_TMPdsp+55	;	93
	db	n_TMPdsp+55	;	94
	db	n_TMPdsp+55	;	95
	db	n_TMPdsp+57	;	96
	db	n_TMPdsp+57	;	97
	db	n_TMPdsp+59	;	98
	db	n_TMPdsp+59	;	99
	db	n_TMPdsp+59	;	100
	db	n_TMPdsp+61	;	101
	db	n_TMPdsp+61	;	102
	db	n_TMPdsp+61	;	103
	db	n_TMPdsp+63	;	104
	db	n_TMPdsp+63	;	105
	db	n_TMPdsp+63	;	106
	db	n_TMPdsp+64	;	107
	db	n_TMPdsp+64	;	108
	db	n_TMPdsp+64	;	109
	db	n_TMPdsp+66	;	110
	db	n_TMPdsp+66	;	111
	db	n_TMPdsp+66	;	112
	db	n_TMPdsp+68	;	113
	db	n_TMPdsp+68	;	114
	db	n_TMPdsp+68	;	115
	db	n_TMPdsp+70	;	116
	db	n_TMPdsp+70	;	117
	db	n_TMPdsp+72	;	118
	db	n_TMPdsp+72	;	119
	db	n_TMPdsp+72	;	120
	db	n_TMPdsp+73	;	121
	db	n_TMPdsp+73	;	122
	db	n_TMPdsp+73	;	123
	db	n_TMPdsp+75	;	124
	db	n_TMPdsp+75	;	125
	db	n_TMPdsp+75	;	126
	db	n_TMPdsp+77	;	127
	db	n_TMPdsp+77	;	128
	db	n_TMPdsp+77	;	129
	db	n_TMPdsp+79	;	130
	db	n_TMPdsp+79	;	131
	db	n_TMPdsp+79	;	132
	db	n_TMPdsp+81	;	133
	db	n_TMPdsp+81	;	134
	db	n_TMPdsp+82	;	135
	db	n_TMPdsp+82	;	136
	db	n_TMPdsp+82	;	137
	db	n_TMPdsp+84	;	138
	db	n_TMPdsp+84	;	139
	db	n_TMPdsp+84	;	140
	db	n_TMPdsp+86	;	141
	db	n_TMPdsp+86	;	142
	db	n_TMPdsp+86	;	143
	db	n_TMPdsp+88	;	144
	db	n_TMPdsp+88	;	145
	db	n_TMPdsp+90	;	146
	db	n_TMPdsp+90	;	147
	db	n_TMPdsp+90	;	148
	db	n_TMPdsp+91	;	149
	db	n_TMPdsp+91	;	150
	db	n_TMPdsp+93	;	151
	db	n_TMPdsp+93	;	152
	db	n_TMPdsp+93	;	153
	db	n_TMPdsp+95	;	154
	db	n_TMPdsp+95	;	155
	db	n_TMPdsp+97	;	156
	db	n_TMPdsp+97	;	157
	db	n_TMPdsp+97	;	158
	db	n_TMPdsp+99	;	159
	db	n_TMPdsp+99	;	160
	db	n_TMPdsp+100	;	161
	db	n_TMPdsp+100	;	162
	db	n_TMPdsp+100	;	163
	db	n_TMPdsp+102	;	164
	db	n_TMPdsp+102	;	165
	db	n_TMPdsp+104	;	166
	db	n_TMPdsp+104	;	167
	db	n_TMPdsp+104	;	168
	db	n_TMPdsp+106	;	169
	db	n_TMPdsp+106	;	170
	db	n_TMPdsp+108	;	171
	db	n_TMPdsp+108	;	172
	db	n_TMPdsp+109	;	173
	db	n_TMPdsp+109	;	174
	db	n_TMPdsp+111	;	175
	db	n_TMPdsp+111	;	176
	db	n_TMPdsp+113	;	177
	db	n_TMPdsp+113	;	178
	db	n_TMPdsp+115	;	179
	db	n_TMPdsp+115	;	180
	db	n_TMPdsp+115	;	181
	db	n_TMPdsp+117	;	182
	db	n_TMPdsp+117	;	183
	db	n_TMPdsp+118	;	184
	db	n_TMPdsp+118	;	185
	db	n_TMPdsp+120	;	186
	db	n_TMPdsp+122	;	187
	db	n_TMPdsp+122	;	188
	db	n_TMPdsp+124	;	189
	db	n_TMPdsp+124	;	190
	db	n_TMPdsp+126	;	191
	db	n_TMPdsp+126	;	192
	db	n_TMPdsp+127	;	193
	db	n_TMPdsp+127	;	194
	db	n_TMPdsp+129	;	195
	db	n_TMPdsp+131	;	196
	db	n_TMPdsp+131	;	197
	db	n_TMPdsp+133	;	198
	db	n_TMPdsp+133	;	199
	db	n_TMPdsp+135	;	200
	db	n_TMPdsp+136	;	201
	db	n_TMPdsp+136	;	202
	db	n_TMPdsp+138	;	203
	db	n_TMPdsp+140	;	204
	db	n_TMPdsp+140	;	205
	db	n_TMPdsp+142	;	206
	db	n_TMPdsp+144	;	207
	db	n_TMPdsp+145	;	208
	db	n_TMPdsp+145	;	209
	db	n_TMPdsp+147	;	210
	db	n_TMPdsp+149	;	211
	db	n_TMPdsp+151	;	212
	db	n_TMPdsp+151	;	213
	db	n_TMPdsp+153	;	214
	db	n_TMPdsp+154	;	215
	db	n_TMPdsp+156	;	216
	db	n_TMPdsp+158	;	217
	db	n_TMPdsp+160	;	218
	db	n_TMPdsp+162	;	219
	db	n_TMPdsp+163	;	220
	db	n_TMPdsp+165	;	221
	db	n_TMPdsp+167	;	222
	db	n_TMPdsp+169	;	223
	db	n_TMPdsp+171	;	224
	db	n_TMPdsp+172	;	225
	db	n_TMPdsp+174	;	226
	db	n_TMPdsp+178	;	227
	db	n_TMPdsp+180	;	228
	db	n_TMPdsp+181	;	229
	db	n_TMPdsp+185	;	230
	db	n_TMPdsp+187	;	231
	db	n_TMPdsp+190	;	232
	db	n_TMPdsp+192	;	233
	db	n_TMPdsp+196	;	234
	db	n_TMPdsp+199	;	235
	db	n_TMPdsp+203	;	236
	db	n_TMPdsp+207	;	237
	db	n_TMPdsp+208	;	238
	db	n_TMPdsp+208	;	239
	db	n_TMPdsp+208	;	240
	db	n_TMPdsp+208	;	241
	db	n_TMPdsp+208	;	242
	db	n_TMPdsp+208	;	243
	db	n_TMPdsp+208	;	244
	db	n_TMPdsp+208	;	245
	db	n_TMPdsp+208	;	246
	db	n_TMPdsp+208	;	247
	db	n_TMPdsp+208	;	248
	db	n_TMPdsp+208	;	249
	db	n_TMPdsp+208	;	250
	db	n_TMPdsp+208	;	251
	db	n_TMPdsp+208	;	252
	db	n_TMPdsp+208	;	253
	db	n_TMPdsp+208	;	254
	db	n_TMPdsp+208	;	255

;************************************************************************
;	ad 值 0:自动测试 192:单冷 170:电热  127:热泵
;************************************************************************
TYPEsel:


	cmp	C_RES2s,#0
	BEQ	noSELtime

;	call	!SCAN164
	MOV	A,D_KEYin1
	ROLC	A,1
	BC	$$+2+3
	SET1	f_SPD60
	ROLC	A,1
	BC	$$+2+3
	SET1	f_DEGREEf
	ROLC	A,1	
	BC	$$+2+3
	SET1	f_GOODman
noSELtime:	
	RET	

;f_GOODman	equ	D_TYPEsel.0	;0- indea type  1- good man
;f_DEGREEf	EQU	D_TYPEsel.1	;0- C degree	1- F degree
;f_SPD60	EQU	D_TYPEsel.2	;0- NO FAST 	1- FAST TEST
;f_COOLonly	equ	D_TYPEsel.3	;0- heat pump   1- cool only 

	
;========================================================================
	
;========================================================================

;	end	

⌨️ 快捷键说明

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