📄 hd_support.lis
字号:
.module HD_Support.c
.area vector(rom, abs)
.org 32
0020 1FC0 rjmp _Timer0_OVF_ISR
.org 26
001A 30C0 rjmp _Timer1_OVF_ISR
.org 48
0030 44C0 rjmp _TWI_ISR
.area text(rom, con, rel)
0000 .dbfile D:\实例17_I2C抢答器_主机程序\HD_Support.c
0000 .dbfunc e Device_INIT _Device_INIT fV
.even
0000 _Device_INIT::
0000 .dbline -1
0000 .dbline 96
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 Timer1_OVF_ISR:iv_TIMER1_OVF
0000 ; #pragma interrupt_handler TWI_ISR:iv_TWI
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_TIMER1_OVF_ISR_CODE
0000 ; #define INSERT_TIMER1_OVF_ISR_CODE
0000 ; #endif
0000 ;
0000 ; #ifndef INSERT_TWI_ISR_CODE
0000 ; #define INSERT_TWI_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 Timer1_INIT(void);
0000 ; static void TWI_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 97
0000 ; Port_INIT();
0000 0AD0 rcall _Port_INIT
0002 .dbline 98
0002 ; Timer0_INIT();
0002 15D0 rcall _Timer0_INIT
0004 .dbline 99
0004 ; Timer1_INIT();
0004 21D0 rcall _Timer1_INIT
0006 .dbline 100
0006 ; TWI_INIT();
0006 31D0 rcall _TWI_INIT
0008 .dbline 101
0008 ; SPI_INIT();
0008 43D0 rcall _SPI_INIT
000A .dbline 104
000A ; //*在这里添加其他初始化函数*//
000A ;
000A ; TIMSK0 = BIT(TOIE0); //启动定时器0溢出中断资源
000A 81E0 ldi R24,1
000C 80936E00 sts 110,R24
0010 .dbline 105
0010 ; TIMSK1 = BIT(TOIE1); //启动定时器1溢出中断资源
0010 80936F00 sts 111,R24
0014 .dbline -2
0014 L1:
0014 .dbline 0 ; func end
0014 0895 ret
0016 .dbend
0016 .dbfunc s Port_INIT _Port_INIT fV
.even
0016 _Port_INIT:
0016 .dbline -1
0016 .dbline 116
0016 ; //*在这里添加其他全局寄存器的初始化代码*//
0016 ; }
0016 ;
0016 ; /***********************************************************
0016 ; * 函数说明:系统端口初始化函数 *
0016 ; * 输入: 无 *
0016 ; * 输出: 无 *
0016 ; * 调用函数:无 *
0016 ; ***********************************************************/
0016 ; static void Port_INIT(void)
0016 ; {
0016 .dbline 118
0016 ; //*在这里添加端口初始化代码*//
0016 ; PORTB = 0b11111110; //MOSI,#SS,CLK端均设置为高电平,MISO端开启内部上拉
0016 8EEF ldi R24,254
0018 85B9 out 0x5,R24
001A .dbline 119
001A ; PORTC = 0b11111111;
001A 8FEF ldi R24,255
001C 88B9 out 0x8,R24
001E .dbline 120
001E ; PORTD = 0b11111111;
001E 8BB9 out 0xb,R24
0020 .dbline 122
0020 ;
0020 ; DDRB = 0b00101101;
0020 8DE2 ldi R24,45
0022 84B9 out 0x4,R24
0024 .dbline 123
0024 ; DDRC = 0b00100000;
0024 80E2 ldi R24,32
0026 87B9 out 0x7,R24
0028 .dbline 124
0028 ; DDRD = 0b00000000;
0028 2224 clr R2
002A 2AB8 out 0xa,R2
002C .dbline -2
002C L2:
002C .dbline 0 ; func end
002C 0895 ret
002E .dbend
002E .dbfunc s Timer0_INIT _Timer0_INIT fV
.even
002E _Timer0_INIT:
002E .dbline -1
002E .dbline 134
002E ; }
002E ;
002E ; /***********************************************************
002E ; * 函数声明:定时器0初始化函数 *
002E ; * 输入: 无 *
002E ; * 输出: 无 *
002E ; * 调用函数:无 *
002E ; ***********************************************************/
002E ; static void Timer0_INIT(void)
002E ; {
002E .dbline 137
002E ; //*在这里粘贴从代码生成向导中生成的初始化代码*//
002E ; //*要求为1kHz的溢出中断 *//
002E ; TCCR0B = 0x00;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -