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

📄 键盘显示模块.lst

📁 《深入浅出AVR单片机——从ATmega48/88/168开始》的实例程序源代码
💻 LST
📖 第 1 页 / 共 3 页
字号:
__text_start:
__start:
    002A EFCF      LDI	R28,0xFF
    002B E0D2      LDI	R29,2
    002C BFCD      OUT	0x3D,R28
    002D BFDE      OUT	0x3E,R29
    002E 52C0      SUBI	R28,0x20
    002F 40D0      SBCI	R29,0
    0030 EA0A      LDI	R16,0xAA
    0031 8308      STD	Y+0,R16
    0032 2400      CLR	R0
    0033 E0E8      LDI	R30,0x8
    0034 E0F1      LDI	R31,1
    0035 E011      LDI	R17,1
    0036 31E7      CPI	R30,0x17
    0037 07F1      CPC	R31,R17
    0038 F011      BEQ	0x003B
    0039 9201      ST	R0,Z+
    003A CFFB      RJMP	0x0036
    003B 8300      STD	Z+0,R16
    003C E4EB      LDI	R30,0x4B
    003D E0F0      LDI	R31,0
    003E E0A0      LDI	R26,0
    003F E0B1      LDI	R27,1
    0040 E010      LDI	R17,0
    0041 35E3      CPI	R30,0x53
    0042 07F1      CPC	R31,R17
    0043 F021      BEQ	0x0048
    0044 95C8      LPM
    0045 9631      ADIW	R30,1
    0046 920D      ST	R0,X+
    0047 CFF9      RJMP	0x0041
    0048 D129      RCALL	_main
_exit:
    0049 CFFF      RJMP	_exit
FILE: D:\设计项目\深入浅出AVR\光盘文件\实例程序源代码\实例15_键盘显示模块\实例15_键盘显示模块-拨号装置\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) 
(0042) /********************
(0043) *   系 统 宏 定 义  *
(0044) ********************/
(0045) 
(0046) /*------------------*
(0047) *   常 数 宏 定 义  *
(0048) *------------------*/
(0049) 
(0050) /*------------------*
(0051) *   动 作 宏 定 义  *
(0052) *------------------*/
(0053) 
(0054) /********************
(0055) *  模块结构体定义区 *
(0056) ********************/
(0057) 
(0058) /********************
(0059) *   函 数 声 明 区  *
(0060) ********************/
(0061) void System_INIT(void);
(0062) void Insert_Timer0_OVF_ISR_Code(void);
(0063) 
(0064) /********************
(0065) *   模块函数声明区  *
(0066) ********************/
(0067) static void Driver_INIT(void);
(0068) 
(0069) /********************
(0070) *   模块变量声明区  *
(0071) ********************/
(0072) 
(0073) /********************
(0074) *   全局变量声明区  *
(0075) ********************/
(0076) unsigned char PORTA;                                    //虚拟的输出端口在内存中对应的缓冲区
(0077) unsigned char PINE;                                     //虚拟的输入端口在内存中对应的缓冲区
(0078) unsigned char Direction = 0x00;                         //闪烁追逐方向标志
(0079) unsigned char PortValue = 0x00;                         //输出端口值
(0080) BOOL DoTime = FALSE;
(0081) unsigned int g_wSystemTimer = 0;
(0082) 
(0083) /***********************************************************
(0084) *   函数说明:软件驱动初始化函数                           *
(0085) *   输入:    无                                           *
(0086) *   输出:    无                                           *
(0087) *   调用函数:无                                           *
(0088) ***********************************************************/
(0089) static void Driver_INIT(void)
(0090) {
_Driver_INIT:
    004A 9508      RET
(0091)     //*在这里插入你的各类软件驱动初始化代码*//
(0092) }
(0093) 
(0094) /***********************************************************
(0095) *   函数说明:系统初始化函数                               *
(0096) *   输入:    无                                           *
(0097) *   输出:    无                                           *
(0098) *   调用函数:Device_INIT() Driver_INIT()                  *
(0099) ***********************************************************/
(0100) void System_INIT(void)
(0101) {
(0102)     CLI();
_System_INIT:
    004B 94F8      BCLR	7
(0103)     
(0104)     Device_INIT();
    004C D01C      RCALL	_Device_INIT
(0105)     Driver_INIT();
    004D DFFC      RCALL	_Driver_INIT
(0106)     
(0107)     //*在这里插入你的系统环境变量初始化代码*//
(0108)     
(0109)     SEI();
    004E 9478      BSET	7
    004F 9508      RET
(0110) }
(0111) 
(0112) /***********************************************************
(0113) *   函数说明:定时器0中断处理程序代码插入函数              *
(0114) *   输入:    无                                           *
(0115) *   输出:    无                                           *
(0116) *   调用函数:无                                           *
(0117) ***********************************************************/
(0118) void Insert_Timer0_OVF_ISR_Code (void)
(0119) {
(0120)     TCNT0 = 0x83;                       //重载定时器
_Insert_Timer0_OVF_ISR_Code:
    0050 E883      LDI	R24,0x83
    0051 BD86      OUT	0x26,R24
(0121)     
(0122)     g_wSystemTimer++;                   //时标产生,以1秒为周期循环时标
    0052 91800103  LDS	R24,g_wSystemTimer
    0054 91900104  LDS	R25,g_wSystemTimer+1
    0056 9601      ADIW	R24,1
    0057 93900104  STS	g_wSystemTimer+1,R25
    0059 93800103  STS	g_wSystemTimer,R24
(0123)     
(0124)     if (g_wSystemTimer >= TimeStampMax)
    005B 3E88      CPI	R24,0xE8
    005C E0E3      LDI	R30,3
    005D 079E      CPC	R25,R30
    005E F030      BCS	0x0065
(0125)         g_wSystemTimer = 0;
    005F 2422      CLR	R2
    0060 2433      CLR	R3
    0061 92300104  STS	g_wSystemTimer+1,R3
    0063 92200103  STS	g_wSystemTimer,R2
(0126)         
(0127)     DoTime = TRUE;                      //端口刷新与闪烁控制标志
    0065 E081      LDI	R24,1
    0066 93800102  STS	DoTime,R24
    0068 9508      RET
FILE: D:\设计项目\深入浅出AVR\光盘文件\实例程序源代码\实例15_键盘显示模块\实例15_键盘显示模块-拨号装置\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) # include "KeyDis_Drv.h"
(0036) 
(0037) /********************
(0038) *   系 统 宏 定 义  *
(0039) ********************/
(0040) #pragma interrupt_handler Timer0_OVF_ISR:iv_TIMER0_OVF
(0041) 
(0042) /*------------------*
(0043) *   常 数 宏 定 义  *
(0044) *------------------*/
(0045) 
(0046) /*------------------*
(0047) *   动 作 宏 定 义  *
(0048) *------------------*/
(0049) #ifndef INSERT_TIMER0_OVF_ISR_CODE
(0050)     # define INSERT_TIMER0_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 Timer0_INIT(void);
(0067) 
(0068) /********************
(0069) *   模块变量声明区  *
(0070) ********************/
(0071) 
(0072) /********************
(0073) *   全局变量声明区  *
(0074) ********************/
(0075) 
(0076) 
(0077) /***********************************************************
(0078) *   函数说明:系统硬件初始化函数                           *
(0079) *   输入:    无                                           *
(0080) *   输出:    无                                           *
(0081) *   调用函数:Port_INIT()   Timer0_INIT()                  *
(0082) ***********************************************************/
(0083) void Device_INIT(void)
(0084) {
(0085)     Port_INIT();
_Device_INIT:
    0069 D006      RCALL	_Port_INIT
(0086)     Timer0_INIT();
    006A D010      RCALL	_Timer0_INIT
(0087)     //*在这里添加其他初始化函数*//
(0088)     SPI_INIT();
    006B D01C      RCALL	_SPI_INIT
(0089)     
(0090)     TIMSK0 = BIT(TOIE0);                                    //启动定时器0溢出中断资源
    006C E081      LDI	R24,1
    006D 9380006E  STS	0x6E,R24
    006F 9508      RET
(0091)     //*在这里添加其他全局寄存器的初始化代码*//
(0092) }
(0093) 
(0094) /***********************************************************
(0095) *   函数说明:系统端口初始化函数                           *
(0096) *   输入:    无                                           *
(0097) *   输出:    无                                           *
(0098) *   调用函数:无                                           *
(0099) ***********************************************************/
(0100) static void Port_INIT(void)
(0101) {
(0102)     //*在这里添加端口初始化代码*//
(0103)     PORTB = 0b11111111;                 //MOSI,#SS,CLK端均设置为高电平,MISO端开启内部上拉
_Port_INIT:
    0070 EF8F      LDI	R24,0xFF
    0071 B985      OUT	0x05,R24
(0104)     PORTC = 0b11111111;
    0072 B988      OUT	0x08,R24
(0105)     PORTD = 0b11111111;
    0073 B98B      OUT	0x0B,R24
(0106)     
(0107)     DDRB = 0b00101100;
    0074 E28C      LDI	R24,0x2C
    0075 B984      OUT	0x04,R24
(0108)     DDRC = 0b00111111;
    0076 E38F      LDI	R24,0x3F
    0077 B987      OUT	0x07,R24
(0109)     DDRD = 0b00000000;
    0078 2422      CLR	R2
    0079 B82A      OUT	0x0A,R2
    007A 9508      RET
(0110) }
(0111) 
(0112) /***********************************************************
(0113) *   函数声明:定时器0初始化函数                            *
(0114) *   输入:    无                                           *
(0115) *   输出:    无                                           *
(0116) *   调用函数:无                                           *
(0117) ***********************************************************/
(0118) static void Timer0_INIT(void)
(0119) {
(0120)     //*在这里粘贴从代码生成向导中生成的初始化代码*//
(0121)     //*要求为1K的溢出中断                        *//
(0122)     TCCR0B = 0x00;
_Timer0_INIT:
    007B 2422      CLR	R2
    007C BC25      OUT	0x25,R2
(0123)     TCNT0 = 0x83;                      //计数初值
    007D E883      LDI	R24,0x83
    007E BD86      OUT	0x26,R24
(0124)     TCCR0A = 0x00;
    007F BC24      OUT	0x24,R2
(0125)     TCCR0B = 0x02;                     //8分频
    0080 E082      LDI	R24,2
    0081 BD85      OUT	0x25,R24
    0082 9508      RET
_Timer0_OVF_ISR:
    0083 D169      RCALL	push_lset
(0126) }
(0127) 
(0128) /***********************************************************
(0129) *   函数声明:定时器0溢出中断处理程序                      *
(0130) *   输入:    无                                           *
(0131) *   输出:    无                                           *
(0132) *   调用函数:INSERT_TIMER0_OVF_ISR_CODE                   *
(0133) ***********************************************************/
(0134) void Timer0_OVF_ISR(void)
(0135) {
(0136)     //*这里要添加对定时计数器重新设置计数底数的代码*//
(0137)       INSERT_TIMER0_OVF_ISR_CODE
    0084 9478      BSET	7
    0085 DFCA      RCALL	_Insert_Timer0_OVF_ISR_Code
    0086 D17D      RCALL	pop_lset
    0087 9518      RETI
FILE: D:\设计项目\深入浅出AVR\光盘文件\实例程序源代码\实例15_键盘显示模块\实例15_键盘显示模块-拨号装置\KeyDis_Drv.c
(0001) /***********************************************************
(0002) *   函数库说明:键盘显示模块驱动函数库                     *
(0003) *   版本:                                                 *
(0004) *   作者:                                                 *
(0005) *   创建日期:                                             *
(0006) * -------------------------------------------------------- *
(0007) *  [硬件说明]                                              *
(0008) *   处理器:                                               *
(0009) *   系统时钟:                                             *
(0010) * -------------------------------------------------------- *

⌨️ 快捷键说明

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