📄 hd_support.lis
字号:
.module HD_Support.c
.area text(rom, con, rel)
0000 .dbfile O:\2007全国电子设计大赛\键盘显示模块\HD_Support.c
.area vector(rom, abs)
.org 36
0024 0C946700 jmp _Timer0_OVF_ISR
.area text(rom, con, rel)
0000 .dbfile O:\2007全国电子设计大赛\键盘显示模块\HD_Support.c
.area vector(rom, abs)
.org 44
002C 0C94A300 jmp _USART0_RX_ISR
.area text(rom, con, rel)
0000 .dbfile O:\2007全国电子设计大赛\键盘显示模块\HD_Support.c
.area vector(rom, abs)
.org 52
0034 0C94AB00 jmp _USART0_TX_ISR
.area text(rom, con, rel)
0000 .dbfile O:\2007全国电子设计大赛\键盘显示模块\HD_Support.c
0000 .dbfunc e Device_INIT _Device_INIT fV
.even
0000 _Device_INIT::
0000 .dbline -1
0000 .dbline 97
0000 ; /***********************************************************
0000 ; * 函数库说明:底层硬件初始化函数库 *
0000 ; * 版本: *
0000 ; * 作者: *
0000 ; * 创建日期: *
0000 ; * -------------------------------------------------------- *
0000 ; * [硬件说明] *
0000 ; * 处理器: ATMega16L *
0000 ; * 系统时钟: 外部16M *
0000 ; * -------------------------------------------------------- *
0000 ; * [支 持 库] *
0000 ; * 支持库名称:PF_Config.h *
0000 ; * 需要版本: ----- *
0000 ; * 声明库说明:硬件平台配置声明库 *
0000 ; * *
0000 ; * 支持库名称:HD_Support.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 "LIB_Config.h"
0000 ;
0000 ; /********************
0000 ; * 系 统 宏 定 义 *
0000 ; ********************/
0000 ; # pragma interrupt_handler Timer0_OVF_ISR:iv_TIMER0_OVF
0000 ; # pragma interrupt_handler USART0_RX_ISR:iv_USART0_RXC
0000 ; # pragma interrupt_handler USART0_TX_ISR:iv_USART0_TXC
0000 ;
0000 ; /*------------------*
0000 ; * 常 数 宏 定 义 *
0000 ; *------------------*/
0000 ;
0000 ; /*------------------*
0000 ; * 动 作 宏 定 义 *
0000 ; *------------------*/
0000 ; #ifndef INSERT_TIMER0_OVF_ISR_CODE
0000 ; # define INSERT_TIMER0_OVF_ISR_CODE
0000 ; #endif
0000 ;
0000 ; #ifndef INSERT_USART0_RX_ISR_CODE
0000 ; # define INSERT_USART0_RX_ISR_CODE
0000 ; #endif
0000 ;
0000 ; #ifndef INSERT_USART0_TX_ISR_CODE
0000 ; # define INSERT_USART0_TX_ISR_CODE
0000 ; #endif
0000 ;
0000 ;
0000 ; /********************
0000 ; * 模块结构体定义区 *
0000 ; ********************/
0000 ;
0000 ; /********************
0000 ; * 函 数 声 明 区 *
0000 ; ********************/
0000 ; void Device_INIT(void);
0000 ;
0000 ; /********************
0000 ; * 模块函数声明区 *
0000 ; ********************/
0000 ; static void Port_INIT(void);
0000 ; static void Timer0_INIT(void);
0000 ; static void USART0_INIT(void);
0000 ;
0000 ;
0000 ; /********************
0000 ; * 模块变量声明区 *
0000 ; ********************/
0000 ;
0000 ; /********************
0000 ; * 全局变量声明区 *
0000 ; ********************/
0000 ;
0000 ;
0000 ; /***********************************************************
0000 ; * 函数说明:系统硬件初始化函数 *
0000 ; * 输入: 无 *
0000 ; * 输出: 无 *
0000 ; * 调用函数:Port_INIT() Timer0_INIT() *
0000 ; ***********************************************************/
0000 ; void Device_INIT(void)
0000 ; {
0000 .dbline 98
0000 ; Port_INIT();
0000 05D0 xcall _Port_INIT
0002 .dbline 99
0002 ; Timer0_INIT();
0002 5CD0 xcall _Timer0_INIT
0004 .dbline 100
0004 ; USART0_INIT();
0004 95D0 xcall _USART0_INIT
0006 .dbline 103
0006 ; //SPI_INIT();
0006 ;
0006 ; TIMSK = BIT(TOIE0); //启动定时期0溢出中断资源
0006 81E0 ldi R24,1
0008 89BF out 0x39,R24
000A .dbline -2
000A L1:
000A .dbline 0 ; func end
000A 0895 ret
000C .dbend
000C .dbfunc s Port_INIT _Port_INIT fV
.even
000C _Port_INIT:
000C .dbline -1
000C .dbline 113
000C ; }
000C ;
000C ; /***********************************************************
000C ; * 函数说明:系统端口初始化函数 *
000C ; * 输入: 无 *
000C ; * 输出: 无 *
000C ; * 调用函数:无 *
000C ; ***********************************************************/
000C ; static void Port_INIT(void)
000C ; {
000C .dbline 115
000C ; //1602
000C ; DDR_PB0 = PDIR_OUT;_PB0 = HIGH;
000C 87B3 in R24,0x17
000E 8160 ori R24,1
0010 87BB out 0x17,R24
0012 .dbline 115
0012 88B3 in R24,0x18
0014 8160 ori R24,1
0016 88BB out 0x18,R24
0018 .dbline 116
0018 ; DDR_PB1 = PDIR_OUT;_PB1 = HIGH;
0018 87B3 in R24,0x17
001A 8260 ori R24,2
001C 87BB out 0x17,R24
001E .dbline 116
001E 88B3 in R24,0x18
0020 8260 ori R24,2
0022 88BB out 0x18,R24
0024 .dbline 117
0024 ; DDR_PB2 = PDIR_OUT;_PB2 = HIGH;
0024 87B3 in R24,0x17
0026 8460 ori R24,4
0028 87BB out 0x17,R24
002A .dbline 117
002A 88B3 in R24,0x18
002C 8460 ori R24,4
002E 88BB out 0x18,R24
0030 .dbline 118
0030 ; DDRA = 0xFF;
0030 8FEF ldi R24,255
0032 8ABB out 0x1a,R24
0034 .dbline 119
0034 ; PORTA = 0xFF;
0034 8BBB out 0x1b,R24
0036 .dbline 122
0036 ;
0036 ; //键盘
0036 ; DDRD |= BIT(PD2)|BIT(PD3)|BIT(PD4)|BIT(PD5)|BIT(PD6);
0036 81B3 in R24,0x11
0038 8C67 ori R24,124
003A 81BB out 0x11,R24
003C .dbline 123
003C ; PORTD |= BIT(PD2)|BIT(PD3)|BIT(PD4)|BIT(PD5)|BIT(PD6);
003C 82B3 in R24,0x12
003E 8C67 ori R24,124
0040 82BB out 0x12,R24
0042 .dbline 124
0042 ; DDRC &= ~( BIT(PC2)|BIT(PC3)|BIT(PC4)|BIT(PC5) );
0042 84B3 in R24,0x14
0044 837C andi R24,195
0046 84BB out 0x14,R24
0048 .dbline 125
0048 ; PORTC |= BIT(PC2)|BIT(PC3)|BIT(PC4)|BIT(PC5);
0048 85B3 in R24,0x15
004A 8C63 ori R24,60
004C 85BB out 0x15,R24
004E .dbline 128
004E ;
004E ; //LED闪烁指示
004E ; DDR_PC6 = PDIR_OUT;_PC6 = HIGH;
004E 84B3 in R24,0x14
0050 8064 ori R24,64
0052 84BB out 0x14,R24
0054 .dbline 128
0054 85B3 in R24,0x15
0056 8064 ori R24,64
0058 85BB out 0x15,R24
005A .dbline 129
005A ; DDR_PC7 = PDIR_OUT;_PC7 = HIGH;
005A 84B3 in R24,0x14
005C 8068 ori R24,128
005E 84BB out 0x14,R24
0060 .dbline 129
0060 85B3 in R24,0x15
0062 8068 ori R24,128
0064 85BB out 0x15,R24
0066 .dbline 132
0066 ;
0066 ; //SPI
0066 ; DDR_PB4 = PDIR_OUT;_PB4 = HIGH; //SS
0066 87B3 in R24,0x17
0068 8061 ori R24,16
006A 87BB out 0x17,R24
006C .dbline 132
006C 88B3 in R24,0x18
006E 8061 ori R24,16
0070 88BB out 0x18,R24
0072 .dbline 133
0072 ; DDR_PB5 = PDIR_OUT;_PB5 = HIGH; //MOSI
0072 87B3 in R24,0x17
0074 8062 ori R24,32
0076 87BB out 0x17,R24
0078 .dbline 133
0078 88B3 in R24,0x18
007A 8062 ori R24,32
007C 88BB out 0x18,R24
007E .dbline 134
007E ; DDR_PB7 = PDIR_OUT;_PB7 = HIGH; //SCK
007E 87B3 in R24,0x17
0080 8068 ori R24,128
0082 87BB out 0x17,R24
0084 .dbline 134
0084 88B3 in R24,0x18
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -