📄 ex_support.lis
字号:
.module EX_Support.c
.area data(ram, con, rel)
0000 _p::
0000 .blkb 2
.area idata
0000 0000 .word 0
.area data(ram, con, rel)
0002 .dbfile D:\实例17_I2C抢答器_主机程序\EX_Support.c
0002 .dbsym e p _p pc
0002 _g_wSystemTimer::
0002 .blkb 2
.area idata
0002 0000 .word 0
.area data(ram, con, rel)
0004 .dbfile D:\实例17_I2C抢答器_主机程序\EX_Support.c
0004 .dbsym e g_wSystemTimer _g_wSystemTimer i
0004 _DoTime::
0004 .blkb 1
.area idata
0004 01 .byte 1
.area data(ram, con, rel)
0005 .dbfile D:\实例17_I2C抢答器_主机程序\EX_Support.c
0005 .dbsym e DoTime _DoTime c
0005 _ShowTime::
0005 .blkb 1
.area idata
0005 00 .byte 0
.area data(ram, con, rel)
0006 .dbfile D:\实例17_I2C抢答器_主机程序\EX_Support.c
0006 .dbsym e ShowTime _ShowTime c
0006 _TWIProcess::
0006 .blkb 1
.area idata
0006 01 .byte 1
.area data(ram, con, rel)
0007 .dbfile D:\实例17_I2C抢答器_主机程序\EX_Support.c
0007 .dbsym e TWIProcess _TWIProcess c
.area lit(rom, con, rel)
0000 _DisTab::
0000 FC60 .byte 252,96
0002 DAF2 .byte 218,242
0004 66B6 .byte 'f,182
0006 BEE0 .byte 190,224
0008 FEF6 .byte 254,246
000A EE3E .byte 238,62
000C 9C7A .byte 156,'z
000E 9E8E .byte 158,142
0010 CE1C .byte 206,28
0012 6E7C .byte 'n,124
0014 0A10 .byte 10,16
0016 0200 .byte 2,0
0018 .dbsym e DisTab _DisTab A[24:24]kc
.area text(rom, con, rel)
0000 .dbfile D:\实例17_I2C抢答器_主机程序\EX_Support.c
0000 .dbfunc e Delay_ms _Delay_ms fV
0000 ; n -> R20
0000 ; Time -> R16,R17
.even
0000 _Delay_ms::
0000 00D0 rcall push_gset1
0002 .dbline -1
0002 .dbline 136
0002 ; /***********************************************************
0002 ; * 函数库说明:底层硬件初始化驱动函数库 *
0002 ; * 版本: *
0002 ; * 作者: *
0002 ; * 创建日期: *
0002 ; * -------------------------------------------------------- *
0002 ; * [硬件说明] *
0002 ; * 处理器: *
0002 ; * 系统时钟: *
0002 ; * -------------------------------------------------------- *
0002 ; * [支 持 库] *
0002 ; * 支持库名称:HD_Support.h *
0002 ; * 需要版本: ----- *
0002 ; * 支持库说明:底层硬件初始化声明库 *
0002 ; * *
0002 ; * 支持库名称:EX_Support.h *
0002 ; * 需要版本: ----- *
0002 ; * 支持库说明:底层硬件初始化驱动声明库 *
0002 ; * *
0002 ; * 支持库名称:PF_Config.h *
0002 ; * 需要版本: ----- *
0002 ; * 支持库说明:硬件平台配置声明库 *
0002 ; * -------------------------------------------------------- *
0002 ; * [版本更新] *
0002 ; * 修改: *
0002 ; * 修改日期: *
0002 ; * 版本: *
0002 ; * -------------------------------------------------------- *
0002 ; * [版本历史] *
0002 ; * -------------------------------------------------------- *
0002 ; * [使用说明] *
0002 ; ***********************************************************/
0002 ;
0002 ; /********************
0002 ; * 头 文 件 配 置 区 *
0002 ; ********************/
0002 ; # include "PF_Config.h"
0002 ; # include "HD_Support.h"
0002 ; # include "EX_Support.h"
0002 ;
0002 ;
0002 ; /********************
0002 ; * 系 统 宏 定 义 *
0002 ; ********************/
0002 ;
0002 ; /*------------------*
0002 ; * 常 数 宏 定 义 *
0002 ; *------------------*/
0002 ;
0002 ; #define SSend 0x08 //启动位已发送
0002 ; #define RSSend 0x10 //复启动位已发送
0002 ; #define SLAWSendACK 0x18 //SLA+W已发送,收到ACK
0002 ; #define SLAWSendNAK 0x20 //SLA+W已发送,收到NAK
0002 ; #define SLARSendACK 0x40 //SLA+R已发送,收到ACK
0002 ; #define SLARSendNAK 0x48 //SLA+R已发送,收到ACK
0002 ; #define TDataACK 0x28 //DATA已发送,收到ACK
0002 ; #define TDataNAK 0x30 //DATA已发送,收到NAK
0002 ; #define RDataACK 0x50 //DATA已收到,ACK已发送
0002 ; #define RDataNAK 0x58 //DATA已收到,NAK已发送
0002 ; #define SLAWRecACK 0x60 //自己的从机地址被选中,ACK已返回
0002 ; #define SRDataACK 0x80 //作为从机被地址被选中,数据已接收,ACK已返回
0002 ;
0002 ; #define TWIInProcess 0x00 //EEPROM操作中
0002 ; #define TWIProcessOver 0x01 //EEPROM操作成功完成
0002 ; #define TWIProcessNAK 0x11 //EEPROM操作中无法接收到主机应答
0002 ; #define TWIProcessERR 0x21 //EEPROM操作遇到未知错误而终止
0002 ;
0002 ; #define ExtPortNum 3
0002 ; #define TimeStampMax 1000
0002 ;
0002 ; /*------------------*
0002 ; * 动 作 宏 定 义 *
0002 ; *------------------*/
0002 ;
0002 ; #define SS_Low PORTB &= ~(1<<2)
0002 ; #define SS_High PORTB |= (1<<2)
0002 ;
0002 ; #define PINE PortBuffer[0]
0002 ; #define PORTF PortBuffer[1]
0002 ; #define PORTG PortBuffer[2]
0002 ;
0002 ; #define KeyPin PINE
0002 ; #define ScanPort PORTG
0002 ; #define SegPort PORTF
0002 ;
0002 ; /********************
0002 ; * 模块结构体定义区 *
0002 ; ********************/
0002 ;
0002 ; /********************
0002 ; * 函 数 声 明 区 *
0002 ; ********************/
0002 ; void System_INIT(void);
0002 ; void Insert_Timer0_OVF_ISR_Code(void);
0002 ;
0002 ; /********************
0002 ; * 模块函数声明区 *
0002 ; ********************/
0002 ; static void Driver_INIT(void);
0002 ;
0002 ; /********************
0002 ; * 模块变量声明区 *
0002 ; ********************/
0002 ;
0002 ; unsigned char* p = NULL;
0002 ;
0002 ; /********************
0002 ; * 全局变量声明区 *
0002 ; ********************/
0002 ; uint16 g_wSystemTimer = 0;
0002 ; BOOL DoTime = TRUE;
0002 ; BOOL ShowTime = FALSE;
0002 ;
0002 ; unsigned char PortBuffer[3];
0002 ; unsigned char LEDDisBuffer[8];
0002 ; unsigned char TWIProcess = TWIProcessOver;
0002 ; unsigned char RecArr[6];
0002 ; unsigned int g_wSystemTimer;
0002 ;
0002 ; const unsigned char DisTab[]=
0002 ; {
0002 ; 0xFC,0x60,0xDA,0xF2,0x66, //0,1,2,3,4
0002 ; 0xB6,0xBE,0xE0,0xFE,0xF6, //5,6,7,8,9
0002 ; 0xEE,0x3E,0x9C,0x7A,0x9E, //A,b,C,d,E
0002 ; 0x8E,0xCE,0x1C,0x6E,0x7C, //F,P,L,H,U
0002 ; 0x0A,0x10,0x02,0x00 //r,_,-,SP
0002 ; };
0002 ;
0002 ; /***********************************************************
0002 ; * 函数说明:毫秒级延时函数 *
0002 ; * 输入: 无 *
0002 ; * 输出: 无 *
0002 ; * 调用函数:无 *
0002 ; ***********************************************************/
0002 ; void Delay_ms(unsigned int Time)
0002 ; {
0002 .dbline 137
0002 ; unsigned char n=0;
0002 4427 clr R20
0004 08C0 rjmp L3
0006 L2:
0006 .dbline 139
0006 ; while(Time>0)
0006 ; {
0006 .dbline 140
0006 ; for (n=1;n<187;n++)
0006 41E0 ldi R20,1
0008 02C0 rjmp L8
000A L5:
000A .dbline 141
000A .dbline 142
000A 0000 nop
000C .dbline 143
000C L6:
000C .dbline 140
000C 4395 inc R20
000E L8:
000E .dbline 140
000E 4B3B cpi R20,187
0010 E0F3 brlo L5
0012 .dbline 144
0012 0150 subi R16,1
0014 1040 sbci R17,0
0016 .dbline 145
0016 L3:
0016 .dbline 138
0016 0030 cpi R16,0
0018 0107 cpc R16,R17
001A A9F7 brne L2
001C X0:
001C .dbline -2
001C L1:
001C 00D0 rcall pop_gset1
001E .dbline 0 ; func end
001E 0895 ret
0020 .dbsym r n 20 c
0020 .dbsym r Time 16 i
0020 .dbend
0020 .dbfunc e Beep _Beep fV
0020 ; Time -> R20,R21
.even
0020 _Beep::
0020 00D0 rcall push_gset1
0022 A801 movw R20,R16
0024 .dbline -1
0024 .dbline 155
0024 ; {
0024 ; NOP();
0024 ; }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -