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

📄 timer.lis

📁 采用Mega16+VS1011B+SD卡制作的Mp3
💻 LIS
📖 第 1 页 / 共 2 页
字号:
                        .module Timer.C
                        .area text(rom, con, rel)
 0000                   .dbfile D:\学习\AVRpro\Mega16程序\TestLCD\Timer.C
                        .area data(ram, con, rel)
 0000                   .dbfile D:\学习\AVRpro\Mega16程序\TestLCD\Timer.C
 0000           _CurSongTim::
 0000                   .blkb 2
                        .area idata
 0000 0000              .byte 0,0
                        .area data(ram, con, rel)
 0002                   .dbfile D:\学习\AVRpro\Mega16程序\TestLCD\Timer.C
 0002                   .blkb 1
                        .area idata
 0002 00                .byte 0
                        .area data(ram, con, rel)
 0003                   .dbfile D:\学习\AVRpro\Mega16程序\TestLCD\Timer.C
 0003                   .dbsym e CurSongTim _CurSongTim A[3:3]c
 0003           _TotalSongTim::
 0003                   .blkb 2
                        .area idata
 0003 0000              .byte 0,0
                        .area data(ram, con, rel)
 0005                   .dbfile D:\学习\AVRpro\Mega16程序\TestLCD\Timer.C
 0005                   .blkb 2
                        .area idata
 0005 0000              .byte 0,0
                        .area data(ram, con, rel)
 0007                   .dbfile D:\学习\AVRpro\Mega16程序\TestLCD\Timer.C
 0007                   .dbsym e TotalSongTim _TotalSongTim A[4:4]c
                        .area text(rom, con, rel)
 0000                   .dbfile D:\学习\AVRpro\Mega16程序\TestLCD\Timer.C
 0000                   .dbfunc e timer0_init _timer0_init fV
                        .even
 0000           _timer0_init::
 0000                   .dbline -1
 0000                   .dbline 18
 0000           ; //TIMER0 initialize - prescale:8
 0000           ; // WGM: Normal
 0000           ; // desired value: 10KHz
 0000           ; // actual value: 10.000KHz (0.0%)
 0000           ; # include "iom16v.h"
 0000           ; # include "LCDFun.h"
 0000           ; # include "macros.h"
 0000           ; 
 0000           ; extern void DisplayNumChar(unsigned char l,unsigned char h,unsigned char ll,unsigned char ShowBit);
 0000           ; extern void PrintOneASCII(uchar h,uchar l,uchar Asc);
 0000           ; extern unsigned char SWRecordLyric,SWPlayTime; //歌词开关,时间开关
 0000           ; 
 0000           ; 
 0000           ; unsigned char CurSongTim[3]={0,0,0,};         //当前歌曲的播放时间 分:秒:百秒
 0000           ; unsigned char TotalSongTim[4]={0,0,0,0,};     //当前歌曲的播放时间 时:分:秒:百秒
 0000           ; 
 0000           ; void timer0_init(void)
 0000           ; {
 0000                   .dbline 19
 0000           ;  CLI(); //disable all interrupts
 0000 F894              cli
 0002                   .dbline 20
 0002           ;  ;
 0002                   .dbline 21
 0002           ;  TCCR0 = 0x00; //stop
 0002 2224              clr R2
 0004 23BE              out 0x33,R2
 0006                   .dbline 22
 0006           ;  TCNT0 = 0xB2; //set count
 0006 82EB              ldi R24,178
 0008 82BF              out 0x32,R24
 000A                   .dbline 23
 000A           ;  OCR0  = 0x4E;  //set compare
 000A 8EE4              ldi R24,78
 000C 8CBF              out 0x3c,R24
 000E                   .dbline 24
 000E           ;  TCCR0 = 0x05; //start timer
 000E 85E0              ldi R24,5
 0010 83BF              out 0x33,R24
 0012                   .dbline 25
 0012           ;  ;
 0012                   .dbline 26
 0012           ;  MCUCR = 0x00;
 0012 25BE              out 0x35,R2
 0014                   .dbline 27
 0014           ;  GICR  = 0x00;
 0014 2BBE              out 0x3b,R2
 0016                   .dbline 28
 0016           ;  TIMSK = 0x01; //timer interrupt sources
 0016 81E0              ldi R24,1
 0018 89BF              out 0x39,R24
 001A                   .dbline 29
 001A           ;  SEI(); //re-enable interrupts
 001A 7894              sei
 001C                   .dbline -2
 001C           L1:
 001C                   .dbline 0 ; func end
 001C 0895              ret
 001E                   .dbend
                        .area vector(rom, abs)
                        .org 36
 0024 0C940F00          jmp _timer0_ovf_isr
                        .area text(rom, con, rel)
 001E                   .dbfile D:\学习\AVRpro\Mega16程序\TestLCD\Timer.C
 001E                   .dbfunc e timer0_ovf_isr _timer0_ovf_isr fV
                        .even
 001E           _timer0_ovf_isr::
 001E 0A92              st -y,R0
 0020 1A92              st -y,R1
 0022 2A92              st -y,R2
 0024 3A92              st -y,R3
 0026 4A92              st -y,R4
 0028 5A92              st -y,R5
 002A 6A92              st -y,R6
 002C 7A92              st -y,R7
 002E 8A92              st -y,R8
 0030 9A92              st -y,R9
 0032 0A93              st -y,R16
 0034 1A93              st -y,R17
 0036 2A93              st -y,R18
 0038 3A93              st -y,R19
 003A 8A93              st -y,R24
 003C 9A93              st -y,R25
 003E AA93              st -y,R26
 0040 BA93              st -y,R27
 0042 EA93              st -y,R30
 0044 FA93              st -y,R31
 0046 0FB6              in R0,0x3f
 0048 0A92              st -y,R0
 004A 2397              sbiw R28,3
 004C                   .dbline -1
 004C                   .dbline 34
 004C           ; }
 004C           ; 
 004C           ; #pragma interrupt_handler timer0_ovf_isr:iv_TIM0_OVF
 004C           ; void timer0_ovf_isr(void)
 004C           ; {
 004C                   .dbline 35
 004C           ;  TCNT0 = 0xB2; //reload counter value
 004C 82EB              ldi R24,178
 004E 82BF              out 0x32,R24
 0050                   .dbline 37
 0050           ;  //时钟处理
 0050           ;  CurSongTim[2]++;TotalSongTim[3]++;
 0050 80910200          lds R24,_CurSongTim+2
 0054 8F5F              subi R24,255    ; addi 1
 0056 80930200          sts _CurSongTim+2,R24
 005A                   .dbline 37
 005A 80910600          lds R24,_TotalSongTim+3
 005E 8F5F              subi R24,255    ; addi 1
 0060 80930600          sts _TotalSongTim+3,R24
 0064                   .dbline 38
 0064           ;  if(CurSongTim[2]>=100)               //百分秒溢出
 0064 80910200          lds R24,_CurSongTim+2
 0068 8436              cpi R24,100
 006A 68F1              brlo L5
 006C           X0:
 006C                   .dbline 39
 006C           ;  {
 006C                   .dbline 40
 006C           ;       CurSongTim[2]=0;
 006C 2224              clr R2
 006E 20920200          sts _CurSongTim+2,R2
 0072                   .dbline 41
 0072           ;       CurSongTim[1]++;
 0072 80910100          lds R24,_CurSongTim+1
 0076 8F5F              subi R24,255    ; addi 1
 0078 80930100          sts _CurSongTim+1,R24
 007C                   .dbline 43
 007C           ;       
 007C           ;       if(CurSongTim[1]>=60)   //秒溢出
 007C 8C33              cpi R24,60
 007E 38F0              brlo L10
 0080           X1:
 0080                   .dbline 44
 0080           ;       {
 0080                   .dbline 45
 0080           ;               CurSongTim[1]=0;
 0080 20920100          sts _CurSongTim+1,R2
 0084                   .dbline 46
 0084           ;               CurSongTim[0]+=1;
 0084 80910000          lds R24,_CurSongTim
 0088 8F5F              subi R24,255    ; addi 1
 008A 80930000          sts _CurSongTim,R24
 008E                   .dbline 49
 008E           ;               //分处理:
 008E           ;               //分处理结束
 008E           ;       }
 008E           L10:
 008E                   .dbline 51
 008E           ;       //秒处理:
 008E           ;       if(SWPlayTime)
 008E 20900000          lds R2,_SWPlayTime
 0092 2220              tst R2
 0094 C1F0              breq L14
 0096           X2:
 0096                   .dbline 52
 0096           ;       {

⌨️ 快捷键说明

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