📄 hd_support.lis
字号:
.module HD_Support.c
.area text(rom, con, rel)
0000 .dbfile E:\学习\实践班\单片机程序\硬件SPI\SPI_595\Project_Template_Basic\HD_Support.c
.area vector(rom, abs)
.org 18
0012 45C0 rjmp _Timer0_OVF_ISR
.area text(rom, con, rel)
0000 .dbfile E:\学习\实践班\单片机程序\硬件SPI\SPI_595\Project_Template_Basic\HD_Support.c
.area vector(rom, abs)
.org 20
0014 0BC0 rjmp _SPI_STC_ISR
.area text(rom, con, rel)
0000 .dbfile E:\学习\实践班\单片机程序\硬件SPI\SPI_595\Project_Template_Basic\HD_Support.c
0000 .dbfunc e Device_INIT _Device_INIT fV
.even
0000 _Device_INIT::
0000 .dbline -1
0000 .dbline 89
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 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 ; # warning "TIMER0_OVF_ISR haven`t been used but initialed!"
0000 ; #endif
0000 ; #ifndef INSERT_SPI_STC_ISR_CODE
0000 ; # define INSERT_SPI_STC_ISR_CODE
0000 ; # warning "SPI_STC_ISR haven`t been used but initialed!"
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 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 90
0000 ; Port_INIT();
0000 38D0 rcall _Port_INIT
0002 .dbline 91
0002 ; Timer0_INIT();
0002 3CD0 rcall _Timer0_INIT
0004 .dbline 92
0004 ; SPI_INIT();
0004 03D0 rcall _SPI_INIT
0006 .dbline 95
0006 ; //*在这里添加其他初始化函数*//
0006 ;
0006 ; TIMSK = BIT(TOIE0); //启动定时期0溢出中断资源
0006 81E0 ldi R24,1
0008 89BF out 0x39,R24
000A .dbline -2
000A L1:
000A .dbline 0 ; func end
000A 0895 ret
000C .dbend
000C .dbfunc s SPI_INIT _SPI_INIT fV
.even
000C _SPI_INIT:
000C .dbline -1
000C .dbline 106
000C ; //*在这里添加其他全局寄存器的初始化代码*//
000C ; }
000C ;
000C ; /***********************************************************
000C ; * 函数说明:SPI硬件初始化函数 *
000C ; * 输入: 无 *
000C ; * 输出: 无 *
000C ; * 调用函数:无 *
000C ; ***********************************************************/
000C ; static void SPI_INIT(void)
000C ; {
000C .dbline 107
000C ; SPCR = 0xDE; //setup SPI
000C 8EED ldi R24,222
000E 8DB9 out 0xd,R24
0010 .dbline 108
0010 ; SPSR = 0x00; //setup SPI
0010 2224 clr R2
0012 2EB8 out 0xe,R2
0014 .dbline -2
0014 L2:
0014 .dbline 0 ; func end
0014 0895 ret
0016 .dbend
0016 .dbfunc e SPI_STC_ISR _SPI_STC_ISR fV
.even
0016 _SPI_STC_ISR::
0016 0A92 st -y,R0
0018 1A92 st -y,R1
001A 2A92 st -y,R2
001C 3A92 st -y,R3
001E 4A92 st -y,R4
0020 5A92 st -y,R5
0022 6A92 st -y,R6
0024 7A92 st -y,R7
0026 8A92 st -y,R8
0028 9A92 st -y,R9
002A 0A93 st -y,R16
002C 1A93 st -y,R17
002E 2A93 st -y,R18
0030 3A93 st -y,R19
0032 8A93 st -y,R24
0034 9A93 st -y,R25
0036 AA93 st -y,R26
0038 BA93 st -y,R27
003A EA93 st -y,R30
003C FA93 st -y,R31
003E 0FB6 in R0,0x3f
0040 0A92 st -y,R0
0042 .dbline -1
0042 .dbline 120
0042 ; }
0042 ;
0042 ;
0042 ;
0042 ; /***********************************************************
0042 ; * 函数声明:SPI通讯完成中断处理程序 *
0042 ; * 输入: 无 *
0042 ; * 输出: 无 *
0042 ; * 调用函数:INSERT_SPI_STC_ISR_CODE *
0042 ; ***********************************************************/
0042 ; void SPI_STC_ISR(void)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -