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

📄 main.lst

📁 小车自动寻迹代码,可以进行电子设计,设计电动小车
💻 LST
字号:
__start:
__text_start:
    003A E5CF      LDI	R28,0x5F
    003B E0D4      LDI	R29,4
    003C BFCD      OUT	0x3D,R28
    003D BFDE      OUT	0x3E,R29
    003E 51C0      SUBI	R28,0x10
    003F 40D0      SBCI	R29,0
    0040 EA0A      LDI	R16,0xAA
    0041 8308      STD	Y+0,R16
    0042 2400      CLR	R0
    0043 E6E0      LDI	R30,0x60
    0044 E0F0      LDI	R31,0
    0045 E010      LDI	R17,0
    0046 36E1      CPI	R30,0x61
    0047 07F1      CPC	R31,R17
    0048 F011      BEQ	0x004B
    0049 9201      ST	R0,Z+
    004A CFFB      RJMP	0x0046
    004B 8300      STD	Z+0,R16
    004C E7E4      LDI	R30,0x74
    004D E0F0      LDI	R31,0
    004E E6A0      LDI	R26,0x60
    004F E0B0      LDI	R27,0
    0050 E010      LDI	R17,0
    0051 37E4      CPI	R30,0x74
    0052 07F1      CPC	R31,R17
    0053 F021      BEQ	0x0058
    0054 95C8      LPM
    0055 9631      ADIW	R30,1
    0056 920D      ST	R0,X+
    0057 CFF9      RJMP	0x0051
    0058 940E013C  CALL	_main
_exit:
    005A CFFF      RJMP	_exit
_motor_left_forward:
  speed                --> R16
    005B 98C4      CBI	0x18,4
    005C 9AC5      SBI	0x18,5
    005D 2300      TST	R16
    005E F009      BEQ	0x0060
    005F BF0C      OUT	0x3C,R16
    0060 B789      IN	R24,0x39
    0061 6083      ORI	R24,3
    0062 BF89      OUT	0x39,R24
    0063 9508      RET
_motor_left_backward:
  speed                --> R16
    0064 9AC4      SBI	0x18,4
    0065 98C5      CBI	0x18,5
    0066 2300      TST	R16
    0067 F009      BEQ	0x0069
    0068 BF0C      OUT	0x3C,R16
    0069 B789      IN	R24,0x39
    006A 6083      ORI	R24,3
    006B BF89      OUT	0x39,R24
    006C 9508      RET
_motor_left_speed_set:
  speed                --> R16
    006D 2300      TST	R16
    006E F009      BEQ	0x0070
    006F BF0C      OUT	0x3C,R16
    0070 9508      RET
_motor_left_stop:
    0071 98C4      CBI	0x18,4
    0072 98C5      CBI	0x18,5
    0073 B789      IN	R24,0x39
    0074 7F8D      ANDI	R24,0xFD
    0075 BF89      OUT	0x39,R24
    0076 9508      RET
_motor_left_quick_stop:
    0077 9AC4      SBI	0x18,4
    0078 9AC5      SBI	0x18,5
    0079 B789      IN	R24,0x39
    007A 7F8D      ANDI	R24,0xFD
    007B BF89      OUT	0x39,R24
    007C 9508      RET
_motor_right_forward:
  speed                --> R16
    007D 9AC1      SBI	0x18,1
    007E 98C2      CBI	0x18,2
    007F 2300      TST	R16
    0080 F021      BEQ	0x0085
    0081 BD03      OUT	0x23,R16
    0082 B422      IN	R2,0x22
    0083 FC20      SBRC	R2,0
    0084 CFFD      RJMP	0x0082
    0085 9508      RET
_motor_right_backward:
  speed                --> R16
    0086 98C1      CBI	0x18,1
    0087 9AC2      SBI	0x18,2
    0088 2300      TST	R16
    0089 F021      BEQ	0x008E
    008A BD03      OUT	0x23,R16
    008B B422      IN	R2,0x22
    008C FC20      SBRC	R2,0
    008D CFFD      RJMP	0x008B
    008E 9508      RET
_motor_right_speed_set:
  speed                --> R16
    008F 2300      TST	R16
    0090 F021      BEQ	0x0095
    0091 BF0C      OUT	0x3C,R16
    0092 B422      IN	R2,0x22
    0093 FC20      SBRC	R2,0
    0094 CFFD      RJMP	0x0092
    0095 9508      RET
_motor_right_stop:
    0096 98C1      CBI	0x18,1
    0097 98C2      CBI	0x18,2
    0098 B789      IN	R24,0x39
    0099 778F      ANDI	R24,0x7F
    009A BF89      OUT	0x39,R24
    009B 9508      RET
_motor_right_quick_stop:
    009C 9AC1      SBI	0x18,1
    009D 9AC2      SBI	0x18,2
    009E B789      IN	R24,0x39
    009F 778F      ANDI	R24,0x7F
    00A0 BF89      OUT	0x39,R24
    00A1 9508      RET
_straight:
    00A2 DFF9      RCALL	_motor_right_quick_stop
    00A3 EF0E      LDI	R16,0xFE
    00A4 DFB6      RCALL	_motor_left_forward
    00A5 9508      RET
_turn_left:
    00A6 EF0E      LDI	R16,0xFE
    00A7 DFB3      RCALL	_motor_left_forward
    00A8 E500      LDI	R16,0x50
    00A9 DFD3      RCALL	_motor_right_forward
    00AA 9508      RET
_turn_right:
    00AB EF0E      LDI	R16,0xFE
    00AC DFAE      RCALL	_motor_left_forward
    00AD E500      LDI	R16,0x50
    00AE DFD7      RCALL	_motor_right_backward
    00AF 9508      RET
_straight_back:
    00B0 DFEB      RCALL	_motor_right_quick_stop
    00B1 EF0E      LDI	R16,0xFE
    00B2 DFB1      RCALL	_motor_left_backward
    00B3 9508      RET
_stop:
    00B4 DFC2      RCALL	_motor_left_quick_stop
    00B5 DFE6      RCALL	_motor_right_quick_stop
    00B6 9508      RET
_mic_turn_right:
    00B7 EA00      LDI	R16,0xA0
    00B8 DFA2      RCALL	_motor_left_forward
    00B9 E300      LDI	R16,0x30
    00BA DFCB      RCALL	_motor_right_backward
    00BB 9508      RET
_mic_turn_left:
    00BC EA00      LDI	R16,0xA0
    00BD DF9D      RCALL	_motor_left_forward
    00BE E300      LDI	R16,0x30
    00BF DFBD      RCALL	_motor_right_forward
    00C0 9508      RET
_flag_test:
  temp                 --> R20
    00C1 940E01A4  CALL	push_gset1
    00C3 B349      IN	R20,0x19
    00C4 704F      ANDI	R20,0xF
    00C5 2755      CLR	R21
    00C6 3040      CPI	R20,0
    00C7 E0E0      LDI	R30,0
    00C8 075E      CPC	R21,R30
    00C9 F154      BLT	0x00F4
    00CA E08F      LDI	R24,0xF
    00CB E090      LDI	R25,0
    00CC 1784      CP	R24,R20
    00CD 0795      CPC	R25,R21
    00CE F12C      BLT	0x00F4
    00CF E002      LDI	R16,2
    00D0 E010      LDI	R17,0
    00D1 019A      MOVW	R18,R20
    00D2 940E018C  CALL	empy16s
    00D4 01F8      MOVW	R30,R16
    00D5 E584      LDI	R24,0x54
    00D6 E090      LDI	R25,0
    00D7 0FE8      ADD	R30,R24
    00D8 1FF9      ADC	R31,R25
    00D9 9005      LPM	R0,Z+
    00DA 9014      LPM	R1,0(Z)
    00DB 01F0      MOVW	R30,R0
    00DC 9409      IJMP
    00DD 2422      CLR	R2
    00DE 92200060  STS	flag,R2
    00E0 C013      RJMP	0x00F4
    00E1 E081      LDI	R24,1
    00E2 93800060  STS	flag,R24
    00E4 C00F      RJMP	0x00F4
    00E5 E082      LDI	R24,2
    00E6 93800060  STS	flag,R24
    00E8 C00B      RJMP	0x00F4
    00E9 E083      LDI	R24,3
    00EA 93800060  STS	flag,R24
    00EC C007      RJMP	0x00F4
    00ED E084      LDI	R24,4
    00EE 93800060  STS	flag,R24
    00F0 C003      RJMP	0x00F4
    00F1 E085      LDI	R24,5
    00F2 93800060  STS	flag,R24
    00F4 940E01A7  CALL	pop_gset1
    00F6 9508      RET
_timer0_ovf_isr:
    00F7 938A      ST	R24,-Y
    00F8 B78F      IN	R24,0x3F
    00F9 938A      ST	R24,-Y
    00FA E081      LDI	R24,1
    00FB BF82      OUT	0x32,R24
    00FC 9189      LD	R24,Y+
    00FD BF8F      OUT	0x3F,R24
    00FE 9189      LD	R24,Y+
    00FF 9518      RETI
_timer0_comp_isr:
    0100 9518      RETI
_timer2_ovf_isr:
    0101 938A      ST	R24,-Y
    0102 B78F      IN	R24,0x3F
    0103 938A      ST	R24,-Y
    0104 E081      LDI	R24,1
    0105 BD84      OUT	0x24,R24
    0106 9189      LD	R24,Y+
    0107 BF8F      OUT	0x3F,R24
    0108 9189      LD	R24,Y+
    0109 9518      RETI
_timer2_comp_isr:
    010A 9518      RETI
_Delay100us:
  i                    --> R20
  n                    --> R16
    010B 940E01A4  CALL	push_gset1
    010D E943      LDI	R20,0x93
    010E C006      RJMP	0x0115
    010F 2F84      MOV	R24,R20
    0110 5081      SUBI	R24,1
    0111 2F48      MOV	R20,R24
    0112 2388      TST	R24
    0113 F7D9      BNE	0x010F
    0114 950A      DEC	R16
    0115 2300      TST	R16
    0116 F7C1      BNE	0x010F
    0117 940E01A7  CALL	pop_gset1
    0119 9508      RET
_Delay1ms:
  n                    --> R20
    011A 940E01A4  CALL	push_gset1
    011C 01A8      MOVW	R20,R16
    011D C004      RJMP	0x0122
    011E E00A      LDI	R16,0xA
    011F DFEB      RCALL	_Delay100us
    0120 5041      SUBI	R20,1
    0121 4050      SBCI	R21,0
    0122 3040      CPI	R20,0
    0123 0745      CPC	R20,R21
    0124 F7C9      BNE	0x011E
    0125 940E01A7  CALL	pop_gset1
    0127 9508      RET
_Delay1s:
  n                    --> R20
    0128 940E01A4  CALL	push_gset1
    012A 01A8      MOVW	R20,R16
    012B E208      LDI	R16,0x28
    012C E010      LDI	R17,0
    012D 019A      MOVW	R18,R20
    012E 940E018C  CALL	empy16s
    0130 01A8      MOVW	R20,R16
    0131 C004      RJMP	0x0136
    0132 EF0A      LDI	R16,0xFA
    0133 DFD7      RCALL	_Delay100us
    0134 5041      SUBI	R20,1
    0135 4050      SBCI	R21,0
    0136 3040      CPI	R20,0
    0137 0745      CPC	R20,R21
    0138 F7C9      BNE	0x0132
    0139 940E01A7  CALL	pop_gset1
    013B 9508      RET
FILE: C:\DOCUME~1\Administrator\桌面\小车寻迹\main.c
(0001) /*******************************************************************************
(0002) ** 文件名:main.c   工程主文件
(0003) *******************************************************************************/
(0004) #include "config.h"
(0005) 
(0006) volatile uint8 flag; //小车状态
(0007) //0未偏 1左偏 2右偏 3前出线 4后出线 5脱轨
(0008) /*void main(void)
(0009) {
(0010)  init_devices();
(0011)  straight();
(0012)  
(0013)  flag_test();  //测试小车状态
(0014)  while(1) //没有脱轨
(0015)  {
(0016)   flag_test();
(0017)   switch(flag)
(0018)   {
(0019)   case 0:      //正常情况将速度设成相等
(0020)     motor_right_speed_set(0xFE);
(0021)     motor_left_speed_set(0xFE);
(0022)     break;
(0023)   case 1:
(0024)    mic_turn_right();
(0025)    break;
(0026)   case 2:
(0027)    mic_turn_left();
(0028)    break;
(0029)   case 3:
(0030)    break;
(0031)   case 4:
(0032)    break;
(0033)   case 5:
(0034)    stop();
(0035)    break;
(0036)   default:
(0037)    break;
(0038)   }
(0039)  }
(0040) }/end main*/
(0041) 
(0042) // moto test  *****************************************************************
(0043) 
(0044) void main(void)
(0045) {
(0046)  init_devices();
_main:
    013C 940E017E  CALL	_init_devices
    013E C009      RJMP	0x0148
(0047)   while(1)
(0048)    {
(0049)  motor_left_forward(0xa0);
    013F EA00      LDI	R16,0xA0
    0140 940E005B  CALL	_motor_left_forward
(0050)   //Delay1ms(100);
(0051) //motor_right_forward(0xa0);
(0052) 
(0053)  //straight();
(0054)  //Delay1ms(100);
(0055) //turn_left();
(0056) //Delay1ms(100);
(0057) //turn_right();
(0058)  //Delay1ms(100);
(0059)  
(0060)   //straight_back();
(0061)  //Delay1ms(500);
(0062)  //mic_turn_left();
(0063)  //Delay1ms(100);
(0064)   
(0065)  //mic_turn_right();
(0066) //Delay1ms(100);
(0067)  stop();
    0142 940E00B4  CALL	_stop
(0068)  Delay1ms(500);
FILE: <library>
    0144 EF04      LDI	R16,0xF4
    0145 E011      LDI	R17,1
    0146 940E011A  CALL	_Delay1ms
    0148 CFF6      RJMP	0x013F
    0149 9508      RET
_port_init:
    014A 2422      CLR	R2
    014B BA2B      OUT	0x1B,R2
    014C BA2A      OUT	0x1A,R2
    014D BA28      OUT	0x18,R2
    014E EF8F      LDI	R24,0xFF
    014F BB87      OUT	0x17,R24
    0150 BA25      OUT	0x15,R2
    0151 BA24      OUT	0x14,R2
    0152 BA22      OUT	0x12,R2
    0153 E880      LDI	R24,0x80
    0154 BB81      OUT	0x11,R24
    0155 9508      RET
_timer0_init:
    0156 2422      CLR	R2
    0157 BE23      OUT	0x33,R2
    0158 E081      LDI	R24,1
    0159 BF82      OUT	0x32,R24
    015A E686      LDI	R24,0x66
    015B BF8C      OUT	0x3C,R24
    015C E68C      LDI	R24,0x6C
    015D BF83      OUT	0x33,R24
    015E 9508      RET
_timer1_init:
    015F 2422      CLR	R2
    0160 BC2E      OUT	0x2E,R2
    0161 E48C      LDI	R24,0x4C
    0162 BD8D      OUT	0x2D,R24
    0163 E081      LDI	R24,1
    0164 BD8C      OUT	0x2C,R24
    0165 EB83      LDI	R24,0xB3
    0166 BD8B      OUT	0x2B,R24
    0167 EF8F      LDI	R24,0xFF
    0168 BD8A      OUT	0x2A,R24
    0169 EB83      LDI	R24,0xB3
    016A BD89      OUT	0x29,R24
    016B EF8F      LDI	R24,0xFF
    016C BD88      OUT	0x28,R24
    016D EB83      LDI	R24,0xB3
    016E BD87      OUT	0x27,R24
    016F EF8F      LDI	R24,0xFF
    0170 BD86      OUT	0x26,R24
    0171 BC2F      OUT	0x2F,R2
    0172 E082      LDI	R24,2
    0173 BD8E      OUT	0x2E,R24
    0174 9508      RET
_timer2_init:
    0175 2422      CLR	R2
    0176 BC25      OUT	0x25,R2
    0177 E081      LDI	R24,1
    0178 BD84      OUT	0x24,R24
    0179 E686      LDI	R24,0x66
    017A BD83      OUT	0x23,R24
    017B E68E      LDI	R24,0x6E
    017C BD85      OUT	0x25,R24
    017D 9508      RET
_init_devices:
    017E 94F8      BCLR	7
    017F DFCA      RCALL	_port_init
    0180 DFF4      RCALL	_timer2_init
    0181 DFD4      RCALL	_timer0_init
    0182 B785      IN	R24,0x35
    0183 6082      ORI	R24,2
    0184 BF85      OUT	0x35,R24
    0185 B78B      IN	R24,0x3B
    0186 6C80      ORI	R24,0xC0
    0187 BF8B      OUT	0x3B,R24
    0188 E483      LDI	R24,0x43
    0189 BF89      OUT	0x39,R24
    018A 9478      BSET	7
    018B 9508      RET
empy16s:
    018C 920A      ST	R0,-Y
    018D 921A      ST	R1,-Y
    018E 938A      ST	R24,-Y
    018F 939A      ST	R25,-Y
    0190 9F02      MUL	R16,R18
    0191 01C0      MOVW	R24,R0
    0192 9F12      MUL	R17,R18
    0193 0D90      ADD	R25,R0
    0194 9F03      MUL	R16,R19
    0195 0D90      ADD	R25,R0
    0196 018C      MOVW	R16,R24
    0197 9199      LD	R25,Y+
    0198 9189      LD	R24,Y+
    0199 9019      LD	R1,Y+
    019A 9009      LD	R0,Y+
    019B 9508      RET
push_gset5:
    019C 92FA      ST	R15,-Y
    019D 92EA      ST	R14,-Y
push_gset4:
    019E 92DA      ST	R13,-Y
    019F 92CA      ST	R12,-Y
push_gset3:
    01A0 92BA      ST	R11,-Y
    01A1 92AA      ST	R10,-Y
push_gset2:
    01A2 937A      ST	R23,-Y
    01A3 936A      ST	R22,-Y
push_gset1:
    01A4 935A      ST	R21,-Y
    01A5 934A      ST	R20,-Y
    01A6 9508      RET
pop_gset1:
    01A7 E0E1      LDI	R30,1
pop:
    01A8 9149      LD	R20,Y+
    01A9 9159      LD	R21,Y+
    01AA FDE0      SBRC	R30,0
    01AB 9508      RET
    01AC 9169      LD	R22,Y+
    01AD 9179      LD	R23,Y+
    01AE FDE1      SBRC	R30,1
    01AF 9508      RET
    01B0 90A9      LD	R10,Y+
    01B1 90B9      LD	R11,Y+
    01B2 FDE2      SBRC	R30,2
    01B3 9508      RET
    01B4 90C9      LD	R12,Y+
    01B5 90D9      LD	R13,Y+
    01B6 FDE3      SBRC	R30,3
    01B7 9508      RET
    01B8 90E9      LD	R14,Y+
    01B9 90F9      LD	R15,Y+
    01BA 9508      RET

⌨️ 快捷键说明

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