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

📄 计算器.lst

📁 通过单片机实现计算器的功能
💻 LST
📖 第 1 页 / 共 5 页
字号:
    05AB 91800076  LDS	R24,error
    05AD 3081      CPI	R24,1
    05AE F441      BNE	0x05B7
(0156) LCD_write_string(10,1,"ERROR");
    05AF E988      LDI	R24,0x98
    05B0 E090      LDI	R25,0
    05B1 8399      STD	Y+1,R25
    05B2 8388      STD	Y+0,R24
    05B3 E021      LDI	R18,1
    05B4 E00A      LDI	R16,0xA
    05B5 DB49      RCALL	_LCD_write_string
    05B6 C007      RJMP	0x05BE
(0157) 
(0158) 
(0159) else LCD_write_string(10,1,result_dp);
    05B7 E68A      LDI	R24,0x6A
    05B8 E090      LDI	R25,0
    05B9 8399      STD	Y+1,R25
    05BA 8388      STD	Y+0,R24
    05BB E021      LDI	R18,1
    05BC E00A      LDI	R16,0xA
    05BD DB41      RCALL	_LCD_write_string
    05BE 9622      ADIW	R28,2
    05BF 940E06C0  CALL	pop_gset2
    05C1 9508      RET
_main:
  i                    --> Y+3
    05C2 9722      SBIW	R28,2
(0160) 
(0161) }
(0162) 
(0163) void main(void)
(0164) {	unsigned char i; 
(0165)    LCD_init();//液晶初始化
    05C3 DAD0      RCALL	_LCD_init
(0166) LCD_write_string(1,0,"COUNTER BY MJP");//显示欢迎信息
    05C4 E788      LDI	R24,0x78
    05C5 E090      LDI	R25,0
    05C6 8399      STD	Y+1,R25
    05C7 8388      STD	Y+0,R24
    05C8 2722      CLR	R18
    05C9 E001      LDI	R16,1
    05CA DB34      RCALL	_LCD_write_string
    05CB C006      RJMP	0x05D2
(0167)    while(1)
(0168)    {key=get_key();//按键扫描
    05CC DBEE      RCALL	_get_key
    05CD 93000073  STS	key,R16
(0169) 	
(0170) 	if(key!=0x00)
    05CF 2300      TST	R16
    05D0 F009      BEQ	0x05D2
(0171) 	{
(0172) 	process_key();//调用按键处理函数
FILE: <library>
    05D1 DC08      RCALL	_process_key
    05D2 CFF9      RJMP	0x05CC
    05D3 9622      ADIW	R28,2
    05D4 9508      RET
mod16s:
    05D5 9468      BSET	6
    05D6 92DA      ST	R13,-Y
    05D7 2ED1      MOV	R13,R17
    05D8 C004      RJMP	0x05DD
div16s:
    05D9 94E8      BCLR	6
    05DA 92DA      ST	R13,-Y
    05DB 2ED1      MOV	R13,R17
    05DC 26D3      EOR	R13,R19
    05DD FF17      SBRS	R17,7
    05DE C004      RJMP	0x05E3
    05DF 9510      COM	R17
    05E0 9500      COM	R16
    05E1 5F0F      SUBI	R16,0xFF
    05E2 4F1F      SBCI	R17,0xFF
    05E3 FF37      SBRS	R19,7
    05E4 C004      RJMP	0x05E9
    05E5 9530      COM	R19
    05E6 9520      COM	R18
    05E7 5F2F      SUBI	R18,0xFF
    05E8 4F3F      SBCI	R19,0xFF
    05E9 940E05F6  CALL	xdiv16u
    05EB FED7      SBRS	R13,7
    05EC C004      RJMP	0x05F1
    05ED 9510      COM	R17
    05EE 9500      COM	R16
    05EF 5F0F      SUBI	R16,0xFF
    05F0 4F1F      SBCI	R17,0xFF
    05F1 90D9      LD	R13,Y+
    05F2 9508      RET
mod16u:
    05F3 9468      BSET	6
    05F4 C001      RJMP	xdiv16u
div16u:
    05F5 94E8      BCLR	6
xdiv16u:
    05F6 92EA      ST	R14,-Y
    05F7 92FA      ST	R15,-Y
    05F8 938A      ST	R24,-Y
    05F9 24EE      CLR	R14
    05FA 24FF      CLR	R15
    05FB E180      LDI	R24,0x10
    05FC 0F00      LSL	R16
    05FD 1F11      ROL	R17
    05FE 1CEE      ROL	R14
    05FF 1CFF      ROL	R15
    0600 16E2      CP	R14,R18
    0601 06F3      CPC	R15,R19
    0602 F018      BCS	0x0606
    0603 1AE2      SUB	R14,R18
    0604 0AF3      SBC	R15,R19
    0605 9503      INC	R16
    0606 958A      DEC	R24
    0607 F7A1      BNE	0x05FC
    0608 F416      BRTC	0x060B
    0609 2D0E      MOV	R16,R14
    060A 2D1F      MOV	R17,R15
    060B 9189      LD	R24,Y+
    060C 90F9      LD	R15,Y+
    060D 90E9      LD	R14,Y+
    060E 9508      RET
div32u:
    060F 94E8      BCLR	6
    0610 C001      RJMP	0x0612
mod32u:
    0611 9468      BSET	6
    0612 D02F      RCALL	long_div_prolog
    0613 24CC      CLR	R12
    0614 C008      RJMP	0x061D
div32s:
    0615 94E8      BCLR	6
    0616 C001      RJMP	0x0618
mod32s:
    0617 9468      BSET	6
    0618 D029      RCALL	long_div_prolog
    0619 FD37      SBRC	R19,7
    061A D053      RCALL	neg_R16_R19
    061B FDB7      SBRC	R27,7
    061C D05A      RCALL	neg_R24_R27
    061D 2477      CLR	R7
    061E 2488      CLR	R8
    061F 2499      CLR	R9
    0620 24AA      CLR	R10
    0621 24BB      CLR	R11
    0622 D041      RCALL	tst_R16_R19
    0623 F0C1      BEQ	0x063C
    0624 D044      RCALL	tst_R24_R27
    0625 F0B1      BEQ	0x063C
    0626 E2E8      LDI	R30,0x28
    0627 0F00      LSL	R16
    0628 1F11      ROL	R17
    0629 1F22      ROL	R18
    062A 1F33      ROL	R19
    062B 1C77      ROL	R7
    062C 1C88      ROL	R8
    062D 1C99      ROL	R9
    062E 1CAA      ROL	R10
    062F 1CBB      ROL	R11
    0630 1688      CP	R8,R24
    0631 0699      CPC	R9,R25
    0632 06AA      CPC	R10,R26
    0633 06BB      CPC	R11,R27
    0634 F028      BCS	0x063A
    0635 1A88      SUB	R8,R24
    0636 0A99      SBC	R9,R25
    0637 0AAA      SBC	R10,R26
    0638 0ABB      SBC	R11,R27
    0639 9503      INC	R16
    063A 95EA      DEC	R30
    063B F759      BNE	0x0627
    063C F426      BRTC	0x0641
    063D 2D08      MOV	R16,R8
    063E 2D19      MOV	R17,R9
    063F 2D2A      MOV	R18,R10
    0640 2D3B      MOV	R19,R11
    0641 C013      RJMP	long_div_epilog
long_div_prolog:
    0642 927A      ST	R7,-Y
    0643 928A      ST	R8,-Y
    0644 929A      ST	R9,-Y
    0645 92AA      ST	R10,-Y
    0646 92BA      ST	R11,-Y
    0647 92CA      ST	R12,-Y
    0648 93EA      ST	R30,-Y
    0649 938A      ST	R24,-Y
    064A 939A      ST	R25,-Y
    064B 93AA      ST	R26,-Y
    064C 93BA      ST	R27,-Y
    064D 858B      LDD	R24,Y+11
    064E 859C      LDD	R25,Y+12
    064F 85AD      LDD	R26,Y+13
    0650 85BE      LDD	R27,Y+14
    0651 2EC3      MOV	R12,R19
    0652 F00E      BRTS	0x0654
    0653 26CB      EOR	R12,R27
    0654 9508      RET
long_div_epilog:
    0655 FCC7      SBRC	R12,7
    0656 D017      RCALL	neg_R16_R19
    0657 91B9      LD	R27,Y+
    0658 91A9      LD	R26,Y+
    0659 9199      LD	R25,Y+
    065A 9189      LD	R24,Y+
    065B 91E9      LD	R30,Y+
    065C 90C9      LD	R12,Y+
    065D 90B9      LD	R11,Y+
    065E 90A9      LD	R10,Y+
    065F 9099      LD	R9,Y+
    0660 9089      LD	R8,Y+
    0661 9079      LD	R7,Y+
    0662 9624      ADIW	R28,4
    0663 9508      RET
tst_R16_R19:
    0664 2FE0      MOV	R30,R16
    0665 2BE1      OR	R30,R17
    0666 2BE2      OR	R30,R18
    0667 2BE3      OR	R30,R19
    0668 9508      RET
tst_R24_R27:
    0669 2FE8      MOV	R30,R24
    066A 2BE9      OR	R30,R25
    066B 2BEA      OR	R30,R26
    066C 2BEB      OR	R30,R27
    066D 9508      RET
neg_R16_R19:
    066E 9500      COM	R16
    066F 9510      COM	R17
    0670 9520      COM	R18
    0671 9530      COM	R19
    0672 5F0F      SUBI	R16,0xFF
    0673 4F1F      SBCI	R17,0xFF
    0674 4F2F      SBCI	R18,0xFF
    0675 4F3F      SBCI	R19,0xFF
    0676 9508      RET
neg_R24_R27:
    0677 9580      COM	R24
    0678 9590      COM	R25
    0679 95A0      COM	R26
    067A 95B0      COM	R27
    067B 5F8F      SUBI	R24,0xFF
    067C 4F9F      SBCI	R25,0xFF
    067D 4FAF      SBCI	R26,0xFF
    067E 4FBF      SBCI	R27,0xFF
    067F 9508      RET
empy16s:
    0680 920A      ST	R0,-Y
    0681 921A      ST	R1,-Y
    0682 938A      ST	R24,-Y
    0683 939A      ST	R25,-Y
    0684 9F02      MUL	R16,R18
    0685 01C0      MOVW	R24,R0
    0686 9F12      MUL	R17,R18
    0687 0D90      ADD	R25,R0
    0688 9F03      MUL	R16,R19
    0689 0D90      ADD	R25,R0
    068A 018C      MOVW	R16,R24
    068B 9199      LD	R25,Y+
    068C 9189      LD	R24,Y+
    068D 9019      LD	R1,Y+
    068E 9009      LD	R0,Y+
    068F 9508      RET
empy32s:
empy32u:
    0690 940E06E5  CALL	long_prolog
    0692 927F      PUSH	R7
    0693 940E06FE  CALL	tstzero1
    0695 F139      BEQ	0x06BD
    0696 2477      CLR	R7
    0697 940E0704  CALL	tstzero2
    0699 F419      BNE	0x069D
    069A 018C      MOVW	R16,R24
    069B 019D      MOVW	R18,R26
    069C C020      RJMP	0x06BD
    069D 9F08      MUL	R16,R24
    069E 2CB0      MOV	R11,R0
    069F 2CA1      MOV	R10,R1
    06A0 9F28      MUL	R18,R24
    06A1 2C90      MOV	R9,R0
    06A2 2C81      MOV	R8,R1
    06A3 9F18      MUL	R17,R24
    06A4 0CA0      ADD	R10,R0
    06A5 1C91      ADC	R9,R1
    06A6 1C87      ADC	R8,R7
    06A7 9F09      MUL	R16,R25
    06A8 0CA0      ADD	R10,R0
    06A9 1C91      ADC	R9,R1
    06AA 1C87      ADC	R8,R7
    06AB 9F19      MUL	R17,R25
    06AC 0C90      ADD	R9,R0
    06AD 1C81      ADC	R8,R1
    06AE 9F0A      MUL	R16,R26
    06AF 0C90      ADD	R9,R0
    06B0 1C81      ADC	R8,R1
    06B1 9F38      MUL	R19,R24
    06B2 0C80      ADD	R8,R0
    06B3 9F29      MUL	R18,R25
    06B4 0C80      ADD	R8,R0
    06B5 9F1A      MUL	R17,R26
    06B6 0C80      ADD	R8,R0
    06B7 9F0B      MUL	R16,R27
    06B8 0C80      ADD	R8,R0
    06B9 2D0B      MOV	R16,R11
    06BA 2D1A      MOV	R17,R10
    06BB 2D29      MOV	R18,R9
    06BC 2D38      MOV	R19,R8
    06BD 907F      POP	R7
    06BE 940C06F3  JMP	long_epilog
pop_gset2:
    06C0 E0E2      LDI	R30,2
    06C1 940C06D2  JMP	pop
pop_gset3:
    06C3 E0E4      LDI	R30,4
    06C4 940C06D2  JMP	pop
push_gset5:
    06C6 92FA      ST	R15,-Y
    06C7 92EA      ST	R14,-Y
push_gset4:
    06C8 92DA      ST	R13,-Y
    06C9 92CA      ST	R12,-Y
push_gset3:
    06CA 92BA      ST	R11,-Y
    06CB 92AA      ST	R10,-Y
push_gset2:
    06CC 937A      ST	R23,-Y
    06CD 936A      ST	R22,-Y
push_gset1:
    06CE 935A      ST	R21,-Y
    06CF 934A      ST	R20,-Y
    06D0 9508      RET
pop_gset1:
    06D1 E0E1      LDI	R30,1
pop:
    06D2 9149      LD	R20,Y+
    06D3 9159      LD	R21,Y+
    06D4 FDE0      SBRC	R30,0
    06D5 9508      RET
    06D6 9169      LD	R22,Y+
    06D7 9179      LD	R23,Y+
    06D8 FDE1      SBRC	R30,1
    06D9 9508      RET
    06DA 90A9      LD	R10,Y+
    06DB 90B9      LD	R11,Y+
    06DC FDE2      SBRC	R30,2
    06DD 9508      RET
    06DE 90C9      LD	R12,Y+
    06DF 90D9      LD	R13,Y+
    06E0 FDE3      SBRC	R30,3
    06E1 9508      RET
    06E2 90E9      LD	R14,Y+
    06E3 90F9      LD	R15,Y+
    06E4 9508      RET
long_prolog:
    06E5 928A      ST	R8,-Y
    06E6 929A      ST	R9,-Y
    06E7 92AA      ST	R10,-Y
    06E8 92BA      ST	R11,-Y
    06E9 93EA      ST	R30,-Y
    06EA 938A      ST	R24,-Y
    06EB 939A      ST	R25,-Y
    06EC 93AA      ST	R26,-Y
    06ED 93BA      ST	R27,-Y
    06EE 8589      LDD	R24,Y+9
    06EF 859A      LDD	R25,Y+10
    06F0 85AB      LDD	R26,Y+11
    06F1 85BC      LDD	R27,Y+12
    06F2 9508      RET
long_epilog:
    06F3 91B9      LD	R27,Y+
    06F4 91A9      LD	R26,Y+
    06F5 9199      LD	R25,Y+
    06F6 9189      LD	R24,Y+
    06F7 91E9      LD	R30,Y+
    06F8 90B9      LD	R11,Y+
    06F9 90A9      LD	R10,Y+
    06FA 9099      LD	R9,Y+
    06FB 9089      LD	R8,Y+
    06FC 9624      ADIW	R28,4
    06FD 9508      RET
tstzero1:
    06FE 27EE      CLR	R30
    06FF 2BE0      OR	R30,R16
    0700 2BE1      OR	R30,R17
    0701 2BE2      OR	R30,R18
    0702 2BE3      OR	R30,R19
    0703 9508      RET
tstzero2:
    0704 27EE      CLR	R30
    0705 2BE8      OR	R30,R24
    0706 2BE9      OR	R30,R25
    0707 2BEA      OR	R30,R26
    0708 2BEB      OR	R30,R27
    0709 9508      RET

⌨️ 快捷键说明

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