📄 demob-16sm.lis
字号:
.even
00B0 _transmit::
00B0 .dbline -1
00B0 .dbline 134
00B0 ; }
00B0 ;
00B0 ; /*
00B0 ; void delay2(int count)
00B0 ; {
00B0 ; int i, j;
00B0 ; for(i=count; i>0; i--)
00B0 ; for(j=10; j>0; j--)
00B0 ; ;
00B0 ; }*/
00B0 ;
00B0 ; void transmit(unsigned char abyte)
00B0 ; {
00B0 .dbline 135
00B0 ; UDR=abyte;
00B0 0CB9 out 0xc,R16
00B2 L7:
00B2 .dbline 137
00B2 ; while(!(UCSRA&0b01000000)) //b6=1 TXE
00B2 ; ;
00B2 L8:
00B2 .dbline 136
00B2 5E9B sbis 0xb,6
00B4 FECF rjmp L7
00B6 X1:
00B6 .dbline -2
00B6 L6:
00B6 .dbline 0 ; func end
00B6 0895 ret
00B8 .dbsym r abyte 16 c
00B8 .dbend
00B8 .dbfunc e main _main fV
00B8 ; outd -> R10
00B8 ; outc -> R10
00B8 ; outb -> R20
00B8 ; outa -> R20
00B8 ; dswin -> R10,R11
.even
00B8 _main::
00B8 .dbline -1
00B8 .dbline 142
00B8 ; }
00B8 ;
00B8 ; //*****************************************************************
00B8 ; void main(void)
00B8 ; {
00B8 .dbline 143
00B8 ; unsigned char outa=0b01010101, outb=0b10101010, outc=0x00, outd=0x00;
00B8 .dbline 143
00B8 4AEA ldi R20,170
00BA .dbline 143
00BA AA24 clr R10
00BC .dbline 143
00BC .dbline 145
00BC ; int dswin;
00BC ; port_init();
00BC CFDF xcall _port_init
00BE .dbline 146
00BE ; USART_init();
00BE D7DF xcall _USART_init
00C0 .dbline 147
00C0 ; SEI();
00C0 7894 sei
00C2 .dbline 148
00C2 ; WDT_off();
00C2 0E940000 xcall _WDT_off
00C6 .dbline 149
00C6 ; ldelay(50);
00C6 02E3 ldi R16,50
00C8 10E0 ldi R17,0
00CA 0E940000 xcall _ldelay
00CE .dbline 150
00CE ; lcd_on();
00CE 0E940000 xcall _lcd_on
00D2 .dbline 151
00D2 ; PORTD=0x50;
00D2 80E5 ldi R24,80
00D4 82BB out 0x12,R24
00D6 .dbline 152
00D6 ; ldelay(50);
00D6 02E3 ldi R16,50
00D8 10E0 ldi R17,0
00DA 0E940000 xcall _ldelay
00DE .dbline 153
00DE ; PORTD=0x05;
00DE 85E0 ldi R24,5
00E0 82BB out 0x12,R24
00E2 .dbline 154
00E2 ; ldelay(50);
00E2 02E3 ldi R16,50
00E4 10E0 ldi R17,0
00E6 0E940000 xcall _ldelay
00EA .dbline 155
00EA ; out_string(message1);
00EA 00E0 ldi R16,<_message1
00EC 10E0 ldi R17,>_message1
00EE 0E940000 xcall _out_string
00F2 .dbline 156
00F2 ; cursor_line2();
00F2 0E940000 xcall _cursor_line2
00F6 .dbline 157
00F6 ; out_string(message2);
00F6 00E0 ldi R16,<_message2
00F8 10E0 ldi R17,>_message2
00FA 0E940000 xcall _out_string
00FE .dbline 158
00FE ; ldelay(500);
00FE 04EF ldi R16,500
0100 11E0 ldi R17,1
0102 0E940000 xcall _ldelay
0106 .dbline 159
0106 ; clear_line2();
0106 0E940000 xcall _clear_line2
010A .dbline 160
010A ; clear_line1();
010A 0E940000 xcall _clear_line1
010E 55C0 xjmp L12
0110 L11:
0110 .dbline 162
0110 ; while(1)
0110 ; {
0110 .dbline 163
0110 ; WDR(); //Watchdog reset
0110 A895 wdr
0112 .dbline 164
0112 ; if(rec_head!=rec_tail)
0112 20900200 lds R2,_rec_tail
0116 30900300 lds R3,_rec_tail+1
011A 40900000 lds R4,_rec_head
011E 50900100 lds R5,_rec_head+1
0122 4214 cp R4,R2
0124 5304 cpc R5,R3
0126 09F4 brne X7
0128 48C0 xjmp L14
012A X7:
012A X2:
012A .dbline 165
012A ; {
012A .dbline 166
012A ; rec_data=RecBuf[rec_tail];
012A 80E0 ldi R24,<_RecBuf
012C 90E0 ldi R25,>_RecBuf
012E F101 movw R30,R2
0130 E80F add R30,R24
0132 F91F adc R31,R25
0134 2080 ldd R2,z+0
0136 3324 clr R3
0138 30920100 sts _rec_data+1,R3
013C 20920000 sts _rec_data,R2
0140 .dbline 167
0140 ; rec_tail++;
0140 80910200 lds R24,_rec_tail
0144 90910300 lds R25,_rec_tail+1
0148 0196 adiw R24,1
014A 90930300 sts _rec_tail+1,R25
014E 80930200 sts _rec_tail,R24
0152 .dbline 168
0152 ; if(rec_tail>=40)
0152 8832 cpi R24,40
0154 E0E0 ldi R30,0
0156 9E07 cpc R25,R30
0158 2CF0 brlt L16
015A X3:
015A .dbline 169
015A ; rec_tail=0;
015A 2224 clr R2
015C 30920300 sts _rec_tail+1,R3
0160 20920200 sts _rec_tail,R2
0164 L16:
0164 .dbline 171
0164 ;
0164 ; dswin=rec_head<<2;
0164 A0900000 lds R10,_rec_head
0168 B0900100 lds R11,_rec_head+1
016C AA0C lsl R10
016E BB1C rol R11
0170 AA0C lsl R10
0172 BB1C rol R11
0174 .dbline 172
0174 ; PORTD=dswin;
0174 A2BA out 0x12,R10
0176 .dbline 174
0176 ;
0176 ; if(rec_data==13)
0176 80910000 lds R24,_rec_data
017A 90910100 lds R25,_rec_data+1
017E 8D30 cpi R24,13
0180 E0E0 ldi R30,0
0182 9E07 cpc R25,R30
0184 99F4 brne L18
0186 X4:
0186 .dbline 175
0186 ; {
0186 .dbline 176
0186 ; transmit(13);
0186 0DE0 ldi R16,13
0188 93DF xcall _transmit
018A .dbline 177
018A ; transmit(10);
018A 0AE0 ldi R16,10
018C 91DF xcall _transmit
018E .dbline 178
018E ; if(cursor_index<=15)
018E 8FE0 ldi R24,15
0190 90E0 ldi R25,0
0192 20900000 lds R2,_cursor_index
0196 30900100 lds R3,_cursor_index+1
019A 8215 cp R24,R2
019C 9305 cpc R25,R3
019E 1CF0 brlt L20
01A0 X5:
01A0 .dbline 179
01A0 ; clear_line2();
01A0 0E940000 xcall _clear_line2
01A4 0AC0 xjmp L19
01A6 L20:
01A6 .dbline 181
01A6 ; else
01A6 ; clear_line1();
01A6 0E940000 xcall _clear_line1
01AA .dbline 182
01AA ; }
01AA 07C0 xjmp L19
01AC L18:
01AC .dbline 184
01AC ; else
01AC ; {
01AC .dbline 185
01AC ; transmit(rec_data);
01AC 00910000 lds R16,_rec_data
01B0 7FDF xcall _transmit
01B2 .dbline 186
01B2 ; wr_data2(rec_data);
01B2 00910000 lds R16,_rec_data
01B6 0E940000 xcall _wr_data2
01BA .dbline 187
01BA ; }
01BA L19:
01BA .dbline 188
01BA ; }
01BA L14:
01BA .dbline 189
01BA ; }
01BA L12:
01BA .dbline 161
01BA AACF xjmp L11
01BC X6:
01BC .dbline -2
01BC L10:
01BC .dbline 0 ; func end
01BC 0895 ret
01BE .dbsym r outd 10 c
01BE .dbsym r outc 10 c
01BE .dbsym r outb 20 c
01BE .dbsym r outa 20 c
01BE .dbsym r dswin 10 I
01BE .dbend
.area bss(ram, con, rel)
0000 .dbfile C:\+samples-16small\DEMOB-16sm\DEMOB-16sm.c
0000 _rec_data::
0000 .blkb 2
0002 .dbsym e rec_data _rec_data i
0002 _RecBuf::
0002 .blkb 40
002A .dbsym e RecBuf _RecBuf A[40:40]c
002A ; }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -