?? 1stimer1.lis
字號:
.module _1STimer1.c
.area text(rom, con, rel)
0000 .dbfile E:\微雪電子CD1\產品資料\開發板實驗板\SMK系列\SMK1632\實驗教程\內核及主板相關實驗\內核-TIMER\1STimer1\1STimer1.c
0000 .dbfunc e timer1_init _timer1_init fV
.even
0000 _timer1_init::
0000 .dbline -1
0000 .dbline 54
0000 ; /*********************************************************************
0000 ; 微 雪 電 子 WaveShare http://www.waveShare.net
0000 ;
0000 ; 目 的: 建立使用Timer1做1S定時的示例程序
0000 ;
0000 ; 目標系統: 基于AVR單片機
0000 ;
0000 ; 應用軟件: ICCAVR
0000 ;
0000 ; 版 本: Version 1.0
0000 ;
0000 ; 圓版時間: 2005-06-25
0000 ;
0000 ; 開發人員: SEE
0000 ;
0000 ; 說 明: 若用于商業用途,請保留此段文字或注明代碼來源
0000 ;
0000 ; 深 圳 市 微 雪 電 子 有 限 公 司 保 留 所 有 的 版 權
0000 ; *********************************************************************/
0000 ;
0000 ; /*01010101010101010101010101010101010101010101010101010101010101010101
0000 ; ---------------------------------------------------------------------
0000 ; 版本更新記錄:
0000 ;
0000 ; ----------------------------------------------------------------------
0000 ; 實驗內容:
0000 ; 使用TIMER1做1S定時,并使用PD口的LED指示燈做指示。
0000 ; ----------------------------------------------------------------------
0000 ; 硬件連接:
0000 ; 將PD口的LED指示燈使能開關切換到"ON"狀態。
0000 ; ----------------------------------------------------------------------
0000 ; 注意事項:
0000 ; (1)若有加載庫函數,請將光盤根目錄下的“庫函數”下的“ICC_H”文件夾拷到D盤
0000 ; (2)請詳細閱讀:光盤根目錄下的“產品資料\開發板實驗板\SMK系列\SMK1632\說明資料”
0000 ;
0000 ; ----------------------------------------------------------------------
0000 ; 10101010101010101010101010101010101010101010101010101010101010101010*/
0000 ;
0000 ; #include <iom16v.h>
0000 ; #include <macros.h>
0000 ;
0000 ; #define DISP_DDR DDRD
0000 ; #define DISP_PORT PORTD
0000 ;
0000 ; /*--------------------------------------------------------------------
0000 ; 函數名稱:
0000 ; 函數功能:
0000 ; 注意事項:
0000 ; 提示說明:
0000 ; 輸 入:
0000 ; 返 回:
0000 ; --------------------------------------------------------------------*/
0000 ; void timer1_init(void)
0000 ; {
0000 .dbline 55
0000 ; TCCR1B = 0x00; //stop timer
0000 2224 clr R2
0002 2EBC out 0x2e,R2
0004 .dbline 57
0004 ;
0004 ; TCNT1H = 0xE3; //設置 TC1 的 計數寄存器 高8位值
0004 83EE ldi R24,227
0006 8DBD out 0x2d,R24
0008 .dbline 58
0008 ; TCNT1L = 0xE1; //設置 TC1 的 計數寄存器 低8位值
0008 81EE ldi R24,225
000A 8CBD out 0x2c,R24
000C .dbline 69
000C ;
000C ; //OCR1AH = 0x1C; //設置 TC1 的 輸出比較寄存器A 高8位值
000C ; //OCR1AL = 0x20; //設置 TC1 的 輸出比較寄存器A 低8位值
000C ;
000C ; //OCR1BH = 0x1C; //設置 TC1 的 輸出比較寄存器B 高8位值
000C ; //OCR1BL = 0x20; //設置 TC1 的 輸出比較寄存器B 低8位值
000C ;
000C ; //ICR1H = 0x1C; //設置 TC1 的 輸入捕獲寄存器 高8位值
000C ; //ICR1L = 0x20; //設置 TC1 的 輸入捕獲寄存器 低8位值
000C ;
000C ; TCCR1A = 0x00;
000C 2FBC out 0x2f,R2
000E .dbline 70
000E ; TCCR1B = 0x05; //設置TC1 為 CLK/1024分頻,啟動TC1
000E 85E0 ldi R24,5
0010 8EBD out 0x2e,R24
0012 .dbline 72
0012 ;
0012 ; MCUCR = 0x00; //設置 MCU 的 控制寄存器
0012 25BE out 0x35,R2
0014 .dbline 73
0014 ; GICR = 0x00; //設置 中斷控制寄存器
0014 2BBE out 0x3b,R2
0016 .dbline 74
0016 ; TIMSK = 0x04; //設置 定時計數器 的 屏蔽寄存器
0016 84E0 ldi R24,4
0018 89BF out 0x39,R24
001A .dbline -2
001A L1:
001A .dbline 0 ; func end
001A 0895 ret
001C .dbend
.area vector(rom, abs)
.org 32
0020 0C940E00 jmp _timer1_ovf_isr
.area text(rom, con, rel)
001C .dbfile E:\微雪電子CD1\產品資料\開發板實驗板\SMK系列\SMK1632\實驗教程\內核及主板相關實驗\內核-TIMER\1STimer1\1STimer1.c
001C .dbfunc e timer1_ovf_isr _timer1_ovf_isr fV
.even
001C _timer1_ovf_isr::
001C 8A93 st -y,R24
001E 9A93 st -y,R25
0020 8FB7 in R24,0x3f
0022 8A93 st -y,R24
0024 .dbline -1
0024 .dbline 87
0024 ; //SEI(); //enable interrupts
0024 ; }
0024 ; /*--------------------------------------------------------------------
0024 ; 函數名稱:
0024 ; 函數功能:
0024 ; 注意事項:
0024 ; 提示說明:
0024 ; 輸 入:
0024 ; 返 回:
0024 ; --------------------------------------------------------------------*/
0024 ; #pragma interrupt_handler timer1_ovf_isr:9
0024 ; void timer1_ovf_isr(void)
0024 ; {
0024 .dbline 88
0024 ; TCNT1H = 0xE3; //reload counter high value
0024 83EE ldi R24,227
0026 8DBD out 0x2d,R24
0028 .dbline 89
0028 ; TCNT1L = 0xE1; //reload counter low value
0028 81EE ldi R24,225
002A 8CBD out 0x2c,R24
002C .dbline 90
002C ; DISP_PORT++;
002C 82B3 in R24,0x12
002E 8F5F subi R24,255 ; addi 1
0030 82BB out 0x12,R24
0032 .dbline -2
0032 L2:
0032 8991 ld R24,y+
0034 8FBF out 0x3f,R24
0036 9991 ld R25,y+
0038 8991 ld R24,y+
003A .dbline 0 ; func end
003A 1895 reti
003C .dbend
003C .dbfunc e main _main fV
.even
003C _main::
003C .dbline -1
003C .dbline 101
003C ; }
003C ; /*--------------------------------------------------------------------
003C ; 函數名稱:
003C ; 函數功能:
003C ; 注意事項:
003C ; 提示說明:
003C ; 輸 入:
003C ; 返 回:
003C ; --------------------------------------------------------------------*/
003C ; void main(void)
003C ; {
003C .dbline 102
003C ; DISP_DDR = 0XFF;
003C 8FEF ldi R24,255
003E 81BB out 0x11,R24
0040 .dbline 103
0040 ; timer1_init();
0040 DFDF xcall _timer1_init
0042 .dbline 104
0042 ; SEI();
0042 7894 sei
0044 L4:
0044 .dbline 105
0044 L5:
0044 .dbline 105
0044 FFCF xjmp L4
0046 X0:
0046 .dbline -2
0046 L3:
0046 .dbline 0 ; func end
0046 0895 ret
0048 .dbend
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -