⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 timer0.lis

📁 详细介绍M8两版间通讯
💻 LIS
字号:
                        .module Timer0.c
                        .area vector(rom, abs)
                        .org 18
 0012 00C0              rjmp _timer0
                        .area data(ram, con, rel)
 0000           L2:
 0000                   .blkb 1
                        .area idata
 0000 00                .byte 0
                        .area data(ram, con, rel)
                        .area text(rom, con, rel)
 0000                   .dbfile E:\Mega8程序\UART通信\Timer0.c
 0000                   .dbfunc e timer0 _timer0 fV
 0000                   .dbsym s LEDnum L2 c
                        .even
 0000           _timer0::
 0000 00D0              rcall push_lset
 0002                   .dbline -1
 0002                   .dbline 7
 0002           ; /*T/C0作为定时器,触发定时中断,来进行周期性的作业*/
 0002           ; #include<iom8v.h> 
 0002           ; #include <macros.h>
 0002           ; extern void spark(unsigned num);
 0002           ; #pragma interrupt_handler timer0:10
 0002           ; void timer0(void)
 0002           ;        {static unsigned char LEDnum=0x00;
 0002                   .dbline 8
 0002           ;        LEDnum++;
 0002 80910000          lds R24,L2
 0006 8F5F              subi R24,255    ; addi 1
 0008 80930000          sts L2,R24
 000C                   .dbline 9
 000C           ;        LEDnum&=0b00000011;//LEDnum在0~3之间循环
 000C 8370              andi R24,3
 000E 80930000          sts L2,R24
 0012                   .dbline 10
 0012           ;        spark(LEDnum);
 0012 082F              mov R16,R24
 0014 1127              clr R17
 0016 00D0              rcall _spark
 0018                   .dbline 11
 0018           ;        TCNT0=178;}//定时178=10ms
 0018 82EB              ldi R24,178
 001A 82BF              out 0x32,R24
 001C                   .dbline -2
 001C           L1:
 001C 00D0              rcall pop_lset
 001E                   .dbline 0 ; func end
 001E 1895              reti
 0020                   .dbend
 0020                   .dbfunc e timer0_init _timer0_init fV
                        .even
 0020           _timer0_init::
 0020                   .dbline -1
 0020                   .dbline 14
 0020           ;        
 0020           ; void timer0_init(void)
 0020           ;        {TIMSK|=0x01;//Timer0中断允许
 0020                   .dbline 14
 0020 89B7              in R24,0x39
 0022 8160              ori R24,1
 0024 89BF              out 0x39,R24
 0026                   .dbline 15
 0026           ;        TCCR0=0x04;//1024分频,8MHz、TCNT0=0x10下,每次中断大约30ms
 0026 84E0              ldi R24,4
 0028 83BF              out 0x33,R24
 002A                   .dbline 16
 002A           ;        TCNT0=178;}//预植16,定时10ms
 002A 82EB              ldi R24,178
 002C 82BF              out 0x32,R24
 002E                   .dbline -2
 002E           L3:
 002E                   .dbline 0 ; func end
 002E 0895              ret
 0030                   .dbend

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -