📄 ex_support.lis
字号:
.module EX_Support.c
.area data(ram, con, rel)
0000 _TWIProcess::
0000 .blkb 1
.area idata
0000 01 .byte 1
.area data(ram, con, rel)
0001 .dbfile D:\实例17_I2C抢答器_从机程序\EX_Support.c
0001 .dbsym e TWIProcess _TWIProcess c
.area text(rom, con, rel)
0000 .dbfile D:\实例17_I2C抢答器_从机程序\EX_Support.c
0000 .dbfunc s Driver_INIT _Driver_INIT fV
.even
0000 _Driver_INIT:
0000 .dbline -1
0000 .dbline 105
0000 ; /***********************************************************
0000 ; * 函数库说明:底层硬件初始化驱动函数库 *
0000 ; * 版本: *
0000 ; * 作者: *
0000 ; * 创建日期: *
0000 ; * -------------------------------------------------------- *
0000 ; * [硬件说明] *
0000 ; * 处理器: *
0000 ; * 系统时钟: *
0000 ; * -------------------------------------------------------- *
0000 ; * [支 持 库] *
0000 ; * 支持库名称:HD_Support.h *
0000 ; * 需要版本: ----- *
0000 ; * 支持库说明:底层硬件初始化声明库 *
0000 ; * *
0000 ; * 支持库名称:EX_Support.h *
0000 ; * 需要版本: ----- *
0000 ; * 支持库说明:底层硬件初始化驱动声明库 *
0000 ; * *
0000 ; * 支持库名称:PF_Config.h *
0000 ; * 需要版本: ----- *
0000 ; * 支持库说明:硬件平台配置声明库 *
0000 ; * -------------------------------------------------------- *
0000 ; * [版本更新] *
0000 ; * 修改: *
0000 ; * 修改日期: *
0000 ; * 版本: *
0000 ; * -------------------------------------------------------- *
0000 ; * [版本历史] *
0000 ; * -------------------------------------------------------- *
0000 ; * [使用说明] *
0000 ; ***********************************************************/
0000 ;
0000 ; /********************
0000 ; * 头 文 件 配 置 区 *
0000 ; ********************/
0000 ; # include "PF_Config.h"
0000 ; # include "HD_Support.h"
0000 ; # include "EX_Support.h"
0000 ;
0000 ;
0000 ; /********************
0000 ; * 系 统 宏 定 义 *
0000 ; ********************/
0000 ;
0000 ; /*------------------*
0000 ; * 常 数 宏 定 义 *
0000 ; *------------------*/
0000 ;
0000 ; #define SSend 0x08 //启动位已发送
0000 ; #define RSSend 0x10 //复启动位已发送
0000 ; #define SLAWSendACK 0x18 //SLA+W已发送,收到ACK
0000 ; #define SLAWSendNAK 0x20 //SLA+W已发送,收到NAK
0000 ; #define SLARSendACK 0x40 //SLA+R已发送,收到ACK
0000 ; #define SLARSendNAK 0x48 //SLA+R已发送,收到ACK
0000 ; #define TDataACK 0x28 //DATA已发送,收到ACK
0000 ; #define TDataNAK 0x30 //DATA已发送,收到NAK
0000 ; #define RDataACK 0x50 //DATA已收到,ACK已发送
0000 ; #define RDataNAK 0x58 //DATA已收到,NAK已发送
0000 ; #define GCAddRACK 0x70 //收到广播地址,ACK已发
0000 ; #define ArbiLost 0x38 //仲裁失败
0000 ;
0000 ; #define TWIInProcess 0x00 //TWI操作中
0000 ; #define TWIProcessOver 0x01 //TWI操作成功完成
0000 ; #define TWIProcessNAK 0x11 //TWI操作中无法接收到主机应答
0000 ; #define TWIProcessERR 0x21 //TWI操作遇到未知错误而终止
0000 ; #define TWIPrecessHan 0x31 //TWI操作挂起
0000 ;
0000 ; /*------------------*
0000 ; * 动 作 宏 定 义 *
0000 ; *------------------*/
0000 ;
0000 ; /********************
0000 ; * 模块结构体定义区 *
0000 ; ********************/
0000 ;
0000 ; /********************
0000 ; * 函 数 声 明 区 *
0000 ; ********************/
0000 ; void System_INIT(void);
0000 ; void Insert_Timer1_OVF_ISR_Code(void);
0000 ;
0000 ; /********************
0000 ; * 模块函数声明区 *
0000 ; ********************/
0000 ; static void Driver_INIT(void);
0000 ;
0000 ; /********************
0000 ; * 模块变量声明区 *
0000 ; ********************/
0000 ;
0000 ; /********************
0000 ; * 全局变量声明区 *
0000 ; ********************/
0000 ; unsigned char Time[2];
0000 ; unsigned char TWIProcess = TWIProcessOver;
0000 ;
0000 ; /***********************************************************
0000 ; * 函数说明:软件驱动初始化函数 *
0000 ; * 输入: 无 *
0000 ; * 输出: 无 *
0000 ; * 调用函数:无 *
0000 ; ***********************************************************/
0000 ; static void Driver_INIT(void)
0000 ; {
0000 .dbline -2
0000 L1:
0000 .dbline 0 ; func end
0000 0895 ret
0002 .dbend
0002 .dbfunc e System_INIT _System_INIT fV
.even
0002 _System_INIT::
0002 .dbline -1
0002 .dbline 116
0002 ; //*在这里插入你的各类软件驱动初始化代码*//
0002 ; }
0002 ;
0002 ; /***********************************************************
0002 ; * 函数说明:系统初始化函数 *
0002 ; * 输入: 无 *
0002 ; * 输出: 无 *
0002 ; * 调用函数:Device_INIT() Driver_INIT() *
0002 ; ***********************************************************/
0002 ; void System_INIT(void)
0002 ; {
0002 .dbline 117
0002 ; CLI();
0002 F894 cli
0004 .dbline 119
0004 ;
0004 ; Device_INIT();
0004 00D0 rcall _Device_INIT
0006 .dbline 120
0006 ; Driver_INIT();
0006 FCDF rcall _Driver_INIT
0008 .dbline 124
0008 ;
0008 ; //*在这里插入你的系统环境变量初始化代码*//
0008 ;
0008 ; SEI();
0008 7894 sei
000A .dbline -2
000A L2:
000A .dbline 0 ; func end
000A 0895 ret
000C .dbend
000C .dbfunc e Delay_ms _Delay_ms fV
000C ; n -> R20
000C ; Time -> R16,R17
.even
000C _Delay_ms::
000C 00D0 rcall push_gset1
000E .dbline -1
000E .dbline 134
000E ; }
000E ;
000E ; /***********************************************************
000E ; * 函数说明:毫秒级延时函数 *
000E ; * 输入: 无 *
000E ; * 输出: 无 *
000E ; * 调用函数:无 *
000E ; ***********************************************************/
000E ; void Delay_ms(unsigned int Time)
000E ; {
000E .dbline 135
000E ; unsigned char n=0;
000E 4427 clr R20
0010 08C0 rjmp L5
0012 L4:
0012 .dbline 137
0012 ; while(Time>0)
0012 ; {
0012 .dbline 138
0012 ; for (n=1;n<187;n++)
0012 41E0 ldi R20,1
0014 02C0 rjmp L10
0016 L7:
0016 .dbline 139
0016 .dbline 140
0016 0000 nop
0018 .dbline 141
0018 L8:
0018 .dbline 138
0018 4395 inc R20
001A L10:
001A .dbline 138
001A 4B3B cpi R20,187
001C E0F3 brlo L7
001E .dbline 142
001E 0150 subi R16,1
0020 1040 sbci R17,0
0022 .dbline 143
0022 L5:
0022 .dbline 136
0022 0030 cpi R16,0
0024 0107 cpc R16,R17
0026 A9F7 brne L4
0028 X0:
0028 .dbline -2
0028 L3:
0028 00D0 rcall pop_gset1
002A .dbline 0 ; func end
002A 0895 ret
002C .dbsym r n 20 c
002C .dbsym r Time 16 i
002C .dbend
002C .dbfunc e Beep _Beep fV
002C ; Time -> R20,R21
.even
002C _Beep::
002C 00D0 rcall push_gset1
002E A801 movw R20,R16
0030 .dbline -1
0030 .dbline 153
0030 ; {
0030 ; NOP();
0030 ; }
0030 ; Time--;
0030 ; }
0030 ; }
0030 ;
0030 ; /***********************************************************
0030 ; * 函数说明:蜂鸣器鸣叫函数 *
0030 ; * 输入: 无 *
0030 ; * 输出: 无 *
0030 ; * 调用函数:无 *
0030 ; ***********************************************************/
0030 ; void Beep (unsigned int Time)
0030 ; {
0030 .dbline 154
0030 ; PORTB |= 0x02;
0030 299A sbi 0x5,1
0032 .dbline 155
0032 ; Delay_ms(Time);
0032 8A01 movw R16,R20
0034 EBDF rcall _Delay_ms
0036 .dbline 156
0036 ; PORTB &= 0xFD;
0036 85B1 in R24,0x5
0038 8D7F andi R24,253
003A 85B9 out 0x5,R24
003C .dbline -2
003C L11:
003C 00D0 rcall pop_gset1
003E .dbline 0 ; func end
003E 0895 ret
0040 .dbsym r Time 20 i
0040 .dbend
0040 .dbfunc e Insert_Timer1_OVF_ISR_Code _Insert_Timer1_OVF_ISR_Code fV
.even
0040 _Insert_Timer1_OVF_ISR_Code::
0040 .dbline -1
0040 .dbline 166
0040 ; }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -