?? 漸明漸暗的燈.lst
字號:
__start:
__text_start:
001B EFCF LDI R28,0xFF
001C E0D2 LDI R29,2
001D BFCD OUT 0x3D,R28
001E BFDE OUT 0x3E,R29
001F 52C0 SUBI R28,0x20
0020 40D0 SBCI R29,0
0021 EA0A LDI R16,0xAA
0022 8308 STD Y+0,R16
0023 2400 CLR R0
0024 E0E2 LDI R30,2
0025 E0F1 LDI R31,1
0026 E011 LDI R17,1
0027 30E2 CPI R30,2
0028 07F1 CPC R31,R17
0029 F011 BEQ 0x002C
002A 9201 ST R0,Z+
002B CFFB RJMP 0x0027
002C 8300 STD Z+0,R16
002D E3E4 LDI R30,0x34
002E E0F0 LDI R31,0
002F E0A0 LDI R26,0
0030 E0B1 LDI R27,1
0031 E010 LDI R17,0
0032 33E6 CPI R30,0x36
0033 07F1 CPC R31,R17
0034 F021 BEQ 0x0039
0035 95C8 LPM
0036 9631 ADIW R30,1
0037 920D ST R0,X+
0038 CFF9 RJMP 0x0032
0039 D06D RCALL _main
_exit:
003A CFFF RJMP _exit
FILE: D:\設(shè)計項目\深入淺出AVR\光盤文件\實例程序源代碼\實例11_漸明漸暗的燈\漸明漸暗的燈\HD_Support.c
(0001) /***********************************************************
(0002) * 函數(shù)庫說明:底層硬件初始化函數(shù)庫 *
(0003) * 版本: *
(0004) * 作者: *
(0005) * 創(chuàng)建日期: *
(0006) * -------------------------------------------------------- *
(0007) * [硬件說明] *
(0008) * 處理器: *
(0009) * 系統(tǒng)時鐘: *
(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) * 頭 文 件 配 置 區(qū) *
(0032) ********************/
(0033) # include "PF_Config.h"
(0034) # include "HD_Support.h"
(0035)
(0036) /********************
(0037) * 系 統(tǒng) 宏 定 義 *
(0038) ********************/
(0039) #pragma interrupt_handler Timer0_OVF_ISR:iv_TIMER0_OVF
(0040) #pragma interrupt_handler Timer1_OVF_ISR:iv_TIMER1_OVF
(0041)
(0042) /*------------------*
(0043) * 常 數(shù) 宏 定 義 *
(0044) *------------------*/
(0045)
(0046) /*------------------*
(0047) * 動 作 宏 定 義 *
(0048) *------------------*/
(0049) #ifndef INSERT_TIMER0_OVF_ISR_CODE
(0050) # define INSERT_TIMER0_OVF_ISR_CODE
(0051) #endif
(0052)
(0053) #ifndef INSERT_TIMER1_OVF_ISR_CODE
(0054) # define INSERT_TIMER1_OVF_ISR_CODE
(0055) #endif
(0056)
(0057) /********************
(0058) * 模塊結(jié)構(gòu)體定義區(qū) *
(0059) ********************/
(0060)
(0061) /********************
(0062) * 函 數(shù) 聲 明 區(qū) *
(0063) ********************/
(0064) void Device_INIT(void);
(0065) void Insert_Timer1_OVF_ISR_Code(void);
(0066)
(0067) /********************
(0068) * 模塊函數(shù)聲明區(qū) *
(0069) ********************/
(0070) void Port_INIT(void);
(0071) void Timer0_INIT(void);
(0072) void Timer1_INIT(void);
(0073)
(0074) /********************
(0075) * 模塊變量聲明區(qū) *
(0076) ********************/
(0077)
(0078) /********************
(0079) * 全局變量聲明區(qū) *
(0080) ********************/
(0081)
(0082) unsigned char light=0; //初始化亮度計數(shù)器, 最小占空比, 亮度最大時
(0083) unsigned char direction=L_dw; //初始化亮度方向控制標志, 亮度減弱方向
(0084)
(0085) /***********************************************************
(0086) * 函數(shù)說明:系統(tǒng)硬件初始化函數(shù) *
(0087) * 輸入: 無 *
(0088) * 輸出: 無 *
(0089) * 調(diào)用函數(shù):Port_INIT() Timer0_INIT() *
(0090) ***********************************************************/
(0091) void Device_INIT(void)
(0092) {
(0093) Port_INIT();
_Device_INIT:
003B D006 RCALL _Port_INIT
(0094) Timer0_INIT();
003C D00F RCALL _Timer0_INIT
(0095) Timer1_INIT();
003D D01A RCALL _Timer1_INIT
(0096) //*在這里添加其他初始化函數(shù)*//
(0097)
(0098) TIMSK1 = BIT(TOIE1); //啟動定時器1溢出中斷資源
003E E081 LDI R24,1
003F 9380006F STS 0x6F,R24
0041 9508 RET
(0099) //*在這里添加其他全局寄存器的初始化代碼*//
(0100) }
(0101)
(0102) /***********************************************************
(0103) * 函數(shù)說明:系統(tǒng)端口初始化函數(shù) *
(0104) * 輸入: 無 *
(0105) * 輸出: 無 *
(0106) * 調(diào)用函數(shù):無 *
(0107) ***********************************************************/
(0108) void Port_INIT(void)
(0109) {
(0110) //*在這里添加端口初始化代碼*//
(0111) PORTB = 0b11111111; //沒有使用的端口均設(shè)置為輸入狀態(tài)并開啟內(nèi)部上拉電阻
_Port_INIT:
0042 EF8F LDI R24,0xFF
0043 B985 OUT 0x05,R24
(0112) PORTC = 0b11111111;
0044 B988 OUT 0x08,R24
(0113) PORTD = 0b11111111;
0045 B98B OUT 0x0B,R24
(0114)
(0115) DDRB = 0b00000000;
0046 2422 CLR R2
0047 B824 OUT 0x04,R2
(0116) DDRC = 0b00100000; //PC5端口設(shè)置為輸出狀態(tài)
0048 E280 LDI R24,0x20
0049 B987 OUT 0x07,R24
(0117) DDRD = 0b00100000; //PD5[OC0B]端口設(shè)置為輸出狀態(tài)
004A B98A OUT 0x0A,R24
004B 9508 RET
(0118) }
(0119)
(0120) /***********************************************************
(0121) * 函數(shù)聲明:定時器0初始化函數(shù) *
(0122) * 輸入: 無 *
(0123) * 輸出: 無 *
(0124) * 調(diào)用函數(shù):無 *
(0125) ***********************************************************/
(0126) void Timer0_INIT(void)
(0127) {
(0128) //*在這里粘貼從代碼生成向?qū)е猩傻某跏蓟a*//
(0129) //*要求為1K的溢出中斷 *//
(0130) TCCR0B = 0x00; //1kHz PWM模式
_Timer0_INIT:
004C 2422 CLR R2
004D BC25 OUT 0x25,R2
(0131) TCCR0A = 0x23; //OC0B端口在比較匹配時清零, 在計數(shù)值達到TOP時置位
004E E283 LDI R24,0x23
004F BD84 OUT 0x24,R24
(0132) TCNT0 = 0x00;
0050 BC26 OUT 0x26,R2
(0133) OCR0A = 0x83; //計數(shù)TOP值
0051 E883 LDI R24,0x83
0052 BD87 OUT 0x27,R24
(0134) OCR0B = 0x00; //比較匹配初始值
0053 BC28 OUT 0x28,R2
(0135) TCCR0B = 0x0A; //WGM02...00 = 111, 8分頻, 快速PWM模式OCR0A作為TOP
0054 E08A LDI R24,0xA
0055 BD85 OUT 0x25,R24
0056 9508 RET
(0136) }
(0137)
(0138) /***********************************************************
(0139) * 函數(shù)聲明:定時器0溢出中斷處理程序 *
(0140) * 輸入: 無 *
(0141) * 輸出: 無 *
(0142) * 調(diào)用函數(shù):INSERT_TIMER0_OVF_ISR_CODE *
(0143) ***********************************************************/
(0144) void Timer0_OVF_ISR(void)
(0145) {
_Timer0_OVF_ISR:
0057 9518 RETI
(0146) //*這里要添加對定時計數(shù)器重新設(shè)置計數(shù)底數(shù)的代碼*//
(0147) INSERT_TIMER0_OVF_ISR_CODE
(0148) }
(0149)
(0150) /***********************************************************
(0151) * 函數(shù)聲明:定時器1初始化函數(shù) *
(0152) * 輸入: 無 *
(0153) * 輸出: 無 *
(0154) * 調(diào)用函數(shù):無 *
(0155) ***********************************************************/
(0156) void Timer1_INIT(void)
(0157) {
(0158) //*在這里粘貼從代碼生成向?qū)е猩傻某跏蓟a*//
(0159) //*要求為20Hz的溢出中斷 *//
(0160) TCCR1B = 0x00;
_Timer1_INIT:
0058 2422 CLR R2
0059 92200081 STS 0x81,R2
(0161) TCNT1H = 0xFF;
005B EF8F LDI R24,0xFF
005C 93800085 STS 0x85,R24
(0162) TCNT1L = 0x3D;
005E E38D LDI R24,0x3D
005F 93800084 STS 0x84,R24
(0163) TCCR1A = 0x00;
0061 92200080 STS 0x80,R2
(0164) TCCR1B = 0x04;
0063 E084 LDI R24,4
0064 93800081 STS 0x81,R24
0066 9508 RET
_Timer1_OVF_ISR:
0067 D042 RCALL push_lset
(0165) }
(0166)
(0167) /***********************************************************
(0168) * 函數(shù)聲明:定時器1溢出中斷處理程序 *
(0169) * 輸入: 無 *
(0170) * 輸出: 無 *
(0171) * 調(diào)用函數(shù):INSERT_TIMER1_OVF_ISR_CODE *
(0172) ***********************************************************/
(0173) void Timer1_OVF_ISR(void)
(0174) {
(0175) //*這里要添加對定時計數(shù)器重新設(shè)置計數(shù)底數(shù)的代碼*//
(0176) INSERT_TIMER1_OVF_ISR_CODE
0068 9478 BSET 7
0069 D008 RCALL _Insert_Timer1_OVF_ISR_Code
006A D056 RCALL pop_lset
006B 9518 RETI
FILE: D:\設(shè)計項目\深入淺出AVR\光盤文件\實例程序源代碼\實例11_漸明漸暗的燈\漸明漸暗的燈\EX_Support.c
(0001) /***********************************************************
(0002) * 函數(shù)庫說明:底層硬件初始化驅(qū)動函數(shù)庫 *
(0003) * 版本: *
(0004) * 作者: *
(0005) * 創(chuàng)建日期: *
(0006) * -------------------------------------------------------- *
(0007) * [硬件說明] *
(0008) * 處理器: *
(0009) * 系統(tǒng)時鐘: *
(0010) * -------------------------------------------------------- *
(0011) * [支 持 庫] *
(0012) * 支持庫名稱:HD_Support.h *
(0013) * 需要版本: ----- *
(0014) * 支持庫說明:底層硬件初始化聲明庫 *
(0015) * *
(0016) * 支持庫名稱:EX_Support.h *
(0017) * 需要版本: ----- *
(0018) * 支持庫說明:底層硬件初始化驅(qū)動聲明庫 *
(0019) * *
(0020) * 支持庫名稱:PF_Config.h *
(0021) * 需要版本: ----- *
(0022) * 支持庫說明:硬件平臺配置聲明庫 *
(0023) * -------------------------------------------------------- *
(0024) * [版本更新] *
(0025) * 修改: *
(0026) * 修改日期: *
(0027) * 版本: *
(0028) * -------------------------------------------------------- *
(0029) * [版本歷史] *
(0030) * -------------------------------------------------------- *
(0031) * [使用說明] *
(0032) ***********************************************************/
(0033)
(0034) /********************
(0035) * 頭 文 件 配 置 區(qū) *
(0036) ********************/
(0037) # include "PF_Config.h"
(0038) # include "HD_Support.h"
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -