📄 leson4.lis
字号:
0094 .dbline 113
0094 ; {
0094 .dbline 114
0094 ; PORTD&=~0x10;
0094 9498 cbi 0x12,4
0096 .dbline 115
0096 ; NOP();
0096 0000 nop
0098 .dbline 116
0098 ; if(data&0x8000)
0098 17FF sbrs R17,7
009A 02C0 rjmp L30
009C .dbline 117
009C ; PORTD|=0x20; //置位操作
009C 959A sbi 0x12,5
009E 01C0 rjmp L31
00A0 L30:
00A0 .dbline 119
00A0 ; else
00A0 ; PORTD&=~0x20; //清零操作
00A0 9598 cbi 0x12,5
00A2 L31:
00A2 .dbline 120
00A2 0000 nop
00A4 .dbline 121
00A4 949A sbi 0x12,4
00A6 .dbline 122
00A6 0000 nop
00A8 .dbline 123
00A8 000F lsl R16
00AA 111F rol R17
00AC .dbline 124
00AC L27:
00AC .dbline 112
00AC 4395 inc R20
00AE L29:
00AE .dbline 112
00AE 4031 cpi R20,16
00B0 88F3 brlo L26
00B2 .dbline 125
00B2 ; NOP();
00B2 ; PORTD|=0x10;
00B2 ; NOP();
00B2 ; data=data<<1;
00B2 ; }
00B2 ; PORTD|=0x08;
00B2 939A sbi 0x12,3
00B4 .dbline 126
00B4 ; NOP();
00B4 0000 nop
00B6 .dbline 127
00B6 ; PORTD&=~0x08;
00B6 9398 cbi 0x12,3
00B8 .dbline -2
00B8 L25:
00B8 00D0 rcall pop_gset1
00BA .dbline 0 ; func end
00BA 0895 ret
00BC .dbsym r i 20 c
00BC .dbsym r data 16 i
00BC .dbend
00BC .dbfunc e main _main fV
00BC ; m -> R20,R21
00BC ; j -> y+0
00BC ; n -> R10,R11
00BC ; k -> R12,R13
00BC ; i -> R14
00BC ; h -> R22
.even
00BC _main::
00BC 2297 sbiw R28,2
00BE .dbline -1
00BE .dbline 134
00BE ;
00BE ; //PORTD|=(1<<PORTD5); //置位操作
00BE ; //PORTD&=~(1<<PORTD5); //清零操作
00BE ; }
00BE ;
00BE ; void main()
00BE ; {
00BE .dbline 136
00BE ;
00BE ; DDRD|=0x38;
00BE 81B3 in R24,0x11
00C0 8863 ori R24,56
00C2 81BB out 0x11,R24
00C4 .dbline 137
00C4 ; DDRB|=0x40;
00C4 BE9A sbi 0x17,6
00C6 .dbline 139
00C6 ;
00C6 ; WDT_off();
00C6 9CDF rcall _WDT_off
00C8 .dbline 141
00C8 ;
00C8 ; USART_Init(9600);
00C8 00E8 ldi R16,9600
00CA 15E2 ldi R17,37
00CC A4DF rcall _USART_Init
00CE .dbline 143
00CE ;
00CE ; PORTB&=0xBF;
00CE 88B3 in R24,0x18
00D0 8F7B andi R24,191
00D2 88BB out 0x18,R24
00D4 .dbline 145
00D4 ;
00D4 ; delayms(20);
00D4 04E1 ldi R16,20
00D6 10E0 ldi R17,0
00D8 B7DF rcall _delayms
00DA .dbline 146
00DA ; delayms(20);
00DA 04E1 ldi R16,20
00DC 10E0 ldi R17,0
00DE B4DF rcall _delayms
00E0 .dbline 147
00E0 ; delayms(20);
00E0 04E1 ldi R16,20
00E2 10E0 ldi R17,0
00E4 B1DF rcall _delayms
00E6 .dbline 149
00E6 ;
00E6 ; USART_Receive();
00E6 A9DF rcall _USART_Receive
00E8 .dbline 150
00E8 ; rdata=UDR;
00E8 2CB0 in R2,0xc
00EA 20920000 sts _rdata,R2
00EE .dbline 151
00EE ; switch(rdata)
00EE 422D mov R20,R2
00F0 5527 clr R21
00F2 4234 cpi R20,66
00F4 E0E0 ldi R30,0
00F6 5E07 cpc R21,R30
00F8 09F4 brne X2
00FA 3DC0 rjmp L39
00FC X2:
00FC 82E4 ldi R24,66
00FE 90E0 ldi R25,0
0100 8417 cp R24,R20
0102 9507 cpc R25,R21
0104 2CF0 brlt L45
0106 L44:
0106 4733 cpi R20,55
0108 E0E0 ldi R30,0
010A 5E07 cpc R21,R30
010C E9F0 breq L37
010E C3C0 rjmp L48
0110 L45:
0110 4D34 cpi R20,77
0112 E0E0 ldi R30,0
0114 5E07 cpc R21,R30
0116 09F4 brne X3
0118 6EC0 rjmp L41
011A X3:
011A 4D34 cpi R20,77
011C E0E0 ldi R30,0
011E 5E07 cpc R21,R30
0120 0CF4 brge X4
0122 B9C0 rjmp L48
0124 X4:
0124 L46:
0124 4835 cpi R20,88
0126 E0E0 ldi R30,0
0128 5E07 cpc R21,R30
012A 09F4 brne X5
012C 74C0 rjmp L43
012E X5:
012E B3C0 rjmp L48
0130 X0:
0130 .dbline 152
0130 ; {
0130 .dbline 153
0130 ; case 55:goto start1;break;
0130 .dbline 153
0130 .dbline 154
0130 ; case 66:goto start2;break;
0130 .dbline 154
0130 .dbline 155
0130 ; case 77:goto start3;break;
0130 .dbline 155
0130 .dbline 156
0130 ; case 88:goto start4;break;
0130 .dbline 156
0130 L47:
0130 .dbline 159
0130 ; }
0130 ; while(1)
0130 ; {
0130 .dbline 162
0130 ; uchar i;
0130 ; uchar h;
0130 ; uint j=0x0001;
0130 81E0 ldi R24,1
0132 90E0 ldi R25,0
0134 9983 std y+1,R25
0136 8883 std y+0,R24
0138 .dbline 163
0138 ; uint k=0xffff;
0138 8FEF ldi R24,65535
013A 9FEF ldi R25,255
013C C82E mov R12,R24
013E D92E mov R13,R25
0140 .dbline 164
0140 ; uint m=0x4000;
0140 40E0 ldi R20,16384
0142 50E4 ldi R21,64
0144 .dbline 165
0144 ; uint n=0xffff;
0144 A82E mov R10,R24
0146 B92E mov R11,R25
0148 L37:
0148 .dbline 171
0148 ;
0148 ;
0148 ;
0148 ;
0148 ; start1:
0148 ; for(i=0;i<16;i++)
0148 EE24 clr R14
014A 12C0 rjmp L53
014C L50:
014C .dbline 172
014C .dbline 173
014C 0881 ldd R16,y+0
014E 1981 ldd R17,y+1
0150 9EDF rcall _senddata
0152 .dbline 174
0152 04E1 ldi R16,20
0154 10E0 ldi R17,0
0156 78DF rcall _delayms
0158 .dbline 175
0158 0880 ldd R0,y+0
015A 1980 ldd R1,y+1
015C 000C lsl R0
015E 111C rol R1
0160 1982 std y+1,R1
0162 0882 std y+0,R0
0164 .dbline 176
0164 802D mov R24,R0
0166 912D mov R25,R1
0168 0196 adiw R24,1
016A 9983 std y+1,R25
016C 8883 std y+0,R24
016E .dbline 177
016E L51:
016E .dbline 171
016E E394 inc R14
0170 L53:
0170 .dbline 171
0170 8E2D mov R24,R14
0172 8031 cpi R24,16
0174 58F3 brlo L50
0176 L39:
0176 .dbline 181
0176 ; {
0176 ; senddata(j);
0176 ; delayms(20); //左到右逐渐亮
0176 ; j=j<<1;
0176 ; j=j+1;
0176 ; }
0176 ;
0176 ;
0176 ; start2:
0176 ; for(i=0;i<15;i++) //左到右逐渐灭
0176 EE24 clr R14
0178 3AC0 rjmp L57
017A L54:
017A .dbline 182
017A ; {
017A .dbline 183
017A ; if((i>5)&&(i<10))
017A 85E0 ldi R24,5
017C 8E15 cp R24,R14
017E B8F4 brsh L58
0180 8E2D mov R24,R14
0182 8A30 cpi R24,10
0184 A0F4 brsh L58
0186 .dbline 184
0186 ; {
0186 .dbline 185
0186 ; for(h=0;h<20;h++)
0186 6627 clr R22
0188 0DC0 rjmp L63
018A L60:
018A .dbline 186
018A .dbline 187
018A 0C2D mov R16,R12
018C 1D2D mov R17,R13
018E 7FDF rcall _senddata
0190 .dbline 188
0190 00E2 ldi R16,800
0192 13E0 ldi R17,3
0194 6DDF rcall _delayus
0196 .dbline 189
0196 0027 clr R16
0198 1127 clr R17
019A 79DF rcall _senddata
019C .dbline 190
019C 08EC ldi R16,200
019E 10E0 ldi R17,0
01A0 67DF rcall _delayus
01A2 .dbline 191
01A2 L61:
01A2 .dbline 185
01A2 6395 inc R22
01A4 L63:
01A4 .dbline 185
01A4 6431 cpi R22,20
01A6 88F3 brlo L60
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -