📄 m8mpt.lis
字号:
0088 ; void uart_init(void)
0088 ; {
0088 .dbline 128
0088 ;
0088 ; OUTDEOFF;
0088 9498 cbi 0x12,4
008A .dbline 129
008A ; UCSRB=0x00;
008A 2224 clr R2
008C 2AB8 out 0xa,R2
008E .dbline 130
008E ; UBRRL=0x25; //19.2kbps
008E 85E2 ldi R24,37
0090 89B9 out 0x9,R24
0092 .dbline 132
0092 ; //TX EN ,9Bit ,Adress init
0092 ; UCSRB=((1<<RXCIE)|(1<<TXCIE)|(1<<UCSZ2));
0092 84EC ldi R24,196
0094 8AB9 out 0xa,R24
0096 .dbline -2
0096 L16:
0096 .dbline 0 ; func end
0096 0895 ret
0098 .dbend
0098 .dbfunc e timer_init _timer_init fV
.even
0098 _timer_init::
0098 .dbline -1
0098 .dbline 138
0098 ; //UCSRB=((1<<TXCIE)|(1<<TXCIE)|(1<<TXEN)|(1<<TXB8));
0098 ; }//void uart_init(void)
0098 ;
0098 ; ///////////////Timer init
0098 ; void timer_init(void)
0098 ; {
0098 .dbline 139
0098 ; ;
0098 .dbline -2
0098 L17:
0098 .dbline 0 ; func end
0098 0895 ret
009A .dbend
.area vector(rom, abs)
.org 16
0010 4DC0 rjmp _timer1_ovf_isr
.area text(rom, con, rel)
009A .dbfile E:\m8com\M8MPt.c
009A .dbfunc e timer1_ovf_isr _timer1_ovf_isr fV
.even
009A _timer1_ovf_isr::
009A .dbline -1
009A .dbline 145
009A ; }
009A ;
009A ;
009A ; #pragma interrupt_handler timer1_ovf_isr:9
009A ; void timer1_ovf_isr(void)
009A ; {
009A .dbline 146
009A ; ;
009A .dbline -2
009A L18:
009A .dbline 0 ; func end
009A 1895 reti
009C .dbend
.area vector(rom, abs)
.org 26
001A 4EC0 rjmp _uart1_tx_isr
.area text(rom, con, rel)
009C .dbfile E:\m8com\M8MPt.c
009C .dbfunc e uart1_tx_isr _uart1_tx_isr fV
.even
009C _uart1_tx_isr::
009C 2A92 st -y,R2
009E 8A93 st -y,R24
00A0 9A93 st -y,R25
00A2 EA93 st -y,R30
00A4 FA93 st -y,R31
00A6 2FB6 in R2,0x3f
00A8 2A92 st -y,R2
00AA .dbline -1
00AA .dbline 153
00AA ;
00AA ; }//void timer1_ovf_isr(void)
00AA ;
00AA ; //TR to SLAVE
00AA ; #pragma interrupt_handler uart1_tx_isr:14
00AA ; void uart1_tx_isr(void)
00AA ; {
00AA .dbline 154
00AA ; TXbufP++;
00AA 80910700 lds R24,_TXbufP
00AE 8F5F subi R24,255 ; addi 1
00B0 80930700 sts _TXbufP,R24
00B4 .dbline 157
00B4 ;
00B4 ;
00B4 ; if(TXbufP<14)
00B4 8E30 cpi R24,14
00B6 A0F4 brsh L20
00B8 .dbline 158
00B8 ; {
00B8 .dbline 160
00B8 ;
00B8 ; if(TXbufP==2 )
00B8 8230 cpi R24,2
00BA 41F4 brne L22
00BC .dbline 161
00BC ; {
00BC .dbline 162
00BC ; OUTLED3Pulse;
00BC 84E0 ldi R24,4
00BE 28B2 in R2,0x18
00C0 2826 eor R2,R24
00C2 28BA out 0x18,R2
00C4 .dbline 165
00C4 ; // Delay_1ms();
00C4 ; //delayXms(1000);
00C4 ; TXDATA;
00C4 5098 cbi 0xa,0
00C6 .dbline 165
00C6 81E0 ldi R24,1
00C8 80930000 sts _TXADFG,R24
00CC .dbline 165
00CC .dbline 169
00CC ;
00CC ; //OUTLED3Pulse;
00CC ; //
00CC ; }//if(TXbufP>1)
00CC L22:
00CC .dbline 170
00CC ; UDR=TXBUF[TXbufP];
00CC 80E0 ldi R24,<_TXBUF
00CE 90E0 ldi R25,>_TXBUF
00D0 E0910700 lds R30,_TXbufP
00D4 FF27 clr R31
00D6 E80F add R30,R24
00D8 F91F adc R31,R25
00DA 2080 ldd R2,z+0
00DC 2CB8 out 0xc,R2
00DE .dbline 171
00DE ; }
00DE 03C0 rjmp L21
00E0 L20:
00E0 .dbline 173
00E0 ; else
00E0 ; {
00E0 .dbline 174
00E0 ; OUTLED1ON;
00E0 C098 cbi 0x18,0
00E2 .dbline 175
00E2 ; RXENABLE
00E2 5398 cbi 0xa,3
00E4 .dbline 175
00E4 549A sbi 0xa,4
00E6 .dbline 176
00E6 ; }//else
00E6 L21:
00E6 .dbline 177
00E6 ; OUTLED2Pulse;
00E6 82E0 ldi R24,2
00E8 28B2 in R2,0x18
00EA 2826 eor R2,R24
00EC 28BA out 0x18,R2
00EE .dbline -2
00EE L19:
00EE 2990 ld R2,y+
00F0 2FBE out 0x3f,R2
00F2 F991 ld R31,y+
00F4 E991 ld R30,y+
00F6 9991 ld R25,y+
00F8 8991 ld R24,y+
00FA 2990 ld R2,y+
00FC .dbline 0 ; func end
00FC 1895 reti
00FE .dbend
.area vector(rom, abs)
.org 22
0016 7FC0 rjmp _uart1_rx_isr
.area text(rom, con, rel)
00FE .dbfile E:\m8com\M8MPt.c
00FE .dbfunc e uart1_rx_isr _uart1_rx_isr fV
.even
00FE _uart1_rx_isr::
00FE 2A92 st -y,R2
0100 8A93 st -y,R24
0102 9A93 st -y,R25
0104 EA93 st -y,R30
0106 FA93 st -y,R31
0108 2FB6 in R2,0x3f
010A 2A92 st -y,R2
010C .dbline -1
010C .dbline 184
010C .dbline 185
010C 80E0 ldi R24,<_RXBUF
010E 90E0 ldi R25,>_RXBUF
0110 E0910800 lds R30,_RXbufP
0114 FF27 clr R31
0116 E80F add R30,R24
0118 F91F adc R31,R25
011A 2CB0 in R2,0xc
011C 2082 std z+0,R2
011E .dbline 186
011E 80910800 lds R24,_RXbufP
0122 8F5F subi R24,255 ; addi 1
0124 80930800 sts _RXbufP,R24
0128 .dbline 187
0128 80910B00 lds R24,_RXBUF+11
012C 803F cpi R24,240
012E 09F4 brne L25
0130 .dbline 188
0130 C398 cbi 0x18,3
0132 L25:
0132 .dbline -2
0132 L24:
0132 2990 ld R2,y+
0134 2FBE out 0x3f,R2
0136 F991 ld R31,y+
0138 E991 ld R30,y+
013A 9991 ld R25,y+
013C 8991 ld R24,y+
013E 2990 ld R2,y+
0140 .dbline 0 ; func end
0140 1895 reti
0142 .dbend
0142 .dbfunc e TXbufRDY _TXbufRDY fV
.even
0142 _TXbufRDY::
0142 .dbline -1
0142 .dbline 192
0142 ; //Delay_1ms();
0142 ; //OUTLED2Pulse;
0142 ; }//void uart1_tx_isr(void)
0142 ;
0142 ; #pragma interrupt_handler uart1_rx_isr:12
0142 ; void uart1_rx_isr(void)
0142 ; {
0142 ; RXBUF[RXbufP]=UDR;
0142 ; RXbufP++;
0142 ; if(RXBUF[11]==TRFG3)
0142 ; OUTLED4ON;
0142 ;
0142 ; }//void uart1_rx_isr(void)
0142 ; void TXbufRDY(void)
0142 ; {
0142 .dbline 193
0142 ; TXBUF[0]=5;
0142 85E0 ldi R24,5
0144 80931E00 sts _TXBUF,R24
0148 .dbline 194
0148 ; TXBUF[1]=5;
0148 80931F00 sts _TXBUF+1,R24
014C .dbline 195
014C ; TXBUF[2]=TRFG0;
014C 8EEF ldi R24,254
014E 80932000 sts _TXBUF+2,R24
0152 .dbline 196
0152 ; TXBUF[3]=TRFG1;
0152 8DEF ldi R24,253
0154 80932100 sts _TXBUF+3,R24
0158 .dbline 197
0158 ; TXBUF[4]=0;
0158 2224 clr R2
015A 20922200 sts _TXBUF+4,R2
015E .dbline 198
015E ; TXBUF[5]=1;
015E 81E0 ldi R24,1
0160 80932300 sts _TXBUF+5,R24
0164 .dbline 199
0164 ; TXBUF[12]=TRFG2;
0164 81EF ldi R24,241
0166 80932A00 sts _TXBUF+12,R24
016A .dbline 200
016A ; TXBUF[13]=TRFG3;
016A 80EF ldi R24,240
016C 80932B00 sts _TXBUF+13,R24
0170 .dbline -2
0170 L28:
0170 .dbline 0 ; func end
0170 0895 ret
0172 .dbend
.area data(ram, con, rel)
000D .dbfile E:\m8com\M8MPt.c
000D _SLSTEP::
000D .blkb 1
.area idata
000D 0A .byte 10
.area data(ram, con, rel)
000E .dbfile E:\m8com\M8MPt.c
000E .dbsym e SLSTEP _SLSTEP c
.area text(rom, con, rel)
0172 .dbfile E:\m8com\M8MPt.c
0172 .dbfunc e main _main fV
0172 ; i -> R20
.even
0172 _main::
0172 .dbline -1
0172 .dbline 207
0172 ; }//void TXbufRDY(void)
0172 ;
0172 ;
0172 ;
0172 ; unsigned char SLSTEP=10;
0172 ; void main()
0172 ; {
0172 .dbline 208
0172 ; unsigned char i=0;
0172 4427 clr R20
0174 .dbline 211
0174 ;
0174 ; //delayXms(500);
0174 ; port_init(); //IO初始化
0174 79DF rcall _port_init
0176 .dbline 212
0176 ; uart_init();
0176 88DF rcall _uart_init
0178 .dbline 215
0178 ; //timer_init();
0178 ;
0178 ; delayXms(100);
0178 04E6 ldi R16,100
017A 10E0 ldi R17,0
017C 68DF rcall _delayXms
017E .dbline 216
017E ; RXbufP=0;
017E 2224 clr R2
0180 20920800 sts _RXbufP,R2
0184 .dbline 217
0184 ; TXbufRDY()
0184 DEDF rcall _TXbufRDY
0186 7894 sei
0188 .dbline 219
0188 ; SEI();
0188 ; TXbufP=0;
0188 2224 clr R2
018A 20920700 sts _TXbufP,R2
018E .dbline 220
018E ; TXADDRESS;
018E 509A sbi 0xa,0
0190 .dbline 220
0190 20920000 sts _TXADFG,R2
0194 .dbline 220
0194 .dbline 221
0194 ; TXENABLE;
0194 5498 cbi 0xa,4
0196 .dbline 221
0196 539A sbi 0xa,3
0198 .dbline 221
0198 .dbline 222
0198 ; UDR=TXBUF[0];
0198 20901E00 lds R2,_TXBUF
019C 2CB8 out 0xc,R2
019E L37:
019E .dbline 224
019E .dbline 228
019E L38:
019E .dbline 223
019E FFCF rjmp L37
01A0 X0:
01A0 .dbline -2
01A0 L36:
01A0 .dbline 0 ; func end
01A0 0895 ret
01A2 .dbsym r i 20 c
01A2 .dbend
.area bss(ram, con, rel)
0000 .dbfile E:\m8com\M8MPt.c
0000 _RXBUF::
0000 .blkb 30
001E .dbsym e RXBUF _RXBUF A[30:30]c
001E _TXBUF::
001E .blkb 30
003C .dbsym e TXBUF _TXBUF A[30:30]c
003C _SlaveEN::
003C .blkb 17
004D .dbsym e SlaveEN _SlaveEN A[17:17]c
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -