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

📄 ocr0.s

📁 单片机红外控制发射与接收,红外发射是一种常用的控制方式
💻 S
📖 第 1 页 / 共 2 页
字号:
; 					  data_0();
	xcall _data_0
	.dbline 180
; 					  end();
	xcall _end
	.dbline 181
; 			       break;
	xjmp L33
L41:
	.dbline 183
;             case 7:  //PORTB=0x07;
; 			          header();
	xcall _header
	.dbline 184
; 					  data_1();
	xcall _data_1
	.dbline 185
; 					  data_1();
	xcall _data_1
	.dbline 186
; 					  data_1();
	xcall _data_1
	.dbline 187
; 					  data_0();
	xcall _data_0
	.dbline 188
; 					  data_0();
	xcall _data_0
	.dbline 189
; 					  data_0();
	xcall _data_0
	.dbline 190
; 					  data_0();
	xcall _data_0
	.dbline 191
; 					  data_0();
	xcall _data_0
	.dbline 192
; 					  end();
	xcall _end
	.dbline 193
; 			       break;  
	xjmp L33
L42:
	.dbline 195
;             case 8:  //PORTB=0x08;
; 			           header();
	xcall _header
	.dbline 196
; 					  data_0();
	xcall _data_0
	.dbline 197
; 					  data_0();
	xcall _data_0
	.dbline 198
; 					  data_0();
	xcall _data_0
	.dbline 199
; 					  data_1();
	xcall _data_1
	.dbline 200
; 					  data_0();
	xcall _data_0
	.dbline 201
; 					  data_0();
	xcall _data_0
	.dbline 202
; 					  data_0();
	xcall _data_0
	.dbline 203
; 					  data_0();
	xcall _data_0
	.dbline 204
; 					  end();
	xcall _end
	.dbline 205
; 			       break;
	xjmp L33
L43:
	.dbline 207
;             case 9: // PORTB=0x09;
; 			          header();
	xcall _header
	.dbline 208
; 					  data_1();
	xcall _data_1
	.dbline 209
; 					  data_0();
	xcall _data_0
	.dbline 210
; 					  data_0();
	xcall _data_0
	.dbline 211
; 					  data_1();
	xcall _data_1
	.dbline 212
; 					  data_0();
	xcall _data_0
	.dbline 213
; 					  data_0();
	xcall _data_0
	.dbline 214
; 					  data_0();
	xcall _data_0
	.dbline 215
; 					  data_0();
	xcall _data_0
	.dbline 216
; 					  end(); 
	xcall _end
	.dbline 217
; 			      break;            
	xjmp L33
L44:
	.dbline 219
;             case 10: //PORTB=0x0a;
; 			           header();
	xcall _header
	.dbline 220
; 					  data_0();
	xcall _data_0
	.dbline 221
; 					  data_1();
	xcall _data_1
	.dbline 222
; 					  data_0();
	xcall _data_0
	.dbline 223
; 					  data_1();
	xcall _data_1
	.dbline 224
; 					  data_0();
	xcall _data_0
	.dbline 225
; 					  data_0();
	xcall _data_0
	.dbline 226
; 					  data_0();
	xcall _data_0
	.dbline 227
; 					  data_0();
	xcall _data_0
	.dbline 228
; 					  end();
	xcall _end
	.dbline 229
; 			       break;
	xjmp L33
L45:
	.dbline 231
;             case 11: //PORTB=0x0b;
; 			          header();
	xcall _header
	.dbline 232
; 					  data_1();
	xcall _data_1
	.dbline 233
; 					  data_1();
	xcall _data_1
	.dbline 234
; 					  data_0();
	xcall _data_0
	.dbline 235
; 					  data_1();
	xcall _data_1
	.dbline 236
; 					  data_0();
	xcall _data_0
	.dbline 237
; 					  data_0();
	xcall _data_0
	.dbline 238
; 					  data_0();
	xcall _data_0
	.dbline 239
; 					  data_0();
	xcall _data_0
	.dbline 240
; 					  end();
	xcall _end
	.dbline 241
; 			       break;
	xjmp L33
L46:
	.dbline 243
;             case 12: //PORTB=0x0c;
; 			           header();
	xcall _header
	.dbline 244
; 					  data_0();
	xcall _data_0
	.dbline 245
; 					  data_0();
	xcall _data_0
	.dbline 246
; 					  data_1();
	xcall _data_1
	.dbline 247
; 					  data_1();
	xcall _data_1
	.dbline 248
; 					  data_0();
	xcall _data_0
	.dbline 249
; 					  data_0();
	xcall _data_0
	.dbline 250
; 					  data_0();
	xcall _data_0
	.dbline 251
; 					  data_0();
	xcall _data_0
	.dbline 252
; 					  end();
	xcall _end
	.dbline 253
; 			       break;         
	xjmp L33
L47:
	.dbline 255
;             case 13: //PORTB=0x0d;
; 			          header();
	xcall _header
	.dbline 256
; 					  data_1();
	xcall _data_1
	.dbline 257
; 					  data_0();
	xcall _data_0
	.dbline 258
; 					  data_1();
	xcall _data_1
	.dbline 259
; 					  data_1();
	xcall _data_1
	.dbline 260
; 					  data_0();
	xcall _data_0
	.dbline 261
; 					  data_0();
	xcall _data_0
	.dbline 262
; 					  data_0();
	xcall _data_0
	.dbline 263
; 					  data_0();
	xcall _data_0
	.dbline 264
; 					  end();
	xcall _end
	.dbline 265
; 			       break;            
	xjmp L33
L48:
	.dbline 267
;             case 14: //PORTB=0x0e; 
; 			           header();
	xcall _header
	.dbline 268
; 					  data_0();
	xcall _data_0
	.dbline 269
; 					  data_1();
	xcall _data_1
	.dbline 270
; 					  data_1();
	xcall _data_1
	.dbline 271
; 					  data_1();
	xcall _data_1
	.dbline 272
; 					  data_0();
	xcall _data_0
	.dbline 273
; 					  data_0();
	xcall _data_0
	.dbline 274
; 					  data_0();
	xcall _data_0
	.dbline 275
; 					  data_0();
	xcall _data_0
	.dbline 276
; 					  end();
	xcall _end
	.dbline 277
; 			      break;
	xjmp L33
L49:
	.dbline 279
;             case 15: //PORTB=0x0f;
; 			          header();
	xcall _header
	.dbline 280
; 					  data_1();
	xcall _data_1
	.dbline 281
; 					  data_1();
	xcall _data_1
	.dbline 282
; 					  data_1();
	xcall _data_1
	.dbline 283
; 					  data_1();
	xcall _data_1
	.dbline 284
; 					  data_0();
	xcall _data_0
	.dbline 285
; 					  data_0();
	xcall _data_0
	.dbline 286
; 					  data_0();
	xcall _data_0
	.dbline 287
; 					  data_0();
	xcall _data_0
	.dbline 288
; 					  end(); 
	xcall _end
	.dbline 289
; 			      break;
	xjmp L33
L50:
	.dbline 292
;             case 0: //PORTB=0x00;
; 			           
; 			           header();
	xcall _header
	.dbline 293
; 					  data_0();
	xcall _data_0
	.dbline 294
; 					  data_0();
	xcall _data_0
	.dbline 295
; 					  data_0();
	xcall _data_0
	.dbline 296
; 					  data_0();
	xcall _data_0
	.dbline 297
; 					  data_0();
	xcall _data_0
	.dbline 298
; 					  data_0();
	xcall _data_0
	.dbline 299
; 					  data_0();
	xcall _data_0
	.dbline 300
; 					  data_0();
	xcall _data_0
	.dbline 301
; 					  end();
	xcall _end
	.dbline 303
; 	                       
; 			         break;
	.dbline 305
;  
;           default: break;
L33:
	.dbline 308
L25:
	.dbline 90
	xjmp L24
X1:
	.dbline -2
L23:
	.dbline 0 ; func end
	ret
	.dbsym l abc 1 c
	.dbsym r i 20 c
	.dbsym r keyval1 22 c
	.dbsym r keyval2 10 c
	.dbend
	.dbfunc e scan_key _scan_key fc
;              i -> R22
;           temp -> R10
	.even
_scan_key::
	xcall push_gset3
	.dbline -1
	.dbline 315
;         }   
; 	
; 	}
;  
;  
; }
; 
; //--------------------4x4key-----------------------------------//
; unsigned char scan_key(void)   //不作按键释放检查的键盘扫描函数
; {
	.dbline 317
;  unsigned char i,temp;
;  DDRC=0x0f;
	ldi R24,15
	out 0x14,R24
	.dbline 318
;  PORTC=0xff;
	ldi R24,255
	out 0x15,R24
	.dbline 319
;  for(i=0;i<4;i++)
	clr R22
	xjmp L56
L53:
	.dbline 320
;    {
	.dbline 321
;     PORTC=~(1<<i);
	ldi R16,1
	mov R17,R22
	xcall lsl8
	mov R2,R16
	com R2
	out 0x15,R2
	.dbline 322
;     delay(10);
	ldi R16,10
	ldi R17,0
	xcall _delay
	.dbline 323
;     temp=PINC&0xf0;
	in R24,0x13
	andi R24,240
	mov R10,R24
	.dbline 324
;     if(temp!=0xf0)
	cpi R24,240
	brne X5
	xjmp L57
X5:
	.dbline 325
;        {
	.dbline 326
;         delay(15);
	ldi R16,15
	ldi R17,0
	xcall _delay
	.dbline 327
;         temp=PINC&0xf0;
	in R24,0x13
	andi R24,240
	mov R10,R24
	.dbline 328
;         if(temp!=0xf0)
	cpi R24,240
	brne X6
	xjmp L59
X6:
	.dbline 329
;            {
	.dbline 330
;            temp&=0xf0;
	andi R24,240
	mov R10,R24
	.dbline 331
;            switch(temp)
	mov R20,R24
	clr R21
	cpi R20,176
	ldi R30,0
	cpc R21,R30
	breq L65
	ldi R24,176
	ldi R25,0
	cp R24,R20
	cpc R25,R21
	brlt L69
L68:
	cpi R20,112
	ldi R30,0
	cpc R21,R30
	breq L64
	xjmp L61
L69:
	cpi R20,208
	ldi R30,0
	cpc R21,R30
	breq L66
	cpi R20,208
	ldi R30,0
	cpc R21,R30
	brlt L61
L70:
	cpi R20,224
	ldi R30,0
	cpc R21,R30
	breq L67
	xjmp L61
X4:
	.dbline 332
;                  {
L64:
	.dbline 333
;                   case 0x70: temp=15-(3-i)*4;  break;
	ldi R17,3
	sub R17,R22
	ldi R16,4
	muls R16,R17
	ldi R24,15
	mov R10,R24
	sub R10,R0
	.dbline 333
	xjmp L62
L65:
	.dbline 334
;                   case 0xb0: temp=14-(3-i)*4;  break;
	ldi R17,3
	sub R17,R22
	ldi R16,4
	muls R16,R17
	ldi R24,14
	mov R10,R24
	sub R10,R0
	.dbline 334
	xjmp L62
L66:
	.dbline 335
;                   case 0xd0: temp=13-(3-i)*4;  break;
	ldi R17,3
	sub R17,R22
	ldi R16,4
	muls R16,R17
	ldi R24,13
	mov R10,R24
	sub R10,R0
	.dbline 335
	xjmp L62
L67:
	.dbline 336
;                   case 0xe0: temp=12-(3-i)*4;  break;
	ldi R17,3
	sub R17,R22
	ldi R16,4
	muls R16,R17
	ldi R24,12
	mov R10,R24
	sub R10,R0
	.dbline 336
	xjmp L62
L61:
	.dbline 337
;                   default:temp=0x7f;
	ldi R24,127
	mov R10,R24
	.dbline 338
;                  }
L62:
	.dbline 339
;             return temp;
	mov R16,R10
	xjmp L52
L59:
	.dbline 341
;            }
;        }
L57:
	.dbline 342
	ldi R24,255
	out 0x15,R24
	.dbline 343
L54:
	.dbline 319
	inc R22
L56:
	.dbline 319
	cpi R22,4
	brsh X7
	xjmp L53
X7:
	.dbline 344
;     PORTC=0xff;
;    }
;   return 0x7f;
	ldi R16,127
	.dbline -2
L52:
	xcall pop_gset3
	.dbline 0 ; func end
	ret
	.dbsym r i 22 c
	.dbsym r temp 10 c
	.dbend
	.dbfunc e keypad _keypad fc
;          temp1 -> R20
;          temp2 -> R22
	.even
_keypad::
	xcall push_gset2
	.dbline -1
	.dbline 349
; }
; 
; 
; unsigned char keypad(void)   //有按键释放检查的键盘扫描函数
; {
	.dbline 351
;   unsigned char temp1,temp2;
;   temp1=scan_key();
	xcall _scan_key
	mov R20,R16
	.dbline 352
;   if (temp1==0x7f)
	cpi R16,127
	brne L72
	.dbline 353
;       return 0x7f;
	ldi R16,127
	xjmp L71
L72:
L74:
	.dbline 355
;   do 
;       temp2=scan_key();
	xcall _scan_key
	mov R22,R16
L75:
	.dbline 356
;   while (temp1==temp2);
	cp R20,R22
	breq L74
	.dbline 357
;   return temp1;
	mov R16,R20
	.dbline -2
L71:
	xcall pop_gset2
	.dbline 0 ; func end
	ret
	.dbsym r temp1 20 c
	.dbsym r temp2 22 c
	.dbend
	.dbfunc e EEPROM_read _EEPROM_read fc
;      uiAddress -> R16,R17
	.even
_EEPROM_read::
	.dbline -1
	.dbline 363
; 
; }
; 
; 
; unsigned char EEPROM_read(unsigned int uiAddress)
; {
L78:
	.dbline 364
L79:
	.dbline 364
; while(EECR&(1<<EEWE));
	sbic 0x1c,1
	rjmp L78
	.dbline 365
; EEAR=uiAddress;
	out 0x1f,R17
	out 0x1e,R16
	.dbline 366
; EECR|=(1<<EERE);
	sbi 0x1c,0
	.dbline 367
; return EEDR;
	in R16,0x1d
	.dbline -2
L77:
	.dbline 0 ; func end
	ret
	.dbsym r uiAddress 16 i
	.dbend

⌨️ 快捷键说明

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