📄 hd_support.lis
字号:
.module HD_Support.c
.area text(rom, con, rel)
0000 .dbfile E:\单片机\ROOBCO~1\全向定位系统\被动小车\Passive_Encoder\HD_Support.c
.area vector(rom, abs)
.org 32
0020 BBC1 rjmp _Timer0_OVF_ISR
.area text(rom, con, rel)
0000 .dbfile E:\单片机\ROOBCO~1\全向定位系统\被动小车\Passive_Encoder\HD_Support.c
.area vector(rom, abs)
.org 2
0002 3FC0 rjmp _INT0_ISR
.area text(rom, con, rel)
0000 .dbfile E:\单片机\ROOBCO~1\全向定位系统\被动小车\Passive_Encoder\HD_Support.c
.area vector(rom, abs)
.org 4
0004 9DC0 rjmp _INT1_ISR
.area text(rom, con, rel)
0000 .dbfile E:\单片机\ROOBCO~1\全向定位系统\被动小车\Passive_Encoder\HD_Support.c
.area vector(rom, abs)
.org 6
0006 57C1 rjmp _PCINT0_ISR
.area text(rom, con, rel)
0000 .dbfile E:\单片机\ROOBCO~1\全向定位系统\被动小车\Passive_Encoder\HD_Support.c
.area vector(rom, abs)
.org 8
0008 F9C0 rjmp _PCINT1_ISR
.area text(rom, con, rel)
0000 .dbfile E:\单片机\ROOBCO~1\全向定位系统\被动小车\Passive_Encoder\HD_Support.c
.area vector(rom, abs)
.org 34
0022 F1C1 rjmp _SPI_STC_ISR
.area text(rom, con, rel)
0000 .dbfile E:\单片机\ROOBCO~1\全向定位系统\被动小车\Passive_Encoder\HD_Support.c
0000 .dbfunc e Device_INIT _Device_INIT fV
.even
0000 _Device_INIT::
0000 .dbline -1
0000 .dbline 108
0000 ; /***********************************************************
0000 ; * 函数库说明:底层硬件初始化函数库 *
0000 ; * 版本: *
0000 ; * 作者: *
0000 ; * 创建日期: *
0000 ; * -------------------------------------------------------- *
0000 ; * [硬件说明] *
0000 ; * 处理器: *
0000 ; * 系统时钟: *
0000 ; * -------------------------------------------------------- *
0000 ; * [支 持 库] *
0000 ; * 支持库名称:HD_Support.h *
0000 ; * 需要版本: ----- *
0000 ; * 支持库说明:底层硬件初始化声明库 *
0000 ; * *
0000 ; * 支持库名称:PF_Config.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 ;
0000 ; /********************
0000 ; * 系 统 宏 定 义 *
0000 ; ********************/
0000 ; # pragma interrupt_handler Timer0_OVF_ISR:iv_TIMER0_OVF
0000 ; # pragma interrupt_handler INT0_ISR:iv_INT0
0000 ; # pragma interrupt_handler INT1_ISR:iv_INT1
0000 ; # pragma interrupt_handler PCINT0_ISR:iv_PCINT0
0000 ; # pragma interrupt_handler PCINT1_ISR:iv_PCINT1
0000 ; # pragma interrupt_handler SPI_STC_ISR:iv_SPI_STC
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_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 ; #ifndef INSERT_PCINT0_ISR_CODE
0000 ; # define INSERT_PCINT0_ISR_CODE
0000 ; #endif
0000 ;
0000 ; #ifndef INSERT_PCINT1_ISR_CODE
0000 ; # define INSERT_PCINT1_ISR_CODE
0000 ; #endif
0000 ;
0000 ; #ifndef INSERT_SPI_STC_ISR_CODE
0000 ; # define INSERT_SPI_STC_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 Extend_INT_INIT(void);
0000 ; static void SPI_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 109
0000 ; Port_INIT();
0000 07D0 rcall _Port_INIT
0002 .dbline 110
0002 ; Timer0_INIT();
0002 B1D1 rcall _Timer0_INIT
0004 .dbline 111
0004 ; SPI_INIT();
0004 E9D1 rcall _SPI_INIT
0006 .dbline 112
0006 ; Extend_INT_INIT();
0006 2DD0 rcall _Extend_INT_INIT
0008 .dbline 114
0008 ;
0008 ; TIMSK0 = BIT(TOIE0); //启动定时期0溢出中断资源
0008 81E0 ldi R24,1
000A 80936E00 sts 110,R24
000E .dbline -2
000E L1:
000E .dbline 0 ; func end
000E 0895 ret
0010 .dbend
0010 .dbfunc s Port_INIT _Port_INIT fV
.even
0010 _Port_INIT:
0010 .dbline -1
0010 .dbline 124
0010 ; }
0010 ;
0010 ; /***********************************************************
0010 ; * 函数说明:系统端口初始化函数 *
0010 ; * 输入: 无 *
0010 ; * 输出: 无 *
0010 ; * 调用函数:无 *
0010 ; ***********************************************************/
0010 ; static void Port_INIT(void)
0010 ; {
0010 .dbline 126
0010 ; //LCDSP027
0010 ; DDR_PD1 = PDIR_OUT;_PD1 = HIGH;
0010 8AB1 in R24,0xa
0012 8260 ori R24,2
0014 8AB9 out 0xa,R24
0016 .dbline 126
0016 8BB1 in R24,0xb
0018 8260 ori R24,2
001A 8BB9 out 0xb,R24
001C .dbline 127
001C ; DDR_PD0 = PDIR_OUT;_PD0 = HIGH;
001C 8AB1 in R24,0xa
001E 8160 ori R24,1
0020 8AB9 out 0xa,R24
0022 .dbline 127
0022 8BB1 in R24,0xb
0024 8160 ori R24,1
0026 8BB9 out 0xb,R24
0028 .dbline 130
0028 ;
0028 ; //外部中断
0028 ; DDR_PD2 = PDIR_IN; _PD2 = HIGH; //开启上拉电阻
0028 8AB1 in R24,0xa
002A 8B7F andi R24,251
002C 8AB9 out 0xa,R24
002E .dbline 130
002E 8BB1 in R24,0xb
0030 8460 ori R24,4
0032 8BB9 out 0xb,R24
0034 .dbline 131
0034 ; DDR_PC3 = PDIR_IN; _PC3 = HIGH; //开启上拉电阻
0034 87B1 in R24,0x7
0036 877F andi R24,247
0038 87B9 out 0x7,R24
003A .dbline 131
003A 88B1 in R24,0x8
003C 8860 ori R24,8
003E 88B9 out 0x8,R24
0040 .dbline 133
0040 ;
0040 ; DDR_PD3 = PDIR_IN; _PD3 = HIGH; //开启上拉电阻
0040 8AB1 in R24,0xa
0042 877F andi R24,247
0044 8AB9 out 0xa,R24
0046 .dbline 133
0046 8BB1 in R24,0xb
0048 8860 ori R24,8
004A 8BB9 out 0xb,R24
004C .dbline 134
004C ; DDR_PB0 = PDIR_IN; _PB0 = HIGH; //开启上拉电阻
004C 84B1 in R24,0x4
004E 8E7F andi R24,254
0050 84B9 out 0x4,R24
0052 .dbline 134
0052 85B1 in R24,0x5
0054 8160 ori R24,1
0056 85B9 out 0x5,R24
0058 .dbline 137
0058 ;
0058 ; //SPI初始化
0058 ; DDRB |= BIT(PB5)|BIT(PB3)|BIT(PB2);
0058 84B1 in R24,0x4
005A 8C62 ori R24,44
005C 84B9 out 0x4,R24
005E .dbline 138
005E ; PORTB |= BIT(PB2);
005E 2A9A sbi 0x5,2
0060 .dbline -2
0060 L2:
0060 .dbline 0 ; func end
0060 0895 ret
0062 .dbend
0062 .dbfunc s Extend_INT_INIT _Extend_INT_INIT fV
.even
0062 _Extend_INT_INIT:
0062 .dbline -1
0062 .dbline 148
0062 ; }
0062 ;
0062 ; /***********************************************************
0062 ; * 函数说明:外中断初始化函数 *
0062 ; * 输入: 无 *
0062 ; * 输出: 无 *
0062 ; * 调用函数:无 *
0062 ; ***********************************************************/
0062 ; static void Extend_INT_INIT(void)
0062 ; {
0062 .dbline 150
0062 ; //INT0 INT1
0062 ; EICRA = BIT(ISC10)|BIT(ISC00); //任意电平变化
0062 85E0 ldi R24,5
0064 80936900 sts 105,R24
0068 .dbline 151
0068 ; EIMSK = BIT(INT1)|BIT(INT0); //中断使能
0068 83E0 ldi R24,3
006A 8DBB out 0x1d,R24
006C .dbline 154
006C ;
006C ; //Pin Change Int
006C ; PCICR = BIT(PCIE0)|BIT(PCIE1);
006C 80936800 sts 104,R24
0070 .dbline 155
0070 ; PCMSK1 = BIT(PCINT11);
0070 88E0 ldi R24,8
0072 80936C00 sts 108,R24
0076 .dbline 156
0076 ; PCMSK0 = BIT(PCINT0);
0076 81E0 ldi R24,1
0078 80936B00 sts 107,R24
007C .dbline -2
007C L3:
007C .dbline 0 ; func end
007C 0895 ret
007E .dbend
007E .dbfunc e INT0_ISR _INT0_ISR fV
.even
007E _INT0_ISR::
007E 0A92 st -y,R0
0080 1A92 st -y,R1
0082 2A92 st -y,R2
0084 3A92 st -y,R3
0086 4A92 st -y,R4
0088 5A92 st -y,R5
008A 0A93 st -y,R16
008C 1A93 st -y,R17
008E 2A93 st -y,R18
0090 3A93 st -y,R19
0092 8A93 st -y,R24
0094 9A93 st -y,R25
0096 AA93 st -y,R26
0098 BA93 st -y,R27
009A 0FB6 in R0,0x3f
009C 0A92 st -y,R0
009E .dbline -1
009E .dbline 166
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -