📄 time.lis
字号:
.module time.c
.area text(rom, con, rel)
0000 .dbfile D:\NEWWOR~1\motor\time.c
0000 .dbfunc e Time1Init _Time1Init fV
.even
0000 _Time1Init::
0000 .dbline -1
0000 .dbline 13
0000 ; #include <iom64v.h>
0000 ; #include <macros.h>
0000 ; #include "head.h"
0000 ;
0000 ;
0000 ; /*-----------------------------------------------------------------
0000 ; 函数名称: void Timer1Init(void)
0000 ; 函数功能: 定时器1初始化 256预分频 定时一秒
0000 ; 参 数:
0000 ; 返 回 值: 无
0000 ; -----------------------------------------------------------------*/
0000 ; void Time1Init()
0000 ; {
0000 .dbline 14
0000 ; CLI(); //关全部中断 //开中断
0000 F894 cli
0002 .dbline 15
0002 ; TCCR1B = 0x00; //关定时器
0002 2224 clr R2
0004 2EBC out 0x2e,R2
0006 .dbline 16
0006 ; TCNT1H = 0xF0; //设置定时初值
0006 80EF ldi R24,240
0008 8DBD out 0x2d,R24
000A .dbline 17
000A ; TCNT1L = 0xBE;
000A 8EEB ldi R24,190
000C 8CBD out 0x2c,R24
000E .dbline 18
000E ; OCR1AH = 0x0F;
000E 8FE0 ldi R24,15
0010 8BBD out 0x2b,R24
0012 .dbline 19
0012 ; OCR1AL = 0x42;
0012 82E4 ldi R24,66
0014 8ABD out 0x2a,R24
0016 .dbline 20
0016 ; OCR1BH = 0x0F;
0016 8FE0 ldi R24,15
0018 89BD out 0x29,R24
001A .dbline 21
001A ; OCR1BL = 0x42;
001A 82E4 ldi R24,66
001C 88BD out 0x28,R24
001E .dbline 22
001E ; ICR1H = 0x0F;
001E 8FE0 ldi R24,15
0020 87BD out 0x27,R24
0022 .dbline 23
0022 ; ICR1L = 0x42;
0022 82E4 ldi R24,66
0024 86BD out 0x26,R24
0026 .dbline 24
0026 ; TCCR1A = 0x00;
0026 2FBC out 0x2f,R2
0028 .dbline 25
0028 ; TCCR1B = 0x04; //开始计数
0028 84E0 ldi R24,4
002A 8EBD out 0x2e,R24
002C .dbline 27
002C ;
002C ; TIMSK = 0x04; //timer interrupt sources
002C 87BF out 0x37,R24
002E .dbline 28
002E ; SEI();
002E 7894 sei
0030 .dbline -2
0030 L1:
0030 .dbline 0 ; func end
0030 0895 ret
0032 .dbend
.area vector(rom, abs)
.org 56
0038 0C941900 jmp _timer1_ovf_isr
.area text(rom, con, rel)
0032 .dbfile D:\NEWWOR~1\motor\time.c
0032 .dbfunc e timer1_ovf_isr _timer1_ovf_isr fV
.even
0032 _timer1_ovf_isr::
0032 2A92 st -y,R2
0034 8A93 st -y,R24
0036 2FB6 in R2,0x3f
0038 2A92 st -y,R2
003A .dbline -1
003A .dbline 33
003A ; }
003A ;
003A ; #pragma interrupt_handler timer1_ovf_isr:15
003A ; void timer1_ovf_isr(void)
003A ; {
003A .dbline 35
003A ;
003A ; TCNT1H = 0xF0; //重新装载计数值
003A 80EF ldi R24,240
003C 8DBD out 0x2d,R24
003E .dbline 36
003E ; TCNT1L = 0xBE;
003E 8EEB ldi R24,190
0040 8CBD out 0x2c,R24
0042 .dbline 37
0042 ; if(temp){
0042 20900000 lds R2,_temp
0046 2220 tst R2
0048 41F0 breq L3
004A .dbline 37
004A .dbline 38
004A ; g_ucLedStatus=0x00;
004A 2224 clr R2
004C 20920000 sts _g_ucLedStatus,R2
0050 .dbline 39
0050 ; PORTF = g_ucLedStatus;
0050 20926200 sts 98,R2
0054 .dbline 40
0054 ; temp=0;
0054 20920000 sts _temp,R2
0058 .dbline 41
0058 09C0 xjmp L4
005A L3:
005A .dbline 41
005A .dbline 42
005A 8FEF ldi R24,255
005C 80930000 sts _g_ucLedStatus,R24
0060 .dbline 43
0060 282E mov R2,R24
0062 20926200 sts 98,R2
0066 .dbline 44
0066 81E0 ldi R24,1
0068 80930000 sts _temp,R24
006C .dbline 45
006C L4:
006C .dbline -2
006C L2:
006C 2990 ld R2,y+
006E 2FBE out 0x3f,R2
0070 8991 ld R24,y+
0072 2990 ld R2,y+
0074 .dbline 0 ; func end
0074 1895 reti
0076 .dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -