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

📄 hc595.lst

📁 ATMEGA128的SEG7驱动程序
💻 LST
📖 第 1 页 / 共 4 页
字号:
    02C2 933A      ST	R19,-Y
    02C3 932A      ST	R18,-Y
    02C4 931A      ST	R17,-Y
    02C5 930A      ST	R16,-Y
    02C6 940E04E7  CALL	sub32f
    02C8 940E046A  CALL	fp2int
    02CA 01B8      MOVW	R22,R16
    02CB 5060      SUBI	R22,0
    02CC 4870      SBCI	R23,0x80
    02CD C008      RJMP	0x02D6
    02CE 01FE      MOVW	R30,R28
    02CF 8100      LDD	R16,Z+0
    02D0 8111      LDD	R17,Z+1
    02D1 8122      LDD	R18,Z+2
    02D2 8133      LDD	R19,Z+3
    02D3 940E046A  CALL	fp2int
    02D5 01B8      MOVW	R22,R16
    02D6 01AB      MOVW	R20,R22
(0167) 	 point_pos=1;
    02D7 E081      LDI	R24,1
    02D8 93800103  STS	point_pos,R24
(0168) 	 Seg7_Led_Buf[3]=temp/1000;
    02DA EE28      LDI	R18,0xE8
    02DB E033      LDI	R19,3
    02DC 018A      MOVW	R16,R20
    02DD 940E0411  CALL	div16u
    02DF 93000107  STS	Seg7_Led_Buf+3,R16
(0169)  	 Seg7_Led_Buf[2]=(temp%1000)/100;
    02E1 EE28      LDI	R18,0xE8
    02E2 E033      LDI	R19,3
    02E3 018A      MOVW	R16,R20
    02E4 940E040F  CALL	mod16u
    02E6 E624      LDI	R18,0x64
    02E7 E030      LDI	R19,0
    02E8 940E0411  CALL	div16u
    02EA 93000106  STS	Seg7_Led_Buf+2,R16
(0170)  	 Seg7_Led_Buf[1]=(temp%100)/10;
    02EC E624      LDI	R18,0x64
    02ED E030      LDI	R19,0
    02EE 018A      MOVW	R16,R20
    02EF 940E040F  CALL	mod16u
    02F1 E02A      LDI	R18,0xA
    02F2 E030      LDI	R19,0
    02F3 940E0411  CALL	div16u
    02F5 93000105  STS	Seg7_Led_Buf+1,R16
(0171)  	 Seg7_Led_Buf[0]=temp%10;
    02F7 E02A      LDI	R18,0xA
    02F8 E030      LDI	R19,0
    02F9 018A      MOVW	R16,R20
    02FA 940E040F  CALL	mod16u
    02FC 93000104  STS	Seg7_Led_Buf,R16
(0172) 	 Seg7_Led_Update();
    02FE DE30      RCALL	_Seg7_Led_Update
(0173) 	}
    02FF C102      RJMP	0x0402
(0174)  else if(data>9)
    0300 EA05      LDI	R16,0xA5
    0301 E010      LDI	R17,0
    0302 940E0456  CALL	lpm32
    0304 933A      ST	R19,-Y
    0305 932A      ST	R18,-Y
    0306 931A      ST	R17,-Y
    0307 930A      ST	R16,-Y
    0308 01FE      MOVW	R30,R28
    0309 8424      LDD	R2,Z+12
    030A 8435      LDD	R3,Z+13
    030B 8446      LDD	R4,Z+14
    030C 8457      LDD	R5,Z+15
    030D 925A      ST	R5,-Y
    030E 924A      ST	R4,-Y
    030F 923A      ST	R3,-Y
    0310 922A      ST	R2,-Y
    0311 940E053D  CALL	cmp32f
    0313 F00C      BLT	0x0315
    0314 C077      RJMP	0x038C
(0175)  	{
(0176) 	 temp=data*100;
    0315 EA01      LDI	R16,0xA1
    0316 E010      LDI	R17,0
    0317 940E0456  CALL	lpm32
    0319 933A      ST	R19,-Y
    031A 932A      ST	R18,-Y
    031B 931A      ST	R17,-Y
    031C 930A      ST	R16,-Y
    031D 01FE      MOVW	R30,R28
    031E 8424      LDD	R2,Z+12
    031F 8435      LDD	R3,Z+13
    0320 8446      LDD	R4,Z+14
    0321 8457      LDD	R5,Z+15
    0322 925A      ST	R5,-Y
    0323 924A      ST	R4,-Y
    0324 923A      ST	R3,-Y
    0325 922A      ST	R2,-Y
    0326 940E0571  CALL	empy32f
    0328 01FE      MOVW	R30,R28
    0329 8300      STD	Z+0,R16
    032A 8311      STD	Z+1,R17
    032B 8322      STD	Z+2,R18
    032C 8333      STD	Z+3,R19
    032D 01FE      MOVW	R30,R28
    032E 8020      LDD	R2,Z+0
    032F 8031      LDD	R3,Z+1
    0330 8042      LDD	R4,Z+2
    0331 8053      LDD	R5,Z+3
    0332 925A      ST	R5,-Y
    0333 924A      ST	R4,-Y
    0334 923A      ST	R3,-Y
    0335 922A      ST	R2,-Y
    0336 EA09      LDI	R16,0xA9
    0337 E010      LDI	R17,0
    0338 940E0456  CALL	lpm32
    033A 933A      ST	R19,-Y
    033B 932A      ST	R18,-Y
    033C 931A      ST	R17,-Y
    033D 930A      ST	R16,-Y
    033E 940E053D  CALL	cmp32f
    0340 F0CC      BLT	0x035A
    0341 01FE      MOVW	R30,R28
    0342 8020      LDD	R2,Z+0
    0343 8031      LDD	R3,Z+1
    0344 8042      LDD	R4,Z+2
    0345 8053      LDD	R5,Z+3
    0346 925A      ST	R5,-Y
    0347 924A      ST	R4,-Y
    0348 923A      ST	R3,-Y
    0349 922A      ST	R2,-Y
    034A EA09      LDI	R16,0xA9
    034B E010      LDI	R17,0
    034C 940E0456  CALL	lpm32
    034E 933A      ST	R19,-Y
    034F 932A      ST	R18,-Y
    0350 931A      ST	R17,-Y
    0351 930A      ST	R16,-Y
    0352 940E04E7  CALL	sub32f
    0354 940E046A  CALL	fp2int
    0356 01B8      MOVW	R22,R16
    0357 5060      SUBI	R22,0
    0358 4870      SBCI	R23,0x80
    0359 C008      RJMP	0x0362
    035A 01FE      MOVW	R30,R28
    035B 8100      LDD	R16,Z+0
    035C 8111      LDD	R17,Z+1
    035D 8122      LDD	R18,Z+2
    035E 8133      LDD	R19,Z+3
    035F 940E046A  CALL	fp2int
    0361 01B8      MOVW	R22,R16
    0362 01AB      MOVW	R20,R22
(0177) 	 point_pos=2;
    0363 E082      LDI	R24,2
    0364 93800103  STS	point_pos,R24
(0178) 	 Seg7_Led_Buf[3]=temp/1000;
    0366 EE28      LDI	R18,0xE8
    0367 E033      LDI	R19,3
    0368 018A      MOVW	R16,R20
    0369 940E0411  CALL	div16u
    036B 93000107  STS	Seg7_Led_Buf+3,R16
(0179)  	 Seg7_Led_Buf[2]=(temp%1000)/100;
    036D EE28      LDI	R18,0xE8
    036E E033      LDI	R19,3
    036F 018A      MOVW	R16,R20
    0370 940E040F  CALL	mod16u
    0372 E624      LDI	R18,0x64
    0373 E030      LDI	R19,0
    0374 940E0411  CALL	div16u
    0376 93000106  STS	Seg7_Led_Buf+2,R16
(0180)  	 Seg7_Led_Buf[1]=(temp%100)/10;
    0378 E624      LDI	R18,0x64
    0379 E030      LDI	R19,0
    037A 018A      MOVW	R16,R20
    037B 940E040F  CALL	mod16u
    037D E02A      LDI	R18,0xA
    037E E030      LDI	R19,0
    037F 940E0411  CALL	div16u
    0381 93000105  STS	Seg7_Led_Buf+1,R16
(0181)  	 Seg7_Led_Buf[0]=temp%10;
    0383 E02A      LDI	R18,0xA
    0384 E030      LDI	R19,0
    0385 018A      MOVW	R16,R20
    0386 940E040F  CALL	mod16u
    0388 93000104  STS	Seg7_Led_Buf,R16
(0182) 	 Seg7_Led_Update();
    038A DDA4      RCALL	_Seg7_Led_Update
(0183) 	}
    038B C076      RJMP	0x0402
(0184)  else
(0185)  	{
(0186) 	 temp=data*1000;
    038C E90D      LDI	R16,0x9D
    038D E010      LDI	R17,0
    038E 940E0456  CALL	lpm32
    0390 933A      ST	R19,-Y
    0391 932A      ST	R18,-Y
    0392 931A      ST	R17,-Y
    0393 930A      ST	R16,-Y
    0394 01FE      MOVW	R30,R28
    0395 8424      LDD	R2,Z+12
    0396 8435      LDD	R3,Z+13
    0397 8446      LDD	R4,Z+14
    0398 8457      LDD	R5,Z+15
    0399 925A      ST	R5,-Y
    039A 924A      ST	R4,-Y
    039B 923A      ST	R3,-Y
    039C 922A      ST	R2,-Y
    039D 940E0571  CALL	empy32f
    039F 01FE      MOVW	R30,R28
    03A0 8300      STD	Z+0,R16
    03A1 8311      STD	Z+1,R17
    03A2 8322      STD	Z+2,R18
    03A3 8333      STD	Z+3,R19
    03A4 01FE      MOVW	R30,R28
    03A5 8020      LDD	R2,Z+0
    03A6 8031      LDD	R3,Z+1
    03A7 8042      LDD	R4,Z+2
    03A8 8053      LDD	R5,Z+3
    03A9 925A      ST	R5,-Y
    03AA 924A      ST	R4,-Y
    03AB 923A      ST	R3,-Y
    03AC 922A      ST	R2,-Y
    03AD EA09      LDI	R16,0xA9
    03AE E010      LDI	R17,0
    03AF 940E0456  CALL	lpm32
    03B1 933A      ST	R19,-Y
    03B2 932A      ST	R18,-Y
    03B3 931A      ST	R17,-Y
    03B4 930A      ST	R16,-Y
    03B5 940E053D  CALL	cmp32f
    03B7 F0CC      BLT	0x03D1
    03B8 01FE      MOVW	R30,R28
    03B9 8020      LDD	R2,Z+0
    03BA 8031      LDD	R3,Z+1
    03BB 8042      LDD	R4,Z+2
    03BC 8053      LDD	R5,Z+3
    03BD 925A      ST	R5,-Y
    03BE 924A      ST	R4,-Y
    03BF 923A      ST	R3,-Y
    03C0 922A      ST	R2,-Y
    03C1 EA09      LDI	R16,0xA9
    03C2 E010      LDI	R17,0
    03C3 940E0456  CALL	lpm32
    03C5 933A      ST	R19,-Y
    03C6 932A      ST	R18,-Y
    03C7 931A      ST	R17,-Y
    03C8 930A      ST	R16,-Y
    03C9 940E04E7  CALL	sub32f
    03CB 940E046A  CALL	fp2int
    03CD 01B8      MOVW	R22,R16
    03CE 5060      SUBI	R22,0
    03CF 4870      SBCI	R23,0x80
    03D0 C008      RJMP	0x03D9
    03D1 01FE      MOVW	R30,R28
    03D2 8100      LDD	R16,Z+0
    03D3 8111      LDD	R17,Z+1
    03D4 8122      LDD	R18,Z+2
    03D5 8133      LDD	R19,Z+3
    03D6 940E046A  CALL	fp2int
    03D8 01B8      MOVW	R22,R16
    03D9 01AB      MOVW	R20,R22
(0187) 	 point_pos=3;
    03DA E083      LDI	R24,3
    03DB 93800103  STS	point_pos,R24
(0188) 	 Seg7_Led_Buf[3]=temp/1000;
    03DD EE28      LDI	R18,0xE8
    03DE E033      LDI	R19,3
    03DF 018A      MOVW	R16,R20
    03E0 940E0411  CALL	div16u
    03E2 93000107  STS	Seg7_Led_Buf+3,R16
(0189)  	 Seg7_Led_Buf[2]=(temp%1000)/100;
    03E4 EE28      LDI	R18,0xE8
    03E5 E033      LDI	R19,3
    03E6 018A      MOVW	R16,R20
    03E7 940E040F  CALL	mod16u
    03E9 E624      LDI	R18,0x64
    03EA E030      LDI	R19,0
    03EB 940E0411  CALL	div16u
    03ED 93000106  STS	Seg7_Led_Buf+2,R16
(0190)  	 Seg7_Led_Buf[1]=(temp%100)/10;
    03EF E624      LDI	R18,0x64
    03F0 E030      LDI	R19,0
    03F1 018A      MOVW	R16,R20
    03F2 940E040F  CALL	mod16u
    03F4 E02A      LDI	R18,0xA
    03F5 E030      LDI	R19,0
    03F6 940E0411  CALL	div16u
    03F8 93000105  STS	Seg7_Led_Buf+1,R16
(0191)  	 Seg7_Led_Buf[0]=temp%10;
    03FA E02A      LDI	R18,0xA
    03FB E030      LDI	R19,0
    03FC 018A      MOVW	R16,R20
    03FD 940E040F  CALL	mod16u
    03FF 93000104  STS	Seg7_Led_Buf,R16
(0192) 	 Seg7_Led_Update();
    0401 DD2D      RCALL	_Seg7_Led_Update
(0193) 	}
(0194)  point=0;
FILE: <library>
    0402 2422      CLR	R2
    0403 92200102  STS	point,R2
    0405 9624      ADIW	R28,4
    0406 940E042B  CALL	pop_gset2
    0408 9624      ADIW	R28,4
    0409 9508      RET
push_arg4:
    040A 933A      ST	R19,-Y
    040B 932A      ST	R18,-Y
push_arg2:
    040C 931A      ST	R17,-Y
    040D 930A      ST	R16,-Y
    040E 9508      RET
mod16u:
    040F 9468      BSET	6
    0410 C001      RJMP	xdiv16u
div16u:
    0411 94E8      BCLR	6
xdiv16u:
    0412 92EA      ST	R14,-Y
    0413 92FA      ST	R15,-Y
    0414 938A      ST	R24,-Y
    0415 24EE      CLR	R14
    0416 24FF      CLR	R15
    0417 E180      LDI	R24,0x10
    0418 0F00      LSL	R16
    0419 1F11      ROL	R17
    041A 1CEE      ROL	R14
    041B 1CFF      ROL	R15
    041C 16E2      CP	R14,R18
    041D 06F3      CPC	R15,R19
    041E F018      BCS	0x0422
    041F 1AE2      SUB	R14,R18
    0420 0AF3      SBC	R15,R19
    0421 9503      INC	R16
    0422 958A      DEC	R24
    0423 F7A1      BNE	0x0418
    0424 F416      BRTC	0x0427
    0425 2D0E      MOV	R16,R14
    0426 2D1F      MOV	R17,R15
    0427 9189      LD	R24,Y+
    0428 90F9      LD	R15,Y+
    0429 90E9      LD	R14,Y+
    042A 9508      RET
pop_gset2:
    042B E0E2      LDI	R30,2
    042C 940C043A  JMP	pop
push_gset5:
    042E 92FA      ST	R15,-Y
    042F 92EA      ST	R14,-Y
push_gset4:
    0430 92DA      ST	R13,-Y
    0431 92CA      ST	R12,-Y
push_gset3:
    0432 92BA      ST	R11,-Y
    0433 92AA      ST	R10,-Y
push_gset2:
    0434 937A      ST	R23,-Y
    0435 936A      ST	R22,-Y
push_gset1:
    0436 935A      ST	R21,-Y
    0437 934A      ST	R20,-Y
    0438 9508      RET
pop_gset1:
    0439 E0E1      LDI	R30,1
pop:
    043A 9149      LD	R20,Y+
    043B 9159      LD	R21,Y+
    043C FDE0      SBRC	R30,0
    043D 9508      RET
    043E 9169      LD	R22,Y+
    043F 9179      LD	R23,Y+
    0440 FDE1      SBRC	R30,1
    0441 9508      RET
    0442 90A9      LD	R10,Y+
    0443 90B9      LD	R11,Y+
    0444 FDE2      SBRC	R30,2
    0445 9508      RET
    0446 90C9      LD	R12,Y+
    0447 90D9      LD	R13,Y+
    0448 FDE3      SBRC	R30,3
    0449 9508      RET
    044A 90E9      LD	R14,Y+
    044B 90F9      LD	R15,Y+
    044C 9508      RET
neg32:
    044D 9500      COM	R16
    044E 9510      COM	R17
    044F 9520      COM	R18
    0450 9530      COM	R19
    0451 5F0F      SUBI	R16,0xFF
    0452 4F1F      SBCI	R17,0xFF
    0453 4F2F      SBCI	R18,0xFF
    0454 4F3F      SBCI	R19,0xFF
    0455 9508      RET
lpm32:
    0456 93EA      ST	R30,-Y
    0457 93FA      ST	R31,-Y
    0458 920A      ST	R0,-Y
    0459 2FE0      MOV	R30,R16
    045A 2FF1      MOV	R31,R17
    045B 95C8      LPM
    045C 2D00      MOV	R16,R0
    045D 9631      ADIW	R30,1
    045E 95C8      LPM
    045F 2D10      MOV	R17,R0
    0460 9631      ADIW	R30,1
    0461 95C8      LPM
    0462 2D20      MOV	R18,R0
    0463 9631      ADIW	R30,1
    0464 95C8      LPM
    0465 2D30      MOV	R19,R0
    0466 9009      LD	R0,Y+
    0467 91F9      LD	R31,Y+
    0468 91E9      LD	R30,Y+
    0469 9508      RET
fp2int:
    046A 940E05BB  CALL	savfacc1
    046C D014      RCALL	FTOI
    046D 2F02      MOV	R16,R18
    046E 2F13      MOV	R17,R19
    046F FD87      SBRC	R24,7
    0470 C002      RJMP	nojump1

⌨️ 快捷键说明

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