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

📄 relay_out.s

📁 LTC2449 AD转换 LTC2449 AD转换 LTC2449 AD转换
💻 S
字号:
	.module relay_out.c
	.area text(rom, con, rel)
	.dbfile E:\mysoft\DH980\relay_out.c
	.dbfunc e relay_init _relay_init fV
	.even
_relay_init::
	.dbline -1
	.dbline 71
; #include <iom169v.h>
; #include <macros.h>
; #include <stdio.h>
; #include "main.h"
; 
; #define RELAY1_0 PORTF|=0b00000001	//PF0
; #define RELAY1_1 PORTF&=0b11111110	//PF0
; #define RELAY2_0 PORTF|=0b00000010	//PF1
; #define RELAY2_1 PORTF&=0b11111101	//PF1
; #define RELAY3_0 PORTF|=0b00000100	//PF2
; #define RELAY3_1 PORTF&=0b11111011	//PF2
; #define RELAY4_0 PORTF|=0b00001000	//PF3
; #define RELAY4_1 PORTF&=0b11110111	//PF3
; #define RELAY5_0 PORTA|=0b00000001	//PA0
; #define RELAY5_1 PORTA&=0b11111110	//PA0
; #define RELAY6_0 PORTA|=0b00000010	//PA1
; #define RELAY6_1 PORTA&=0b11111101	//PA1
; #define RELAY7_0 PORTA|=0b00000100	//PA2
; #define RELAY7_1 PORTA&=0b11111011	//PA2
; #define RELAY8_0 PORTA|=0b00001000	//PA3
; #define RELAY8_1 PORTA&=0b11110111	//PA3
; #define RELAY9_0 PORTA|=0b00010000	//PA4
; #define RELAY9_1 PORTA&=0b11101111	//PA4
; #define RELAY10_0 PORTA|=0b00100000	//PA5
; #define RELAY10_1 PORTA&=0b11011111	//PA5
; #define RELAY11_0 PORTA|=0b01000000	//PA6
; #define RELAY11_1 PORTA&=0b10111111	//PA6
; #define RELAY12_0 PORTA|=0b10000000	//PA7
; #define RELAY12_1 PORTA&=0b01111111	//PA7
; #define RELAY13_0 PORTG|=0b00000100	//PG2
; #define RELAY13_1 PORTG&=0b11111011	//PG2
; #define RELAY14_0 PORTC|=0b10000000	//PC7
; #define RELAY14_1 PORTC&=0b01111111	//PC7
; #define RELAY15_0 PORTC|=0b01000000	//PC6
; #define RELAY15_1 PORTC&=0b10111111	//PC6
; #define RELAY16_0 PORTC|=0b00100000	//PC5
; #define RELAY16_1 PORTC&=0b11011111	//PC5
; #define RELAY17_0 PORTC|=0b00010000	//PC4
; #define RELAY17_1 PORTC&=0b11101111	//PC4
; #define RELAY18_0 PORTC|=0b00001000	//PC3
; #define RELAY18_1 PORTC&=0b11110111	//PC3
; #define RELAY19_0 PORTC|=0b00000100	//PC2
; #define RELAY19_1 PORTC&=0b11111011	//PC2
; #define RELAY20_0 PORTC|=0b00000010	//PC1
; #define RELAY20_1 PORTC&=0b11111101	//PC1
; #define RELAY21_0 PORTC|=0b00000001	//PC0
; #define RELAY21_1 PORTC&=0b11111110	//PC0
; #define RELAY22_0 PORTG|=0b00000010	//PG1
; #define RELAY22_1 PORTG&=0b11111101	//PG1
; #define RELAY23_0 PORTG|=0b00000001	//PG0
; #define RELAY23_1 PORTG&=0b11111110	//PG0
; #define RELAY24_0 PORTD|=0b10000000	//PD7
; #define RELAY24_1 PORTD&=0b01111111	//PD7
; #define RELAY25_0 PORTD|=0b01000000	//PD6
; #define RELAY25_1 PORTD&=0b10111111	//PD6
; #define RELAY26_0 PORTD|=0b00100000	//PD5
; #define RELAY26_1 PORTD&=0b11011111	//PD5
; #define RELAY27_0 PORTD|=0b00010000	//PD4
; #define RELAY27_1 PORTD&=0b11101111	//PD4
; #define RELAY28_0 PORTD|=0b00001000	//PD3
; #define RELAY28_1 PORTD&=0b11110111	//PD3
; #define RELAY29_0 PORTD|=0b00000100	//PD2
; #define RELAY29_1 PORTD&=0b11111011	//PD2
; #define RELAY30_0 PORTD|=0b00000010	//PD1
; #define RELAY30_1 PORTD&=0b11111101	//PD1
; #define RELAY31_0 PORTD|=0b00000001	//PD0
; #define RELAY31_1 PORTD&=0b11111110	//PD0
; #define RELAY32_0 PORTG|=0b00010000	//PG4
; #define RELAY32_1 PORTG&=0b11101111	//PG4
; void relay_init()	
; {
	.dbline 72
; 		  RELAY1_0;
	sbi 0x11,0
	.dbline 73
; 			RELAY2_0;
	sbi 0x11,1
	.dbline 74
; 			RELAY3_0;
	sbi 0x11,2
	.dbline 75
; 			RELAY4_0;
	sbi 0x11,3
	.dbline 76
; 			RELAY5_0;
	sbi 0x2,0
	.dbline 77
; 			RELAY6_0;
	sbi 0x2,1
	.dbline 78
; 			RELAY7_0;
	sbi 0x2,2
	.dbline 79
; 			RELAY8_0;
	sbi 0x2,3
	.dbline 80
; 			RELAY9_0;
	sbi 0x2,4
	.dbline 81
; 			RELAY10_0;
	sbi 0x2,5
	.dbline 82
; 			RELAY11_0;
	sbi 0x2,6
	.dbline 83
; 			RELAY12_0;
	sbi 0x2,7
	.dbline 84
; 			RELAY13_0;
	sbi 0x14,2
	.dbline 85
; 			RELAY14_0;
	sbi 0x8,7
	.dbline 86
; 			RELAY15_0;
	sbi 0x8,6
	.dbline 87
; 			RELAY16_0;
	sbi 0x8,5
	.dbline 88
; 			RELAY17_0;
	sbi 0x8,4
	.dbline 89
; 			RELAY18_0;
	sbi 0x8,3
	.dbline 90
; 			RELAY19_0;
	sbi 0x8,2
	.dbline 91
; 			RELAY20_0;
	sbi 0x8,1
	.dbline 92
; 			RELAY21_0;
	sbi 0x8,0
	.dbline 93
; 			RELAY22_0;
	sbi 0x14,1
	.dbline 94
; 			RELAY23_0;
	sbi 0x14,0
	.dbline 95
; 			RELAY24_0;
	sbi 0xb,7
	.dbline 96
; 			RELAY25_0;
	sbi 0xb,6
	.dbline 97
; 			RELAY26_0;
	sbi 0xb,5
	.dbline 98
; 			RELAY27_0;
	sbi 0xb,4
	.dbline 99
; 			RELAY28_0;
	sbi 0xb,3
	.dbline 100
; 			RELAY29_0;
	sbi 0xb,2
	.dbline 101
; 			RELAY30_0;
	sbi 0xb,1
	.dbline 102
; 			RELAY31_0;
	sbi 0xb,0
	.dbline 103
; 			RELAY32_0;
	sbi 0x14,4
	.dbline -2
L1:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e RELAY_out _RELAY_out fV
	.area func_lit(rom, con, rel)
L48:
	.word `L16
	.word `L17
	.word `L18
	.word `L19
	.word `L20
	.word `L21
	.word `L22
	.word `L23
	.word `L24
	.word `L25
	.word `L26
	.word `L27
	.word `L28
	.word `L29
	.word `L30
	.word `L31
	.word `L32
	.word `L33
	.word `L34
	.word `L35
	.word `L36
	.word `L37
	.word `L38
	.word `L39
	.word `L40
	.word `L41
	.word `L42
	.word `L43
	.word `L44
	.word `L45
	.word `L46
	.word `L47
	.area text(rom, con, rel)
	.dbfile E:\mysoft\DH980\relay_out.c
	.area func_lit(rom, con, rel)
L85:
	.word `L53
	.word `L54
	.word `L55
	.word `L56
	.word `L57
	.word `L58
	.word `L59
	.word `L60
	.word `L61
	.word `L62
	.word `L63
	.word `L64
	.word `L65
	.word `L66
	.word `L67
	.word `L68
	.word `L69
	.word `L70
	.word `L71
	.word `L72
	.word `L73
	.word `L74
	.word `L75
	.word `L76
	.word `L77
	.word `L78
	.word `L79
	.word `L80
	.word `L81
	.word `L82
	.word `L83
	.word `L84
	.area text(rom, con, rel)
	.dbfile E:\mysoft\DH980\relay_out.c
;              b -> R22
;              n -> y+0
;              l -> R12
;           temp -> R14
;              p -> y+11
	.even
_RELAY_out::
	st -y,r17
	st -y,r16
	xcall push_gset5
	sbiw R28,1
	.dbline -1
	.dbline 106
; }
; void RELAY_out(unsigned char *p)
; {
	.dbline 107
; 	unsigned char b,l,n=1,temp;	
	clr R0
	inc R0
	std y+0,R0
	.dbline 108
; 	updating=0;	//刷新后复位
	clr R2
	sts _updating,R2
	.dbline 109
; 	for(b=0;b<4;b++)
	clr R22
	xjmp L6
L3:
	.dbline 110
; 		{
	.dbline 111
; 			temp=*p;
	ldd R30,y+11
	ldd R31,y+12
	ldd R14,z+0
	.dbline 112
; 			for(l=0;l<8;l++)
	clr R12
	xjmp L10
L7:
	.dbline 113
; 				{
	.dbline 114
; 					if((temp&0b10000000)!=0)
	sbrs R14,7
	rjmp L11
	.dbline 115
; 						{
	.dbline 116
; 							switch(n)
	ldd R10,y+0
	clr R11
	movw R24,R10
	cpi R24,1
	ldi R30,0
	cpc R25,R30
	brge X2
	xjmp L12
X2:
	ldi R24,32
	cp R24,R10
	cpc R25,R11
	brge X3
	xjmp L12
X3:
	ldi R16,2
	ldi R17,0
	movw R18,R10
	xcall empy16s
	movw R30,R16
	ldi R24,<L48-2
	ldi R25,>L48-2
	add R30,R24
	adc R31,R25
	lpm R0,Z+
	lpm R1,Z
	movw R30,R0
	ijmp
X0:
	.dbline 117
; 								{
L16:
	.dbline 118
; 									case 1:RELAY1_1;break;
	in R24,0x11
	andi R24,254
	out 0x11,R24
	.dbline 118
	xjmp L12
L17:
	.dbline 119
; 									case 2:RELAY2_1;break;
	in R24,0x11
	andi R24,253
	out 0x11,R24
	.dbline 119
	xjmp L12
L18:
	.dbline 120
; 									case 3:RELAY3_1;break;
	in R24,0x11
	andi R24,251
	out 0x11,R24
	.dbline 120
	xjmp L12
L19:
	.dbline 121
; 									case 4:RELAY4_1;break;
	in R24,0x11
	andi R24,247
	out 0x11,R24
	.dbline 121
	xjmp L12
L20:
	.dbline 122
; 									case 5:RELAY5_1;break;
	in R24,0x2
	andi R24,254
	out 0x2,R24
	.dbline 122
	xjmp L12
L21:
	.dbline 123
; 									case 6:RELAY6_1;break;
	in R24,0x2
	andi R24,253
	out 0x2,R24
	.dbline 123
	xjmp L12
L22:
	.dbline 124
; 									case 7:RELAY7_1;break;
	in R24,0x2
	andi R24,251
	out 0x2,R24
	.dbline 124
	xjmp L12
L23:
	.dbline 125
; 									case 8:RELAY8_1;break;
	in R24,0x2
	andi R24,247
	out 0x2,R24
	.dbline 125
	xjmp L12
L24:
	.dbline 126
; 									case 9:RELAY9_1;break;
	in R24,0x2
	andi R24,239
	out 0x2,R24
	.dbline 126
	xjmp L12
L25:
	.dbline 127
; 									case 10:RELAY10_1;break;
	in R24,0x2
	andi R24,223
	out 0x2,R24
	.dbline 127
	xjmp L12
L26:
	.dbline 128
; 									case 11:RELAY11_1;break;
	in R24,0x2
	andi R24,191
	out 0x2,R24
	.dbline 128
	xjmp L12
L27:
	.dbline 129
; 									case 12:RELAY12_1;break;
	in R24,0x2
	andi R24,127
	out 0x2,R24
	.dbline 129
	xjmp L12
L28:
	.dbline 130
; 									case 13:RELAY13_1;break;
	in R24,0x14
	andi R24,251
	out 0x14,R24
	.dbline 130
	xjmp L12
L29:
	.dbline 131
; 									case 14:RELAY14_1;break;
	in R24,0x8
	andi R24,127
	out 0x8,R24
	.dbline 131
	xjmp L12
L30:
	.dbline 132
; 									case 15:RELAY15_1;break;
	in R24,0x8
	andi R24,191
	out 0x8,R24
	.dbline 132
	xjmp L12
L31:
	.dbline 133
; 									case 16:RELAY16_1;break;
	in R24,0x8
	andi R24,223
	out 0x8,R24
	.dbline 133
	xjmp L12
L32:
	.dbline 134
; 									case 17:RELAY17_1;break;
	in R24,0x8
	andi R24,239
	out 0x8,R24
	.dbline 134
	xjmp L12
L33:
	.dbline 135
; 									case 18:RELAY18_1;break;
	in R24,0x8
	andi R24,247
	out 0x8,R24
	.dbline 135
	xjmp L12
L34:
	.dbline 136
; 									case 19:RELAY19_1;break;
	in R24,0x8
	andi R24,251
	out 0x8,R24
	.dbline 136
	xjmp L12
L35:
	.dbline 137
; 									case 20:RELAY20_1;break;
	in R24,0x8
	andi R24,253
	out 0x8,R24
	.dbline 137
	xjmp L12
L36:
	.dbline 138
; 									case 21:RELAY21_1;break;
	in R24,0x8
	andi R24,254
	out 0x8,R24
	.dbline 138
	xjmp L12
L37:
	.dbline 139
; 									case 22:RELAY22_1;break;
	in R24,0x14
	andi R24,253
	out 0x14,R24
	.dbline 139
	xjmp L12
L38:
	.dbline 140
; 									case 23:RELAY23_1;break;
	in R24,0x14
	andi R24,254
	out 0x14,R24
	.dbline 140
	xjmp L12
L39:
	.dbline 141
; 									case 24:RELAY24_1;break;
	in R24,0xb
	andi R24,127
	out 0xb,R24
	.dbline 141
	xjmp L12
L40:
	.dbline 142
; 									case 25:RELAY25_1;break;
	in R24,0xb
	andi R24,191
	out 0xb,R24
	.dbline 142
	xjmp L12
L41:
	.dbline 143
; 									case 26:RELAY26_1;break;
	in R24,0xb
	andi R24,223
	out 0xb,R24
	.dbline 143
	xjmp L12
L42:
	.dbline 144
; 									case 27:RELAY27_1;break;
	in R24,0xb
	andi R24,239
	out 0xb,R24
	.dbline 144
	xjmp L12
L43:
	.dbline 145
; 									case 28:RELAY28_1;break;
	in R24,0xb
	andi R24,247
	out 0xb,R24
	.dbline 145
	xjmp L12
L44:
	.dbline 146
; 									case 29:RELAY29_1;break;
	in R24,0xb
	andi R24,251
	out 0xb,R24
	.dbline 146
	xjmp L12
L45:
	.dbline 147
; 									case 30:RELAY30_1;break;
	in R24,0xb
	andi R24,253
	out 0xb,R24
	.dbline 147
	xjmp L12
L46:
	.dbline 148
; 									case 31:RELAY31_1;break;
	in R24,0xb
	andi R24,254
	out 0xb,R24
	.dbline 148
	xjmp L12
L47:
	.dbline 149
; 									case 32:RELAY32_1;break;
	in R24,0x14
	andi R24,239
	out 0x14,R24
	.dbline 149
	.dbline 150
; 									default:break;	
	.dbline 152
; 								}
; 						}
	xjmp L12
L11:
	.dbline 154
; 					else
; 						{
	.dbline 155
; 							switch(n)
	ldd R20,y+0
	clr R21
	cpi R20,1
	ldi R30,0
	cpc R21,R30
	brge X4
	xjmp L51
X4:
	ldi R24,32
	ldi R25,0
	cp R24,R20
	cpc R25,R21
	brge X5
	xjmp L51
X5:
	ldi R16,2
	ldi R17,0
	movw R18,R20
	xcall empy16s
	movw R30,R16
	ldi R24,<L85-2
	ldi R25,>L85-2
	add R30,R24
	adc R31,R25
	lpm R0,Z+
	lpm R1,Z
	movw R30,R0
	ijmp
X1:
	.dbline 156
; 								{
L53:
	.dbline 157
; 									case 1:RELAY1_0;break;
	sbi 0x11,0
	.dbline 157
	xjmp L51
L54:
	.dbline 158
; 									case 2:RELAY2_0;break;
	sbi 0x11,1
	.dbline 158
	xjmp L51
L55:
	.dbline 159
; 									case 3:RELAY3_0;break;
	sbi 0x11,2
	.dbline 159
	xjmp L51
L56:
	.dbline 160
; 									case 4:RELAY4_0;break;
	sbi 0x11,3
	.dbline 160
	xjmp L51
L57:
	.dbline 161
; 									case 5:RELAY5_0;break;
	sbi 0x2,0
	.dbline 161
	xjmp L51
L58:
	.dbline 162
; 									case 6:RELAY6_0;break;
	sbi 0x2,1
	.dbline 162
	xjmp L51
L59:
	.dbline 163
; 									case 7:RELAY7_0;break;
	sbi 0x2,2
	.dbline 163
	xjmp L51
L60:
	.dbline 164
; 									case 8:RELAY8_0;break;
	sbi 0x2,3
	.dbline 164
	xjmp L51
L61:
	.dbline 165
; 									case 9:RELAY9_0;break;
	sbi 0x2,4
	.dbline 165
	xjmp L51
L62:
	.dbline 166
; 									case 10:RELAY10_0;break;
	sbi 0x2,5
	.dbline 166
	xjmp L51
L63:
	.dbline 167
; 									case 11:RELAY11_0;break;
	sbi 0x2,6
	.dbline 167
	xjmp L51
L64:
	.dbline 168
; 									case 12:RELAY12_0;break;
	sbi 0x2,7
	.dbline 168
	xjmp L51
L65:
	.dbline 169
; 									case 13:RELAY13_0;break;
	sbi 0x14,2
	.dbline 169
	xjmp L51
L66:
	.dbline 170
; 									case 14:RELAY14_0;break;
	sbi 0x8,7
	.dbline 170
	xjmp L51
L67:
	.dbline 171
; 									case 15:RELAY15_0;break;
	sbi 0x8,6
	.dbline 171
	xjmp L51
L68:
	.dbline 172
; 									case 16:RELAY16_0;break;
	sbi 0x8,5
	.dbline 172
	xjmp L51
L69:
	.dbline 173
; 									case 17:RELAY17_0;break;
	sbi 0x8,4
	.dbline 173
	xjmp L51
L70:
	.dbline 174
; 									case 18:RELAY18_0;break;
	sbi 0x8,3
	.dbline 174
	xjmp L51
L71:
	.dbline 175
; 									case 19:RELAY19_0;break;
	sbi 0x8,2
	.dbline 175
	xjmp L51
L72:
	.dbline 176
; 									case 20:RELAY20_0;break;
	sbi 0x8,1
	.dbline 176
	xjmp L51
L73:
	.dbline 177
; 									case 21:RELAY21_0;break;
	sbi 0x8,0
	.dbline 177
	xjmp L51
L74:
	.dbline 178
; 									case 22:RELAY22_0;break;
	sbi 0x14,1
	.dbline 178
	xjmp L51
L75:
	.dbline 179
; 									case 23:RELAY23_0;break;
	sbi 0x14,0
	.dbline 179
	xjmp L51
L76:
	.dbline 180
; 									case 24:RELAY24_0;break;
	sbi 0xb,7
	.dbline 180
	xjmp L51
L77:
	.dbline 181
; 									case 25:RELAY25_0;break;
	sbi 0xb,6
	.dbline 181
	xjmp L51
L78:
	.dbline 182
; 									case 26:RELAY26_0;break;
	sbi 0xb,5
	.dbline 182
	xjmp L51
L79:
	.dbline 183
; 									case 27:RELAY27_0;break;
	sbi 0xb,4
	.dbline 183
	xjmp L51
L80:
	.dbline 184
; 									case 28:RELAY28_0;break;
	sbi 0xb,3
	.dbline 184
	xjmp L51
L81:
	.dbline 185
; 									case 29:RELAY29_0;break;
	sbi 0xb,2
	.dbline 185
	xjmp L51
L82:
	.dbline 186
; 									case 30:RELAY30_0;break;
	sbi 0xb,1
	.dbline 186
	xjmp L51
L83:
	.dbline 187
; 									case 31:RELAY31_0;break;
	sbi 0xb,0
	.dbline 187
	xjmp L51
L84:
	.dbline 188
; 									case 32:RELAY32_0;break;
	sbi 0x14,4
	.dbline 188
	.dbline 189
; 									default:break;	
L51:
	.dbline 191
; 								}
; 						}
L12:
	.dbline 192
	lsl R14
	.dbline 193
	ldd R0,y+0
	inc R0
	std y+0,R0
	.dbline 194
L8:
	.dbline 112
	inc R12
L10:
	.dbline 112
	mov R24,R12
	cpi R24,8
	brsh X6
	xjmp L7
X6:
	.dbline 195
	ldd R24,y+11
	ldd R25,y+12
	adiw R24,1
	std y+12,R25
	std y+11,R24
	.dbline 196
L4:
	.dbline 109
	inc R22
L6:
	.dbline 109
	cpi R22,4
	brsh X7
	xjmp L3
X7:
	.dbline -2
L2:
	adiw R28,1
	xcall pop_gset5
	adiw R28,2
	.dbline 0 ; func end
	ret
	.dbsym r b 22 c
	.dbsym l n 0 c
	.dbsym r l 12 c
	.dbsym r temp 14 c
	.dbsym l p 11 pc
	.dbend

⌨️ 快捷键说明

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