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

📄 ex_support.s

📁 《深入浅出AVR单片机——从ATmega48/88/168开始》的实例程序源代码
💻 S
字号:
	.module EX_Support.c
	.area text(rom, con, rel)
	.dbfile D:\设计项目\深入浅出AVR\光盘文件\实例程序源代码\实例11_渐明渐暗的灯\渐明渐暗的灯\EX_Support.c
	.dbfunc s Driver_INIT _Driver_INIT fV
	.even
_Driver_INIT:
	.dbline -1
	.dbline 87
; /***********************************************************
; *   函数库说明:底层硬件初始化驱动函数库                   *
; *   版本:                                                 *
; *   作者:                                                 *
; *   创建日期:                                             *
; * -------------------------------------------------------- *
; *  [硬件说明]                                              *
; *   处理器:                                               *
; *   系统时钟:                                             *
; * -------------------------------------------------------- *
; *  [支 持 库]                                              *
; *   支持库名称:HD_Support.h                               *
; *   需要版本:  -----                                      *
; *   支持库说明:底层硬件初始化声明库                       *
; *                                                          *
; *   支持库名称:EX_Support.h                               *
; *   需要版本:  -----                                      *
; *   支持库说明:底层硬件初始化驱动声明库                   *
; *                                                          *
; *   支持库名称:PF_Config.h                                *
; *   需要版本:  -----                                      *
; *   支持库说明:硬件平台配置声明库                         *
; * -------------------------------------------------------- *
; *  [版本更新]                                              *
; *   修改:                                                 *
; *   修改日期:                                             *
; *   版本:                                                 *
; * -------------------------------------------------------- *
; *  [版本历史]                                              *
; * -------------------------------------------------------- *
; *  [使用说明]                                              *
; ***********************************************************/
; 
; /********************
; * 头 文 件 配 置 区 *
; ********************/
; # include "PF_Config.h"
; # include "HD_Support.h"
; # include "EX_Support.h"
; 
; 
; /********************
; *   系 统 宏 定 义  *
; ********************/
; 
; /*------------------*
; *   常 数 宏 定 义  *
; *------------------*/
; 
; /*------------------*
; *   动 作 宏 定 义  *
; *------------------*/
; 
; /********************
; *  模块结构体定义区 *
; ********************/
; 
; /********************
; *   函 数 声 明 区  *
; ********************/
; void System_INIT(void);
; void Delay_MS(uint16 wTime);
; void Insert_Timer0_OVF_ISR_Code(void);
; 
; /********************
; *   模块函数声明区  *
; ********************/
; static void Driver_INIT(void);
; 
; /********************
; *   模块变量声明区  *
; ********************/
; //static uint16 s_wSystemDelayTimerCounter = 0;
; 
; /********************
; *   全局变量声明区  *
; ********************/
; //uint16 g_wSystemTimer = 0;
; 
; /***********************************************************
; *   函数说明:软件驱动初始化函数                           *
; *   输入:    无                                           *
; *   输出:    无                                           *
; *   调用函数:无                                           *
; ***********************************************************/
; static void Driver_INIT(void)
; {
	.dbline -2
L1:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e System_INIT _System_INIT fV
	.even
_System_INIT::
	.dbline -1
	.dbline 98
;     //*在这里插入你的各类软件驱动初始化代码*//
; }
; 
; /***********************************************************
; *   函数说明:系统初始化函数                               *
; *   输入:    无                                           *
; *   输出:    无                                           *
; *   调用函数:Device_INIT() Driver_INIT()                  *
; ***********************************************************/
; void System_INIT(void)
; {
	.dbline 99
;     CLI();
	cli
	.dbline 101
;     
;     Device_INIT();
	rcall _Device_INIT
	.dbline 102
;     Driver_INIT();
	rcall _Driver_INIT
	.dbline 106
;     
;     //*在这里插入你的系统环境变量初始化代码*//
;     
;     SEI();
	sei
	.dbline -2
L2:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e Insert_Timer1_OVF_ISR_Code _Insert_Timer1_OVF_ISR_Code fV
	.even
_Insert_Timer1_OVF_ISR_Code::
	.dbline -1
	.dbline 146
; }
; 
; ///***********************************************************
; //*   函数说明:系统毫秒延时函数                             *
; //*   输入:    需要延时的时间长度                           *
; //*   输出:    无                                           *
; //*   调用函数:无                                           *
; //***********************************************************/
; //void Delay_MS(uint16 wTime)
; //{
; //    s_wSystemDelayTimerCounter = wTime;
; //    
; //    while(s_wSystemDelayTimerCounter);
; //}
; //
; ///***********************************************************
; //*   函数说明:定时器0中断处理程序代码插入函数              *
; //*   输入:    无                                           *
; //*   输出:    无                                           *
; //*   调用函数:无                                           *
; //***********************************************************/
; //void Insert_Timer0_OVF_ISR_Code (void)
; //{
; //    g_wSystemTimer++;
; //
; //    if (s_wSystemDelayTimerCounter)
; //    {
; //        s_wSystemDelayTimerCounter--;
; //    }
; //}
; 
; /***********************************************************
; *   函数说明:定时器1中断处理程序代码插入函数              *
; *   输入:    无                                           *
; *   输出:    无                                           *
; *   调用函数:无                                           *
; ***********************************************************/
; 
; void Insert_Timer1_OVF_ISR_Code (void)
; {
	.dbline 147
;     TCNT1 = 0xFF3D;             //重新加载定时器1
	ldi R24,65341
	ldi R25,255
	sts 132+1,R25
	sts 132,R24
	.dbline 148
;     PORTC ^= 0b00100000;        //PC5端口发光管闪烁
	ldi R24,32
	in R2,0x8
	eor R2,R24
	out 0x8,R2
	.dbline 149
;     switch (direction)          //调整PWM波占空比,以改变亮度
	lds R16,_direction
	clr R17
	cpi R16,0
	cpc R16,R17
	breq L7
X0:
	cpi R16,1
	ldi R30,0
	cpc R17,R30
	breq L10
	rjmp L4
X1:
	.dbline 150
;     {
L7:
	.dbline 152
;         case L_dw :             //亮度变化趋势控制标志为增强方向时的处理
;         {
	.dbline 153
;             light += 0x02;
	lds R24,_light
	subi R24,254    ; addi 2
	sts _light,R24
	.dbline 154
;             if (light > 0x83)       //如果亮度达到最小,则保持该亮度,并且换亮度变化趋势控制标志为增强方向
	ldi R24,131
	lds R2,_light
	cp R24,R2
	brsh L5
	.dbline 155
;             {
	.dbline 156
;                 light = 0x83;
	sts _light,R24
	.dbline 157
;                 direction = L_up;
	ldi R24,1
	sts _direction,R24
	.dbline 158
;             }
	.dbline 159
;             break;
	rjmp L5
L10:
	.dbline 163
;         }
;         
;         case L_up :             //亮度变化趋势控制标志为减弱方向时的处理
;         {
	.dbline 164
;             light -=0x02;
	lds R24,_light
	subi R24,2
	sts _light,R24
	.dbline 165
;             if (light < 0x03)       //如果亮度达到最大,则保持该亮度,并且换亮度变化趋势控制标志为减弱方向
	cpi R24,3
	brsh L5
	.dbline 166
;             {
	.dbline 167
;                 light = 0x00;
	clr R2
	sts _light,R2
	.dbline 168
;                 direction = L_dw;
	sts _direction,R2
	.dbline 169
;             }
	.dbline 170
;             break;
L4:
L5:
	.dbline 173
;         }
;     }
;     OCR0B = light;
	lds R2,_light
	out 0x28,R2
	.dbline -2
L3:
	.dbline 0 ; func end
	ret
	.dbend

⌨️ 快捷键说明

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