⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 adconv.lst

📁 使用mega16单片机进行片上自带的AD转换编程
💻 LST
📖 第 1 页 / 共 2 页
字号:
(0108) {
(0109)     unsigned int count,i;
(0110)     unsigned int j;
(0111)     unsigned long total=0;
    0118 E040      LDI	R20,0
    0119 E050      LDI	R21,0
    011A E060      LDI	R22,0
    011B E070      LDI	R23,0
    011C 01FE      MOVW	R30,R28
    011D 8340      STD	Z+0,R20
    011E 8351      STD	Z+1,R21
    011F 8362      STD	Z+2,R22
    0120 8373      STD	Z+3,R23
(0112)     unsigned char num=0;
    0121 2400      CLR	R0
    0122 820C      STD	Y+4,R0
(0113)     ADMUX=0x00;
    0123 2422      CLR	R2
    0124 B827      OUT	0x07,R2
(0114)     ADCSRA=0xE6;
    0125 EE86      LDI	R24,0xE6
    0126 B986      OUT	0x06,R24
(0115)     
(0116)     
(0117)     Display(0xA4,0xff);
    0127 EF2F      LDI	R18,0xFF
    0128 EA04      LDI	R16,0xA4
    0129 DF3D      RCALL	_Display
    012A C066      RJMP	0x0191
(0118)     while(1)
(0119)     {
(0120)         
(0121)         count=20000;
    012B E280      LDI	R24,0x20
    012C E49E      LDI	R25,0x4E
    012D 016C      MOVW	R12,R24
(0122)         while(count--);
    012E 0116      MOVW	R2,R12
    012F 01C1      MOVW	R24,R2
    0130 9701      SBIW	R24,1
    0131 016C      MOVW	R12,R24
    0132 2022      TST	R2
    0133 F7D1      BNE	0x012E
    0134 2033      TST	R3
    0135 F7C1      BNE	0x012E
(0123)         i=ADC_Conv();
    0136 DFD5      RCALL	_ADC_Conv
    0137 0158      MOVW	R10,R16
(0124)         total+=i;
    0138 0115      MOVW	R2,R10
    0139 2444      CLR	R4
    013A 2455      CLR	R5
    013B 01FE      MOVW	R30,R28
    013C 8060      LDD	R6,Z+0
    013D 8071      LDD	R7,Z+1
    013E 8082      LDD	R8,Z+2
    013F 8093      LDD	R9,Z+3
    0140 0C62      ADD	R6,R2
    0141 1C73      ADC	R7,R3
    0142 1C84      ADC	R8,R4
    0143 1C95      ADC	R9,R5
    0144 01FE      MOVW	R30,R28
    0145 8260      STD	Z+0,R6
    0146 8271      STD	Z+1,R7
    0147 8282      STD	Z+2,R8
    0148 8293      STD	Z+3,R9
(0125)         num++;
    0149 800C      LDD	R0,Y+4
    014A 9403      INC	R0
    014B 820C      STD	Y+4,R0
(0126)         if(num>=10)
    014C 2D80      MOV	R24,R0
    014D 308A      CPI	R24,0xA
    014E F408      BCC	0x0150
    014F C041      RJMP	0x0191
(0127)         {
(0128)             i=total/10;
    0150 E04A      LDI	R20,0xA
    0151 E050      LDI	R21,0
    0152 E060      LDI	R22,0
    0153 E070      LDI	R23,0
    0154 01FE      MOVW	R30,R28
    0155 8020      LDD	R2,Z+0
    0156 8031      LDD	R3,Z+1
    0157 8042      LDD	R4,Z+2
    0158 8053      LDD	R5,Z+3
    0159 937A      ST	R23,-Y
    015A 936A      ST	R22,-Y
    015B 935A      ST	R21,-Y
    015C 934A      ST	R20,-Y
    015D 0181      MOVW	R16,R2
    015E 0192      MOVW	R18,R4
    015F 940E01B5  CALL	div32u
    0161 0158      MOVW	R10,R16
(0129)             num=1;
    0162 2400      CLR	R0
    0163 9403      INC	R0
    0164 820C      STD	Y+4,R0
(0130)             total=0;
    0165 E040      LDI	R20,0
    0166 E050      LDI	R21,0
    0167 E060      LDI	R22,0
    0168 E070      LDI	R23,0
    0169 01FE      MOVW	R30,R28
    016A 8340      STD	Z+0,R20
    016B 8351      STD	Z+1,R21
    016C 8362      STD	Z+2,R22
    016D 8373      STD	Z+3,R23
(0131)             for(j=0;j<4;j++)
    016E 24EE      CLR	R14
    016F 24FF      CLR	R15
    0170 C01B      RJMP	0x018C
(0132)             {
(0133)                Display(i%10,j+1);
    0171 2D2E      MOV	R18,R14
    0172 5F2F      SUBI	R18,0xFF
    0173 4F3F      SBCI	R19,0xFF
    0174 E08A      LDI	R24,0xA
    0175 E090      LDI	R25,0
    0176 932F      PUSH	R18
    0177 933F      PUSH	R19
    0178 019C      MOVW	R18,R24
    0179 0185      MOVW	R16,R10
    017A 940E0199  CALL	mod16u
    017C 913F      POP	R19
    017D 912F      POP	R18
    017E DEE8      RCALL	_Display
(0134)                if(i!=0)
    017F 20AA      TST	R10
    0180 F411      BNE	0x0183
    0181 20BB      TST	R11
    0182 F031      BEQ	0x0189
(0135)                {
(0136)                   i=i/10;
FILE: <library>
    0183 E02A      LDI	R18,0xA
    0184 E030      LDI	R19,0
    0185 0185      MOVW	R16,R10
    0186 940E019B  CALL	div16u
    0188 0158      MOVW	R10,R16
    0189 01C7      MOVW	R24,R14
    018A 9601      ADIW	R24,1
    018B 017C      MOVW	R14,R24
    018C 01C7      MOVW	R24,R14
    018D 3084      CPI	R24,4
    018E E0E0      LDI	R30,0
    018F 079E      CPC	R25,R30
    0190 F300      BCS	0x0171
    0191 CF99      RJMP	0x012B
    0192 9625      ADIW	R28,5
    0193 9508      RET
push_arg4:
    0194 933A      ST	R19,-Y
    0195 932A      ST	R18,-Y
push_arg2:
    0196 931A      ST	R17,-Y
    0197 930A      ST	R16,-Y
    0198 9508      RET
mod16u:
    0199 9468      BSET	6
    019A C001      RJMP	xdiv16u
div16u:
    019B 94E8      BCLR	6
xdiv16u:
    019C 92EA      ST	R14,-Y
    019D 92FA      ST	R15,-Y
    019E 938A      ST	R24,-Y
    019F 24EE      CLR	R14
    01A0 24FF      CLR	R15
    01A1 E180      LDI	R24,0x10
    01A2 0F00      LSL	R16
    01A3 1F11      ROL	R17
    01A4 1CEE      ROL	R14
    01A5 1CFF      ROL	R15
    01A6 16E2      CP	R14,R18
    01A7 06F3      CPC	R15,R19
    01A8 F018      BCS	0x01AC
    01A9 1AE2      SUB	R14,R18
    01AA 0AF3      SBC	R15,R19
    01AB 9503      INC	R16
    01AC 958A      DEC	R24
    01AD F7A1      BNE	0x01A2
    01AE F416      BRTC	0x01B1
    01AF 2D0E      MOV	R16,R14
    01B0 2D1F      MOV	R17,R15
    01B1 9189      LD	R24,Y+
    01B2 90F9      LD	R15,Y+
    01B3 90E9      LD	R14,Y+
    01B4 9508      RET
div32u:
    01B5 94E8      BCLR	6
    01B6 C001      RJMP	0x01B8
mod32u:
    01B7 9468      BSET	6
    01B8 D02F      RCALL	long_div_prolog
    01B9 24CC      CLR	R12
    01BA C008      RJMP	0x01C3
div32s:
    01BB 94E8      BCLR	6
    01BC C001      RJMP	0x01BE
mod32s:
    01BD 9468      BSET	6
    01BE D029      RCALL	long_div_prolog
    01BF FD37      SBRC	R19,7
    01C0 D053      RCALL	neg_R16_R19
    01C1 FDB7      SBRC	R27,7
    01C2 D05A      RCALL	neg_R24_R27
    01C3 2477      CLR	R7
    01C4 2488      CLR	R8
    01C5 2499      CLR	R9
    01C6 24AA      CLR	R10
    01C7 24BB      CLR	R11
    01C8 D041      RCALL	tst_R16_R19
    01C9 F0C1      BEQ	0x01E2
    01CA D044      RCALL	tst_R24_R27
    01CB F0B1      BEQ	0x01E2
    01CC E2E8      LDI	R30,0x28
    01CD 0F00      LSL	R16
    01CE 1F11      ROL	R17
    01CF 1F22      ROL	R18
    01D0 1F33      ROL	R19
    01D1 1C77      ROL	R7
    01D2 1C88      ROL	R8
    01D3 1C99      ROL	R9
    01D4 1CAA      ROL	R10
    01D5 1CBB      ROL	R11
    01D6 1688      CP	R8,R24
    01D7 0699      CPC	R9,R25
    01D8 06AA      CPC	R10,R26
    01D9 06BB      CPC	R11,R27
    01DA F028      BCS	0x01E0
    01DB 1A88      SUB	R8,R24
    01DC 0A99      SBC	R9,R25
    01DD 0AAA      SBC	R10,R26
    01DE 0ABB      SBC	R11,R27
    01DF 9503      INC	R16
    01E0 95EA      DEC	R30
    01E1 F759      BNE	0x01CD
    01E2 F426      BRTC	0x01E7
    01E3 2D08      MOV	R16,R8
    01E4 2D19      MOV	R17,R9
    01E5 2D2A      MOV	R18,R10
    01E6 2D3B      MOV	R19,R11
    01E7 C013      RJMP	long_div_epilog
long_div_prolog:
    01E8 927A      ST	R7,-Y
    01E9 928A      ST	R8,-Y
    01EA 929A      ST	R9,-Y
    01EB 92AA      ST	R10,-Y
    01EC 92BA      ST	R11,-Y
    01ED 92CA      ST	R12,-Y
    01EE 93EA      ST	R30,-Y
    01EF 938A      ST	R24,-Y
    01F0 939A      ST	R25,-Y
    01F1 93AA      ST	R26,-Y
    01F2 93BA      ST	R27,-Y
    01F3 858B      LDD	R24,Y+11
    01F4 859C      LDD	R25,Y+12
    01F5 85AD      LDD	R26,Y+13
    01F6 85BE      LDD	R27,Y+14
    01F7 2EC3      MOV	R12,R19
    01F8 F00E      BRTS	0x01FA
    01F9 26CB      EOR	R12,R27
    01FA 9508      RET
long_div_epilog:
    01FB FCC7      SBRC	R12,7
    01FC D017      RCALL	neg_R16_R19
    01FD 91B9      LD	R27,Y+
    01FE 91A9      LD	R26,Y+
    01FF 9199      LD	R25,Y+
    0200 9189      LD	R24,Y+
    0201 91E9      LD	R30,Y+
    0202 90C9      LD	R12,Y+
    0203 90B9      LD	R11,Y+
    0204 90A9      LD	R10,Y+
    0205 9099      LD	R9,Y+
    0206 9089      LD	R8,Y+
    0207 9079      LD	R7,Y+
    0208 9624      ADIW	R28,4
    0209 9508      RET
tst_R16_R19:
    020A 2FE0      MOV	R30,R16
    020B 2BE1      OR	R30,R17
    020C 2BE2      OR	R30,R18
    020D 2BE3      OR	R30,R19
    020E 9508      RET
tst_R24_R27:
    020F 2FE8      MOV	R30,R24
    0210 2BE9      OR	R30,R25
    0211 2BEA      OR	R30,R26
    0212 2BEB      OR	R30,R27
    0213 9508      RET
neg_R16_R19:
    0214 9500      COM	R16
    0215 9510      COM	R17
    0216 9520      COM	R18
    0217 9530      COM	R19
    0218 5F0F      SUBI	R16,0xFF
    0219 4F1F      SBCI	R17,0xFF
    021A 4F2F      SBCI	R18,0xFF
    021B 4F3F      SBCI	R19,0xFF
    021C 9508      RET
neg_R24_R27:
    021D 9580      COM	R24
    021E 9590      COM	R25
    021F 95A0      COM	R26
    0220 95B0      COM	R27
    0221 5F8F      SUBI	R24,0xFF
    0222 4F9F      SBCI	R25,0xFF
    0223 4FAF      SBCI	R26,0xFF
    0224 4FBF      SBCI	R27,0xFF
    0225 9508      RET
pop_gset5:
    0226 27EE      CLR	R30
    0227 940C0235  JMP	pop
push_gset5:
    0229 92FA      ST	R15,-Y
    022A 92EA      ST	R14,-Y
push_gset4:
    022B 92DA      ST	R13,-Y
    022C 92CA      ST	R12,-Y
push_gset3:
    022D 92BA      ST	R11,-Y
    022E 92AA      ST	R10,-Y
push_gset2:
    022F 937A      ST	R23,-Y
    0230 936A      ST	R22,-Y
push_gset1:
    0231 935A      ST	R21,-Y
    0232 934A      ST	R20,-Y
    0233 9508      RET
pop_gset1:
    0234 E0E1      LDI	R30,1
pop:
    0235 9149      LD	R20,Y+
    0236 9159      LD	R21,Y+
    0237 FDE0      SBRC	R30,0
    0238 9508      RET
    0239 9169      LD	R22,Y+
    023A 9179      LD	R23,Y+
    023B FDE1      SBRC	R30,1
    023C 9508      RET
    023D 90A9      LD	R10,Y+
    023E 90B9      LD	R11,Y+
    023F FDE2      SBRC	R30,2
    0240 9508      RET
    0241 90C9      LD	R12,Y+
    0242 90D9      LD	R13,Y+
    0243 FDE3      SBRC	R30,3
    0244 9508      RET
    0245 90E9      LD	R14,Y+
    0246 90F9      LD	R15,Y+
    0247 9508      RET
lsl8:
    0248 2311      TST	R17
    0249 F019      BEQ	0x024D
    024A 0F00      LSL	R16
    024B 951A      DEC	R17
    024C CFFB      RJMP	lsl8
    024D 9508      RET

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -