📄 leson2.lis
字号:
00D6 L19:
00D6 .dbline 98
00D6 6537 cpi R22,117
00D8 E4E0 ldi R30,4
00DA 7E07 cpc R23,R30
00DC D0F3 brlo L16
00DE .dbline 99
00DE L13:
00DE .dbline 96
00DE 4F5F subi R20,255 ; offset = 1
00E0 5F4F sbci R21,255
00E2 L15:
00E2 .dbline 96
00E2 4017 cp R20,R16
00E4 5107 cpc R21,R17
00E6 90F3 brlo L12
00E8 .dbline -2
00E8 L11:
00E8 00D0 rcall pop_gset2
00EA .dbline 0 ; func end
00EA 0895 ret
00EC .dbsym r i 20 i
00EC .dbsym r j 22 i
00EC .dbsym r ms 16 i
00EC .dbend
00EC .dbfunc e senddata _senddata fV
00EC ; i -> R20
00EC ; data -> R22,R23
.even
00EC _senddata::
00EC 00D0 rcall push_gset2
00EE 602F mov R22,R16
00F0 712F mov R23,R17
00F2 .dbline -1
00F2 .dbline 103
00F2 ; for(j=0;j<1141;j++);
00F2 ; }
00F2 ; }
00F2 ;
00F2 ; void senddata(uint data)
00F2 ; {
00F2 .dbline 105
00F2 ; uchar i;
00F2 ; for(i=0;i<15;i++)
00F2 4427 clr R20
00F4 28C0 rjmp L24
00F6 L21:
00F6 .dbline 106
00F6 ; {
00F6 .dbline 107
00F6 ; PORTD&=~(1<<(PORTD&0x10));
00F6 12B3 in R17,0x12
00F8 1071 andi R17,16
00FA 01E0 ldi R16,1
00FC 00D0 rcall lsl8
00FE 202E mov R2,R16
0100 2094 com R2
0102 32B2 in R3,0x12
0104 3220 and R3,R2
0106 32BA out 0x12,R3
0108 .dbline 108
0108 ; NOP();
0108 0000 nop
010A .dbline 109
010A ; if(data&0x8000)
010A 77FF sbrs R23,7
010C 08C0 rjmp L25
010E .dbline 110
010E ; PORTD|=(1<<(PORTD&0x20)); //置位操作
010E 12B3 in R17,0x12
0110 1072 andi R17,32
0112 01E0 ldi R16,1
0114 00D0 rcall lsl8
0116 22B2 in R2,0x12
0118 202A or R2,R16
011A 22BA out 0x12,R2
011C 09C0 rjmp L26
011E L25:
011E .dbline 112
011E ; else
011E ; PORTD&=~(1<<(PORTD&0x20)); //清零操作
011E 12B3 in R17,0x12
0120 1072 andi R17,32
0122 01E0 ldi R16,1
0124 00D0 rcall lsl8
0126 202E mov R2,R16
0128 2094 com R2
012A 32B2 in R3,0x12
012C 3220 and R3,R2
012E 32BA out 0x12,R3
0130 L26:
0130 .dbline 114
0130 12B3 in R17,0x12
0132 1071 andi R17,16
0134 01E0 ldi R16,1
0136 00D0 rcall lsl8
0138 22B2 in R2,0x12
013A 202A or R2,R16
013C 22BA out 0x12,R2
013E .dbline 115
013E 0000 nop
0140 .dbline 116
0140 660F lsl R22
0142 771F rol R23
0144 .dbline 117
0144 L22:
0144 .dbline 105
0144 4395 inc R20
0146 L24:
0146 .dbline 105
0146 4F30 cpi R20,15
0148 B0F2 brlo L21
014A .dbline 118
014A ;
014A ; PORTD|=(1<<(PORTD&0x10));
014A ; NOP();
014A ; data=data<<1;
014A ; }
014A ; PORTD|=(1<<(PORTD&0x08));
014A 12B3 in R17,0x12
014C 1870 andi R17,8
014E 01E0 ldi R16,1
0150 00D0 rcall lsl8
0152 22B2 in R2,0x12
0154 202A or R2,R16
0156 22BA out 0x12,R2
0158 .dbline 119
0158 ; NOP();
0158 0000 nop
015A .dbline 120
015A ; NOP();
015A 0000 nop
015C .dbline 121
015C ; NOP();
015C 0000 nop
015E .dbline 122
015E ; PORTD&=~(1<<(PORTD&0x08));
015E 12B3 in R17,0x12
0160 1870 andi R17,8
0162 01E0 ldi R16,1
0164 00D0 rcall lsl8
0166 202E mov R2,R16
0168 2094 com R2
016A 32B2 in R3,0x12
016C 3220 and R3,R2
016E 32BA out 0x12,R3
0170 .dbline -2
0170 L20:
0170 00D0 rcall pop_gset2
0172 .dbline 0 ; func end
0172 0895 ret
0174 .dbsym r i 20 c
0174 .dbsym r data 22 i
0174 .dbend
0174 .dbfunc e main _main fV
0174 ; k -> R20,R21
0174 ; i -> R10
0174 ; j -> R22,R23
.even
0174 _main::
0174 .dbline -1
0174 .dbline 130
0174 ;
0174 ;
0174 ; //PORTD|=(1<<PORTD5); //置位操作
0174 ; //PORTD&=~(1<<PORTD5); //清零操作
0174 ; }
0174 ;
0174 ; void main()
0174 ; {
0174 .dbline 132
0174 ; uchar i;
0174 ; uint j=0x0001;
0174 61E0 ldi R22,1
0176 70E0 ldi R23,0
0178 .dbline 133
0178 ; uint k=0x7fff;
0178 4FEF ldi R20,32767
017A 5FE7 ldi R21,127
017C .dbline 135
017C ;
017C ; DDRD=0x38;
017C 88E3 ldi R24,56
017E 81BB out 0x11,R24
0180 .dbline 137
0180 ;
0180 ; WDT_off();
0180 3FDF rcall _WDT_off
0182 .dbline 138
0182 ; USART_Init(9600);
0182 00E8 ldi R16,9600
0184 15E2 ldi R17,37
0186 66DF rcall _USART_Init
0188 20C0 rjmp L29
018A L28:
018A .dbline 141
018A ;
018A ; while(1)
018A ; {
018A .dbline 143
018A ;
018A ; USART_Transmit(0x55);
018A 05E5 ldi R16,85
018C 86DF rcall _USART_Transmit
018E .dbline 145
018E ;
018E ; for(i=0;i<15;i++)
018E AA24 clr R10
0190 0BC0 rjmp L34
0192 L31:
0192 .dbline 146
0192 .dbline 147
0192 062F mov R16,R22
0194 172F mov R17,R23
0196 AADF rcall _senddata
0198 .dbline 148
0198 08EC ldi R16,200
019A 10E0 ldi R17,0
019C 93DF rcall _delay
019E .dbline 149
019E 660F lsl R22
01A0 771F rol R23
01A2 .dbline 150
01A2 6F5F subi R22,255 ; offset = 1
01A4 7F4F sbci R23,255
01A6 .dbline 151
01A6 L32:
01A6 .dbline 145
01A6 A394 inc R10
01A8 L34:
01A8 .dbline 145
01A8 8A2D mov R24,R10
01AA 8F30 cpi R24,15
01AC 90F3 brlo L31
01AE .dbline 153
01AE ; {
01AE ; senddata(j);
01AE ; delay(200);
01AE ; j=j<<1;
01AE ; j=j+1;
01AE ; }
01AE ;
01AE ; for(i=0;i<15;i++)
01AE AA24 clr R10
01B0 09C0 rjmp L38
01B2 L35:
01B2 .dbline 154
01B2 .dbline 155
01B2 042F mov R16,R20
01B4 152F mov R17,R21
01B6 9ADF rcall _senddata
01B8 .dbline 156
01B8 08EC ldi R16,200
01BA 10E0 ldi R17,0
01BC 83DF rcall _delay
01BE .dbline 157
01BE 5695 lsr R21
01C0 4795 ror R20
01C2 .dbline 158
01C2 L36:
01C2 .dbline 153
01C2 A394 inc R10
01C4 L38:
01C4 .dbline 153
01C4 8A2D mov R24,R10
01C6 8F30 cpi R24,15
01C8 A0F3 brlo L35
01CA .dbline 161
01CA L29:
01CA .dbline 140
01CA DFCF rjmp L28
01CC X0:
01CC .dbline -2
01CC L27:
01CC .dbline 0 ; func end
01CC 0895 ret
01CE .dbsym r k 20 i
01CE .dbsym r i 10 c
01CE .dbsym r j 22 i
01CE .dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -