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

📄 main.lst

📁 用atmega32+N298实现步进电机控制
💻 LST
字号:
FILE: <library>
__start:
__text_start:
    002A E5CF      LDI	R28,0x5F
    002B E0D8      LDI	R29,0x8
    002C BFCD      OUT	0x3D,R28
    002D BFDE      OUT	0x3E,R29
    002E 51C0      SUBI	R28,0x10
    002F 40D0      SBCI	R29,0
    0030 EA0A      LDI	R16,0xAA
    0031 8308      STD	Y+0,R16
    0032 2400      CLR	R0
    0033 E6E0      LDI	R30,0x60
    0034 E0F0      LDI	R31,0
    0035 E010      LDI	R17,0
    0036 36E0      CPI	R30,0x60
    0037 07F1      CPC	R31,R17
    0038 F011      BEQ	0x003B
    0039 9201      ST	R0,Z+
    003A CFFB      RJMP	0x0036
    003B 8300      STD	Z+0,R16
    003C E5E4      LDI	R30,0x54
    003D E0F0      LDI	R31,0
    003E E6A0      LDI	R26,0x60
    003F E0B0      LDI	R27,0
    0040 E010      LDI	R17,0
    0041 35E4      CPI	R30,0x54
    0042 07F1      CPC	R31,R17
    0043 F021      BEQ	0x0048
    0044 95C8      LPM
    0045 9631      ADIW	R30,1
    0046 920D      ST	R0,X+
    0047 CFF9      RJMP	0x0041
    0048 940E00C6  CALL	_main
_exit:
    004A CFFF      RJMP	_exit
_for_ward:
  speed                --> R16
    004B 2300      TST	R16
    004C F021      BEQ	0x0051
    004D BD03      OUT	0x23,R16
    004E B422      IN	R2,0x22
    004F FC20      SBRC	R2,0
    0050 CFFD      RJMP	0x004E
    0051 B789      IN	R24,0x39
    0052 6C80      ORI	R24,0xC0
    0053 BF89      OUT	0x39,R24
    0054 9A94      SBI	0x12,4
    0055 9895      CBI	0x12,5
    0056 9508      RET
_back_ward:
  speed                --> R16
    0057 2300      TST	R16
    0058 F021      BEQ	0x005D
    0059 BD03      OUT	0x23,R16
    005A B422      IN	R2,0x22
    005B FC20      SBRC	R2,0
    005C CFFD      RJMP	0x005A
    005D B789      IN	R24,0x39
    005E 6C80      ORI	R24,0xC0
    005F BF89      OUT	0x39,R24
    0060 9894      CBI	0x12,4
    0061 9A95      SBI	0x12,5
    0062 9508      RET
_motor_stop:
    0063 9A94      SBI	0x12,4
    0064 9A95      SBI	0x12,5
    0065 B789      IN	R24,0x39
    0066 778F      ANDI	R24,0x7F
    0067 BF89      OUT	0x39,R24
    0068 9508      RET
_speed_add:
  add                  --> R16
    0069 B583      IN	R24,0x23
    006A 0F80      ADD	R24,R16
    006B 3F80      CPI	R24,0xF0
    006C F418      BCC	0x0070
    006D B423      IN	R2,0x23
    006E 0E20      ADD	R2,R16
    006F BC23      OUT	0x23,R2
    0070 9508      RET
_speed_subtract:
  subtract             --> R16
    0071 B423      IN	R2,0x23
    0072 1A20      SUB	R2,R16
    0073 E08A      LDI	R24,0xA
    0074 1582      CP	R24,R2
    0075 F418      BCC	0x0079
    0076 B423      IN	R2,0x23
    0077 1A20      SUB	R2,R16
    0078 BC23      OUT	0x23,R2
    0079 9508      RET
_port_init:
    007A 2422      CLR	R2
    007B BA2B      OUT	0x1B,R2
    007C BA2A      OUT	0x1A,R2
    007D BA28      OUT	0x18,R2
    007E BA27      OUT	0x17,R2
    007F BA25      OUT	0x15,R2
    0080 BA24      OUT	0x14,R2
    0081 BA22      OUT	0x12,R2
    0082 E880      LDI	R24,0x80
    0083 BB81      OUT	0x11,R24
    0084 9508      RET
_timer2_init:
    0085 2422      CLR	R2
    0086 BC25      OUT	0x25,R2
    0087 E081      LDI	R24,1
    0088 BD84      OUT	0x24,R24
    0089 E686      LDI	R24,0x66
    008A BD83      OUT	0x23,R24
    008B E68E      LDI	R24,0x6E
    008C BD85      OUT	0x25,R24
    008D 9508      RET
_init_devices:
    008E 94F8      BCLR	7
    008F DFEA      RCALL	_port_init
    0090 DFF4      RCALL	_timer2_init
    0091 2422      CLR	R2
    0092 BE29      OUT	0x39,R2
    0093 9478      BSET	7
    0094 9508      RET
_Delay100us:
  i                    --> R20
  x                    --> R16
    0095 940E010F  CALL	push_gset1
    0097 E943      LDI	R20,0x93
    0098 C006      RJMP	0x009F
    0099 2F84      MOV	R24,R20
    009A 5081      SUBI	R24,1
    009B 2F48      MOV	R20,R24
    009C 2388      TST	R24
    009D F7D9      BNE	0x0099
    009E 950A      DEC	R16
    009F 2300      TST	R16
    00A0 F7C1      BNE	0x0099
    00A1 940E0112  CALL	pop_gset1
    00A3 9508      RET
_Delay1ms:
  n                    --> R20
    00A4 940E010F  CALL	push_gset1
    00A6 01A8      MOVW	R20,R16
    00A7 C004      RJMP	0x00AC
    00A8 E00A      LDI	R16,0xA
    00A9 DFEB      RCALL	_Delay100us
    00AA 5041      SUBI	R20,1
    00AB 4050      SBCI	R21,0
    00AC 3040      CPI	R20,0
    00AD 0745      CPC	R20,R21
    00AE F7C9      BNE	0x00A8
    00AF 940E0112  CALL	pop_gset1
    00B1 9508      RET
_Delay1s:
  m                    --> R20
    00B2 940E010F  CALL	push_gset1
    00B4 01A8      MOVW	R20,R16
    00B5 E208      LDI	R16,0x28
    00B6 E010      LDI	R17,0
    00B7 019A      MOVW	R18,R20
    00B8 940E00F7  CALL	empy16s
    00BA 01A8      MOVW	R20,R16
    00BB C004      RJMP	0x00C0
    00BC EF0A      LDI	R16,0xFA
    00BD DFD7      RCALL	_Delay100us
    00BE 5041      SUBI	R20,1
    00BF 4050      SBCI	R21,0
    00C0 3040      CPI	R20,0
    00C1 0745      CPC	R20,R21
    00C2 F7C9      BNE	0x00BC
    00C3 940E0112  CALL	pop_gset1
    00C5 9508      RET
_main:
    00C6 940E008E  CALL	_init_devices
    00C8 C022      RJMP	0x00EB
    00C9 2700      CLR	R16
    00CA 940E004B  CALL	_for_ward
    00CC E005      LDI	R16,5
    00CD E010      LDI	R17,0
    00CE 940E00B2  CALL	_Delay1s
    00D0 940E0063  CALL	_motor_stop
    00D2 E005      LDI	R16,5
    00D3 E010      LDI	R17,0
    00D4 940E00B2  CALL	_Delay1s
    00D6 2700      CLR	R16
    00D7 940E0057  CALL	_back_ward
    00D9 E005      LDI	R16,5
    00DA E010      LDI	R17,0
    00DB 940E00B2  CALL	_Delay1s
    00DD E104      LDI	R16,0x14
    00DE 940E0069  CALL	_speed_add
    00E0 E005      LDI	R16,5
    00E1 E010      LDI	R17,0
    00E2 940E00B2  CALL	_Delay1s
    00E4 E104      LDI	R16,0x14
    00E5 940E0071  CALL	_speed_subtract
    00E7 E005      LDI	R16,5
    00E8 E010      LDI	R17,0
    00E9 940E00B2  CALL	_Delay1s
    00EB CFDD      RJMP	0x00C9
    00EC 9508      RET
_timer2_comp_isr:
    00ED 9518      RETI
_timer2_ovf_isr:
    00EE 938A      ST	R24,-Y
    00EF B78F      IN	R24,0x3F
    00F0 938A      ST	R24,-Y
    00F1 E081      LDI	R24,1
    00F2 BD84      OUT	0x24,R24
    00F3 9189      LD	R24,Y+
    00F4 BF8F      OUT	0x3F,R24
    00F5 9189      LD	R24,Y+
    00F6 9518      RETI
empy16s:
    00F7 920A      ST	R0,-Y
    00F8 921A      ST	R1,-Y
    00F9 938A      ST	R24,-Y
    00FA 939A      ST	R25,-Y
    00FB 9F02      MUL	R16,R18
    00FC 01C0      MOVW	R24,R0
    00FD 9F12      MUL	R17,R18
    00FE 0D90      ADD	R25,R0
    00FF 9F03      MUL	R16,R19
    0100 0D90      ADD	R25,R0
    0101 018C      MOVW	R16,R24
    0102 9199      LD	R25,Y+
    0103 9189      LD	R24,Y+
    0104 9019      LD	R1,Y+
    0105 9009      LD	R0,Y+
    0106 9508      RET
push_gset5:
    0107 92FA      ST	R15,-Y
    0108 92EA      ST	R14,-Y
push_gset4:
    0109 92DA      ST	R13,-Y
    010A 92CA      ST	R12,-Y
push_gset3:
    010B 92BA      ST	R11,-Y
    010C 92AA      ST	R10,-Y
push_gset2:
    010D 937A      ST	R23,-Y
    010E 936A      ST	R22,-Y
push_gset1:
    010F 935A      ST	R21,-Y
    0110 934A      ST	R20,-Y
    0111 9508      RET
pop_gset1:
    0112 E0E1      LDI	R30,1
pop:
    0113 9149      LD	R20,Y+
    0114 9159      LD	R21,Y+
    0115 FDE0      SBRC	R30,0
    0116 9508      RET
    0117 9169      LD	R22,Y+
    0118 9179      LD	R23,Y+
    0119 FDE1      SBRC	R30,1
    011A 9508      RET
    011B 90A9      LD	R10,Y+
    011C 90B9      LD	R11,Y+
    011D FDE2      SBRC	R30,2
    011E 9508      RET
    011F 90C9      LD	R12,Y+
    0120 90D9      LD	R13,Y+
    0121 FDE3      SBRC	R30,3
    0122 9508      RET
    0123 90E9      LD	R14,Y+
    0124 90F9      LD	R15,Y+
    0125 9508      RET

⌨️ 快捷键说明

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