📄 fjv14.lis
字号:
03CA .dbline 373
03CA ; case IO_PB0: //启动PB0通道
03CA ; if (IO_data==0x00)
03CA 0023 tst R16
03CC 29F4 brne L103
03CE .dbline 374
03CE ; {
03CE .dbline 375
03CE ; DDRB |= (1<<DDB0);
03CE B89A sbi 0x17,0
03D0 .dbline 376
03D0 ; PORTB &= 0b11111110;//PB0置0,其他位不变
03D0 88B3 in R24,0x18
03D2 8E7F andi R24,254
03D4 88BB out 0x18,R24
03D6 .dbline 377
03D6 ; }
03D6 4CC0 rjmp L100
03D8 L103:
03D8 .dbline 378
03D8 ; else if (IO_data==0x01)
03D8 0130 cpi R16,1
03DA 19F4 brne L105
03DC .dbline 379
03DC ; {
03DC .dbline 380
03DC ; DDRB |= (1<<DDB0);
03DC B89A sbi 0x17,0
03DE .dbline 381
03DE ; PORTB |= (1<<PB0);//PB0置1,其他位不变
03DE C09A sbi 0x18,0
03E0 .dbline 382
03E0 ; }
03E0 47C0 rjmp L100
03E2 L105:
03E2 .dbline 384
03E2 ; else
03E2 ; {
03E2 .dbline 385
03E2 ; asm("NOP");
03E2 0000 NOP
03E4 .dbline 386
03E4 ; }
03E4 .dbline 387
03E4 ; break;
03E4 45C0 rjmp L100
03E6 L107:
03E6 .dbline 389
03E6 ; case IO_PB1:
03E6 ; if (IO_data==0x00)
03E6 0023 tst R16
03E8 29F4 brne L108
03EA .dbline 390
03EA ; {
03EA .dbline 391
03EA ; DDRB |= (1<<DDB1);
03EA B99A sbi 0x17,1
03EC .dbline 392
03EC ; PORTB &= 0b11111101;//输出0
03EC 88B3 in R24,0x18
03EE 8D7F andi R24,253
03F0 88BB out 0x18,R24
03F2 .dbline 393
03F2 ; }
03F2 3EC0 rjmp L100
03F4 L108:
03F4 .dbline 394
03F4 ; else if (IO_data==0x01)
03F4 0130 cpi R16,1
03F6 19F4 brne L110
03F8 .dbline 395
03F8 ; {
03F8 .dbline 396
03F8 ; DDRB |= (1<<DDB1);
03F8 B99A sbi 0x17,1
03FA .dbline 397
03FA ; PORTB |= (1<<PB1);//输出1
03FA C19A sbi 0x18,1
03FC .dbline 398
03FC ; }
03FC 39C0 rjmp L100
03FE L110:
03FE .dbline 400
03FE ; else
03FE ; {
03FE .dbline 401
03FE ; asm("NOP");
03FE 0000 NOP
0400 .dbline 402
0400 ; }
0400 .dbline 403
0400 ; break;
0400 37C0 rjmp L100
0402 L112:
0402 .dbline 405
0402 ; case IO_PB4:
0402 ; if (IO_data==0x00)
0402 0023 tst R16
0404 29F4 brne L113
0406 .dbline 406
0406 ; {
0406 .dbline 407
0406 ; DDRB |= (1<<DDB4);
0406 BC9A sbi 0x17,4
0408 .dbline 408
0408 ; PORTB &= 0b11101111;;//输出0
0408 88B3 in R24,0x18
040A 8F7E andi R24,239
040C 88BB out 0x18,R24
040E .dbline 408
040E .dbline 409
040E ; }
040E 30C0 rjmp L100
0410 L113:
0410 .dbline 410
0410 ; else if (IO_data==0x01)
0410 0130 cpi R16,1
0412 19F4 brne L115
0414 .dbline 411
0414 ; {
0414 .dbline 412
0414 ; DDRB |= (1<<DDB4);
0414 BC9A sbi 0x17,4
0416 .dbline 413
0416 ; PORTB |= (1<<PB4);//输出1
0416 C49A sbi 0x18,4
0418 .dbline 414
0418 ; }
0418 2BC0 rjmp L100
041A L115:
041A .dbline 416
041A ; else
041A ; {
041A .dbline 417
041A ; asm("NOP");
041A 0000 NOP
041C .dbline 418
041C ; }
041C .dbline 419
041C ; break;
041C 29C0 rjmp L100
041E L117:
041E .dbline 421
041E ; case IO_PD5:
041E ; if (IO_data==0x00)
041E 0023 tst R16
0420 29F4 brne L118
0422 .dbline 422
0422 ; {
0422 .dbline 423
0422 ; DDRD |= (1<<DDD5);
0422 8D9A sbi 0x11,5
0424 .dbline 424
0424 ; PORTD &= 0b11011111;//输出0
0424 82B3 in R24,0x12
0426 8F7D andi R24,223
0428 82BB out 0x12,R24
042A .dbline 425
042A ; }
042A 22C0 rjmp L100
042C L118:
042C .dbline 426
042C ; else if (IO_data==0x01)
042C 0130 cpi R16,1
042E 19F4 brne L120
0430 .dbline 427
0430 ; {
0430 .dbline 428
0430 ; DDRD |= (1<<DDD5);
0430 8D9A sbi 0x11,5
0432 .dbline 429
0432 ; PORTD |= (1<<PD5);//输出1
0432 959A sbi 0x12,5
0434 .dbline 430
0434 ; }
0434 1DC0 rjmp L100
0436 L120:
0436 .dbline 432
0436 ; else
0436 ; {
0436 .dbline 433
0436 ; asm("NOP");
0436 0000 NOP
0438 .dbline 434
0438 ; }
0438 .dbline 435
0438 ; break;
0438 1BC0 rjmp L100
043A L122:
043A .dbline 437
043A ; case IO_PD6:
043A ; if (IO_data==0x00)
043A 0023 tst R16
043C 29F4 brne L123
043E .dbline 438
043E ; {
043E .dbline 439
043E ; DDRD |= (1<<DDD6);
043E 8E9A sbi 0x11,6
0440 .dbline 440
0440 ; PORTD &= 0b10111111;//输出0
0440 82B3 in R24,0x12
0442 8F7B andi R24,191
0444 82BB out 0x12,R24
0446 .dbline 441
0446 ; }
0446 14C0 rjmp L100
0448 L123:
0448 .dbline 442
0448 ; else if (IO_data==0x01)
0448 0130 cpi R16,1
044A 19F4 brne L125
044C .dbline 443
044C ; {
044C .dbline 444
044C ; DDRD |= (1<<DDD6);
044C 8E9A sbi 0x11,6
044E .dbline 445
044E ; PORTD |= (1<<PD6);//输出1
044E 969A sbi 0x12,6
0450 .dbline 446
0450 ; }
0450 0FC0 rjmp L100
0452 L125:
0452 .dbline 448
0452 ; else
0452 ; {
0452 .dbline 449
0452 ; asm("NOP");
0452 0000 NOP
0454 .dbline 450
0454 ; }
0454 .dbline 451
0454 ; break;
0454 0DC0 rjmp L100
0456 L127:
0456 .dbline 454
0456 ;
0456 ; case IO_PD7: //如果为00则启动CH1通道
0456 ; if (IO_data==0x00)
0456 0023 tst R16
0458 29F4 brne L128
045A .dbline 455
045A ; {
045A .dbline 456
045A ; DDRD |= (1<<DDD7);
045A 8F9A sbi 0x11,7
045C .dbline 457
045C ; PORTD &= 0b01111111;//输出0
045C 82B3 in R24,0x12
045E 8F77 andi R24,127
0460 82BB out 0x12,R24
0462 .dbline 458
0462 ; }
0462 06C0 rjmp L100
0464 L128:
0464 .dbline 459
0464 ; else if (IO_data==0x01)
0464 0130 cpi R16,1
0466 19F4 brne L130
0468 .dbline 460
0468 ; {
0468 .dbline 461
0468 ; DDRD |= (1<<DDD7);
0468 8F9A sbi 0x11,7
046A .dbline 462
046A ; PORTD |= (1<<PD7);//输出1
046A 979A sbi 0x12,7
046C .dbline 463
046C ; }
046C 01C0 rjmp L100
046E L130:
046E .dbline 465
046E .dbline 466
046E 0000 NOP
0470 .dbline 467
0470 .dbline 468
0470 .dbline 470
0470 L100:
0470 .dbline -2
0470 L98:
0470 00D0 rcall pop_gset1
0472 .dbline 0 ; func end
0472 0895 ret
0474 .dbsym r IO_channel 18 c
0474 .dbsym r IO_data 16 c
0474 .dbend
0474 .dbfunc e IO_in _IO_in fc
0474 ; temp -> R20
0474 ; IO_channel -> R16
.even
0474 _IO_in::
0474 00D0 rcall push_gset2
0476 .dbline -1
0476 .dbline 477
0476 ; else
0476 ; {
0476 ; asm("NOP");
0476 ; }
0476 ; break;
0476 ;
0476 ; default:break;
0476 ; }
0476 ;
0476 ;
0476 ; }
0476 ; /*****************************************************************/
0476 ; unsigned char IO_in(unsigned char IO_channel)
0476 ; {
0476 .dbline 479
0476 ; unsigned char temp;
0476 ; temp=0;
0476 4427 clr R20
0478 .dbline 480
0478 ; switch (IO_channel)
0478 602F mov R22,R16
047A 7727 clr R23
04
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -