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

📄 渐明渐暗的灯.lst

📁 《深入浅出AVR单片机——从ATmega48/88/168开始》的实例程序源代码
💻 LST
📖 第 1 页 / 共 2 页
字号:
__start:
__text_start:
    001B EFCF      LDI	R28,0xFF
    001C E0D2      LDI	R29,2
    001D BFCD      OUT	0x3D,R28
    001E BFDE      OUT	0x3E,R29
    001F 52C0      SUBI	R28,0x20
    0020 40D0      SBCI	R29,0
    0021 EA0A      LDI	R16,0xAA
    0022 8308      STD	Y+0,R16
    0023 2400      CLR	R0
    0024 E0E2      LDI	R30,2
    0025 E0F1      LDI	R31,1
    0026 E011      LDI	R17,1
    0027 30E2      CPI	R30,2
    0028 07F1      CPC	R31,R17
    0029 F011      BEQ	0x002C
    002A 9201      ST	R0,Z+
    002B CFFB      RJMP	0x0027
    002C 8300      STD	Z+0,R16
    002D E3E4      LDI	R30,0x34
    002E E0F0      LDI	R31,0
    002F E0A0      LDI	R26,0
    0030 E0B1      LDI	R27,1
    0031 E010      LDI	R17,0
    0032 33E6      CPI	R30,0x36
    0033 07F1      CPC	R31,R17
    0034 F021      BEQ	0x0039
    0035 95C8      LPM
    0036 9631      ADIW	R30,1
    0037 920D      ST	R0,X+
    0038 CFF9      RJMP	0x0032
    0039 D06D      RCALL	_main
_exit:
    003A CFFF      RJMP	_exit
FILE: D:\设计项目\深入浅出AVR\光盘文件\实例程序源代码\实例11_渐明渐暗的灯\渐明渐暗的灯\HD_Support.c
(0001) /***********************************************************
(0002) *   函数库说明:底层硬件初始化函数库                       *
(0003) *   版本:                                                 *
(0004) *   作者:                                                 *
(0005) *   创建日期:                                             *
(0006) * -------------------------------------------------------- *
(0007) *  [硬件说明]                                              *
(0008) *   处理器:                                               *
(0009) *   系统时钟:                                             *
(0010) * -------------------------------------------------------- *
(0011) *  [支 持 库]                                              *
(0012) *   支持库名称:HD_Support.h                               *
(0013) *   需要版本:  -----                                      *
(0014) *   支持库说明:底层硬件初始化声明库                       *
(0015) *                                                          *
(0016) *   支持库名称:PF_Config.h                                *
(0017) *   需要版本:  -----                                      *
(0018) *   支持库说明:硬件平台配置声明库                         *
(0019) * -------------------------------------------------------- *
(0020) *  [版本更新]                                              *
(0021) *   修改:                                                 *
(0022) *   修改日期:                                             *
(0023) *   版本:                                                 *
(0024) * -------------------------------------------------------- *
(0025) *  [版本历史]                                              *
(0026) * -------------------------------------------------------- *
(0027) *  [使用说明]                                              *
(0028) ***********************************************************/
(0029) 
(0030) /********************
(0031) * 头 文 件 配 置 区 *
(0032) ********************/
(0033) # include "PF_Config.h"
(0034) # include "HD_Support.h"
(0035) 
(0036) /********************
(0037) *   系 统 宏 定 义  *
(0038) ********************/
(0039) #pragma interrupt_handler Timer0_OVF_ISR:iv_TIMER0_OVF
(0040) #pragma interrupt_handler Timer1_OVF_ISR:iv_TIMER1_OVF
(0041) 
(0042) /*------------------*
(0043) *   常 数 宏 定 义  *
(0044) *------------------*/
(0045) 
(0046) /*------------------*
(0047) *   动 作 宏 定 义  *
(0048) *------------------*/
(0049) #ifndef INSERT_TIMER0_OVF_ISR_CODE
(0050)     # define INSERT_TIMER0_OVF_ISR_CODE
(0051) #endif
(0052) 
(0053) #ifndef INSERT_TIMER1_OVF_ISR_CODE
(0054)     # define INSERT_TIMER1_OVF_ISR_CODE
(0055) #endif
(0056) 
(0057) /********************
(0058) *  模块结构体定义区 *
(0059) ********************/
(0060) 
(0061) /********************
(0062) *   函 数 声 明 区  *
(0063) ********************/
(0064) void Device_INIT(void);
(0065) void Insert_Timer1_OVF_ISR_Code(void);
(0066) 
(0067) /********************
(0068) *   模块函数声明区  *
(0069) ********************/
(0070) void Port_INIT(void);
(0071) void Timer0_INIT(void);
(0072) void Timer1_INIT(void);
(0073) 
(0074) /********************
(0075) *   模块变量声明区  *
(0076) ********************/
(0077) 
(0078) /********************
(0079) *   全局变量声明区  *
(0080) ********************/
(0081) 
(0082) unsigned char light=0;                  //初始化亮度计数器, 最小占空比, 亮度最大时
(0083) unsigned char direction=L_dw;           //初始化亮度方向控制标志, 亮度减弱方向
(0084) 
(0085) /***********************************************************
(0086) *   函数说明:系统硬件初始化函数                           *
(0087) *   输入:    无                                           *
(0088) *   输出:    无                                           *
(0089) *   调用函数:Port_INIT()   Timer0_INIT()                  *
(0090) ***********************************************************/
(0091) void Device_INIT(void)
(0092) {
(0093)     Port_INIT();
_Device_INIT:
    003B D006      RCALL	_Port_INIT
(0094)     Timer0_INIT();
    003C D00F      RCALL	_Timer0_INIT
(0095)     Timer1_INIT();
    003D D01A      RCALL	_Timer1_INIT
(0096)     //*在这里添加其他初始化函数*//
(0097) 
(0098)     TIMSK1 = BIT(TOIE1);                                    //启动定时器1溢出中断资源
    003E E081      LDI	R24,1
    003F 9380006F  STS	0x6F,R24
    0041 9508      RET
(0099)     //*在这里添加其他全局寄存器的初始化代码*//
(0100) }
(0101) 
(0102) /***********************************************************
(0103) *   函数说明:系统端口初始化函数                           *
(0104) *   输入:    无                                           *
(0105) *   输出:    无                                           *
(0106) *   调用函数:无                                           *
(0107) ***********************************************************/
(0108) void Port_INIT(void)
(0109) {
(0110)     //*在这里添加端口初始化代码*//
(0111)     PORTB = 0b11111111;                 //没有使用的端口均设置为输入状态并开启内部上拉电阻
_Port_INIT:
    0042 EF8F      LDI	R24,0xFF
    0043 B985      OUT	0x05,R24
(0112)     PORTC = 0b11111111;
    0044 B988      OUT	0x08,R24
(0113)     PORTD = 0b11111111;
    0045 B98B      OUT	0x0B,R24
(0114)     
(0115)     DDRB = 0b00000000;
    0046 2422      CLR	R2
    0047 B824      OUT	0x04,R2
(0116)     DDRC = 0b00100000;                  //PC5端口设置为输出状态
    0048 E280      LDI	R24,0x20
    0049 B987      OUT	0x07,R24
(0117)     DDRD = 0b00100000;                  //PD5[OC0B]端口设置为输出状态
    004A B98A      OUT	0x0A,R24
    004B 9508      RET
(0118) }
(0119) 
(0120) /***********************************************************
(0121) *   函数声明:定时器0初始化函数                            *
(0122) *   输入:    无                                           *
(0123) *   输出:    无                                           *
(0124) *   调用函数:无                                           *
(0125) ***********************************************************/
(0126) void Timer0_INIT(void)
(0127) {
(0128)     //*在这里粘贴从代码生成向导中生成的初始化代码*//
(0129)     //*要求为1K的溢出中断                        *//
(0130)     TCCR0B = 0x00;          //1kHz PWM模式
_Timer0_INIT:
    004C 2422      CLR	R2
    004D BC25      OUT	0x25,R2
(0131)     TCCR0A = 0x23;          //OC0B端口在比较匹配时清零, 在计数值达到TOP时置位
    004E E283      LDI	R24,0x23
    004F BD84      OUT	0x24,R24
(0132)     TCNT0 = 0x00;
    0050 BC26      OUT	0x26,R2
(0133)     OCR0A = 0x83;           //计数TOP值
    0051 E883      LDI	R24,0x83
    0052 BD87      OUT	0x27,R24
(0134)     OCR0B = 0x00;           //比较匹配初始值
    0053 BC28      OUT	0x28,R2
(0135)     TCCR0B = 0x0A;          //WGM02...00 = 111, 8分频, 快速PWM模式OCR0A作为TOP
    0054 E08A      LDI	R24,0xA
    0055 BD85      OUT	0x25,R24
    0056 9508      RET
(0136) }
(0137) 
(0138) /***********************************************************
(0139) *   函数声明:定时器0溢出中断处理程序                      *
(0140) *   输入:    无                                           *
(0141) *   输出:    无                                           *
(0142) *   调用函数:INSERT_TIMER0_OVF_ISR_CODE                   *
(0143) ***********************************************************/
(0144) void Timer0_OVF_ISR(void)
(0145) {
_Timer0_OVF_ISR:
    0057 9518      RETI
(0146)     //*这里要添加对定时计数器重新设置计数底数的代码*//
(0147)       INSERT_TIMER0_OVF_ISR_CODE
(0148) }
(0149) 
(0150) /***********************************************************
(0151) *   函数声明:定时器1初始化函数                            *
(0152) *   输入:    无                                           *
(0153) *   输出:    无                                           *
(0154) *   调用函数:无                                           *
(0155) ***********************************************************/
(0156) void Timer1_INIT(void)
(0157) {
(0158)     //*在这里粘贴从代码生成向导中生成的初始化代码*//
(0159)     //*要求为20Hz的溢出中断                      *//
(0160)     TCCR1B = 0x00;
_Timer1_INIT:
    0058 2422      CLR	R2
    0059 92200081  STS	0x81,R2
(0161)     TCNT1H = 0xFF;
    005B EF8F      LDI	R24,0xFF
    005C 93800085  STS	0x85,R24
(0162)     TCNT1L = 0x3D;
    005E E38D      LDI	R24,0x3D
    005F 93800084  STS	0x84,R24
(0163)     TCCR1A = 0x00;
    0061 92200080  STS	0x80,R2
(0164)     TCCR1B = 0x04;
    0063 E084      LDI	R24,4
    0064 93800081  STS	0x81,R24
    0066 9508      RET
_Timer1_OVF_ISR:
    0067 D042      RCALL	push_lset
(0165) }
(0166) 
(0167) /***********************************************************
(0168) *   函数声明:定时器1溢出中断处理程序                      *
(0169) *   输入:    无                                           *
(0170) *   输出:    无                                           *
(0171) *   调用函数:INSERT_TIMER1_OVF_ISR_CODE                   *
(0172) ***********************************************************/
(0173) void Timer1_OVF_ISR(void)
(0174) {
(0175)     //*这里要添加对定时计数器重新设置计数底数的代码*//
(0176)     INSERT_TIMER1_OVF_ISR_CODE
    0068 9478      BSET	7
    0069 D008      RCALL	_Insert_Timer1_OVF_ISR_Code
    006A D056      RCALL	pop_lset
    006B 9518      RETI
FILE: D:\设计项目\深入浅出AVR\光盘文件\实例程序源代码\实例11_渐明渐暗的灯\渐明渐暗的灯\EX_Support.c
(0001) /***********************************************************
(0002) *   函数库说明:底层硬件初始化驱动函数库                   *
(0003) *   版本:                                                 *
(0004) *   作者:                                                 *
(0005) *   创建日期:                                             *
(0006) * -------------------------------------------------------- *
(0007) *  [硬件说明]                                              *
(0008) *   处理器:                                               *
(0009) *   系统时钟:                                             *
(0010) * -------------------------------------------------------- *
(0011) *  [支 持 库]                                              *
(0012) *   支持库名称:HD_Support.h                               *
(0013) *   需要版本:  -----                                      *
(0014) *   支持库说明:底层硬件初始化声明库                       *
(0015) *                                                          *
(0016) *   支持库名称:EX_Support.h                               *
(0017) *   需要版本:  -----                                      *
(0018) *   支持库说明:底层硬件初始化驱动声明库                   *
(0019) *                                                          *
(0020) *   支持库名称:PF_Config.h                                *
(0021) *   需要版本:  -----                                      *
(0022) *   支持库说明:硬件平台配置声明库                         *
(0023) * -------------------------------------------------------- *
(0024) *  [版本更新]                                              *
(0025) *   修改:                                                 *
(0026) *   修改日期:                                             *
(0027) *   版本:                                                 *
(0028) * -------------------------------------------------------- *
(0029) *  [版本历史]                                              *
(0030) * -------------------------------------------------------- *
(0031) *  [使用说明]                                              *
(0032) ***********************************************************/
(0033) 
(0034) /********************
(0035) * 头 文 件 配 置 区 *
(0036) ********************/
(0037) # include "PF_Config.h"
(0038) # include "HD_Support.h"

⌨️ 快捷键说明

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