📄 1602test.lis
字号:
00A2 ; sin=13;
00A2 8DE0 ldi R24,13
00A4 90E0 ldi R25,0
00A6 90931F00 sts _sin+1,R25
00AA 80931E00 sts _sin,R24
00AE .dbline 112
00AE ; for(i=2;i<=3;i++)
00AE 82E0 ldi R24,2
00B0 80932400 sts _i,R24
00B4 1FC0 xjmp L14
00B6 L11:
00B6 .dbline 113
00B6 .dbline 114
00B6 80E0 ldi R24,<_dypass+15+8
00B8 90E0 ldi R25,>_dypass+15+8
00BA E0912400 lds R30,_i
00BE FF27 clr R31
00C0 E80F add R30,R24
00C2 F91F adc R31,R25
00C4 2080 ldd R2,z+0
00C6 80E0 ldi R24,<_str1
00C8 90E0 ldi R25,>_str1
00CA E0911E00 lds R30,_sin
00CE F0911F00 lds R31,_sin+1
00D2 E80F add R30,R24
00D4 F91F adc R31,R25
00D6 2082 std z+0,R2
00D8 .dbline 115
00D8 80911E00 lds R24,_sin
00DC 90911F00 lds R25,_sin+1
00E0 0196 adiw R24,1
00E2 90931F00 sts _sin+1,R25
00E6 80931E00 sts _sin,R24
00EA .dbline 116
00EA L12:
00EA .dbline 112
00EA 80912400 lds R24,_i
00EE 8F5F subi R24,255 ; addi 1
00F0 80932400 sts _i,R24
00F4 L14:
00F4 .dbline 112
00F4 83E0 ldi R24,3
00F6 20902400 lds R2,_i
00FA 8215 cp R24,R2
00FC E0F6 brsh L11
00FE .dbline 117
00FE ; {
00FE ; str1[sin]=dypass[1].class_data[i];
00FE ; sin++;
00FE ; }
00FE ; str1[15]=0x1a;
00FE 8AE1 ldi R24,26
0100 80930F00 sts _str1+15,R24
0104 .dbline 118
0104 ; sin=4;
0104 84E0 ldi R24,4
0106 90E0 ldi R25,0
0108 90931F00 sts _sin+1,R25
010C 80931E00 sts _sin,R24
0110 .dbline 119
0110 ; for(i=2;i<=3;i++)
0110 82E0 ldi R24,2
0112 80932400 sts _i,R24
0116 1FC0 xjmp L21
0118 L18:
0118 .dbline 120
0118 .dbline 121
0118 80E0 ldi R24,<_dypass+30+8
011A 90E0 ldi R25,>_dypass+30+8
011C E0912400 lds R30,_i
0120 FF27 clr R31
0122 E80F add R30,R24
0124 F91F adc R31,R25
0126 2080 ldd R2,z+0
0128 80E0 ldi R24,<_str2
012A 90E0 ldi R25,>_str2
012C E0911E00 lds R30,_sin
0130 F0911F00 lds R31,_sin+1
0134 E80F add R30,R24
0136 F91F adc R31,R25
0138 2082 std z+0,R2
013A .dbline 122
013A 80911E00 lds R24,_sin
013E 90911F00 lds R25,_sin+1
0142 0196 adiw R24,1
0144 90931F00 sts _sin+1,R25
0148 80931E00 sts _sin,R24
014C .dbline 123
014C L19:
014C .dbline 119
014C 80912400 lds R24,_i
0150 8F5F subi R24,255 ; addi 1
0152 80932400 sts _i,R24
0156 L21:
0156 .dbline 119
0156 83E0 ldi R24,3
0158 20902400 lds R2,_i
015C 8215 cp R24,R2
015E E0F6 brsh L18
0160 .dbline 124
0160 ; {
0160 ; str2[sin]=dypass[2].class_data[i];
0160 ; sin++;
0160 ; }
0160 ; str2[6]=0x1a;
0160 8AE1 ldi R24,26
0162 80931700 sts _str2+6,R24
0166 .dbline 125
0166 ; sin=13;
0166 8DE0 ldi R24,13
0168 90E0 ldi R25,0
016A 90931F00 sts _sin+1,R25
016E 80931E00 sts _sin,R24
0172 .dbline 126
0172 ; for(i=2;i<=3;i++)
0172 82E0 ldi R24,2
0174 80932400 sts _i,R24
0178 1FC0 xjmp L28
017A L25:
017A .dbline 127
017A .dbline 128
017A 80E0 ldi R24,<_dypass+45+8
017C 90E0 ldi R25,>_dypass+45+8
017E E0912400 lds R30,_i
0182 FF27 clr R31
0184 E80F add R30,R24
0186 F91F adc R31,R25
0188 2080 ldd R2,z+0
018A 80E0 ldi R24,<_str2
018C 90E0 ldi R25,>_str2
018E E0911E00 lds R30,_sin
0192 F0911F00 lds R31,_sin+1
0196 E80F add R30,R24
0198 F91F adc R31,R25
019A 2082 std z+0,R2
019C .dbline 129
019C 80911E00 lds R24,_sin
01A0 90911F00 lds R25,_sin+1
01A4 0196 adiw R24,1
01A6 90931F00 sts _sin+1,R25
01AA 80931E00 sts _sin,R24
01AE .dbline 130
01AE L26:
01AE .dbline 126
01AE 80912400 lds R24,_i
01B2 8F5F subi R24,255 ; addi 1
01B4 80932400 sts _i,R24
01B8 L28:
01B8 .dbline 126
01B8 83E0 ldi R24,3
01BA 20902400 lds R2,_i
01BE 8215 cp R24,R2
01C0 E0F6 brsh L25
01C2 .dbline 131
01C2 8AE1 ldi R24,26
01C4 80932000 sts _str2+15,R24
01C8 .dbline 132
01C8 20E0 ldi R18,<_str1
01CA 30E0 ldi R19,>_str1
01CC 0027 clr R16
01CE 4AD1 xcall _d_a_s
01D0 .dbline 133
01D0 20E0 ldi R18,<_str2
01D2 30E0 ldi R19,>_str2
01D4 01E0 ldi R16,1
01D6 46D1 xcall _d_a_s
01D8 .dbline 135
01D8 08EE ldi R16,1000
01DA 13E0 ldi R17,3
01DC 7DD1 xcall _delay_nms
01DE .dbline 136
01DE 2224 clr R2
01E0 25BA out 0x15,R2
01E2 .dbline 137
01E2 08EE ldi R16,1000
01E4 13E0 ldi R17,3
01E6 78D1 xcall _delay_nms
01E8 .dbline 138
01E8 20E0 ldi R18,<_str2
01EA 30E0 ldi R19,>_str2
01EC 01E0 ldi R16,1
01EE 3AD1 xcall _d_a_s
01F0 .dbline 139
01F0 L3:
01F0 .dbline 92
01F0 13CF xjmp L2
01F2 X0:
01F2 .dbline -2
01F2 .dbline 140
01F2 ; {
01F2 ; str2[sin]=dypass[3].class_data[i];
01F2 ; sin++;
01F2 ; }
01F2 ; str2[15]=0x1a;
01F2 ; d_a_s(0,str1);
01F2 ; d_a_s(1,str2);
01F2 ;
01F2 ; delay_nms(1000);
01F2 ; PORTC=0X00;
01F2 ; delay_nms(1000);
01F2 ; d_a_s(1,str2);
01F2 ; }
01F2 ; }
01F2 L1:
01F2 .dbline 0 ; func end
01F2 0895 ret
01F4 .dbend
01F4 .dbfunc e adc_init _adc_init fV
.even
01F4 _adc_init::
01F4 .dbline -1
01F4 .dbline 142
01F4 ; void adc_init(void)
01F4 ; {
01F4 .dbline 143
01F4 ; DDRA=0x00;
01F4 2224 clr R2
01F6 2ABA out 0x1a,R2
01F8 .dbline 144
01F8 ; PORTA=0x00;
01F8 2BBA out 0x1b,R2
01FA .dbline 145
01FA ; ADCSRA = 0x00;
01FA 26B8 out 0x6,R2
01FC .dbline 146
01FC ; ADMUX =(1<<REFS0)|(adc_mux&0x0f);//选择内部AVCC为基准
01FC 80912500 lds R24,_adc_mux
0200 8F70 andi R24,15
0202 8064 ori R24,64
0204 87B9 out 0x7,R24
0206 .dbline 147
0206 ; ACSR =(1<<ACD);//关闭模拟比较器
0206 80E8 ldi R24,128
0208 88B9 out 0x8,R24
020A .dbline 148
020A ; ADCSRA=(1<<ADEN)|(1<<ADSC)|(1<<ADPS2)|(1<<ADPS1) ;//64分频
020A 86EC ldi R24,198
020C 86B9 out 0x6,R24
020E .dbline -2
020E .dbline 149
020E ; }
020E L32:
020E .dbline 0 ; func end
020E 0895 ret
0210 .dbend
0210 .dbfunc e hex_asc _hex_asc fV
0210 ; g -> R20,R21
0210 ; dt_meas -> R22,R23
.even
0210 _hex_asc::
0210 0E940000 xcall push_gset2
0214 A901 movw R20,R18
0216 B801 movw R22,R16
0218 .dbline -1
0218 .dbline 153
0218 ;
0218 ; //将无符号的整形数转换为asc码,保存于指针g开始的连续四个空间
0218 ; void hex_asc(unsigned int dt_meas,unsigned char *g)
0218 ; {
0218 .dbline 154
0218 ; *g=(unsigned char)(dt_meas/0x1000);
0218 2CE0 ldi R18,12
021A 30E0 ldi R19,0
021C 8B01 movw R16,R22
021E 0E940000 xcall lsr16
0222 FA01 movw R30,R20
0224 0083 std z+0,R16
0226 .dbline 155
0226 ; if(*g<10)
0226 8081 ldd R24,z+0
0228 8A30 cpi R24,10
022A 18F4 brsh L34
022C .dbline 156
022C ; *g+=0x30;
022C 805D subi R24,208 ; addi 48
022E 8083 std z+0,R24
0230 04C0 xjmp L35
0232 L34:
0232 .dbline 157
0232 ; else *g+=0x37;
0232 FA01 movw R30,R20
0234 8081 ldd R24,z+0
0236 895C subi R24,201 ; addi 55
0238 8083 std z+0,R24
023A L35:
023A .dbline 158
023A ; g++;
023A 4F5F subi R20,255 ; offset = 1
023C 5F4F sbci R21,255
023E .dbline 159
023E ; *g=(unsigned char)((dt_meas/0x100)%0x10);
023E CB01 movw R24,R22
0240 892F mov R24,R25
0242 9927 clr R25
0244 8F70 andi R24,15
0246 9070 andi R25,0
0248 FA01 movw R30,R20
024A 8083 std z+0,R24
024C .dbline 160
024C ; if(*g<10)
024C 8A30 cpi R24,10
024E 18F4 brsh L36
0250 .dbline 161
0250 ; *g+=0x30;
0250 805D subi R24,208 ; addi 48
0252 8083 std z+0,R24
0254 04C0 xjmp L37
0256 L36:
0256 .dbline 162
0256 ; else *g+=0x37;
0256 FA01 movw R30,R20
0258 8081 ldd R24,z+0
025A 895C subi R24,201 ; addi 55
025C 8083 std z+0,R24
025E L37:
025E .dbline 163
025E ; g++;
025E 4F5F subi R20,255 ; offset = 1
0260 5F4F sbci R21,255
0262 .dbline 164
0262 ; *g=(dt_meas%0x100)/0x10;
0262 CB01 movw R24,R22
0264 9070 andi R25,0
0266 9695 lsr R25
0268 8795 ror R24
026A 9695 lsr R25
026C 8795 ror R24
026E 9695 lsr R25
0270 8795 ror R24
0272 9695 lsr R25
0274 8795 ror R24
0276 FA01 movw R30,R20
0278 8083 std z+0,R24
027A .dbline 165
027A ; if(*g<10)
027A 8A30 cpi R24,10
027C 18F4 brsh L38
027E .dbline 166
027E ; *g+=0x30;
027E 805D subi R24,208 ; addi 48
0280 8083 std z+0,R24
0282 04C0 xjmp L39
0284 L38:
0284 .dbline 167
0284 ; else *g+=0x37;
0284 FA01 movw R30,R20
0286 8081 ldd R24,z+0
0288 895C subi R24,201 ; addi 55
028A 8083 std z+0,R24
028C L39:
028C .dbline 168
028C ; g++;
028C 4F5F subi R20,255 ; offset = 1
028E 5F4F sbci R21,255
0290 .dbline 169
0290 ; *g=(dt_meas%0x100)%0x10;
0290 CB01 movw R24,R22
0292 8F70 andi R24,15
0294 9070 andi R25,0
0296 FA01 movw R30,R20
0298 8083 std z+0,R24
029A .dbline 170
029A ; if(*g<10)
029A 8A30 cpi R24,10
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -