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

📄 motorctr.lst

📁 一个直流电机的闭环控制源代码程序
💻 LST
📖 第 1 页 / 共 5 页
字号:
     304 932A      ST	R18,-Y
     305 933A      ST	R19,-Y
     306 938A      ST	R24,-Y
     307 939A      ST	R25,-Y
     308 93AA      ST	R26,-Y
     309 93BA      ST	R27,-Y
     30A B60F      IN	R0,0x3F
     30B 920A      ST	R0,-Y
(0138) }
(0139) 
(0140) /***********************************************************
(0141) *   函数说明:外中断1中断处理函数                          *
(0142) *   输入:    无                                           *
(0143) *   输出:    无                                           *
(0144) *   调用函数:INSERT_INT0_ISR_CODE                         *
(0145) ***********************************************************/
(0146) void INT1_ISR(void)
(0147) {
(0148)     INSERT_INT1_ISR_CODE
     30C B380      IN	R24,0x10
     30D 9586      LSR	R24
     30E 9586      LSR	R24
     30F 7081      ANDI	R24,1
     310 B390      IN	R25,0x10
     311 9596      LSR	R25
     312 9596      LSR	R25
     313 9596      LSR	R25
     314 7091      ANDI	R25,1
     315 1798      CP	R25,R24
     316 F4C9      BNE	0x0330
     317 E081      LDI	R24,1
     318 E090      LDI	R25,0
     319 E0A0      LDI	R26,0
     31A E0B0      LDI	R27,0
     31B 9040 008E LDS	R4,g_dNowMotorPosition+2
     31D 9050 008F LDS	R5,g_dNowMotorPosition+3
     31F 9020 008C LDS	R2,g_dNowMotorPosition
     321 9030 008D LDS	R3,g_dNowMotorPosition+1
     323 0E28      ADD	R2,R24
     324 1E39      ADC	R3,R25
     325 1E4A      ADC	R4,R26
     326 1E5B      ADC	R5,R27
     327 9230 008D STS	g_dNowMotorPosition+1,R3
     329 9220 008C STS	g_dNowMotorPosition,R2
     32B 9250 008F STS	g_dNowMotorPosition+3,R5
     32D 9240 008E STS	g_dNowMotorPosition+2,R4
     32F C018      RJMP	0x0348
     330 E081      LDI	R24,1
     331 E090      LDI	R25,0
     332 E0A0      LDI	R26,0
     333 E0B0      LDI	R27,0
     334 9040 008E LDS	R4,g_dNowMotorPosition+2
     336 9050 008F LDS	R5,g_dNowMotorPosition+3
     338 9020 008C LDS	R2,g_dNowMotorPosition
     33A 9030 008D LDS	R3,g_dNowMotorPosition+1
     33C 1A28      SUB	R2,R24
     33D 0A39      SBC	R3,R25
     33E 0A4A      SBC	R4,R26
     33F 0A5B      SBC	R5,R27
     340 9230 008D STS	g_dNowMotorPosition+1,R3
     342 9220 008C STS	g_dNowMotorPosition,R2
     344 9250 008F STS	g_dNowMotorPosition+3,R5
     346 9240 008E STS	g_dNowMotorPosition+2,R4
     348 B785      IN	R24,0x35
     349 708C      ANDI	R24,0xC
     34A 308C      CPI	R24,0xC
     34B F439      BNE	0x0353
     34C B785      IN	R24,0x35
     34D 7F83      ANDI	R24,0xF3
     34E BF85      OUT	0x35,R24
     34F B785      IN	R24,0x35
     350 6088      ORI	R24,0x8
     351 BF85      OUT	0x35,R24
     352 C006      RJMP	0x0359
     353 B785      IN	R24,0x35
     354 7F83      ANDI	R24,0xF3
     355 BF85      OUT	0x35,R24
     356 B785      IN	R24,0x35
     357 608C      ORI	R24,0xC
     358 BF85      OUT	0x35,R24
     359 9009      LD	R0,Y+
     35A BE0F      OUT	0x3F,R0
     35B 91B9      LD	R27,Y+
     35C 91A9      LD	R26,Y+
     35D 9199      LD	R25,Y+
     35E 9189      LD	R24,Y+
     35F 9139      LD	R19,Y+
     360 9129      LD	R18,Y+
     361 9119      LD	R17,Y+
     362 9109      LD	R16,Y+
     363 9059      LD	R5,Y+
     364 9049      LD	R4,Y+
     365 9039      LD	R3,Y+
     366 9029      LD	R2,Y+
     367 9019      LD	R1,Y+
     368 9009      LD	R0,Y+
     369 9518      RETI
(0149) }
(0150) 
(0151) /***********************************************************
(0152) *   函数说明:系统端口初始化函数                           *
(0153) *   输入:    无                                           *
(0154) *   输出:    无                                           *
(0155) *   调用函数:无                                           *
(0156) ***********************************************************/
(0157) static void Port_INIT(void)
(0158) {
(0159)     //LED
(0160)     DDR_PC0 = PDIR_OUT;_PC0 = LOW;
HD_Support.c:Port_INIT:
_Port_INIT:
     36A B384      IN	R24,0x14
     36B 6081      ORI	R24,1
     36C BB84      OUT	0x14,R24
     36D B385      IN	R24,0x15
     36E 7F8E      ANDI	R24,0xFE
     36F BB85      OUT	0x15,R24
(0161)     
(0162)     //SP027
(0163)     DDR_PC5 = PDIR_OUT;_PC5 = HIGH;
     370 B384      IN	R24,0x14
     371 6280      ORI	R24,0x20
     372 BB84      OUT	0x14,R24
     373 B385      IN	R24,0x15
     374 6280      ORI	R24,0x20
     375 BB85      OUT	0x15,R24
(0164)     DDR_PC4 = PDIR_OUT;_PC4 = HIGH;
     376 B384      IN	R24,0x14
     377 6180      ORI	R24,0x10
     378 BB84      OUT	0x14,R24
     379 B385      IN	R24,0x15
     37A 6180      ORI	R24,0x10
     37B BB85      OUT	0x15,R24
(0165)     
(0166)     //外中断
(0167)     DDR_PD2 = PDIR_IN; _PD2 = HIGH;
     37C B381      IN	R24,0x11
     37D 7F8B      ANDI	R24,0xFB
     37E BB81      OUT	0x11,R24
     37F B382      IN	R24,0x12
     380 6084      ORI	R24,4
     381 BB82      OUT	0x12,R24
(0168)     DDR_PD3 = PDIR_IN; _PD3 = HIGH;
     382 B381      IN	R24,0x11
     383 7F87      ANDI	R24,0xF7
     384 BB81      OUT	0x11,R24
     385 B382      IN	R24,0x12
     386 6088      ORI	R24,0x8
     387 BB82      OUT	0x12,R24
(0169)     
(0170)     //SPI
(0171)     DDR_PB2 = PDIR_IN; _PB2 = LOW;
     388 B387      IN	R24,0x17
     389 7F8B      ANDI	R24,0xFB
     38A BB87      OUT	0x17,R24
     38B B388      IN	R24,0x18
     38C 7F8B      ANDI	R24,0xFB
     38D BB88      OUT	0x18,R24
(0172)     DDR_PB3 = PDIR_IN; _PB3 = LOW;
     38E B387      IN	R24,0x17
     38F 7F87      ANDI	R24,0xF7
     390 BB87      OUT	0x17,R24
     391 B388      IN	R24,0x18
     392 7F87      ANDI	R24,0xF7
     393 BB88      OUT	0x18,R24
(0173)     DDR_PB4 = PDIR_IN; _PB4 = LOW;
     394 B387      IN	R24,0x17
     395 7E8F      ANDI	R24,0xEF
     396 BB87      OUT	0x17,R24
     397 B388      IN	R24,0x18
     398 7E8F      ANDI	R24,0xEF
     399 BB88      OUT	0x18,R24
(0174)     DDR_PB5 = PDIR_IN; _PB5 = LOW;
     39A B387      IN	R24,0x17
     39B 7D8F      ANDI	R24,0xDF
     39C BB87      OUT	0x17,R24
     39D B388      IN	R24,0x18
     39E 7D8F      ANDI	R24,0xDF
     39F BB88      OUT	0x18,R24
(0175)     
(0176)     //串口
(0177)     DDR_PD0 = PDIR_IN; _PD0 = HIGH;
     3A0 B381      IN	R24,0x11
     3A1 7F8E      ANDI	R24,0xFE
     3A2 BB81      OUT	0x11,R24
     3A3 B382      IN	R24,0x12
     3A4 6081      ORI	R24,1
     3A5 BB82      OUT	0x12,R24
(0178)     
(0179)     //PWM输出
(0180)     DDR_PB1 = PDIR_OUT;
     3A6 B387      IN	R24,0x17
     3A7 6082      ORI	R24,2
     3A8 BB87      OUT	0x17,R24
(0181)     //电机控制
(0182)     DDR_PD6 = PDIR_OUT; _PD6 = HIGH;
     3A9 B381      IN	R24,0x11
     3AA 6480      ORI	R24,0x40
     3AB BB81      OUT	0x11,R24
     3AC B382      IN	R24,0x12
     3AD 6480      ORI	R24,0x40
     3AE BB82      OUT	0x12,R24
(0183)     DDR_PD7 = PDIR_OUT; _PD7 = HIGH;
     3AF B381      IN	R24,0x11
     3B0 6880      ORI	R24,0x80
     3B1 BB81      OUT	0x11,R24
     3B2 B382      IN	R24,0x12
     3B3 6880      ORI	R24,0x80
     3B4 BB82      OUT	0x12,R24
(0184)     
(0185)     //读写控制
(0186)     DDR_PD4 = PDIR_IN;  _PD4 = HIGH;
     3B5 B381      IN	R24,0x11
     3B6 7E8F      ANDI	R24,0xEF
     3B7 BB81      OUT	0x11,R24
     3B8 B382      IN	R24,0x12
     3B9 6180      ORI	R24,0x10
     3BA BB82      OUT	0x12,R24
     3BB 9508      RET
(0187) }
(0188) 
(0189) /***********************************************************
(0190) *   函数声明:定时器1初始化函数                            *
(0191) *   输入:    无                                           *
(0192) *   输出:    无                                           *
(0193) *   调用函数:无                                           *
(0194) ***********************************************************/
(0195) static void Timer1_INIT(void)
(0196) {
(0197)     TCCR1B = 0x00; 
HD_Support.c:Timer1_INIT:
_Timer1_INIT:
     3BC 2422      CLR	R2
     3BD BC2E      OUT	0x2E,R2
(0198)     ICR1  = 0x0320;
     3BE E280      LDI	R24,0x20
     3BF E093      LDI	R25,3
     3C0 BD97      OUT	0x27,R25
     3C1 BD86      OUT	0x26,R24
(0199)     TCCR1A = 0x80;
     3C2 E880      LDI	R24,0x80
     3C3 BD8F      OUT	0x2F,R24
(0200)     TCCR1B = 0x11; //start Timer
     3C4 E181      LDI	R24,0x11
     3C5 BD8E      OUT	0x2E,R24
     3C6 9508      RET
(0201) }
(0202) 
(0203) /***********************************************************
(0204) *   函数声明:定时器0初始化函数                            *
(0205) *   输入:    无                                           *
(0206) *   输出:    无                                           *
(0207) *   调用函数:无                                           *
(0208) ***********************************************************/
(0209) static void Timer0_INIT(void)
(0210) {
(0211)     TCCR0 = 0x00; 
HD_Support.c:Timer0_INIT:
_Timer0_INIT:
     3C7 2422      CLR	R2
     3C8 BE23      OUT	0x33,R2
(0212)     TCNT0 = 0x06; 
     3C9 E086      LDI	R24,6
     3CA BF82      OUT	0x32,R24
(0213)     TCCR0 = 0x03; 
     3CB E083      LDI	R24,3
     3CC BF83      OUT	0x33,R24
     3CD 9508      RET
_Timer0_OVF_ISR:
     3CE 920A      ST	R0,-Y
     3CF 921A      ST	R1,-Y
     3D0 922A      ST	R2,-Y
     3D1 923A      ST	R3,-Y
     3D2 924A      ST	R4,-Y
     3D3 925A      ST	R5,-Y
     3D4 926A      ST	R6,-Y
     3D5 927A      ST	R7,-Y
     3D6 928A      ST	R8,-Y
     3D7 929A      ST	R9,-Y
     3D8 930A      ST	R16,-Y
     3D9 931A      ST	R17,-Y
     3DA 932A      ST	R18,-Y
     3DB 933A      ST	R19,-Y
     3DC 938A      ST	R24,-Y
     3DD 939A      ST	R25,-Y
     3DE 93AA      ST	R26,-Y
     3DF 93BA      ST	R27,-Y
     3E0 93EA      ST	R30,-Y
     3E1 93FA      ST	R31,-Y
     3E2 B60F      IN	R0,0x3F
     3E3 920A      ST	R0,-Y
(0214) }
(0215) 
(0216) /***********************************************************
(0217) *   函数声明:定时器0溢出中断处理程序                      *
(0218) *   输入:    无                                           *
(0219) *   输出:    无                                           *
(0220) *   调用函数:INSERT_TIMER0_OVF_ISR_CODE                   *
(0221) ***********************************************************/
(0222) void Timer0_OVF_ISR(void)
(0223) {
(0224)     TCNT0 = 0x06; 
     3E4 E086      LDI	R24,6
     3E5 BF82      OUT	0x32,R24
(0225)     
(0226)     INSERT_TIMER0_OVF_ISR_CODE
     3E6 9478      BSET	7
     3E7 D079      RCALL	_Insert_Timer0_OVF_ISR_Code
     3E8 9009      LD	R0,Y+
     3E9 BE0F      OUT	0x3F,R0
     3EA 91F9      LD	R31,Y+
     3EB 91E9      LD	R30,Y+
     3EC 91B9      LD	R27,Y+
     3ED 91A9      LD	R26,Y+
     3EE 9199      LD	R25,Y+
     3EF 9189      LD	R24,Y+
     3F0 9139      LD	R19,Y+
     3F1 9129      LD	R18,Y+
     3F2 9119      LD	R17,Y+
     3F3 9109      LD	R16,Y+
     3F4 9099      LD	R9,Y+
     3F5 9089      LD	R8,Y+
     3F6 9079      LD	R7,Y+
     3F7 9069      LD	R6,Y+
     3F8 9059      LD	R5,Y+
     3F9 9049      LD	R4,Y+
     3FA 9039      LD	R3,Y+
     3FB 9029      LD	R2,Y+
     3FC 9019      LD	R1,Y+
     3FD 9009      LD	R0,Y+
     3FE 9518      RETI
(0227) }
(0228) 
(0229) /***********************************************************
(0230) *   函数说明:USART0初始化函数                             *
(0231) *   输入:    无                                           *
(0232) *   输出:    无                                           *
(0233) *   调用函数:无                                           *
(0234) * -------------------------------------------------------- *
(0235) *   [说明]                                                 *
(0236) *   波特率:  38400,n,8,1                                  *
(0237) ******************************************

⌨️ 快捷键说明

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