📄 uart.lis
字号:
047E 5D9B sbis 0xb,5
0480 FECF rjmp L80
0482 ; UDR=0xaa;
0482 8AEA ldi R24,170
0484 8CB9 out 0xc,R24
0486 ; xx0=xx0^0xaa;
0486 9927 clr R25
0488 20902900 lds R2,_xx0
048C 3324 clr R3
048E 2826 eor R2,R24
0490 3926 eor R3,R25
0492 20922900 sts _xx0,R2
0496 ; xx1+=0xaa;
0496 80912800 lds R24,_xx1
049A 8655 subi R24,86 ; addi 170
049C 80932800 sts _xx1,R24
04A0 L83:
04A0 L84:
04A0 ; while (!(UCSRA&(1<<UDRE)));
04A0 5D9B sbis 0xb,5
04A2 FECF rjmp L83
04A4 ; UDR=addressper;
04A4 80E1 ldi R24,16
04A6 8CB9 out 0xc,R24
04A8 ; xx0=xx0^addressper;
04A8 20902900 lds R2,_xx0
04AC 2826 eor R2,R24
04AE 20922900 sts _xx0,R2
04B2 ; xx1+=addressper;
04B2 80912800 lds R24,_xx1
04B6 805F subi R24,240 ; addi 16
04B8 80932800 sts _xx1,R24
04BC L86:
04BC L87:
04BC ; while (!(UCSRA&(1<<UDRE)));
04BC 5D9B sbis 0xb,5
04BE FECF rjmp L86
04C0 ; UDR=0x01;
04C0 81E0 ldi R24,1
04C2 8CB9 out 0xc,R24
04C4 ; xx0=xx0^0x01;
04C4 20902900 lds R2,_xx0
04C8 2826 eor R2,R24
04CA 20922900 sts _xx0,R2
04CE ; xx1+=0x01;
04CE 80912800 lds R24,_xx1
04D2 8F5F subi R24,255 ; addi 1
04D4 80932800 sts _xx1,R24
04D8 L89:
04D8 L90:
04D8 ; while (!(UCSRA&(1<<UDRE)));
04D8 5D9B sbis 0xb,5
04DA FECF rjmp L89
04DC ; UDR=0x03;
04DC 83E0 ldi R24,3
04DE 8CB9 out 0xc,R24
04E0 ; xx0=xx0^0x03;
04E0 20902900 lds R2,_xx0
04E4 2826 eor R2,R24
04E6 20922900 sts _xx0,R2
04EA ; xx1+=0x03;
04EA 80912800 lds R24,_xx1
04EE 8D5F subi R24,253 ; addi 3
04F0 80932800 sts _xx1,R24
04F4 L92:
04F4 L93:
04F4 ; while (!(UCSRA&(1<<UDRE)));
04F4 5D9B sbis 0xb,5
04F6 FECF rjmp L92
04F8 ; for(w1=0;w1<3;w1++)
04F8 2224 clr R2
04FA 20922200 sts _w1,R2
04FE 26C0 rjmp L98
0500 L95:
0500 ; {
0500 ; UDR=databak[w1];
0500 80E0 ldi R24,<_databak
0502 90E0 ldi R25,>_databak
0504 E0912200 lds R30,_w1
0508 FF27 clr R31
050A E80F add R30,R24
050C F91F adc R31,R25
050E 2080 ldd R2,z+0
0510 2CB8 out 0xc,R2
0512 ; xx0=xx0^databak[w1];
0512 E0912200 lds R30,_w1
0516 FF27 clr R31
0518 E80F add R30,R24
051A F91F adc R31,R25
051C 2080 ldd R2,z+0
051E 30902900 lds R3,_xx0
0522 3224 eor R3,R2
0524 30922900 sts _xx0,R3
0528 ; xx1+=databak[w1];
0528 E0912200 lds R30,_w1
052C FF27 clr R31
052E E80F add R30,R24
0530 F91F adc R31,R25
0532 2080 ldd R2,z+0
0534 30902800 lds R3,_xx1
0538 320C add R3,R2
053A 30922800 sts _xx1,R3
053E L99:
053E L100:
053E 5D9B sbis 0xb,5
0540 FECF rjmp L99
0542 L96:
0542 80912200 lds R24,_w1
0546 8F5F subi R24,255 ; addi 1
0548 80932200 sts _w1,R24
054C L98:
054C 80912200 lds R24,_w1
0550 8330 cpi R24,3
0552 B0F2 brlo L95
0554 ; while (!(UCSRA&(1<<UDRE)));
0554 ; }
0554 ; UDR=0x16;
0554 86E1 ldi R24,22
0556 8CB9 out 0xc,R24
0558 ; xx0=xx0^0x16;
0558 20902900 lds R2,_xx0
055C 2826 eor R2,R24
055E 20922900 sts _xx0,R2
0562 ; xx1+=0x16;
0562 80912800 lds R24,_xx1
0566 8A5E subi R24,234 ; addi 22
0568 80932800 sts _xx1,R24
056C L102:
056C L103:
056C ; while (!(UCSRA&(1<<UDRE)));
056C 5D9B sbis 0xb,5
056E FECF rjmp L102
0570 ; UDR=xx0;
0570 20902900 lds R2,_xx0
0574 2CB8 out 0xc,R2
0576 L105:
0576 L106:
0576 ; while (!(UCSRA&(1<<UDRE)));
0576 5D9B sbis 0xb,5
0578 FECF rjmp L105
057A L79:
057A .dbline 0 ; func end
057A 0895 ret
.even
057C _currentrepol::
057C ; }
057C ;
057C ; /* 发送交流电流值 */
057C ; void currentrepol(void)
057C ; {
057C ; xx0=0;xx1=0;
057C 2224 clr R2
057E 20922900 sts _xx0,R2
0582 20922800 sts _xx1,R2
0586 ; UDR=0x55;
0586 85E5 ldi R24,85
0588 8CB9 out 0xc,R24
058A ; xx0=xx0^0x55;
058A 2826 eor R2,R24
058C 20922900 sts _xx0,R2
0590 ; xx1+=0x55;
0590 80912800 lds R24,_xx1
0594 8B5A subi R24,171 ; addi 85
0596 80932800 sts _xx1,R24
059A L109:
059A L110:
059A ; while (!(UCSRA&(1<<UDRE)));
059A 5D9B sbis 0xb,5
059C FECF rjmp L109
059E ; UDR=0xaa;
059E 8AEA ldi R24,170
05A0 8CB9 out 0xc,R24
05A2 ; xx0=xx0^0xaa;
05A2 9927 clr R25
05A4 20902900 lds R2,_xx0
05A8 3324 clr R3
05AA 2826 eor R2,R24
05AC 3926 eor R3,R25
05AE 20922900 sts _xx0,R2
05B2 ; xx1+=0xaa;
05B2 80912800 lds R24,_xx1
05B6 8655 subi R24,86 ; addi 170
05B8 80932800 sts _xx1,R24
05BC L112:
05BC L113:
05BC ; while (!(UCSRA&(1<<UDRE)));
05BC 5D9B sbis 0xb,5
05BE FECF rjmp L112
05C0 ; UDR=addressper;
05C0 80E1 ldi R24,16
05C2 8CB9 out 0xc,R24
05C4 ; xx0=xx0^addressper;
05C4 20902900 lds R2,_xx0
05C8 2826 eor R2,R24
05CA 20922900 sts _xx0,R2
05CE ; xx1+=addressper;
05CE 80912800 lds R24,_xx1
05D2 805F subi R24,240 ; addi 16
05D4 80932800 sts _xx1,R24
05D8 L115:
05D8 L116:
05D8 ; while (!(UCSRA&(1<<UDRE)));
05D8 5D9B sbis 0xb,5
05DA FECF rjmp L115
05DC ; UDR=0x02;
05DC 82E0 ldi R24,2
05DE 8CB9 out 0xc,R24
05E0 ; xx0=xx0^0x02;
05E0 20902900 lds R2,_xx0
05E4 2826 eor R2,R24
05E6 20922900 sts _xx0,R2
05EA ; xx1+=0x02;
05EA 80912800 lds R24,_xx1
05EE 8E5F subi R24,254 ; addi 2
05F0 80932800 sts _xx1,R24
05F4 L118:
05F4 L119:
05F4 ; while (!(UCSRA&(1<<UDRE)));
05F4 5D9B sbis 0xb,5
05F6 FECF rjmp L118
05F8 ; UDR=0x03;
05F8 83E0 ldi R24,3
05FA 8CB9 out 0xc,R24
05FC ; xx0=xx0^0x03;
05FC 20902900 lds R2,_xx0
0600 2826 eor R2,R24
0602 20922900 sts _xx0,R2
0606 ; xx1+=0x03;
0606 80912800 lds R24,_xx1
060A 8D5F subi R24,253 ; addi 3
060C 80932800 sts _xx1,R24
0610 L121:
0610 L122:
0610 ; while (!(UCSRA&(1<<UDRE)));
0610 5D9B sbis 0xb,5
0612 FECF rjmp L121
0614 ; for(w1=0;w1<3;w1++)
0614 2224 clr R2
0616 20922200 sts _w1,R2
061A 26C0 rjmp L127
061C L124:
061C ; {
061C ; UDR=databak[w1];
061C 80E0 ldi R24,<_databak
061E 90E0 ldi R25,>_databak
0620 E0912200 lds R30,_w1
0624 FF27 clr R31
0626 E80F add R30,R24
0628 F91F adc R31,R25
062A 2080 ldd R2,z+0
062C 2CB8 out 0xc,R2
062E ; xx0=xx0^databak[w1];
062E E0912200 lds R30,_w1
0632 FF27 clr R31
0634 E80F add R30,R24
0636 F91F adc R31,R25
0638 2080 ldd R2,z+0
063A 30902900 lds R3,_xx0
063E 3224 eor R3,R2
0640 30922900 sts _xx0,R3
0644 ; xx1+=databak[w1];
0644 E0912200 lds R30,_w1
0648 FF27 clr R31
064A E80F add R30,R24
064C F91F adc R31,R25
064E 2080 ldd R2,z+0
0650 30902800 lds R3,_xx1
0654 320C add R3,R2
0656 30922800 sts _xx1,R3
065A L128:
065A L129:
065A 5D9B sbis 0xb,5
065C FECF rjmp L128
065E L125:
065E 80912200 lds R24,_w1
0662 8F5F subi R24,255 ; addi 1
0664 80932200 sts _w1,R24
0668 L127:
0668 80912200 lds R24,_w1
066C 8330 cpi R24,3
066E B0F2 brlo L124
0670 ; while (!(UCSRA&(1<<UDRE)));
0670 ; }
0670 ; UDR=0x16;
0670 86E1 ldi R24,22
0672 8CB9 out 0xc,R24
0674 ; xx0=xx0^0x16;
0674 20902900 lds R2,_xx0
0678 2826 eor R2,R24
067A 20922900 sts _xx0,R2
067E ; xx1+=0x16;
067E 80912800 lds R24,_xx1
0682 8A5E subi R24,234 ; addi 22
0684 80932800 sts _xx1,R24
0688 L131:
0688 L132:
0688 ; while (!(UCSRA&(1<<UDRE)));
0688 5D9B sbis 0xb,5
068A FECF rjmp L131
068C ; UDR=xx0;
068C 20902900 lds R2,_xx0
0690 2CB8 out 0xc,R2
0692 L134:
0692 L135:
0692 ; while (!(UCSRA&(1<<UDRE)));
0692 5D9B sbis 0xb,5
0694 FECF rjmp L134
0696 L108:
0696 .dbline 0 ; func end
0696 0895 ret
0698 ; tmp -> R10
0698 ; itmp -> R12
0698 ; addr -> R10
.even
0698 _ReadFromCC1020Register::
0698 00D0 rcall push_gset4
069A A02E mov R10,R16
069C ; }
069C ;
069C ;
069C ;
069C ; unsigned char ReadFromCC1020Register(unsigned char addr)
069C ; {
069C ;
069C ; unsigned char itmp;
069C ; unsigned char tmp;
069C ; // P2MDOUT = 0xE0;
069C ; DDRD = 0x30;
069C 80E3 ldi R24,48
069E 81BB out 0x11,R24
06A0 ; DDRB = 0X03;
06A0 83E0 ldi R24,3
06A2 87BB out 0x17,R24
06A4 ; delay(10);
06A4 0AE0 ldi R16,10
06A6 10E0 ldi R17,0
06A8 20E0 ldi R18,0
06AA 30E0 ldi R19,0
06AC 04DE rcall _delay
06AE ; PSEL_0;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -