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

📄 i2c抢答器_从机程序.lst

📁 《深入浅出AVR单片机——从ATmega48/88/168开始》的实例程序源代码
💻 LST
📖 第 1 页 / 共 3 页
字号:
__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 E0E1      LDI	R30,1
    0025 E0F1      LDI	R31,1
    0026 E011      LDI	R17,1
    0027 30E4      CPI	R30,4
    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 33E5      CPI	R30,0x35
    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 D0D0      RCALL	_main
_exit:
    003A CFFF      RJMP	_exit
FILE: D:\实例17_I2C抢答器_从机程序\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 Timer1_OVF_ISR:iv_TIMER1_OVF
(0040) #pragma interrupt_handler TWR_ISR:iv_TWI
(0041) 
(0042) /*------------------*
(0043) *   常 数 宏 定 义  *
(0044) *------------------*/
(0045) 
(0046) /*------------------*
(0047) *   动 作 宏 定 义  *
(0048) *------------------*/
(0049) #ifndef INSERT_TIMER1_OVF_ISR_CODE
(0050)     # define INSERT_TIMER1_OVF_ISR_CODE
(0051) #endif
(0052) 
(0053) /********************
(0054) *  模块结构体定义区 *
(0055) ********************/
(0056) 
(0057) /********************
(0058) *   函 数 声 明 区  *
(0059) ********************/
(0060) void Device_INIT(void);
(0061) 
(0062) /********************
(0063) *   模块函数声明区  *
(0064) ********************/
(0065) static void Port_INIT(void);
(0066) static void Timer1_INIT(void);
(0067) static void TWI_INIT(void);
(0068) 
(0069) /********************
(0070) *   模块变量声明区  *
(0071) ********************/
(0072) 
(0073) /********************
(0074) *   全局变量声明区  *
(0075) ********************/
(0076) 
(0077) 
(0078) /***********************************************************
(0079) *   函数说明:系统硬件初始化函数                           *
(0080) *   输入:    无                                           *
(0081) *   输出:    无                                           *
(0082) *   调用函数:Port_INIT()   Timer0_INIT()                  *
(0083) ***********************************************************/
(0084) void Device_INIT(void)
(0085) {
(0086)     Port_INIT();
_Device_INIT:
    003B D006      RCALL	_Port_INIT
(0087)     Timer1_INIT();
    003C D006      RCALL	_Timer1_INIT
(0088)     TWI_INIT();
    003D D016      RCALL	_TWI_INIT
(0089)     //*在这里添加其他初始化函数*//
(0090)     
(0091)     TIMSK1 = BIT(TOIE1);                                    //启动定时期0溢出中断资源
    003E E081      LDI	R24,1
    003F 9380006F  STS	0x6F,R24
    0041 9508      RET
(0092)     //*在这里添加其他全局寄存器的初始化代码*//
(0093) }
(0094) 
(0095) /***********************************************************
(0096) *   函数说明:系统端口初始化函数                           *
(0097) *   输入:    无                                           *
(0098) *   输出:    无                                           *
(0099) *   调用函数:无                                           *
(0100) ***********************************************************/
(0101) static void Port_INIT(void)
(0102) {
_Port_INIT:
    0042 9508      RET
(0103)     //*在这里添加端口初始化代码*//
(0104)     
(0105) }
(0106) 
(0107) /***********************************************************
(0108) *   函数声明:定时器1初始化函数                            *
(0109) *   输入:    无                                           *
(0110) *   输出:    无                                           *
(0111) *   调用函数:无                                           *
(0112) ***********************************************************/
(0113) static void Timer1_INIT(void)
(0114) {
(0115)     //*在这里粘贴从代码生成向导中生成的初始化代码*//
(0116)     TCCR1B = 0x00;
_Timer1_INIT:
    0043 2422      CLR	R2
    0044 92200081  STS	0x81,R2
(0117)     TCNT1H = 0xB3;
    0046 EB83      LDI	R24,0xB3
    0047 93800085  STS	0x85,R24
(0118)     TCNT1L = 0xB5;
    0049 EB85      LDI	R24,0xB5
    004A 93800084  STS	0x84,R24
(0119)     TCCR1A = 0x00;
    004C 92200080  STS	0x80,R2
    004E 9508      RET
_Timer1_OVF_ISR:
    004F D10B      RCALL	push_lset
(0120) }
(0121) 
(0122) /***********************************************************
(0123) *   函数声明:定时器1溢出中断处理程序                      *
(0124) *   输入:    无                                           *
(0125) *   输出:    无                                           *
(0126) *   调用函数:INSERT_TIMER0_OVF_ISR_CODE                   *
(0127) ***********************************************************/
(0128) void Timer1_OVF_ISR(void)
(0129) {
(0130)     //*这里要添加对定时计数器重新设置计数底数的代码*//
(0131)     INSERT_TIMER1_OVF_ISR_CODE
    0050 9478      BSET	7
    0051 D035      RCALL	_Insert_Timer1_OVF_ISR_Code
    0052 D11F      RCALL	pop_lset
    0053 9518      RETI
(0132) }
(0133) 
(0134) /***********************************************************
(0135) *   函数说明:TWI初始化函数                                *
(0136) *   输入:    无                                           *
(0137) *   输出:    无                                           *
(0138) *   调用函数:无                                           *
(0139) ***********************************************************/
(0140) static void TWI_INIT(void)
(0141) {
(0142)     //这里粘贴从代码生成向导中获得的初始化代码
(0143)     TWCR= 0x00;                     //初始化之前关闭TWI
_TWI_INIT:
    0054 2422      CLR	R2
    0055 922000BC  STS	0xBC,R2
(0144)     TWBR= 0xC8;                     //设置时钟位速率,TWI位速率为2.4k
    0057 EC88      LDI	R24,0xC8
    0058 938000B8  STS	0xB8,R24
(0145)     TWSR= 0x00;                     //设置预分频比为1
    005A 922000B9  STS	0xB9,R2
(0146)     TWAR= 0xF1;                     //当主机作为TWI从机接收数据时使用的地址
    005C EF81      LDI	R24,0xF1
    005D 938000BA  STS	0xBA,R24
(0147)     TWCR= 0x45;                     //允许应答,使能TWI,使能TWI中断
    005F E485      LDI	R24,0x45
    0060 938000BC  STS	0xBC,R24
    0062 9508      RET
_TWR_ISR:
    0063 D0F7      RCALL	push_lset
(0148) }
(0149) 
(0150) /***********************************************************
(0151) *   函数声明:TWI事件中断处理程序                          *
(0152) *   输入:    无                                           *
(0153) *   输出:    无                                           *
(0154) *   调用函数:INSERT_TWI_ISR_CODE                          *
(0155) ***********************************************************/
(0156) void TWR_ISR(void)
(0157) {
(0158)     //*这里要添加对定时计数器重新设置计数底数的代码*//
(0159)     INSERT_TWI_ISR_CODE
    0064 D02C      RCALL	_Insert_TWI_ISR_Code
    0065 D10C      RCALL	pop_lset
    0066 9518      RETI
FILE: D:\实例17_I2C抢答器_从机程序\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"
(0039) # include "EX_Support.h"
(0040) 
(0041) 

⌨️ 快捷键说明

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