⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ex_support.lis

📁 《深入浅出AVR单片机——从ATmega48/88/168开始》的实例程序源代码
💻 LIS
字号:
                        .module EX_Support.c
                        .area text(rom, con, rel)
 0000                   .dbfile D:\设计项目\深入浅出AVR\光盘文件\实例程序源代码\实例11_渐明渐暗的灯\渐明渐暗的灯\EX_Support.c
 0000                   .dbfunc s Driver_INIT _Driver_INIT fV
                        .even
 0000           _Driver_INIT:
 0000                   .dbline -1
 0000                   .dbline 87
 0000           ; /***********************************************************
 0000           ; *   函数库说明:底层硬件初始化驱动函数库                   *
 0000           ; *   版本:                                                 *
 0000           ; *   作者:                                                 *
 0000           ; *   创建日期:                                             *
 0000           ; * -------------------------------------------------------- *
 0000           ; *  [硬件说明]                                              *
 0000           ; *   处理器:                                               *
 0000           ; *   系统时钟:                                             *
 0000           ; * -------------------------------------------------------- *
 0000           ; *  [支 持 库]                                              *
 0000           ; *   支持库名称:HD_Support.h                               *
 0000           ; *   需要版本:  -----                                      *
 0000           ; *   支持库说明:底层硬件初始化声明库                       *
 0000           ; *                                                          *
 0000           ; *   支持库名称:EX_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           ; # include "EX_Support.h"
 0000           ; 
 0000           ; 
 0000           ; /********************
 0000           ; *   系 统 宏 定 义  *
 0000           ; ********************/
 0000           ; 
 0000           ; /*------------------*
 0000           ; *   常 数 宏 定 义  *
 0000           ; *------------------*/
 0000           ; 
 0000           ; /*------------------*
 0000           ; *   动 作 宏 定 义  *
 0000           ; *------------------*/
 0000           ; 
 0000           ; /********************
 0000           ; *  模块结构体定义区 *
 0000           ; ********************/
 0000           ; 
 0000           ; /********************
 0000           ; *   函 数 声 明 区  *
 0000           ; ********************/
 0000           ; void System_INIT(void);
 0000           ; void Delay_MS(uint16 wTime);
 0000           ; void Insert_Timer0_OVF_ISR_Code(void);
 0000           ; 
 0000           ; /********************
 0000           ; *   模块函数声明区  *
 0000           ; ********************/
 0000           ; static void Driver_INIT(void);
 0000           ; 
 0000           ; /********************
 0000           ; *   模块变量声明区  *
 0000           ; ********************/
 0000           ; //static uint16 s_wSystemDelayTimerCounter = 0;
 0000           ; 
 0000           ; /********************
 0000           ; *   全局变量声明区  *
 0000           ; ********************/
 0000           ; //uint16 g_wSystemTimer = 0;
 0000           ; 
 0000           ; /***********************************************************
 0000           ; *   函数说明:软件驱动初始化函数                           *
 0000           ; *   输入:    无                                           *
 0000           ; *   输出:    无                                           *
 0000           ; *   调用函数:无                                           *
 0000           ; ***********************************************************/
 0000           ; static void Driver_INIT(void)
 0000           ; {
 0000                   .dbline -2
 0000           L1:
 0000                   .dbline 0 ; func end
 0000 0895              ret
 0002                   .dbend
 0002                   .dbfunc e System_INIT _System_INIT fV
                        .even
 0002           _System_INIT::
 0002                   .dbline -1
 0002                   .dbline 98
 0002           ;     //*在这里插入你的各类软件驱动初始化代码*//
 0002           ; }
 0002           ; 
 0002           ; /***********************************************************
 0002           ; *   函数说明:系统初始化函数                               *
 0002           ; *   输入:    无                                           *
 0002           ; *   输出:    无                                           *
 0002           ; *   调用函数:Device_INIT() Driver_INIT()                  *
 0002           ; ***********************************************************/
 0002           ; void System_INIT(void)
 0002           ; {
 0002                   .dbline 99
 0002           ;     CLI();
 0002 F894              cli
 0004                   .dbline 101
 0004           ;     
 0004           ;     Device_INIT();
 0004 00D0              rcall _Device_INIT
 0006                   .dbline 102
 0006           ;     Driver_INIT();
 0006 FCDF              rcall _Driver_INIT
 0008                   .dbline 106
 0008           ;     
 0008           ;     //*在这里插入你的系统环境变量初始化代码*//
 0008           ;     
 0008           ;     SEI();
 0008 7894              sei
 000A                   .dbline -2
 000A           L2:
 000A                   .dbline 0 ; func end
 000A 0895              ret
 000C                   .dbend
 000C                   .dbfunc e Insert_Timer1_OVF_ISR_Code _Insert_Timer1_OVF_ISR_Code fV
                        .even
 000C           _Insert_Timer1_OVF_ISR_Code::
 000C                   .dbline -1
 000C                   .dbline 146
 000C           ; }
 000C           ; 
 000C           ; ///***********************************************************
 000C           ; //*   函数说明:系统毫秒延时函数                             *
 000C           ; //*   输入:    需要延时的时间长度                           *
 000C           ; //*   输出:    无                                           *
 000C           ; //*   调用函数:无                                           *
 000C           ; //***********************************************************/
 000C           ; //void Delay_MS(uint16 wTime)
 000C           ; //{
 000C           ; //    s_wSystemDelayTimerCounter = wTime;
 000C           ; //    
 000C           ; //    while(s_wSystemDelayTimerCounter);
 000C           ; //}
 000C           ; //
 000C           ; ///***********************************************************
 000C           ; //*   函数说明:定时器0中断处理程序代码插入函数              *
 000C           ; //*   输入:    无                                           *
 000C           ; //*   输出:    无                                           *
 000C           ; //*   调用函数:无                                           *
 000C           ; //***********************************************************/
 000C           ; //void Insert_Timer0_OVF_ISR_Code (void)
 000C           ; //{
 000C           ; //    g_wSystemTimer++;
 000C           ; //
 000C           ; //    if (s_wSystemDelayTimerCounter)
 000C           ; //    {
 000C           ; //        s_wSystemDelayTimerCounter--;
 000C           ; //    }
 000C           ; //}
 000C           ; 
 000C           ; /***********************************************************
 000C           ; *   函数说明:定时器1中断处理程序代码插入函数              *
 000C           ; *   输入:    无                                           *
 000C           ; *   输出:    无                                           *
 000C           ; *   调用函数:无                                           *
 000C           ; ***********************************************************/
 000C           ; 
 000C           ; void Insert_Timer1_OVF_ISR_Code (void)
 000C           ; {
 000C                   .dbline 147
 000C           ;     TCNT1 = 0xFF3D;             //重新加载定时器1
 000C 8DE3              ldi R24,65341
 000E 9FEF              ldi R25,255
 0010 90938500          sts 132+1,R25
 0014 80938400          sts 132,R24
 0018                   .dbline 148
 0018           ;     PORTC ^= 0b00100000;        //PC5端口发光管闪烁
 0018 80E2              ldi R24,32
 001A 28B0              in R2,0x8
 001C 2826              eor R2,R24
 001E 28B8              out 0x8,R2
 0020                   .dbline 149
 0020           ;     switch (direction)          //调整PWM波占空比,以改变亮度
 0020 00910000          lds R16,_direction
 0024 1127              clr R17
 0026 0030              cpi R16,0
 0028 0107              cpc R16,R17
 002A 29F0              breq L7
 002C           X0:
 002C 0130              cpi R16,1
 002E E0E0              ldi R30,0
 0030 1E07              cpc R17,R30
 0032 89F0              breq L10
 0034 1CC0              rjmp L4
 0036           X1:
 0036                   .dbline 150
 0036           ;     {
 0036           L7:
 0036                   .dbline 152
 0036           ;         case L_dw :             //亮度变化趋势控制标志为增强方向时的处理
 0036           ;         {
 0036                   .dbline 153
 0036           ;             light += 0x02;
 0036 80910000          lds R24,_light
 003A 8E5F              subi R24,254    ; addi 2
 003C 80930000          sts _light,R24
 0040                   .dbline 154
 0040           ;             if (light > 0x83)       //如果亮度达到最小,则保持该亮度,并且换亮度变化趋势控制标志为增强方向
 0040 83E8              ldi R24,131
 0042 20900000          lds R2,_light
 0046 8215              cp R24,R2
 0048 90F4              brsh L5
 004A                   .dbline 155
 004A           ;             {
 004A                   .dbline 156
 004A           ;                 light = 0x83;
 004A 80930000          sts _light,R24
 004E                   .dbline 157
 004E           ;                 direction = L_up;
 004E 81E0              ldi R24,1
 0050 80930000          sts _direction,R24
 0054                   .dbline 158
 0054           ;             }
 0054                   .dbline 159
 0054           ;             break;
 0054 0CC0              rjmp L5
 0056           L10:
 0056                   .dbline 163
 0056           ;         }
 0056           ;         
 0056           ;         case L_up :             //亮度变化趋势控制标志为减弱方向时的处理
 0056           ;         {
 0056                   .dbline 164
 0056           ;             light -=0x02;
 0056 80910000          lds R24,_light
 005A 8250              subi R24,2
 005C 80930000          sts _light,R24
 0060                   .dbline 165
 0060           ;             if (light < 0x03)       //如果亮度达到最大,则保持该亮度,并且换亮度变化趋势控制标志为减弱方向
 0060 8330              cpi R24,3
 0062 28F4              brsh L5
 0064                   .dbline 166
 0064           ;             {
 0064                   .dbline 167
 0064           ;                 light = 0x00;
 0064 2224              clr R2
 0066 20920000          sts _light,R2
 006A                   .dbline 168
 006A           ;                 direction = L_dw;
 006A 20920000          sts _direction,R2
 006E                   .dbline 169
 006E           ;             }
 006E                   .dbline 170
 006E           ;             break;
 006E           L4:
 006E           L5:
 006E                   .dbline 173
 006E           ;         }
 006E           ;     }
 006E           ;     OCR0B = light;
 006E 20900000          lds R2,_light
 0072 28BC              out 0x28,R2
 0074                   .dbline -2
 0074           L3:
 0074                   .dbline 0 ; func end
 0074 0895              ret
 0076                   .dbend

⌨️ 快捷键说明

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