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

📄 舵机控制.lst

📁 《深入浅出AVR单片机——从ATmega48/88/168开始》的实例程序源代码
💻 LST
📖 第 1 页 / 共 2 页
字号:
__text_start:
__start:
    001C EFCF      LDI	R28,0xFF
    001D E0D2      LDI	R29,2
    001E BFCD      OUT	0x3D,R28
    001F BFDE      OUT	0x3E,R29
    0020 52C0      SUBI	R28,0x20
    0021 40D0      SBCI	R29,0
    0022 EA0A      LDI	R16,0xAA
    0023 8308      STD	Y+0,R16
    0024 2400      CLR	R0
    0025 E0E4      LDI	R30,4
    0026 E0F1      LDI	R31,1
    0027 E011      LDI	R17,1
    0028 30E4      CPI	R30,4
    0029 07F1      CPC	R31,R17
    002A F011      BEQ	0x002D
    002B 9201      ST	R0,Z+
    002C CFFB      RJMP	0x0028
    002D 8300      STD	Z+0,R16
    002E E3E4      LDI	R30,0x34
    002F E0F0      LDI	R31,0
    0030 E0A0      LDI	R26,0
    0031 E0B1      LDI	R27,1
    0032 E010      LDI	R17,0
    0033 33E8      CPI	R30,0x38
    0034 07F1      CPC	R31,R17
    0035 F021      BEQ	0x003A
    0036 95C8      LPM
    0037 9631      ADIW	R30,1
    0038 920D      ST	R0,X+
    0039 CFF9      RJMP	0x0033
    003A D070      RCALL	_main
_exit:
    003B 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) 
(0041) /*------------------*
(0042) *   常 数 宏 定 义  *
(0043) *------------------*/
(0044) 
(0045) /*------------------*
(0046) *   动 作 宏 定 义  *
(0047) *------------------*/
(0048) #ifndef INSERT_TIMER0_OVF_ISR_CODE
(0049)     # define INSERT_TIMER0_OVF_ISR_CODE
(0050) #endif
(0051) 
(0052) /********************
(0053) *  模块结构体定义区 *
(0054) ********************/
(0055) 
(0056) /********************
(0057) *   函 数 声 明 区  *
(0058) ********************/
(0059) void Device_INIT(void);
(0060) 
(0061) /********************
(0062) *   模块函数声明区  *
(0063) ********************/
(0064) static void Port_INIT(void);
(0065) static void Timer0_INIT(void);
(0066) static void Timer1_INIT(void);
(0067) 
(0068) /********************
(0069) *   模块变量声明区  *
(0070) ********************/
(0071) 
(0072) /********************
(0073) *   全局变量声明区  *
(0074) ********************/
(0075) 
(0076) /***********************************************************
(0077) *   函数说明:系统硬件初始化函数                           *
(0078) *   输入:    无                                           *
(0079) *   输出:    无                                           *
(0080) *   调用函数:Port_INIT()   Timer0_INIT()                  *
(0081) ***********************************************************/
(0082) void Device_INIT(void)
(0083) {
(0084)     Port_INIT();
_Device_INIT:
    003C D006      RCALL	_Port_INIT
(0085)     Timer0_INIT();
    003D D012      RCALL	_Timer0_INIT
(0086)     Timer1_INIT();
    003E D020      RCALL	_Timer1_INIT
(0087)     //*在这里添加其他初始化函数*//
(0088) 
(0089)     TIMSK0 = BIT(TOIE0);                                    //启动定时器0溢出中断资源
    003F E081      LDI	R24,1
    0040 9380006E  STS	0x6E,R24
    0042 9508      RET
(0090)     //*在这里添加其他全局寄存器的初始化代码*//
(0091) }
(0092) 
(0093) /***********************************************************
(0094) *   函数说明:系统端口初始化函数                           *
(0095) *   输入:    无                                           *
(0096) *   输出:    无                                           *
(0097) *   调用函数:无                                           *
(0098) ***********************************************************/
(0099) static void Port_INIT(void)
(0100) {
(0101)     //硬件PWM输出引脚
(0102)     DDR_PB1 = PDIR_OUT;_PB1 = HIGH;                         //OC1A输出PWM
_Port_INIT:
    0043 B184      IN	R24,0x04
    0044 6082      ORI	R24,2
    0045 B984      OUT	0x04,R24
    0046 B185      IN	R24,0x05
    0047 6082      ORI	R24,2
    0048 B985      OUT	0x05,R24
(0103) 
(0104)     //工作指示灯
(0105)     DDR_PC5 = PDIR_OUT;_PC5 = LOW;
    0049 B187      IN	R24,0x07
    004A 6280      ORI	R24,0x20
    004B B987      OUT	0x07,R24
    004C B188      IN	R24,0x08
    004D 7D8F      ANDI	R24,0xDF
    004E B988      OUT	0x08,R24
    004F 9508      RET
(0106) }
(0107) 
(0108) /***********************************************************
(0109) *   函数声明:定时器0初始化函数                            *
(0110) *   输入:    无                                           *
(0111) *   输出:    无                                           *
(0112) *   调用函数:无                                           *
(0113) ***********************************************************/
(0114) static void Timer0_INIT(void)
(0115) {
(0116)     TCCR0B = 0x00;          //1kHz定时中断
_Timer0_INIT:
    0050 2422      CLR	R2
    0051 BC25      OUT	0x25,R2
(0117)     TCNT0 = 0x83;
    0052 E883      LDI	R24,0x83
    0053 BD86      OUT	0x26,R24
(0118)     TCCR0A = 0x00;
    0054 BC24      OUT	0x24,R2
(0119)     TCCR0B = 0x02;
    0055 E082      LDI	R24,2
    0056 BD85      OUT	0x25,R24
    0057 9508      RET
_Timer0_OVF_ISR:
    0058 D0AB      RCALL	push_lset
(0120) }
(0121) 
(0122) /***********************************************************
(0123) *   函数声明:定时器0溢出中断处理程序                      *
(0124) *   输入:    无                                           *
(0125) *   输出:    无                                           *
(0126) *   调用函数:INSERT_TIMER0_OVF_ISR_CODE                   *
(0127) ***********************************************************/
(0128) void Timer0_OVF_ISR(void)
(0129) {
(0130)     TCNT0 = 0x83;
    0059 E883      LDI	R24,0x83
    005A BD86      OUT	0x26,R24
(0131)     INSERT_TIMER0_OVF_ISR_CODE
    005B 9478      BSET	7
    005C D027      RCALL	_Insert_Timer0_OVF_ISR_Code
    005D D0BD      RCALL	pop_lset
    005E 9518      RETI
(0132) }
(0133) 
(0134) /***********************************************************
(0135) *   函数声明:定时器1初始化函数                            *
(0136) *   输入:    无                                           *
(0137) *   输出:    无                                           *
(0138) *   调用函数:无                                           *
(0139) ***********************************************************/
(0140) static void Timer1_INIT(void)
(0141) {
(0142)     //*在这里粘贴从代码生成向导中生成的初始化代码*//
(0143)     TCCR1B = 0x00;			//停止定时器
_Timer1_INIT:
    005F 2422      CLR	R2
    0060 92200081  STS	0x81,R2
(0144) 
(0145)     ICR1H  = 0x27;			//设定PWM波周期为20mS
    0062 E287      LDI	R24,0x27
    0063 93800087  STS	0x87,R24
(0146)     ICR1L  = 0x10;
    0065 E180      LDI	R24,0x10
    0066 93800086  STS	0x86,R24
(0147) 
(0148)     TCCR1A = 0x80;          //OC1A引脚在向上计数匹配时置低,在向下计数匹配时置高
    0068 E880      LDI	R24,0x80
    0069 93800080  STS	0x80,R24
(0149)     TCCR1C = 0x00;          //不使用强制匹配
    006B 92200082  STS	0x82,R2
(0150)     TCCR1B = 0x11;          //启动定时器1,时钟不分频
    006D E181      LDI	R24,0x11
    006E 93800081  STS	0x81,R24
    0070 9508      RET
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 "EX_Support.h"
(0039) 
(0040) 
(0041) /********************
(0042) *   系 统 宏 定 义  *
(0043) ********************/
(0044) 
(0045) /*------------------*
(0046) *   常 数 宏 定 义  *
(0047) *------------------*/
(0048) 
(0049) /*------------------*
(0050) *   动 作 宏 定 义  *
(0051) *------------------*/
(0052) 
(0053) /********************
(0054) *  模块结构体定义区 *
(0055) ********************/
(0056) 
(0057) /********************
(0058) *   函 数 声 明 区  *
(0059) ********************/
(0060) void System_INIT(void);
(0061) void Delay_MS(uint16 wTime);
(0062) void Insert_Timer0_OVF_ISR_Code(void);
(0063) 
(0064) /********************
(0065) *   模块函数声明区  *
(0066) ********************/
(0067) static void Driver_INIT(void);
(0068) 
(0069) /********************
(0070) *   模块变量声明区  *
(0071) ********************/
(0072) static uint16 s_wSystemDelayTimerCounter = 0;
(0073) 
(0074) /********************
(0075) *   全局变量声明区  *
(0076) ********************/
(0077) uint16 g_wSystemTimer = 0;
(0078) 
(0079) /***********************************************************
(0080) *   函数说明:软件驱动初始化函数                           *
(0081) *   输入:    无                                           *
(0082) *   输出:    无                                           *
(0083) *   调用函数:无                                           *
(0084) ***********************************************************/
(0085) static void Driver_INIT(void)
(0086) {

⌨️ 快捷键说明

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