📄 i2c抢答器_从机程序.lst
字号:
__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 + -