📄 hd_support.lis
字号:
.module HD_Support.c
.area text(rom, con, rel)
0000 .dbfile E:\单片机\ROOBCO~1\全向定位系统\坐标转换模块\相对定位模块测试版\Relative_Locate_Module\HD_Support.c
.area vector(rom, abs)
.org 32
0020 5AC0 rjmp _Timer0_OVF_ISR
.area text(rom, con, rel)
0000 .dbfile E:\单片机\ROOBCO~1\全向定位系统\坐标转换模块\相对定位模块测试版\Relative_Locate_Module\HD_Support.c
.area vector(rom, abs)
.org 36
0024 9CC0 rjmp _USART0_RX_ISR
.area text(rom, con, rel)
0000 .dbfile E:\单片机\ROOBCO~1\全向定位系统\坐标转换模块\相对定位模块测试版\Relative_Locate_Module\HD_Support.c
.area vector(rom, abs)
.org 40
0028 D0C0 rjmp _USART0_TX_ISR
.area text(rom, con, rel)
0000 .dbfile E:\单片机\ROOBCO~1\全向定位系统\坐标转换模块\相对定位模块测试版\Relative_Locate_Module\HD_Support.c
.area vector(rom, abs)
.org 34
0022 15C1 rjmp _SPI_STC_ISR
.area text(rom, con, rel)
0000 .dbfile E:\单片机\ROOBCO~1\全向定位系统\坐标转换模块\相对定位模块测试版\Relative_Locate_Module\HD_Support.c
.area vector(rom, abs)
.org 6
0006 4CC1 rjmp _PCINT0_ISR
.area text(rom, con, rel)
0000 .dbfile E:\单片机\ROOBCO~1\全向定位系统\坐标转换模块\相对定位模块测试版\Relative_Locate_Module\HD_Support.c
.area vector(rom, abs)
.org 8
0008 9EC1 rjmp _PCINT1_ISR
.area text(rom, con, rel)
0000 .dbfile E:\单片机\ROOBCO~1\全向定位系统\坐标转换模块\相对定位模块测试版\Relative_Locate_Module\HD_Support.c
0000 .dbfunc e Device_INIT _Device_INIT fV
.even
0000 _Device_INIT::
0000 .dbline -1
0000 .dbline 111
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 SPI_STC_ISR:iv_SPI_STC
0000 ; # pragma interrupt_handler PCINT0_ISR:iv_PCINT0
0000 ; # pragma interrupt_handler PCINT1_ISR:iv_PCINT1
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_SPI_STC_ISR_CODE
0000 ; # define INSERT_SPI_STC_ISR_CODE
0000 ; #endif
0000 ;
0000 ; #ifndef INSERT_PCINT0_ISR_CODE
0000 ; # define INSERT_PCINT0_ISR_CODE
0000 ; #endif
0000 ; #ifndef INSERT_PCINT1_ISR_CODE
0000 ; # define INSERT_PCINT1_ISR_CODE
0000 ; #endif
0000 ;
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 SPI_INIT(void);
0000 ; static void PCINT_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 112
0000 ; Port_INIT();
0000 08D0 rcall _Port_INIT
0002 .dbline 113
0002 ; Timer0_INIT();
0002 50D0 rcall _Timer0_INIT
0004 .dbline 114
0004 ; USART0_INIT();
0004 88D0 rcall _USART0_INIT
0006 .dbline 115
0006 ; SPI_INIT();
0006 0CD1 rcall _SPI_INIT
0008 .dbline 116
0008 ; PCINT_INIT();
0008 3BD1 rcall _PCINT_INIT
000A .dbline 118
000A ;
000A ; TIMSK0 = BIT(TOIE0); //启动定时期0溢出中断资源
000A 81E0 ldi R24,1
000C 80936E00 sts 110,R24
0010 .dbline -2
0010 L1:
0010 .dbline 0 ; func end
0010 0895 ret
0012 .dbend
0012 .dbfunc s Port_INIT _Port_INIT fV
.even
0012 _Port_INIT:
0012 .dbline -1
0012 .dbline 128
0012 ; }
0012 ;
0012 ; /***********************************************************
0012 ; * 函数说明:系统端口初始化函数 *
0012 ; * 输入: 无 *
0012 ; * 输出: 无 *
0012 ; * 调用函数:无 *
0012 ; ***********************************************************/
0012 ; static void Port_INIT(void)
0012 ; {
0012 .dbline 130
0012 ; //串口
0012 ; DDR_PD0 = PDIR_IN; _PD0 = LOW;
0012 8AB1 in R24,0xa
0014 8E7F andi R24,254
0016 8AB9 out 0xa,R24
0018 .dbline 130
0018 8BB1 in R24,0xb
001A 8E7F andi R24,254
001C 8BB9 out 0xb,R24
001E .dbline 131
001E ; DDR_PD1 = PDIR_IN; _PD1 = LOW;
001E 8AB1 in R24,0xa
0020 8D7F andi R24,253
0022 8AB9 out 0xa,R24
0024 .dbline 131
0024 8BB1 in R24,0xb
0026 8D7F andi R24,253
0028 8BB9 out 0xb,R24
002A .dbline 134
002A ;
002A ; //SPI
002A ; DDR_PB2 = PDIR_IN; _PB2 = HIGH; //SS从机输入
002A 84B1 in R24,0x4
002C 8B7F andi R24,251
002E 84B9 out 0x4,R24
0030 .dbline 134
0030 85B1 in R24,0x5
0032 8460 ori R24,4
0034 85B9 out 0x5,R24
0036 .dbline 135
0036 ; DDR_PB4 = PDIR_OUT; _PB4 = HIGH; //从机输出
0036 84B1 in R24,0x4
0038 8061 ori R24,16
003A 84B9 out 0x4,R24
003C .dbline 135
003C 85B1 in R24,0x5
003E 8061 ori R24,16
0040 85B9 out 0x5,R24
0042 .dbline 138
0042 ;
0042 ; //编码盘
0042 ; DDR_PC0 = PDIR_IN; _PC0 = HIGH;
0042 87B1 in R24,0x7
0044 8E7F andi R24,254
0046 87B9 out 0x7,R24
0048 .dbline 138
0048 88B1 in R24,0x8
004A 8160 ori R24,1
004C 88B9 out 0x8,R24
004E .dbline 139
004E ; DDR_PC1 = PDIR_IN; _PC1 = HIGH;
004E 87B1 in R24,0x7
0050 8D7F andi R24,253
0052 87B9 out 0x7,R24
0054 .dbline 139
0054 88B1 in R24,0x8
0056 8260 ori R24,2
0058 88B9 out 0x8,R24
005A .dbline 142
005A ;
005A ; //LED工作指示
005A ; DDR_PC2 = PDIR_OUT; _PC2 = HIGH; //LED_WORK
005A 87B1 in R24,0x7
005C 8460 ori R24,4
005E 87B9 out 0x7,R24
0060 .dbline 142
0060 88B1 in R24,0x8
0062 8460 ori R24,4
0064 88B9 out 0x8,R24
0066 .dbline 143
0066 ; DDR_PC3 = PDIR_OUT; _PC3 = HIGH; //LED_DATA
0066 87B1 in R24,0x7
0068 8860 ori R24,8
006A 87B9 out 0x7,R24
006C .dbline 143
006C 88B1 in R24,0x8
006E 8860 ori R24,8
0070 88B9 out 0x8,R24
0072 .dbline 150
0072 ;
0072 ; //SP027 / I2C
0072 ; //DDR_PC4 = PDIR_OUT; _PC4 = HIGH; //开启内部上拉电阻
0072 ; //DDR_PC5 = PDIR_OUT; _PC5 = HIGH; //开启内部上拉电阻
0072 ;
0072 ; //LCD1602
0072 ; DDR_PB1 = PDIR_OUT; _PB1 = HIGH; //RS
0072 84B1 in R24,0x4
0074 8260 ori R24,2
0076 84B9 out 0x4,R24
0078 .dbline 150
0078 85B1 in R24,0x5
007A 8260 ori R24,2
007C 85B9 out 0x5,R24
007E .dbline 151
007E ; DDR_PB0 = PDIR_OUT; _PB0 = HIGH; //RW
007E 84B1 in R24,0x4
0080 8160 ori R24,1
0082 84B9 out 0x4,R24
0084 .dbline 151
0084 85B1 in R24,0x5
0086 8160 ori R24,1
0088 85B9 out 0x5,R24
008A .dbline 152
008A ; DDR_PD7 = PDIR_OUT; _PD7 = HIGH; //E
008A 8AB1 in R24,0xa
008C 8068 ori R24,128
008E 8AB9 out 0xa,R24
0090 .dbline 152
0090 8BB1 in R24,0xb
0092 8068 ori R24,128
0094 8BB9 out 0xb,R24
0096 .dbline 154
0096 ;
0096 ; DDRD &= ~(BIT(PD6)|BIT(PD5)|BIT(PD4)|BIT(PD3));
0096 8AB1 in R24,0xa
0098 8778 andi R24,135
009A 8AB9 out 0xa,R24
009C .dbline 155
009C ; PORTD |= BIT(PD6)|BIT(PD5)|BIT(PD4)|BIT(PD3);
009C 8BB1 in R24,0xb
009E 8867 ori R24,120
00A0 8BB9 out 0xb,R24
00A2 .dbline -2
00A2 L2:
00A2 .dbline 0 ; func end
00A2 0895 ret
00A4 .dbend
00A4 .dbfunc s Timer0_INIT _Timer0_INIT fV
.even
00A4 _Timer0_INIT:
00A4 .dbline -1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -