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

📄 hd_support.lis

📁 一个直流电机的闭环控制源代码程序
💻 LIS
📖 第 1 页 / 共 3 页
字号:
                        .module HD_Support.c
                        .area text(rom, con, rel)
 0000                   .dbfile H:\单片机\源程序\2007全国电子设计大赛\电机闭环模块\HD_Support.c
                        .area vector(rom, abs)
                        .org 18
 0012 58C1              rjmp _Timer0_OVF_ISR
                        .area text(rom, con, rel)
 0000                   .dbfile H:\单片机\源程序\2007全国电子设计大赛\电机闭环模块\HD_Support.c
                        .area vector(rom, abs)
                        .org 22
 0016 94C1              rjmp _USART0_RX_ISR
                        .area text(rom, con, rel)
 0000                   .dbfile H:\单片机\源程序\2007全国电子设计大赛\电机闭环模块\HD_Support.c
                        .area vector(rom, abs)
                        .org 26
 001A D1C1              rjmp _USART0_TX_ISR
                        .area text(rom, con, rel)
 0000                   .dbfile H:\单片机\源程序\2007全国电子设计大赛\电机闭环模块\HD_Support.c
                        .area vector(rom, abs)
                        .org 4
 0004 86C0              rjmp _INT1_ISR
                        .area text(rom, con, rel)
 0000                   .dbfile H:\单片机\源程序\2007全国电子设计大赛\电机闭环模块\HD_Support.c
                        .area vector(rom, abs)
                        .org 2
 0002 18C0              rjmp _INT0_ISR
                        .area text(rom, con, rel)
 0000                   .dbfile H:\单片机\源程序\2007全国电子设计大赛\电机闭环模块\HD_Support.c
 0000                   .dbfunc e Device_INIT _Device_INIT fV
                        .even
 0000           _Device_INIT::
 0000                   .dbline -1
 0000                   .dbline 106
 0000           ; /***********************************************************
 0000           ; *   函数库说明:底层硬件初始化函数库                       *
 0000           ; *   版本:                                                 *
 0000           ; *   作者:                                                 *
 0000           ; *   创建日期:                                             *
 0000           ; * -------------------------------------------------------- *
 0000           ; *  [硬件说明]                                              *
 0000           ; *   处理器:                                               *
 0000           ; *   系统时钟:                                             *
 0000           ; * -------------------------------------------------------- *
 0000           ; *  [支 持 库]                                              *
 0000           ; *   支持库名称:PF_Config.h                                *
 0000           ; *   需要版本:  -----                                      *
 0000           ; *   声明库说明:硬件平台配置声明库                         *
 0000           ; *                                                          *
 0000           ; *   支持库名称:HD_Support.h                               *
 0000           ; *   需要版本:  -----                                      *
 0000           ; *   声明库说明:底层硬件初始化声明库                       *
 0000           ; * -------------------------------------------------------- *
 0000           ; *  [版本更新]                                              *
 0000           ; *   修改:                                                 *
 0000           ; *   修改日期:                                             *
 0000           ; *   版本:                                                 *
 0000           ; * -------------------------------------------------------- *
 0000           ; *  [版本历史]                                              *
 0000           ; * -------------------------------------------------------- *
 0000           ; *  [使用说明]                                              *
 0000           ; ***********************************************************/
 0000           ; 
 0000           ; /********************
 0000           ; * 头 文 件 配 置 区 *
 0000           ; ********************/
 0000           ; # include "PF_Config.h"
 0000           ; # include "HD_Support.h"
 0000           ; # include "LIB_Config.h"
 0000           ; 
 0000           ; /********************
 0000           ; *   系 统 宏 定 义  *
 0000           ; ********************/
 0000           ; # pragma interrupt_handler Timer0_OVF_ISR:iv_TIMER0_OVF
 0000           ; # pragma interrupt_handler USART0_RX_ISR:iv_USART0_RXC
 0000           ; # pragma interrupt_handler USART0_TX_ISR:iv_USART0_TXC
 0000           ; # pragma interrupt_handler INT1_ISR:iv_INT1
 0000           ; # pragma interrupt_handler INT0_ISR:iv_INT0
 0000           ; 
 0000           ; /*------------------*
 0000           ; *   常 数 宏 定 义  *
 0000           ; *------------------*/
 0000           ; 
 0000           ; /*------------------*
 0000           ; *   动 作 宏 定 义  *
 0000           ; *------------------*/
 0000           ; #ifndef INSERT_TIMER0_OVF_ISR_CODE
 0000           ;     # define INSERT_TIMER0_OVF_ISR_CODE
 0000           ; #endif
 0000           ; 
 0000           ; #ifndef INSERT_USART0_RX_ISR_CODE
 0000           ;     # define INSERT_USART0_RX_ISR_CODE
 0000           ; #endif
 0000           ; 
 0000           ; #ifndef INSERT_USART0_TX_ISR_CODE
 0000           ;     # define INSERT_USART0_TX_ISR_CODE
 0000           ; #endif
 0000           ; 
 0000           ; #ifndef INSERT_INT0_ISR_CODE
 0000           ;     # define INSERT_INT0_ISR_CODE
 0000           ; #endif
 0000           ; 
 0000           ; #ifndef INSERT_INT1_ISR_CODE
 0000           ;     # define INSERT_INT1_ISR_CODE
 0000           ; #endif
 0000           ; /********************
 0000           ; *  模块结构体定义区 *
 0000           ; ********************/
 0000           ; 
 0000           ; /********************
 0000           ; *   函 数 声 明 区  *
 0000           ; ********************/
 0000           ; void Device_INIT(void);
 0000           ; 
 0000           ; /********************
 0000           ; *   模块函数声明区  *
 0000           ; ********************/
 0000           ; static void Port_INIT(void);
 0000           ; static void Timer0_INIT(void);
 0000           ; static void USART0_INIT(void);
 0000           ; static void Timer1_INIT(void);
 0000           ; static void Extend_INT_INIT(void);
 0000           ; 
 0000           ; /********************
 0000           ; *   模块变量声明区  *
 0000           ; ********************/
 0000           ; 
 0000           ; /********************
 0000           ; *   全局变量声明区  *
 0000           ; ********************/
 0000           ; 
 0000           ; 
 0000           ; /***********************************************************
 0000           ; *   函数说明:系统硬件初始化函数                           *
 0000           ; *   输入:    无                                           *
 0000           ; *   输出:    无                                           *
 0000           ; *   调用函数:Port_INIT()   Timer0_INIT()                  *
 0000           ; ***********************************************************/
 0000           ; void Device_INIT(void)
 0000           ; {
 0000                   .dbline 107
 0000           ;     Port_INIT();
 0000 F3D0              rcall _Port_INIT
 0002                   .dbline 108
 0002           ;     Timer0_INIT();
 0002 4FD1              rcall _Timer0_INIT
 0004                   .dbline 109
 0004           ;     USART0_INIT();
 0004 86D1              rcall _USART0_INIT
 0006                   .dbline 110
 0006           ;     Timer1_INIT();
 0006 42D1              rcall _Timer1_INIT
 0008                   .dbline 111
 0008           ;     Extend_INT_INIT();
 0008 03D0              rcall _Extend_INT_INIT
 000A                   .dbline 113
 000A           ;     
 000A           ;     TIMSK = BIT(TOIE0);                                     //启动定时期0溢出中断资源
 000A 81E0              ldi R24,1
 000C 89BF              out 0x39,R24
 000E                   .dbline -2
 000E           L1:
 000E                   .dbline 0 ; func end
 000E 0895              ret
 0010                   .dbend
 0010                   .dbfunc s Extend_INT_INIT _Extend_INT_INIT fV
                        .even
 0010           _Extend_INT_INIT:
 0010                   .dbline -1
 0010                   .dbline 123
 0010           ; }
 0010           ; 
 0010           ; /***********************************************************
 0010           ; *   函数说明:外中断初始化函数                             *
 0010           ; *   输入:    无                                           *
 0010           ; *   输出:    无                                           *
 0010           ; *   调用函数:无                                           *
 0010           ; ***********************************************************/
 0010           ; static void Extend_INT_INIT(void)
 0010           ; {
 0010                   .dbline 124
 0010           ;    SET_INT0_RAISING_EDGE
 0010 85B7              in R24,0x35
 0012 8C7F              andi R24,252
 0014 85BF              out 0x35,R24
 0016                   .dbline 124
 0016 85B7              in R24,0x35
 0018 8360              ori R24,3
 001A 85BF              out 0x35,R24
 001C                   .dbline 125
 001C           ;    SET_INT1_FALLING_EDGE
 001C 85B7              in R24,0x35
 001E 837F              andi R24,243
 0020 85BF              out 0x35,R24
 0022                   .dbline 125
 0022 85B7              in R24,0x35
 0024 8860              ori R24,8
 0026 85BF              out 0x35,R24
 0028                   .dbline 126
 0028           ;    GICR |= BIT(INT0)|BIT(INT1);
 0028 8BB7              in R24,0x3b
 002A 806C              ori R24,192
 002C 8BBF              out 0x3b,R24
 002E                   .dbline -2
 002E           L2:
 002E                   .dbline 0 ; func end
 002E 0895              ret
 0030                   .dbend
 0030                   .dbfunc e INT0_ISR _INT0_ISR fV
                        .even
 0030           _INT0_ISR::
 0030 0A92              st -y,R0
 0032 1A92              st -y,R1
 0034 2A92              st -y,R2
 0036 3A92              st -y,R3
 0038 4A92              st -y,R4
 003A 5A92              st -y,R5
 003C 0A93              st -y,R16
 003E 1A93              st -y,R17
 0040 2A93              st -y,R18
 0042 3A93              st -y,R19
 0044 8A93              st -y,R24
 0046 9A93              st -y,R25
 0048 AA93              st -y,R26
 004A BA93              st -y,R27
 004C 0FB6              in R0,0x3f
 004E 0A92              st -y,R0
 0050                   .dbline -1
 0050                   .dbline 136
 0050           ; }
 0050           ; 
 0050           ; /***********************************************************
 0050           ; *   函数说明:外中断0中断处理函数                          *
 0050           ; *   输入:    无                                           *
 0050           ; *   输出:    无                                           *
 0050           ; *   调用函数:INSERT_INT0_ISR_CODE                         *
 0050           ; ***********************************************************/
 0050           ; void INT0_ISR(void)
 0050           ; {
 0050                   .dbline 137
 0050           ;     INSERT_INT0_ISR_CODE
 0050                   .dbline 137
 0050 80B3              in R24,0x10
 0052 8695              lsr R24
 0054 8695              lsr R24
 0056 8170              andi R24,1
 0058 90B3              in R25,0x10
 005A 9695              lsr R25
 005C 9695              lsr R25
 005E 9695              lsr R25
 0060 9170              andi R25,1
 0062 9817              cp R25,R24
 0064 C9F4              brne L4
 0066           X0:
 0066 81E0              ldi R24,1
 0068 90E0              ldi R25,0
 006A A0E0              ldi R26,0
 006C B0E0              ldi R27,0
 006E 40900200          lds R4,_g_dNowMotorPosition+2
 0072 50900300          lds R5,_g_dNowMotorPosition+2+1
 0076 20900000          lds R2,_g_dNowMotorPosition
 007A 30900100          lds R3,_g_dNowMotorPosition+1
 007E 281A              sub R2,R24
 0080 390A              sbc R3,R25
 0082 4A0A              sbc R4,R26
 0084 5B0A              sbc R5,R27
 0086 30920100          sts _g_dNowMotorPosition+1,R3
 008A 20920000          sts _g_dNowMotorPosition,R2
 008E 50920300          sts _g_dNowMotorPosition+2+1,R5
 0092 40920200          sts _g_dNowMotorPosition+2,R4
 0096 18C0              rjmp L5
 0098           L4:
 0098 81E0              ldi R24,1
 009A 90E0              ldi R25,0
 009C A0E0              ldi R26,0
 009E B0E0              ldi R27,0
 00A0 40900200          lds R4,_g_dNowMotorPosition+2
 00A4 50900300          lds R5,_g_dNowMotorPosition+2+1
 00A8 20900000          lds R2,_g_dNowMotorPosition
 00AC 30900100          lds R3,_g_dNowMotorPosition+1
 00B0 280E              add R2,R24
 00B2 391E              adc R3,R25
 00B4 4A1E              adc R4,R26
 00B6 5B1E              adc R5,R27
 00B8 30920100          sts _g_dNowMotorPosition+1,R3
 00BC 20920000          sts _g_dNowMotorPosition,R2
 00C0 50920300          sts _g_dNowMotorPosition+2+1,R5
 00C4 40920200          sts _g_dNowMotorPosition+2,R4
 00C8           L5:
 00C8                   .dbline 137
 00C8 85B7              in R24,0x35
 00CA 8370              andi R24,3
 00CC 8330              cpi R24,3
 00CE 39F4              brne L6
 00D0           X1:
 00D0                   .dbline 137
 00D0                   .dbline 137
 00D0 85B7              in R24,0x35
 00D2 8C7F              andi R24,252
 00D4 85BF              out 0x35,R24
 00D6                   .dbline 137
 00D6 85B7              in R24,0x35
 00D8 8260              ori R24,2
 00DA 85BF              out 0x35,R24
 00DC                   .dbline 137
 00DC 06C0              rjmp L7
 00DE           L6:
 00DE                   .dbline 137
 00DE                   .dbline 137
 00DE 85B7              in R24,0x35
 00E0 8C7F              andi R24,252
 00E2 85BF              out 0x35,R24
 00E4                   .dbline 137
 00E4 85B7              in R24,0x35
 00E6 8360              ori R24,3
 00E8 85BF              out 0x35,R24
 00EA                   .dbline 137
 00EA           L7:
 00EA                   .dbline 137
 00EA                   .dbline -2
 00EA           L3:
 00EA                   .dbline 0 ; func end

⌨️ 快捷键说明

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