?? hd_support.lis
字號:
.module HD_Support.c
.area text(rom, con, rel)
0000 .dbfile E:\創新實踐班\按鍵掃描\HD_Support.c
.area vector(rom, abs)
.org 18
0012 1CC0 rjmp _Timer0_OVF_ISR
.area text(rom, con, rel)
0000 .dbfile E:\創新實踐班\按鍵掃描\HD_Support.c
0000 .dbfunc e Device_INIT _Device_INIT fV
.even
0000 _Device_INIT::
0000 .dbline -1
0000 .dbline 84
0000 ; /***********************************************************
0000 ; * 函數庫說明:底層硬件初始化函數庫 *
0000 ; * 版本: *
0000 ; * 作者: *
0000 ; * 創建日期: *
0000 ; * -------------------------------------------------------- *
0000 ; * [硬件說明] *
0000 ; * 處理器: *
0000 ; * 系統時鐘: *
0000 ; * -------------------------------------------------------- *
0000 ; * [支 持 庫] *
0000 ; * 支持庫名稱:HD_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 ;
0000 ; /********************
0000 ; * 系 統 宏 定 義 *
0000 ; ********************/
0000 ; # pragma interrupt_handler Timer0_OVF_ISR:iv_TIMER0_OVF
0000 ;
0000 ; /*------------------*
0000 ; * 常 數 宏 定 義 *
0000 ; *------------------*/
0000 ;
0000 ; /*------------------*
0000 ; * 動 作 宏 定 義 *
0000 ; *------------------*/
0000 ; #ifndef INSERT_TIMER0_OVF_ISR_CODE
0000 ; # define INSERT_TIMER0_OVF_ISR_CODE
0000 ; # warning "TIMER0_OVF_ISR haven`t been used but initialed!"
0000 ; #endif
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 ;
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 85
0000 ; Port_INIT();
0000 04D0 rcall _Port_INIT
0002 .dbline 86
0002 ; Timer0_INIT();
0002 13D0 rcall _Timer0_INIT
0004 .dbline 89
0004 ; //*在這里添加其他初始化函數*//
0004 ;
0004 ; TIMSK = BIT(TOIE0); //啟動定時期0溢出中斷資源
0004 81E0 ldi R24,1
0006 89BF out 0x39,R24
0008 .dbline -2
0008 L1:
0008 .dbline 0 ; func end
0008 0895 ret
000A .dbend
000A .dbfunc s Port_INIT _Port_INIT fV
.even
000A _Port_INIT:
000A .dbline -1
000A .dbline 100
000A ; //*在這里添加其他全局寄存器的初始化代碼*//
000A ; }
000A ;
000A ; /***********************************************************
000A ; * 函數說明:系統端口初始化函數 *
000A ; * 輸入: 無 *
000A ; * 輸出: 無 *
000A ; * 調用函數:無 *
000A ; ***********************************************************/
000A ; static void Port_INIT(void)
000A ; {
000A .dbline 104
000A ; //*在這里添加端口初始化代碼*//
000A ;
000A ; //按鍵掃描
000A ; DDRC &= ~(BIT(PC1)|BIT(PC2));
000A 84B3 in R24,0x14
000C 897F andi R24,249
000E 84BB out 0x14,R24
0010 .dbline 105
0010 ; PORTC |= BIT(PC1)|BIT(PC2);
0010 85B3 in R24,0x15
0012 8660 ori R24,6
0014 85BB out 0x15,R24
0016 .dbline 107
0016 ;
0016 ; DDRC |= BIT(PC3)|BIT(PC4)|BIT(PC5);
0016 84B3 in R24,0x14
0018 8863 ori R24,56
001A 84BB out 0x14,R24
001C .dbline 108
001C ; PORTC |= BIT(PC3)|BIT(PC4)|BIT(PC5);
001C 85B3 in R24,0x15
001E 8863 ori R24,56
0020 85BB out 0x15,R24
0022 .dbline 111
0022 ;
0022 ; //結果顯示用端口
0022 ; DDRD = 0xFF;
0022 8FEF ldi R24,255
0024 81BB out 0x11,R24
0026 .dbline 112
0026 ; PORTD = 0xFF;
0026 82BB out 0x12,R24
0028 .dbline -2
0028 L2:
0028 .dbline 0 ; func end
0028 0895 ret
002A .dbend
002A .dbfunc s Timer0_INIT _Timer0_INIT fV
.even
002A _Timer0_INIT:
002A .dbline -1
002A .dbline 122
002A ; }
002A ;
002A ; /***********************************************************
002A ; * 函數聲明:定時器0初始化函數 *
002A ; * 輸入: 無 *
002A ; * 輸出: 無 *
002A ; * 調用函數:無 *
002A ; ***********************************************************/
002A ; static void Timer0_INIT(void)
002A ; {
002A .dbline 127
002A ; //*在這里粘貼從代碼生成向導中生成的初始化代碼*//
002A ; //*要求為1K的溢出中斷 *//
002A ;
002A ; #ifdef USE_SYSTEM_CLOCK_1M
002A ; TCCR0 = 0x00; //stop
002A 2224 clr R2
002C 23BE out 0x33,R2
002E .dbline 128
002E ; TCNT0 = 0x83; //set count
002E 83E8 ldi R24,131
0030 82BF out 0x32,R24
0032 .dbline 129
0032 ; TCCR0 = 0x02; //start timer
0032 82E0 ldi R24,2
0034 83BF out 0x33,R24
0036 .dbline -2
0036 L3:
0036 .dbline 0 ; func end
0036 0895 ret
0038 .dbend
0038 .dbfunc e Timer0_OVF_ISR _Timer0_OVF_ISR fV
.even
0038 _Timer0_OVF_ISR::
0038 0A92 st -y,R0
003A 1A92 st -y,R1
003C 2A92 st -y,R2
003E 3A92 st -y,R3
0040 4A92 st -y,R4
0042 5A92 st -y,R5
0044 6A92 st -y,R6
0046 7A92 st -y,R7
0048 8A92 st -y,R8
004A 9A92 st -y,R9
004C 0A93 st -y,R16
004E 1A93 st -y,R17
0050 2A93 st -y,R18
0052 3A93 st -y,R19
0054 8A93 st -y,R24
0056 9A93 st -y,R25
0058 AA93 st -y,R26
005A BA93 st -y,R27
005C EA93 st -y,R30
005E FA93 st -y,R31
0060 0FB6 in R0,0x3f
0062 0A92 st -y,R0
0064 .dbline -1
0064 .dbline 150
0064 ; #endif
0064 ; #ifdef USE_SYSTEM_CLOCK_4M
0064 ; TCCR0 = 0x00; //stop
0064 ; TCNT0 = 0xC2; //set count
0064 ; TCCR0 = 0x03; //start timer
0064 ; #endif
0064 ; #ifdef USE_SYSTEM_CLOCK_8M
0064 ; TCCR0 = 0x00; //stop
0064 ; TCNT0 = 0x83; //set count
0064 ; TCCR0 = 0x03; //start timer
0064 ; #endif
0064 ; }
0064 ;
0064 ; /***********************************************************
0064 ; * 函數聲明:定時器0溢出中斷處理程序 *
0064 ; * 輸入: 無 *
0064 ; * 輸出: 無 *
0064 ; * 調用函數:INSERT_TIMER0_OVF_ISR_CODE *
0064 ; ***********************************************************/
0064 ; void Timer0_OVF_ISR(void)
0064 ; {
0064 .dbline 152
0064 ; #ifdef USE_SYSTEM_CLOCK_1M
0064 ; TCNT0 = 0x83; //set count
0064 83E8 ldi R24,131
0066 82BF out 0x32,R24
0068 .dbline 161
0068 ; #endif
0068 ; #ifdef USE_SYSTEM_CLOCK_4M
0068 ; TCNT0 = 0xC2; //set count
0068 ; #endif
0068 ; #ifdef USE_SYSTEM_CLOCK_8M
0068 ; TCNT0 = 0x83; //set count
0068 ; #endif
0068 ;
0068 ; INSERT_TIMER0_OVF_ISR_CODE
0068 7894 sei
006A .dbline 161
006A 00D0 rcall _Insert_Timer0_OVF_ISR_Code
006C .dbline -2
006C L4:
006C .dbline 0 ; func end
006C 0990 ld R0,y+
006E 0FBE out 0x3f,R0
0070 F991 ld R31,y+
0072 E991 ld R30,y+
0074 B991 ld R27,y+
0076 A991 ld R26,y+
0078 9991 ld R25,y+
007A 8991 ld R24,y+
007C 3991 ld R19,y+
007E 2991 ld R18,y+
0080 1991 ld R17,y+
0082 0991 ld R16,y+
0084 9990 ld R9,y+
0086 8990 ld R8,y+
0088 7990 ld R7,y+
008A 6990 ld R6,y+
008C 5990 ld R5,y+
008E 4990 ld R4,y+
0090 3990 ld R3,y+
0092 2990 ld R2,y+
0094 1990 ld R1,y+
0096 0990 ld R0,y+
0098 1895 reti
009A .dbend
009A ; }
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -