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

📄 ze015_1.s

📁 一款完整的家用电器程序,具有控制商用机的功能,应用广泛,有一定的参考价值
💻 S
📖 第 1 页 / 共 5 页
字号:
	.byte 250,203
	.byte 152,169
	.byte 62,15
	.byte 92,'m
	.byte 134,183
	.byte 228,213
	.byte 'B,'s
	.byte 32,17
	.byte 63,14
	.byte 93,'l
	.byte 251,202
	.byte 153,168
	.byte 197,244
	.byte 167,150
	.byte 1,48
	.byte 'c,'R
	.byte 124,'M
	.byte 30,47
	.byte 184,137
	.byte 218,235
	.byte 61,12
	.byte 95,'n
	.byte 249,200
	.byte 155,170
	.byte 132,181
	.byte 230,215
	.byte 64,'q
	.byte 34,19
	.byte 126,'O
	.byte 28,45
	.byte 186,139
	.byte 216,233
	.byte 199,246
	.byte 165,148
	.byte 3,50
	.byte 'a,'P
	.byte 187,138
	.byte 217,232
	.byte 127,'N
	.byte 29,44
	.byte 2,51
	.byte 96,'Q
	.byte 198,247
	.byte 164,149
	.byte 248,201
	.byte 154,171
	.byte 60,13
	.byte 94,'o
	.byte 'A,'p
	.byte 35,18
	.byte 133,180
	.byte 231,214
	.byte 'z,'K
	.byte 24,41
	.byte 190,143
	.byte 220,237
	.byte 195,242
	.byte 161,144
	.byte 7,54
	.byte 'e,'T
	.byte 57,8
	.byte 91,'j
	.byte 253,204
	.byte 159,174
	.byte 128,177
	.byte 226,211
	.byte 'D,'u
	.byte 38,23
	.byte 252,205
	.byte 158,175
	.byte 56,9
	.byte 'Z,'k
	.byte 'E,'t
	.byte 39,22
	.byte 129,176
	.byte 227,210
	.byte 191,142
	.byte 221,236
	.byte 123,'J
	.byte 25,40
	.byte 6,55
	.byte 'd,'U
	.byte 194,243
	.byte 160,145
	.byte 'G,'v
	.byte 37,20
	.byte 131,178
	.byte 225,208
	.byte 254,207
	.byte 156,173
	.byte 58,11
	.byte 'X,'i
	.byte 4,53
	.byte 'f,'W
	.byte 192,241
	.byte 162,147
	.byte 189,140
	.byte 223,238
	.byte 'y,'H
	.byte 27,42
	.byte 193,240
	.byte 163,146
	.byte 5,52
	.byte 147,'V
	.byte 'x,'I
	.byte 26,43
	.byte 188,141
	.byte 222,239
	.byte 130,179
	.byte 224,209
	.byte 'F,'w
	.byte 36,21
	.byte 59,10
	.byte 'Y,'h
	.byte 255,206
	.byte 157,172
	.dbfile D:\icc\program\20080515\zv5/jf_p1.c
	.dbsym e CRC8_shf15_TAB _CRC8_shf15_TAB A[256:256]kc
	.area text(rom, con, rel)
	.dbfile D:\icc\program\20080515\zv5/jf_p1.c
	.dbfunc e fun_beep _fun_beep fV
; beep_time_temp -> R16
	.even
_fun_beep::
	.dbline -1
	.dbline 19
	.dbline 20
	sts _beep_time_ask,R16
	.dbline 21
	clr R2
	sts _beep_time,R2
	.dbline 21
	.dbline 22
	out 0x25,R2
	.dbline 23
	ldi R24,135
	out 0x24,R24
	.dbline 24
	ldi R24,121
	out 0x23,R24
	.dbline 25
	ldi R24,26
	out 0x25,R24
	.dbline 26
	lds R24,_auto_state
	andi R24,247
	sts _auto_state,R24
	.dbline 27
	lds R24,_run_state
	ori R24,1
	sts _run_state,R24
	.dbline -2
L23:
	.dbline 0 ; func end
	ret
	.dbsym r beep_time_temp 16 c
	.dbend
	.dbfunc e fun_fault_beep _fun_fault_beep fV
	.even
_fun_fault_beep::
	.dbline -1
	.dbline 32
	.dbline 33
	lds R2,_mode
	sbrs R2,3
	rjmp L25
	.dbline 34
	.dbline 34
	ldi R16,10
	xcall _fun_beep
	.dbline 34
	clr R2
	sts _beep_times,R2
	.dbline 34
	xjmp L26
L25:
	.dbline 36
	.dbline 36
	ldi R16,10
	xcall _fun_beep
	.dbline 36
	ldi R24,3
	sts _beep_times,R24
	.dbline 36
	ldi R24,90
	sts _beep_stop_time_ask,R24
	.dbline 36
L26:
	.dbline -2
L24:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e Fun_ad_20k _Fun_ad_20k fC
;           a_d2 -> R12
;           a_d1 -> R14
;       th_value -> R20
;           temp -> R22
;              n -> R10
;           thAD -> R16
	.even
_Fun_ad_20k::
	xcall push_gset5
	.dbline -1
	.dbline 42
	.dbline 48
	ldi R24,24
	cp R24,R16
	brlo L28
	.dbline 48
	.dbline 48
	ldi R20,236
	.dbline 48
	mov R16,R20
	xjmp L27
L28:
	.dbline 49
	cpi R16,246
	brlo L30
	.dbline 49
	.dbline 49
	ldi R20,117
	.dbline 49
	mov R16,R20
	xjmp L27
L30:
	.dbline 50
	ldi R24,167
	cp R24,R16
	brlo L32
	.dbline 51
	.dbline 52
	cpi R16,86
	brlo L34
	.dbline 52
	ldi R24,45
	mov R10,R24
	xjmp L33
L34:
	.dbline 53
	ldi R24,20
	mov R10,R24
	.dbline 54
	xjmp L33
L32:
	.dbline 56
	.dbline 57
	cpi R16,218
	brlo L36
	.dbline 57
	ldi R24,100
	mov R10,R24
	xjmp L37
L36:
	.dbline 58
	ldi R24,70
	mov R10,R24
L37:
	.dbline 59
L33:
	.dbline 61
	ldi R24,<_TAB20K_20temp
	ldi R25,>_TAB20K_20temp
	mov R30,R10
	clr R31
	add R30,R24
	adc R31,R25
	lpm R22,Z
	.dbline 62
	cp R16,R22
	brne L38
	.dbline 62
	mov R20,R10
	subi R20,20
	xjmp L39
L38:
	.dbline 64
	.dbline 65
	cp R22,R16
	brsh L40
	.dbline 66
L42:
	.dbline 68
	.dbline 68
	inc R10
	.dbline 68
	ldi R24,<_TAB20K_20temp
	ldi R25,>_TAB20K_20temp
	mov R30,R10
	clr R31
	add R30,R24
	adc R31,R25
	lpm R22,Z
	.dbline 68
L43:
	.dbline 69
	cp R16,R22
	brsh L42
	.dbline 70
	mov R14,R22
	sub R14,R16
	.dbline 71
	dec R10
	.dbline 71
	ldi R24,<_TAB20K_20temp
	ldi R25,>_TAB20K_20temp
	mov R30,R10
	clr R31
	add R30,R24
	adc R31,R25
	lpm R22,Z
	.dbline 71
	mov R12,R16
	sub R12,R22
	.dbline 72
	cp R14,R12
	brlo L45
	.dbline 72
	mov R20,R10
	subi R20,20
	xjmp L41
L45:
	.dbline 73
	mov R20,R10
	subi R20,19
	.dbline 74
	xjmp L41
L40:
	.dbline 76
L47:
	.dbline 78
	.dbline 78
	dec R10
	.dbline 78
	ldi R24,<_TAB20K_20temp
	ldi R25,>_TAB20K_20temp
	mov R30,R10
	clr R31
	add R30,R24
	adc R31,R25
	lpm R22,Z
	.dbline 78
L48:
	.dbline 79
	cp R22,R16
	brsh L47
	.dbline 80
	mov R14,R16
	sub R14,R22
	.dbline 81
	inc R10
	.dbline 81
	ldi R24,<_TAB20K_20temp
	ldi R25,>_TAB20K_20temp
	mov R30,R10
	clr R31
	add R30,R24
	adc R31,R25
	lpm R22,Z
	.dbline 81
	mov R12,R22
	sub R12,R16
	.dbline 82
	cp R14,R12
	brlo L50
	.dbline 82
	mov R20,R10
	subi R20,20
	xjmp L51
L50:
	.dbline 83
	mov R20,R10
	subi R20,21
L51:
	.dbline 84
L41:
	.dbline 85
L39:
	.dbline 86
	mov R16,R20
	.dbline -2
L27:
	xcall pop_gset5
	.dbline 0 ; func end
	ret
	.dbsym r a_d2 12 c
	.dbsym r a_d1 14 c
	.dbsym r th_value 20 C
	.dbsym r temp 22 c
	.dbsym r n 10 c
	.dbsym r thAD 16 c
	.dbend
	.dbfunc e Fun_ad_50k _Fun_ad_50k fc
;           a_d2 -> R12
;           a_d1 -> R14
;       th_value -> R20
;           temp -> R22
;              n -> R10
;           thAD -> R16
	.even
_Fun_ad_50k::
	xcall push_gset5
	.dbline -1
	.dbline 90
	.dbline 96
	ldi R24,15
	cp R24,R16
	brlo L53
	.dbline 96
	.dbline 96
	clr R20
	.dbline 96
	mov R16,R20
	xjmp L52
L53:
	.dbline 97
	cpi R16,250
	brlo L55
	.dbline 97
	.dbline 97
	ldi R20,199
	.dbline 97
	mov R16,R20
	xjmp L52
L55:
	.dbline 98
	ldi R24,138
	cp R24,R16
	brlo L57
	.dbline 99
	.dbline 100
	cpi R16,71
	brlo L59
	.dbline 100
	ldi R24,60
	mov R10,R24
	xjmp L58
L59:
	.dbline 101
	ldi R24,20
	mov R10,R24
	.dbline 102
	xjmp L58
L57:
	.dbline 104
	.dbline 105
	cpi R16,193
	brlo L61
	.dbline 105
	ldi R24,120
	mov R10,R24
	xjmp L62
L61:
	.dbline 106
	ldi R24,80
	mov R10,R24
L62:
	.dbline 107
L58:
	.dbline 109
	ldi R24,<_TAB50K_10temp
	ldi R25,>_TAB50K_10temp
	mov R30,R10
	clr R31
	add R30,R24
	adc R31,R25
	lpm R22,Z
	.dbline 110
	cp R16,R22
	brne L63
	.dbline 110
	mov R20,R10
	xjmp L64
L63:
	.dbline 112
	.dbline 113
	cp R22,R16
	brsh L65
	.dbline 114
L67:
	.dbline 116
	.dbline 116
	inc R10
	.dbline 116
	ldi R24,<_TAB50K_10temp
	ldi R25,>_TAB50K_10temp
	mov R30,R10
	clr R31
	add R30,R24
	adc R31,R25
	lpm R22,Z
	.dbline 116
L68:
	.dbline 117
	cp R16,R22
	brsh L67
	.dbline 118
	mov R14,R22
	sub R14,R16
	.dbline 119
	dec R10
	.dbline 119
	ldi R24,<_TAB50K_10temp
	ldi R25,>_TAB50K_10temp
	mov R30,R10
	clr R31
	add R30,R24
	adc R31,R25
	lpm R22,Z
	.dbline 119
	mov R12,R16
	sub R12,R22
	.dbline 120
	cp R14,R12
	brlo L70
	.dbline 120
	mov R20,R10
	xjmp L66
L70:
	.dbline 121
	mov R20,R10
	subi R20,255    ; addi 1
	.dbline 122
	xjmp L66
L65:
	.dbline 124
L72:
	.dbline 126
; 		UDR0 =txd_data0[txd_len0];//每隔1秒写入第1个数据发送	
	.dbline 126
	dec R10
	.dbline 126
	ldi R24,<_TAB50K_10temp
	ldi R25,>_TAB50K_10temp
	mov R30,R10
	clr R31
	add R30,R24
	adc R31,R25
	lpm R22,Z
	.dbline 126
L73:
	.dbline 127
; 		txd_len0++;
	cp R22,R16
	brsh L72
	.dbline 128
; 		}
	mov R14,R16
	sub R14,R22
	.dbline 129
; 	}
	inc R10
	.dbline 129
	ldi R24,<_TAB50K_10temp
	ldi R25,>_TAB50K_10temp
	mov R30,R10
	clr R31
	add R30,R24
	adc R31,R25
	lpm R22,Z
	.dbline 129
	mov R12,R22
	sub R12,R16
	.dbline 130
; 		m_32mscountv=m_32mscountv+1;
	cp R14,R12
	brlo L75
	.dbline 130
	mov R20,R10
	xjmp L76
L75:
	.dbline 131
; 			if (m_32mscountv>=4)
	mov R20,R10
	subi R20,1
L76:
	.dbline 132
; 		{//32ms时膨胀阀动作20080620
L66:
	.dbline 133
; 			m_32mscountv=0;
L64:
	.dbline 134
; 			jf_valvetotal();
	mov R16,R20
	.dbline -2
L52:
	xcall pop_gset5
	.dbline 0 ; func end
	ret
	.dbsym r a_d2 12 c
	.dbsym r a_d1 14 c
	.dbsym r th_value 20 c
	.dbsym r temp 22 c
	.dbsym r n 10 c
	.dbsym r thAD 16 c
	.dbend
	.dbfunc e ADStartP _ADStartP fV
	.even
_ADStartP::
	.dbline -1
	.dbline 142
; 		}	
; 		m_500mscount=m_500mscount+1;
; }
; 
; //TIMER1 initialize - prescale:64
; // WGM: 0) Normal, TOP=0xFFFF
; // desired value: 1Hz
; // actual value:  1.000Hz (0.0%)
	.dbline 143
; void timer1_init(void)
	sbi 0x6,6
	xjmp L79
L78:
	.dbline 144
	wdr
L79:
	.dbline 144
; {
	sbis 0x6,4
	rjmp L78
	.dbline 145
;  TCCR1B = 0x00; //stop
	sbi 0x6,4
	.dbline -2
L77:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e funADsample _funADsample fV
	.even
_funADsample::
	.dbline -1
	.dbline 155
;  TCNT1H = 0x0B; //setup
;  TCNT1L = 0xDC;
;  OCR1AH = 0xF4;
;  OCR1AL = 0x24;
;  OCR1BH = 0xF4;
;  OCR1BL = 0x24;
;  OCR1CH = 0xF4;
;  OCR1CL = 0x24;
;  ICR1H  = 0xF4;
;  ICR1L  = 0x24;
	.dbline 157
;  TCCR1A = 0x00;
;  TCCR1B = 0x03; //start Timer
	ldi R24,134
	out 0x6,R24
	.dbline 158
; }
	ldi R24,66
	out 0x7,R24
	.dbline 159
; 
	xcall _delay_20us
	.dbline 160
; #pragma interrupt_handler timer1_ovf_isr:15
	xcall _ADStartP
	.dbline 161
; void timer1_ovf_isr(void)
	in R2,0x4
	clr R3
	lds R4,_i_defrost_sumADL
	lds R5,_i_defrost_sumADL+1
	add R4,R2
	adc R5,R3
	sts _i_defrost_sumADL+1,R5
	sts _i_defrost_sumADL,R4
	.dbline 162
; {//20080201将定时1秒改在定时10MS中,增加快测
	in R24,0x5
	clr R25
	andi R24,3
	andi R25,0
	lds R2,_i_defrost_sumADH
	lds R3,_i_defrost_sumADH+1
	add R2,R24
	adc R3,R25
	sts _i_defrost_sumADH+1,R3
	sts _i_defrost_sumADH,R2
	.dbline 163
;  //TIMER1 has overflowed 1s 1秒定时
	nop
	.dbline 165
; 	 TCNT1H = 0x0b; //reload counter high value
; 	 TCNT1L = 0xdc; //reload counter low value
	ldi R24,65
	out 0x7,R24
	.dbline 166
;  //20080201time_flag |=b_time_1s;	//f_1s=1
	xcall _delay_20us
	.dbline 167
; }
	xcall _ADStartP
	.dbline 168
; //TIMER2 initialize - prescale:8 中断未用,但用作蜂鸣器驱动2KHZ
	in R2,0x4
	clr R3
	lds R4,_i_evin_sumADL
	lds R5,_i_evin_sumADL+1
	add R4,R2
	adc R5,R3
	sts _i_evin_sumADL+1,R5
	sts _i_evin_sumADL,R4
	.dbline 169
; // WGM: CTC
	in R24,0x5
	clr R25
	andi R24,3
	andi R25,0
	lds R2,_i_evin_sumADH
	lds R3,_i_evin_sumADH+1
	add R2,R24
	adc R3,R25
	sts _i_evin_sumADH+1,R3
	sts _i_evin_sumADH,R2
	.dbline 170
; // desired value: 4KHz
	nop
	.dbline 173
; // actual value:  3.992KHz (0.4%)
; void timer2_init(void)
; {
	ldi R24,64
	out 0x7,R24
	.dbline 174
;  TCCR2 = 0x00; //stop
	xcall _delay_20us
	.dbline 175
;  TCNT2 = 0x87; //0x86; // 2048 Khz    0x83; //2khz
	xcall _ADStartP
	.dbline 176
;  OCR2  = 0x79; //0x7a; //0x7d;
	in R2,0x4
	clr R3
	lds R4,_i_i_humid_sumADL
	lds R5,_i_i_humid_sumADL+1
	add R4,R2
	adc R5,R3
	sts _i_i_humid_sumADL+1,R5
	sts _i_i_humid_sumADL,R4
	.dbline 177
; }
	in R24,0x5
	clr R25
	andi R24,3
	andi R25,0
	lds R2,_i_i_humid_sumADH
	lds R3,_i_i_humid_sumADH+1
	add R2,R24
	adc R3,R25
	sts _i_i_humid_sumADH+1,R3
	sts _i_i_humid_sumADH,R2
	.dbline 178
; 
	nop
	.dbline 179
; #pragma interrupt_handler timer2_ovf_isr:11
	ldi R24,67
	out 0x7,R24
	.dbline 180
; void timer2_ovf_isr(void)
	xcall _delay_20us
	.dbline 181
; {//no use but remain,定时器2用途CTC蜂鸣器驱动
	xcall _ADStartP
	.dbline 182
;  TCNT2 = 0x06;  //reload counter value
	in R2,0x4
	clr R3
	lds R4,_i_exghaust_sumADL

⌨️ 快捷键说明

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