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

📄 ac20-1.s

📁 AVR单片机ATmega16(L)应用实例—红外线感应自动移门
💻 S
📖 第 1 页 / 共 5 页
字号:
	.dbline 255
; 		case 60:wide=open_inc_tab[8];break;
	lds R2,_open_inc_tab+8
	sts _wide,R2
	.dbline 255
	xjmp L105
L123:
	.dbline 256
; 		case 65:wide=open_inc_tab[9];break;	
	lds R2,_open_inc_tab+9
	sts _wide,R2
	.dbline 256
	xjmp L105
L125:
	.dbline 257
; 		case 75:wide=open_inc_tab[10];break;		
	lds R2,_open_inc_tab+10
	sts _wide,R2
	.dbline 257
	xjmp L105
L127:
	.dbline 258
; 		case 85:wide=open_inc_tab[11];break;
	lds R2,_open_inc_tab+11
	sts _wide,R2
	.dbline 258
	xjmp L105
L129:
	.dbline 259
; 		case 90:wide=open_inc_tab[12];break;	
	lds R2,_open_inc_tab+12
	sts _wide,R2
	.dbline 259
	xjmp L105
L131:
	.dbline 260
; 		case 100:wide=open_inc_tab[13];break;	
	lds R2,_open_inc_tab+13
	sts _wide,R2
	.dbline 260
	xjmp L105
L133:
	.dbline 261
; 		case 105:wide=open_inc_tab[14];break;	
	lds R2,_open_inc_tab+14
	sts _wide,R2
	.dbline 261
	xjmp L105
L135:
	.dbline 262
; 		case 115:wide=open_inc_tab[15];inc_dec_flag=0;break;		
	lds R2,_open_inc_tab+15
	sts _wide,R2
	.dbline 262
	clr R2
	sts _inc_dec_flag,R2
	.dbline 262
	.dbline 263
; 		default:break;
L105:
	.dbline 265
; 		}
; 		OCR2=wide;
	lds R2,_wide
	out 0x23,R2
	.dbline -2
L103:
	.dbline 0 ; func end
	ret
	.dbsym r sp_pl 16 i
	.dbend
	.dbfunc e openhalf_dec_speed _openhalf_dec_speed fV
;          sp_pl -> R16,R17
	.even
_openhalf_dec_speed::
	.dbline -1
	.dbline 271
; }
; 
; 
; /*==========门扇半开运行的减速子函数===========*/
; void openhalf_dec_speed(uint sp_pl)
; {
	.dbline 272
; 	switch (sp_pl)
	cpi R16,80
	ldi R30,0
	cpc R17,R30
	brne X50
	xjmp L167
X50:
	ldi R24,80
	ldi R25,0
	cp R24,R16
	cpc R25,R17
	brge X51
	xjmp L188
X51:
L187:
	cpi R16,30
	ldi R30,0
	cpc R17,R30
	brne X52
	xjmp L159
X52:
	ldi R24,30
	ldi R25,0
	cp R24,R16
	cpc R25,R17
	brlt L190
L189:
	cpi R16,1
	ldi R30,0
	cpc R17,R30
	brne X53
	xjmp L155
X53:
	cpi R16,1
	ldi R30,0
	cpc R17,R30
	brge X54
	xjmp L154
X54:
L191:
	cpi R16,15
	ldi R30,0
	cpc R17,R30
	brne X55
	xjmp L157
X55:
	xjmp L154
L190:
	cpi R16,60
	ldi R30,0
	cpc R17,R30
	brne X56
	xjmp L163
X56:
	ldi R24,60
	ldi R25,0
	cp R24,R16
	cpc R25,R17
	brlt L193
L192:
	cpi R16,45
	ldi R30,0
	cpc R17,R30
	brne X57
	xjmp L161
X57:
	xjmp L154
L193:
	cpi R16,70
	ldi R30,0
	cpc R17,R30
	brne X58
	xjmp L165
X58:
	xjmp L154
L188:
	cpi R16,110
	ldi R30,0
	cpc R17,R30
	brne X59
	xjmp L175
X59:
	cpi R16,113
	ldi R30,0
	cpc R17,R30
	brne X60
	xjmp L177
X60:
	ldi R24,113
	ldi R25,0
	cp R24,R16
	cpc R25,R17
	brlt L195
L194:
	cpi R16,100
	ldi R30,0
	cpc R17,R30
	brne X61
	xjmp L171
X61:
	ldi R24,100
	ldi R25,0
	cp R24,R16
	cpc R25,R17
	brlt L197
L196:
	cpi R16,90
	ldi R30,0
	cpc R17,R30
	brne X62
	xjmp L169
X62:
	xjmp L154
L197:
	cpi R16,105
	ldi R30,0
	cpc R17,R30
	brne X63
	xjmp L173
X63:
	xjmp L154
L195:
	cpi R16,122
	ldi R30,0
	cpc R17,R30
	brne X64
	xjmp L183
X64:
	cpi R16,125
	ldi R30,0
	cpc R17,R30
	brne X65
	xjmp L185
X65:
	ldi R24,125
	ldi R25,0
	cp R24,R16
	cpc R25,R17
	brlt L199
L198:
	cpi R16,116
	ldi R30,0
	cpc R17,R30
	brne X66
	xjmp L179
X66:
	cpi R16,119
	ldi R30,0
	cpc R17,R30
	brne X67
	xjmp L181
X67:
	xjmp L154
L199:
	cpi R16,128
	ldi R30,0
	cpc R17,R30
	brne X68
	xjmp L186
X68:
	xjmp L154
X49:
	.dbline 273
; 		{
L155:
	.dbline 274
; 		case 1:wide=open_dec_tab[15];break;	
	lds R2,_open_dec_tab+15
	sts _wide,R2
	.dbline 274
	xjmp L154
L157:
	.dbline 275
; 		case 15:wide=open_dec_tab[14];break;		
	lds R2,_open_dec_tab+14
	sts _wide,R2
	.dbline 275
	xjmp L154
L159:
	.dbline 276
; 		case 30:wide=open_dec_tab[13];break;
	lds R2,_open_dec_tab+13
	sts _wide,R2
	.dbline 276
	xjmp L154
L161:
	.dbline 277
; 		case 45:wide=open_dec_tab[12];break;	
	lds R2,_open_dec_tab+12
	sts _wide,R2
	.dbline 277
	xjmp L154
L163:
	.dbline 278
; 		case 60:wide=open_dec_tab[11];break;		
	lds R2,_open_dec_tab+11
	sts _wide,R2
	.dbline 278
	xjmp L154
L165:
	.dbline 279
; 		case 70:wide=open_dec_tab[10];break;
	lds R2,_open_dec_tab+10
	sts _wide,R2
	.dbline 279
	xjmp L154
L167:
	.dbline 280
; 		case 80:wide=open_dec_tab[9];break;	
	lds R2,_open_dec_tab+9
	sts _wide,R2
	.dbline 280
	xjmp L154
L169:
	.dbline 281
; 		case 90:wide=open_dec_tab[8];break;
	lds R2,_open_dec_tab+8
	sts _wide,R2
	.dbline 281
	xjmp L154
L171:
	.dbline 282
; 		case 100:wide=open_dec_tab[7];break;
	lds R2,_open_dec_tab+7
	sts _wide,R2
	.dbline 282
	xjmp L154
L173:
	.dbline 283
; 		case 105:wide=open_dec_tab[6];break;	
	lds R2,_open_dec_tab+6
	sts _wide,R2
	.dbline 283
	xjmp L154
L175:
	.dbline 284
; 		case 110:wide=open_dec_tab[5];break;		
	lds R2,_open_dec_tab+5
	sts _wide,R2
	.dbline 284
	xjmp L154
L177:
	.dbline 285
; 		case 113:wide=open_dec_tab[4];break;
	lds R2,_open_dec_tab+4
	sts _wide,R2
	.dbline 285
	xjmp L154
L179:
	.dbline 286
; 		case 116:wide=open_dec_tab[3];break;	
	lds R2,_open_dec_tab+3
	sts _wide,R2
	.dbline 286
	xjmp L154
L181:
	.dbline 287
; 		case 119:wide=open_dec_tab[2];break;	
	lds R2,_open_dec_tab+2
	sts _wide,R2
	.dbline 287
	xjmp L154
L183:
	.dbline 288
; 		case 122:wide=open_dec_tab[1];break;
	lds R2,_open_dec_tab+1
	sts _wide,R2
	.dbline 288
	xjmp L154
L185:
	.dbline 289
; 		case 125:wide=open_dec_tab[0];break;	
	lds R2,_open_dec_tab
	sts _wide,R2
	.dbline 289
	xjmp L154
L186:
	.dbline 290
; 		case 128:wide=open_dec_tab[0]-6;inc_dec_flag=0;break;		
	lds R24,_open_dec_tab
	subi R24,6
	sts _wide,R24
	.dbline 290
	clr R2
	sts _inc_dec_flag,R2
	.dbline 290
	.dbline 291
; 		default:break;
L154:
	.dbline 293
; 		}
; 		OCR2=wide;
	lds R2,_wide
	out 0x23,R2
	.dbline -2
L152:
	.dbline 0 ; func end
	ret
	.dbsym r sp_pl 16 i
	.dbend
	.dbfunc e open_dec_speed _open_dec_speed fV
;          sp_pl -> R16,R17
	.even
_open_dec_speed::
	.dbline -1
	.dbline 299
; }
; 
; 
; /*========开门时的减速子函数==========*/
; void open_dec_speed(uint sp_pl)
; {
	.dbline 300
; 	switch (sp_pl)
	cpi R16,80
	ldi R30,0
	cpc R17,R30
	brne X70
	xjmp L215
X70:
	ldi R24,80
	ldi R25,0
	cp R24,R16
	cpc R25,R17
	brge X71
	xjmp L235
X71:
L234:
	cpi R16,30
	ldi R30,0
	cpc R17,R30
	brne X72
	xjmp L207
X72:
	ldi R24,30
	ldi R25,0
	cp R24,R16
	cpc R25,R17
	brlt L237
L236:
	cpi R16,1
	ldi R30,0
	cpc R17,R30
	brne X73
	xjmp L203
X73:
	cpi R16,1
	ldi R30,0
	cpc R17,R30
	brge X74
	xjmp L202
X74:
L238:
	cpi R16,15
	ldi R30,0
	cpc R17,R30
	brne X75
	xjmp L205
X75:
	xjmp L202
L237:
	cpi R16,60
	ldi R30,0
	cpc R17,R30
	brne X76
	xjmp L211
X76:
	ldi R24,60
	ldi R25,0
	cp R24,R16
	cpc R25,R17
	brlt L240
L239:
	cpi R16,45
	ldi R30,0
	cpc R17,R30
	brne X77
	xjmp L209
X77:
	xjmp L202
L240:
	cpi R16,70
	ldi R30,0
	cpc R17,R30
	brne X78
	xjmp L213
X78:
	xjmp L202
L235:
	cpi R16,105
	ldi R30,0
	cpc R17,R30
	brne X79
	xjmp L221
X79:
	ldi R24,105
	ldi R25,0
	cp R24,R16
	cpc R25,R17
	brlt L242
L241:
	cpi R16,90
	ldi R30,0
	cpc R17,R30
	brne X80
	xjmp L217
X80:
	cpi R16,90
	ldi R30,0
	cpc R17,R30
	brge X81
	xjmp L202
X81:
L243:
	cpi R16,100
	ldi R30,0
	cpc R17,R30
	brne X82
	xjmp L219
X82:
	xjmp L202
L242:
	cpi R16,116
	ldi R30,0
	cpc R17,R30
	brne X83
	xjmp L227
X83:
	cpi R16,119
	ldi R30,0
	cpc R17,R30
	brne X84
	xjmp L229
X84:
	ldi R24,119
	ldi R25,0
	cp R24,R16
	cpc R25,R17
	brlt L245
L244:
	cpi R16,110
	ldi R30,0
	cpc R17,R30
	brne X85
	xjmp L223
X85:
	cpi R16,113
	ldi R30,0
	cpc R17,R30
	brne X86
	xjmp L225
X86:
	xjmp L202
L245:
	cpi R16,122
	ldi R30,0
	cpc R17,R30
	brne X87
	xjmp L231
X87:
	cpi R16,125
	ldi R30,0
	cpc R17,R30
	brne X88
	xjmp L233
X88:
	xjmp L202
X69:
	.dbline 301
; 		{
L203:
	.dbline 302
; 		case 1:wide=open_dec_tab[15];break;	
	lds R2,_open_dec_tab+15
	sts _wide,R2
	.dbline 302
	xjmp L202
L205:
	.dbline 303
; 		case 15:wide=open_dec_tab[14];break;		
	lds R2,_open_dec_tab+14
	sts _wide,R2
	.dbline 303
	xjmp L202
L207:
	.dbline 304
; 		case 30:wide=open_dec_tab[13];break;
	lds R2,_open_dec_tab+13
	sts _wide,R2
	.dbline 304
	xjmp L202
L209:
	.dbline 305
; 		case 45:wide=open_dec_tab[12];break;	
	lds R2,_open_dec_tab+12
	sts _wide,R2
	.dbline 305
	xjmp L202
L211:
	.dbline 306
; 		case 60:wide=open_dec_tab[11];break;		
	lds R2,_open_dec_tab+11
	sts _wide,R2
	.dbline 306
	xjmp L202
L213:
	.dbline 307
; 		case 70:wide=open_dec_tab[10];break;
	lds R2,_open_dec_tab+10
	sts _wide,R2
	.dbline 307
	xjmp L202
L215:
	.dbline 308
; 		case 80:wide=open_dec_tab[9];break;	
	lds R2,_open_dec_tab+9
	sts _wide,R2
	.dbline 308
	xjmp L202
L217:
	.dbline 309
; 		case 90:wide=open_dec_tab[8];break;
	lds R2,_open_dec_tab+8
	sts _wide,R2
	.dbline 309
	xjmp L202
L219:
	.dbline 310
; 		case 100:wide=open_dec_tab[7];break;
	lds R2,_open_dec_tab+7
	sts _wide,R2
	.dbline 310
	xjmp L202
L221:
	.dbline 311
; 		case 105:wide=open_dec_tab[6];break;	
	lds R2,_open_dec_tab+6
	sts _wide,R2
	.dbline 311
	xjmp L202
L223:
	.dbline 312
; 		case 110:wide=open_dec_tab[5];break;		
	lds R2,_open_dec_tab+5
	sts _wide,R2
	.dbline 312
	xjmp L202
L225:
	.dbline 313
; 		case 113:wide=open_dec_tab[4];break;
	lds R2,_open_dec_tab+4
	sts _wide,R2
	.dbline 313
	xjmp L202
L227:
	.dbline 314
; 		case 116:wide=open_dec_tab[3];break;	
	lds R2,_open_dec_tab+3
	sts _wide,R2
	.dbline 314
	xjmp L202
L229:
	.dbline 315
; 		case 119:wide=open_dec_tab[2];break;	
	lds R2,_open_dec_tab+2
	sts _wide,R2
	.dbline 315
	xjmp L202
L231:
	.dbline 316
; 		case 122:wide=open_dec_tab[1];break;	
	lds R2,_open_dec_tab+1
	sts _wide,R2
	.dbline 316
	xjmp L202
L233:
	.dbline 317
; 		case 125:wide=open_dec_tab[0];inc_dec_flag=0;break;		
	lds R2,_open_dec_tab
	sts _wide,R2
	.dbline 317
	clr R2
	sts _inc_dec_flag,R2
	.dbline 317
	.dbline 318
; 		default:break;
L202:
	.dbline 320
; 		}
; 		OCR2=wide;
	lds R2,_wide
	out 0x23,R2
	.dbline -2
L200:
	.dbline 0 ; func end
	ret
	.dbsym r sp_pl 16 i
	.dbend
	.dbfunc e close_inc_speed _close_inc_speed fV
;          sp_pl -> R16,R17
	.even
_close_inc_speed::
	.dbline -1
	.dbline 326
; }
; 
; 
; /*==========关门时的加速子函数============*/
; void close_inc_speed(uint sp_pl)
; {
	.dbline 327
; 	switch (sp_pl)
	cpi R16,50
	ldi R30,0
	cpc R17,R30
	brne X90
	xjmp L262
X90:
	ldi R24,50
	ldi R25,0
	cp R24,R16
	cpc R25,R17
	brge X91
	xjmp L281
X91:
L280:
	cpi R16,20
	ldi R30,0
	cpc R17,R30
	brne X92
	xjmp L254
X92:
	ldi R24,20
	ldi R25,0
	cp R24,R16
	cpc R25,R17
	brlt L283
L282:
	cpi R16,5
	ldi R30,0
	cpc R17,R30
	brne X93
	xjmp L250
X93:
	ldi R24,5
	ldi R25,0
	cp R24,R16
	cpc R25,R17
	brlt L285
L284:
	cpi R16,1
	ldi R30,0
	cpc R17,R30
	brne X94
	xjmp L249
X94:
	xjmp L248
L285:
	cpi R16,10
	ldi R30,0
	cpc R17,R30
	brne X95
	xjmp L252
X95:
	xjmp L248
L283:
	cpi R16,35
	ldi R30,0
	cpc R17,R30
	brne X96
	xjmp L258
X96:
	ldi R24,35
	ldi R25,0
	cp R24,R16
	cpc R25,R17
	brlt L287
L286:
	cpi R16,25
	ldi R30,0
	cpc R17,R30
	brne X97
	xjmp L256
X97:
	xjmp L248
L287:
	cpi R16,45
	ldi R30,0
	cpc R17,R30
	brne X98
	xjmp L260
X98:
	xjmp L248
L281:
	cpi R16,85
	ldi R30,0
	cpc R17,R30
	brne X99
	xjmp L270
X99:
	ldi R24,85
	ldi R25,0
	cp R24,R16
	cpc R25,R17
	brlt L289
L288:
	cpi R16,65
	ldi R30,0
	cpc R17,R30
	brne X100
	xjmp L266
X100:
	ldi R24,65
	ldi R25,0

⌨️ 快捷键说明

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