📄 hd_support.lis
字号:
.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 + -