📄 li_jyq.lst
字号:
39E F429 BNE 0x03A4
(0300) {
(0301) PORTB=DATA_HIG; //D18 电流范围选择方式 0:VDAC/8Rs 1:VDAC/4Rs
39F BAC8 OUT 0x18,R12
(0302) PORTB=DATA_HIG|CLOK_HIG;
3A0 2C2C MOV R2,R12
3A1 2A26 OR R2,R22
3A2 BA28 OUT 0x18,R2
(0303) }
3A3 C004 RJMP 0x03A8
(0304) else //进样盘,旋转臂电机电流0。25A
(0305) {
(0306) PORTB=DATA_LOW; //D18 电流范围选择方式 0:VDAC/8Rs 1:VDAC/4Rs
3A4 BAA8 OUT 0x18,R10
(0307) PORTB=DATA_LOW|CLOK_HIG;
3A5 2C2A MOV R2,R10
3A6 2A26 OR R2,R22
3A7 BA28 OUT 0x18,R2
(0308) }
(0309) PORTB=DATA_LOW; //D17 参考电压方式 0:内部2V参考电压 1:外部参考电压
3A8 BAA8 OUT 0x18,R10
(0310) PORTB=DATA_LOW|CLOK_HIG;
3A9 2C2A MOV R2,R10
3AA 2A26 OR R2,R22
3AB BA28 OUT 0x18,R2
(0311)
(0312) PORTB=DATA_LOW; //D16 H桥2衰减模式 0:混合衰减模式 1:慢衰减模式//
3AC BAA8 OUT 0x18,R10
(0313) PORTB=DATA_LOW|CLOK_HIG;
3AD 2C2A MOV R2,R10
3AE 2A26 OR R2,R22
3AF BA28 OUT 0x18,R2
(0314)
(0315) PORTB=DATA_LOW; //D15 H桥1衰减模式 0:混合衰减模式 1:慢衰减模式//
3B0 BAA8 OUT 0x18,R10
(0316) PORTB=DATA_LOW|CLOK_HIG;
3B1 2C2A MOV R2,R10
3B2 2A26 OR R2,R22
3B3 BA28 OUT 0x18,R2
(0317)
(0318) if(Bridge2DAC&0x80) //D14 绕组2电流方向 0:OUT2B->OUT2A 0:OUT2A->OUT2B
3B4 8808 LDD R0,Y+16
3B5 FE07 SBRS R0,7
3B6 C005 RJMP 0x03BC
(0319) {
(0320) PORTB=DATA_HIG;
3B7 BAC8 OUT 0x18,R12
(0321) PORTB=DATA_HIG|CLOK_HIG;
3B8 2C2C MOV R2,R12
3B9 2A26 OR R2,R22
3BA BA28 OUT 0x18,R2
(0322) }
3BB C004 RJMP 0x03C0
(0323) else{
(0324) PORTB=DATA_LOW;
3BC BAA8 OUT 0x18,R10
(0325) PORTB=DATA_LOW|CLOK_HIG;
3BD 2C2A MOV R2,R10
3BE 2A26 OR R2,R22
3BF BA28 OUT 0x18,R2
(0326) }
(0327)
(0328) if(Bridge2DAC&0x40) //D13 绕组1电流方向 0:OUT1B->OUT1A 0:OUT1A->OUT1B
3C0 8808 LDD R0,Y+16
3C1 FE06 SBRS R0,6
3C2 C005 RJMP 0x03C8
(0329) {
(0330) PORTB=DATA_HIG;
3C3 BAC8 OUT 0x18,R12
(0331) PORTB=DATA_HIG|CLOK_HIG;
3C4 2C2C MOV R2,R12
3C5 2A26 OR R2,R22
3C6 BA28 OUT 0x18,R2
(0332) }
3C7 C004 RJMP 0x03CC
(0333) else{
(0334) PORTB=DATA_LOW;
3C8 BAA8 OUT 0x18,R10
(0335) PORTB=DATA_LOW|CLOK_HIG;
3C9 2C2A MOV R2,R10
3CA 2A26 OR R2,R22
3CB BA28 OUT 0x18,R2
(0336) }
(0337)
(0338) if(Bridge2DAC&0x20) //D12 绕组2电流数据最高位 (六位 0-64)
3CC 8808 LDD R0,Y+16
3CD FE05 SBRS R0,5
3CE C005 RJMP 0x03D4
(0339) {
(0340) PORTB=DATA_HIG;
3CF BAC8 OUT 0x18,R12
(0341) PORTB=DATA_HIG|CLOK_HIG;
3D0 2C2C MOV R2,R12
3D1 2A26 OR R2,R22
3D2 BA28 OUT 0x18,R2
(0342) }
3D3 C004 RJMP 0x03D8
(0343) else{
(0344) PORTB=DATA_LOW;
3D4 BAA8 OUT 0x18,R10
(0345) PORTB=DATA_LOW|CLOK_HIG;
3D5 2C2A MOV R2,R10
3D6 2A26 OR R2,R22
3D7 BA28 OUT 0x18,R2
(0346) }
(0347)
(0348) if(Bridge2DAC&0x10) //D11 绕组2电流数据第五位
3D8 8808 LDD R0,Y+16
3D9 FE04 SBRS R0,4
3DA C005 RJMP 0x03E0
(0349) {
(0350) PORTB=DATA_HIG;
3DB BAC8 OUT 0x18,R12
(0351) PORTB=DATA_HIG|CLOK_HIG;
3DC 2C2C MOV R2,R12
3DD 2A26 OR R2,R22
3DE BA28 OUT 0x18,R2
(0352) }
3DF C004 RJMP 0x03E4
(0353) else{
(0354) PORTB=DATA_LOW;
3E0 BAA8 OUT 0x18,R10
(0355) PORTB=DATA_LOW|CLOK_HIG;
3E1 2C2A MOV R2,R10
3E2 2A26 OR R2,R22
3E3 BA28 OUT 0x18,R2
(0356) }
(0357)
(0358) if(Bridge2DAC&0x08) //D10 绕组2电流数据第四位
3E4 8808 LDD R0,Y+16
3E5 FE03 SBRS R0,3
3E6 C005 RJMP 0x03EC
(0359) {
(0360) PORTB=DATA_HIG;
3E7 BAC8 OUT 0x18,R12
(0361) PORTB=DATA_HIG|CLOK_HIG;
3E8 2C2C MOV R2,R12
3E9 2A26 OR R2,R22
3EA BA28 OUT 0x18,R2
(0362) }
3EB C004 RJMP 0x03F0
(0363) else{
(0364) PORTB=DATA_LOW;
3EC BAA8 OUT 0x18,R10
(0365) PORTB=DATA_LOW|CLOK_HIG;
3ED 2C2A MOV R2,R10
3EE 2A26 OR R2,R22
3EF BA28 OUT 0x18,R2
(0366) }
(0367)
(0368) if(Bridge2DAC&0x04) //D9 绕组2电流数据第三位
3F0 8808 LDD R0,Y+16
3F1 FE02 SBRS R0,2
3F2 C005 RJMP 0x03F8
(0369) {
(0370) PORTB=DATA_HIG;
3F3 BAC8 OUT 0x18,R12
(0371) PORTB=DATA_HIG|CLOK_HIG;
3F4 2C2C MOV R2,R12
3F5 2A26 OR R2,R22
3F6 BA28 OUT 0x18,R2
(0372) }
3F7 C004 RJMP 0x03FC
(0373) else{
(0374) PORTB=DATA_LOW;
3F8 BAA8 OUT 0x18,R10
(0375) PORTB=DATA_LOW|CLOK_HIG;
3F9 2C2A MOV R2,R10
3FA 2A26 OR R2,R22
3FB BA28 OUT 0x18,R2
(0376) }
(0377)
(0378) if(Bridge2DAC&0x02) //D8 绕组2电流数据第二位
3FC 8808 LDD R0,Y+16
3FD FE01 SBRS R0,1
3FE C005 RJMP 0x0404
(0379) {
(0380) PORTB=DATA_HIG;
3FF BAC8 OUT 0x18,R12
(0381) PORTB=DATA_HIG|CLOK_HIG;
400 2C2C MOV R2,R12
401 2A26 OR R2,R22
402 BA28 OUT 0x18,R2
(0382) }
403 C004 RJMP 0x0408
(0383) else{
(0384) PORTB=DATA_LOW;
404 BAA8 OUT 0x18,R10
(0385) PORTB=DATA_LOW|CLOK_HIG;
405 2C2A MOV R2,R10
406 2A26 OR R2,R22
407 BA28 OUT 0x18,R2
(0386) }
(0387)
(0388) if(Bridge2DAC&0x01) //D7 绕组2电流数据最低位
408 8808 LDD R0,Y+16
409 FE00 SBRS R0,0
40A C005 RJMP 0x0410
(0389) {
(0390) PORTB=DATA_HIG;
40B BAC8 OUT 0x18,R12
(0391) PORTB=DATA_HIG|CLOK_HIG;
40C 2C2C MOV R2,R12
40D 2A26 OR R2,R22
40E BA28 OUT 0x18,R2
(0392) }
40F C004 RJMP 0x0414
(0393) else{
(0394) PORTB=DATA_LOW;
410 BAA8 OUT 0x18,R10
(0395) PORTB=DATA_LOW|CLOK_HIG;
411 2C2A MOV R2,R10
412 2A26 OR R2,R22
413 BA28 OUT 0x18,R2
(0396) }
(0397)
(0398) if(Bridge1DAC&0x20) //D6 绕组1电流数据最高位(0-64)
414 840E LDD R0,Y+14
415 FE05 SBRS R0,5
416 C005 RJMP 0x041C
(0399) {
(0400) PORTB=DATA_HIG;
417 BAC8 OUT 0x18,R12
(0401) PORTB=DATA_HIG|CLOK_HIG;
418 2C2C MOV R2,R12
419 2A26 OR R2,R22
41A BA28 OUT 0x18,R2
(0402) }
41B C004 RJMP 0x0420
(0403) else{
(0404) PORTB=DATA_LOW;
41C BAA8 OUT 0x18,R10
(0405) PORTB=DATA_LOW|CLOK_HIG;
41D 2C2A MOV R2,R10
41E 2A26 OR R2,R22
41F BA28 OUT 0x18,R2
(0406) }
(0407)
(0408) if(Bridge1DAC&0x10) //D5 绕组1电流数据第5位
420 840E LDD R0,Y+14
421 FE04 SBRS R0,4
422 C005 RJMP 0x0428
(0409) {
(0410) PORTB=DATA_HIG;
423 BAC8 OUT 0x18,R12
(0411) PORTB=DATA_HIG|CLOK_HIG;
424 2C2C MOV R2,R12
425 2A26 OR R2,R22
426 BA28 OUT 0x18,R2
(0412) }
427 C004 RJMP 0x042C
(0413) else{
(0414) PORTB=DATA_LOW;
428 BAA8 OUT 0x18,R10
(0415) PORTB=DATA_LOW|CLOK_HIG;
429 2C2A MOV R2,R10
42A 2A26 OR R2,R22
42B BA28 OUT 0x18,R2
(0416) }
(0417)
(0418) if(Bridge1DAC&0x08) //D4 绕组1电流数据第4位
42C 840E LDD R0,Y+14
42D FE03 SBRS R0,3
42E C005 RJMP 0x0434
(0419) {
(0420) PORTB=DATA_HIG;
42F BAC8 OUT 0x18,R12
(0421) PORTB=DATA_HIG|CLOK_HIG;
430 2C2C MOV R2,R12
431 2A26 OR R2,R22
432 BA28 OUT 0x18,R2
(0422) }
433 C004 RJMP 0x0438
(0423) else{
(0424) PORTB=DATA_LOW;
434 BAA8 OUT 0x18,R10
(0425) PORTB=DATA_LOW|CLOK_HIG;
435 2C2A MOV R2,R10
436 2A26 OR R2,R22
437 BA28 OUT 0x18,R2
(0426) }
(0427)
(0428) if(Bridge1DAC&0x04) //D3 绕组1电流数据第3位
438 840E LDD R0,Y+14
439 FE02 SBRS R0,2
43A C005 RJMP 0x0440
(0429) {
(0430) PORTB=DATA_HIG;
43B BAC8 OUT 0x18,R12
(0431) PORTB=DATA_HIG|CLOK_HIG;
43C 2C2C MOV R2,R12
43D 2A26 OR R2,R22
43E BA28 OUT 0x18,R2
(0432) }
43F C004 RJMP 0x0444
(0433) else{
(0434) PORTB=DATA_LOW;
440 BAA8 OUT 0x18,R10
(0435) PORTB=DATA_LOW|CLOK_HIG;
441 2C2A MOV R2,R10
442 2A26 OR R2,R22
443 BA28 OUT 0x18,R2
(0436) }
(0437)
(0438) if(Bridge1DAC&0x02) //D2 绕组1电流数据第2位
444 840E LDD R0,Y+14
445 FE01 SBRS R0,1
446 C005 RJMP 0x044C
(0439) {
(0440) PORTB=DATA_HIG;
447 BAC8 OUT 0x18,R12
(0441) PORTB=DATA_HIG|CLOK_HIG;
448 2C2C MOV R2,R12
449 2A26 OR R2,R22
44A BA28 OUT 0x18,R2
(0442) }
44B C004 RJMP 0x0450
(0443) else{
(0444) PORTB=DATA_LOW;
44C BAA8 OUT 0x18,R10
(0445) PORTB=DATA_LOW|CLOK_HIG;
44D 2C2A MOV R2,R10
44E 2A26 OR R2,R22
44F BA28 OUT 0x18,R2
(0446) }
(0447)
(0448) if(Bridge1DAC&0x01) //D1 绕组1电流数据最低位
450 840E LDD R0,Y+14
451 FE00 SBRS R0,0
452 C005 RJMP 0x0458
(0449) {
(0450) PORTB=DATA_HIG;
453 BAC8 OUT 0x18,R12
(0451) PORTB=DATA_HIG|CLOK_HIG;
454 2C2C MOV R2,R12
455 2A26 OR R2,R22
456 BA28 OUT 0x18,R2
(0452) }
457 C004 RJMP 0x045C
(0453) else{
(0454) PORTB=DATA_LOW;
458 BAA8 OUT 0x18,R10
(0455) PORTB=DATA_LOW|CLOK_HIG;
459 2C2A MOV R2,R10
45A 2A26 OR R2,R22
45B BA28 OUT 0x18,R2
(0456) }
(0457)
(0458) PORTB=DATA_LOW; //D0 数据模式
45C BAA8 OUT 0x18,R10
(0459) PORTB=DATA_LOW|CLOK_HIG;
45D 2C2A MOV R2,R10
45E 2A26 OR R2,R22
45F BA28 OUT 0x18,R2
(0460)
(0461) PORTE=STRB_HIG;
460 B943 OUT 0x03,R20
(0462) PORTE=STRB_HIG;
461 B943 OUT 0x03,R20
(0463)
(0464) return 0x01;
462 E001 LDI R16,1
463 C001 RJMP 0x0465
(0465) }
(0466) else{
(0467) return 0x00;
464 2700 CLR R16
465 9622 ADIW R28,2
466 940E 1736 CALL pop_xgsetF0FC
468 9624 ADIW R28,4
469 9508 RET
(0468) }
(0469)
(0470) }
(0471)
(0472) //输出数据
(0473) void outportb(uint Addr, uchar Data)
(0474) {
(0475) if(Addr==D12_DATA)
_outportb:
Data --> R18
Addr --> R16
46A 3000 CPI R16,0
46B 0701 CPC R16,R17
46C F419 BNE 0x0470
(0476) {
(0477) USB_DATA = Data;
46D 9320 F000 STS 0xF000,R18
(0478) }
46F C006 RJMP 0x0476
(0479) else if(Addr==D12_COMMAND)
470 3001 CPI R16,1
471 E0E0 LDI R30,0
472 071E CPC R17,R30
473 F411 BNE 0x0476
(0480) {
(0481) USB_COMMAND = Data;
474 9320 F001 STS 0xF001,R18
(0482) }
476 9508 RET
_inportb:
Data --> R10
Addr --> R16
477 92AA ST R10,-Y
(0483) }
(0484)
(0485) //输入数据
(0486) uchar inportb(uint Addr)
(0487) {
(0488) unsigned char Data;
(0489)
(0490) if(Addr==D12_DATA)
478 3000 CPI R16,0
479 0701 CPC R16,R17
47A F419 BNE 0x047E
(0491) {
(0492) Data = USB_DATA;
47B 90A0 F000 LDS R10,0xF000
(0493) }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -