hd_support.lis

来自「编译通过下载后」· LIS 代码 · 共 227 行

LIS
227
字号
                        .module HD_Support.c
                        .area vector(rom, abs)
                        .org 26
 001A 1FC0              rjmp _Timer1_OVF_ISR
                        .area text(rom, con, rel)
 0000                   .dbfile D:\设计项目\深入浅出AVR\光盘文件\实例程序源代码\实例10_闪烁的灯\HD_Support.c
 0000                   .dbfunc e Device_INIT _Device_INIT fV
                        .even
 0000           _Device_INIT::
 0000                   .dbline -1
 0000                   .dbline 84
 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 Timer1_OVF_ISR:iv_TIMER1_OVF
 0000           ; 
 0000           ; /*------------------*
 0000           ; *   常 数 宏 定 义  *
 0000           ; *------------------*/
 0000           ; 
 0000           ; /*------------------*
 0000           ; *   动 作 宏 定 义  *
 0000           ; *------------------*/
 0000           ; #ifndef INSERT_TIMER1_OVF_ISR_CODE
 0000           ;     # define INSERT_TIMER1_OVF_ISR_CODE
 0000           ; #endif
 0000           ; 
 0000           ; /********************
 0000           ; *  模块结构体定义区 *
 0000           ; ********************/
 0000           ; 
 0000           ; /********************
 0000           ; *   函 数 声 明 区  *
 0000           ; ********************/
 0000           ; void Device_INIT(void);
 0000           ; void Insert_Timer1_OVF_ISR_Code(void);
 0000           ; 
 0000           ; /********************
 0000           ; *   模块函数声明区  *
 0000           ; ********************/
 0000           ; void Port_INIT(void);
 0000           ; void Timer1_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 85
 0000           ;     Port_INIT();
 0000 05D0              rcall _Port_INIT
 0002                   .dbline 86
 0002           ;     Timer1_INIT();
 0002 0ED0              rcall _Timer1_INIT
 0004                   .dbline 90
 0004           ;     //*在这里添加其他初始化函数*//
 0004           ;     
 0004           ; //    TIMSK0 = BIT(TOIE0);                                    //启动定时器0溢出中断资源
 0004           ;     TIMSK1 = BIT(TOIE1);                                    //启动定时器1溢出中断资源
 0004 81E0              ldi R24,1
 0006 80936F00          sts 111,R24
 000A                   .dbline -2
 000A           L1:
 000A                   .dbline 0 ; func end
 000A 0895              ret
 000C                   .dbend
 000C                   .dbfunc e Port_INIT _Port_INIT fV
                        .even
 000C           _Port_INIT::
 000C                   .dbline -1
 000C                   .dbline 101
 000C           ;     //*在这里添加其他全局寄存器的初始化代码*//
 000C           ; }
 000C           ; 
 000C           ; /***********************************************************
 000C           ; *   函数说明:系统端口初始化函数                           *
 000C           ; *   输入:    无                                           *
 000C           ; *   输出:    无                                           *
 000C           ; *   调用函数:无                                           *
 000C           ; ***********************************************************/
 000C           ; void Port_INIT(void)
 000C           ; {
 000C                   .dbline 103
 000C           ;     //*在这里添加端口初始化代码*//
 000C           ;     PORTB = 0b11111111;                 //没有使用的端口均设置为输入状态并开启内部上拉电阻
 000C 8FEF              ldi R24,255
 000E 85B9              out 0x5,R24
 0010                   .dbline 104
 0010           ;     PORTC = 0b11111111;
 0010 88B9              out 0x8,R24
 0012                   .dbline 105
 0012           ;     PORTD = 0b11111111;
 0012 8BB9              out 0xb,R24
 0014                   .dbline 107
 0014           ;     
 0014           ;     DDRB = 0b00000000;
 0014 2224              clr R2
 0016 24B8              out 0x4,R2
 0018                   .dbline 108
 0018           ;     DDRC = 0b00100000;                  //PC5端口设置为输出状态
 0018 80E2              ldi R24,32
 001A 87B9              out 0x7,R24
 001C                   .dbline 109
 001C           ;     DDRD = 0b00000000;
 001C 2AB8              out 0xa,R2
 001E                   .dbline -2
 001E           L2:
 001E                   .dbline 0 ; func end
 001E 0895              ret
 0020                   .dbend
 0020                   .dbfunc e Timer1_INIT _Timer1_INIT fV
                        .even
 0020           _Timer1_INIT::
 0020                   .dbline -1
 0020                   .dbline 119
 0020           ; }
 0020           ; 
 0020           ; /***********************************************************
 0020           ; *   函数声明:定时器1初始化函数                            *
 0020           ; *   输入:    无                                           *
 0020           ; *   输出:    无                                           *
 0020           ; *   调用函数:无                                           *
 0020           ; ***********************************************************/
 0020           ; void Timer1_INIT(void)
 0020           ; {
 0020                   .dbline 122
 0020           ;     //*在这里粘贴从代码生成向导中生成的初始化代码*//
 0020           ;     //*要求为2Hz的溢出中断                       *//
 0020           ;     TCCR1B = 0x00;
 0020 2224              clr R2
 0022 20928100          sts 129,R2
 0026                   .dbline 123
 0026           ;     TCNT1H = 0xF8;
 0026 88EF              ldi R24,248
 0028 80938500          sts 133,R24
 002C                   .dbline 124
 002C           ;     TCNT1L = 0x5F;
 002C 8FE5              ldi R24,95
 002E 80938400          sts 132,R24
 0032                   .dbline 125
 0032           ;     TCCR1A = 0x00;
 0032 20928000          sts 128,R2
 0036                   .dbline 126
 0036           ;     TCCR1B = 0x04;
 0036 84E0              ldi R24,4
 0038 80938100          sts 129,R24
 003C                   .dbline -2
 003C           L3:
 003C                   .dbline 0 ; func end
 003C 0895              ret
 003E                   .dbend
 003E                   .dbfunc e Timer1_OVF_ISR _Timer1_OVF_ISR fV
                        .even
 003E           _Timer1_OVF_ISR::
 003E 00D0              rcall push_lset
 0040                   .dbline -1
 0040                   .dbline 136
 0040           ; }
 0040           ; 
 0040           ; /***********************************************************
 0040           ; *   函数声明:定时器1溢出中断处理程序                      *
 0040           ; *   输入:    无                                           *
 0040           ; *   输出:    无                                           *
 0040           ; *   调用函数:INSERT_TIMER1_OVF_ISR_CODE                   *
 0040           ; ***********************************************************/
 0040           ; void Timer1_OVF_ISR(void)
 0040           ; {
 0040                   .dbline 138
 0040           ;     //*这里要添加对定时计数器重新设置计数底数的代码*//
 0040           ;     INSERT_TIMER1_OVF_ISR_CODE
 0040 7894              sei
 0042                   .dbline 138
 0042 00D0              rcall _Insert_Timer1_OVF_ISR_Code
 0044                   .dbline -2
 0044           L4:
 0044 00D0              rcall pop_lset
 0046                   .dbline 0 ; func end
 0046 1895              reti
 0048                   .dbend

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?