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

📄 time0.lis

📁 AVR基本外设测试程序
💻 LIS
字号:
                        .module time0.c
                        .area vector(rom, abs)
                        .org 18
 0012 00C0              rjmp _timet0_ovf
                        .area data(ram, con, rel)
 0000           L2:
 0000                   .blkb 2
                        .area idata
 0000 6E00              .word 110
                        .area data(ram, con, rel)
 0002           L3:
 0002                   .blkb 2
                        .area idata
 0002 BE00              .word 190
                        .area data(ram, con, rel)
 0004           L4:
 0004                   .blkb 2
                        .area idata
 0004 2003              .word 800
                        .area data(ram, con, rel)
                        .area text(rom, con, rel)
 0000                   .dbfile C:\avr3\time0.c
 0000                   .dbfunc e timet0_ovf _timet0_ovf fV
 0000                   .dbsym s M05_CONT L4 i
 0000                   .dbsym s BEEP2_CONT L3 i
 0000                   .dbsym s BEEP1_CONT L2 i
                        .even
 0000           _timet0_ovf::
 0000 2A92              st -y,R2
 0002 3A92              st -y,R3
 0004 8A93              st -y,R24
 0006 9A93              st -y,R25
 0008 EA93              st -y,R30
 000A 2FB6              in R2,0x3f
 000C 2A92              st -y,R2
 000E                   .dbline -1
 000E                   .dbline 5
 000E           ; #include"sga.h" 
 000E           ; /*=============定时器0中断函数==============*/
 000E           ;  #pragma interrupt_handler timet0_ovf:10
 000E           ;   void timet0_ovf(void)               
 000E           ;   {
 000E                   .dbline 10
 000E           ;         static unsigned int 
 000E           ;                        BEEP1_CONT=110,
 000E           ;                        BEEP2_CONT=190,
 000E           ;                        M05_CONT=800;  
 000E           ;           SREG =0X80;  //重新开放中断
 000E 80E8              ldi R24,128
 0010 8FBF              out 0x3f,R24
 0012                   .dbline 11
 0012           ;           TCNT0=0XEE;   //重装1.25MS的定时初值
 0012 8EEE              ldi R24,238
 0014 82BF              out 0x32,R24
 0016                   .dbline 12
 0016           ;               DDRB|=BIT(PB0);
 0016 B89A              sbi 0x17,0
 0018                   .dbline 13
 0018           ;               PORTB|=BIT(PB0);                       
 0018 C09A              sbi 0x18,0
 001A                   .dbline 14
 001A           ;           M05_CONT--;
 001A 80910400          lds R24,L4
 001E 90910500          lds R25,L4+1
 0022 0197              sbiw R24,1
 0024 90930500          sts L4+1,R25
 0028 80930400          sts L4,R24
 002C                   .dbline 15
 002C           ;           if(M05_CONT==0)
 002C 8030              cpi R24,0
 002E 8907              cpc R24,R25
 0030 89F4              brne L5
 0032           X0:
 0032                   .dbline 16
 0032           ;           {
 0032                   .dbline 17
 0032           ;              M05_CONT=800;
 0032 80E2              ldi R24,800
 0034 93E0              ldi R25,3
 0036 90930500          sts L4+1,R25
 003A 80930400          sts L4,R24
 003E                   .dbline 18
 003E           ;                  if(MBZ==0)   { MBZ=1; }
 003E 20900000          lds R2,_MBZ
 0042 2220              tst R2
 0044 21F4              brne L7
 0046                   .dbline 18
 0046                   .dbline 18
 0046 81E0              ldi R24,1
 0048 80930000          sts _MBZ,R24
 004C                   .dbline 18
 004C 03C0              rjmp L8
 004E           L7:
 004E                   .dbline 19
 004E           ;                  else         { MBZ=0; }
 004E                   .dbline 19
 004E 2224              clr R2
 0050 20920000          sts _MBZ,R2
 0054                   .dbline 19
 0054           L8:
 0054                   .dbline 20
 0054           ;           }
 0054           L5:
 0054                   .dbline 21
 0054           ;               if(BIT_80&0x80==0x80)
 0054 20900000          lds R2,_BIT_80
 0058 20FE              sbrs R2,0
 005A 1CC0              rjmp L9
 005C                   .dbline 22
 005C           ;               {
 005C                   .dbline 23
 005C           ;                       BUZZ_NO;
 005C 9698              cbi 0x12,6
 005E                   .dbline 24
 005E           ;                   if((BEEP1_CONT--)==1)
 005E 20900000          lds R2,L2
 0062 30900100          lds R3,L2+1
 0066 C101              movw R24,R2
 0068 0197              sbiw R24,1
 006A 90930100          sts L2+1,R25
 006E 80930000          sts L2,R24
 0072 C101              movw R24,R2
 0074 8130              cpi R24,1
 0076 E0E0              ldi R30,0
 0078 9E07              cpc R25,R30
 007A 61F4              brne L11
 007C                   .dbline 25
 007C           ;                 {
 007C                   .dbline 26
 007C           ;                  BEEP1_CONT=110;
 007C 8EE6              ldi R24,110
 007E 90E0              ldi R25,0
 0080 90930100          sts L2+1,R25
 0084 80930000          sts L2,R24
 0088                   .dbline 27
 0088           ;                  BUZZ_YE;
 0088 969A              sbi 0x12,6
 008A                   .dbline 28
 008A           ;                  BIT_80&=0x7f;//a.BEEP1=0;
 008A 80910000          lds R24,_BIT_80
 008E 8F77              andi R24,127
 0090 80930000          sts _BIT_80,R24
 0094                   .dbline 29
 0094           ;                 }
 0094           L11:
 0094                   .dbline 30
 0094           ;               }
 0094           L9:
 0094                   .dbline 32
 0094           ; /*==========响铃2次函数设置============*/     
 0094           ;                       if(BIT_80&0x40==0x40)           //响铃2次beep2
 0094 20900000          lds R2,_BIT_80
 0098 20FE              sbrs R2,0
 009A 3DC0              rjmp L13
 009C                   .dbline 33
 009C           ;       {
 009C                   .dbline 34
 009C           ;               --BEEP2_CONT;
 009C 80910200          lds R24,L3
 00A0 90910300          lds R25,L3+1
 00A4 0197              sbiw R24,1
 00A6 90930300          sts L3+1,R25
 00AA 80930200          sts L3,R24
 00AE                   .dbline 35
 00AE           ;               if(BEEP2_CONT>113)
 00AE 81E7              ldi R24,113
 00B0 90E0              ldi R25,0
 00B2 20900200          lds R2,L3
 00B6 30900300          lds R3,L3+1
 00BA 8215              cp R24,R2
 00BC 9305              cpc R25,R3
 00BE 10F4              brsh L15
 00C0                   .dbline 36
 00C0           ;               {
 00C0                   .dbline 37
 00C0           ;                       BUZZ_NO;
 00C0 9698              cbi 0x12,6
 00C2                   .dbline 38
 00C2           ;               }else
 00C2 29C0              rjmp L16
 00C4           L15:
 00C4                   .dbline 39
 00C4           ;               if(BEEP2_CONT>75)
 00C4 8BE4              ldi R24,75
 00C6 90E0              ldi R25,0
 00C8 20900200          lds R2,L3
 00CC 30900300          lds R3,L3+1
 00D0 8215              cp R24,R2
 00D2 9305              cpc R25,R3
 00D4 10F4              brsh L17
 00D6                   .dbline 40
 00D6           ;               {
 00D6                   .dbline 41
 00D6           ;                       BUZZ_YE;
 00D6 969A              sbi 0x12,6
 00D8                   .dbline 42
 00D8           ;               }else
 00D8 1EC0              rjmp L18
 00DA           L17:
 00DA                   .dbline 43
 00DA           ;               if(BEEP2_CONT>0)
 00DA 20900200          lds R2,L3
 00DE 30900300          lds R3,L3+1
 00E2 2220              tst R2
 00E4 11F4              brne X1
 00E6 3320              tst R3
 00E8 11F0              breq L19
 00EA           X1:
 00EA                   .dbline 44
 00EA           ;               {
 00EA                   .dbline 45
 00EA           ;                       BUZZ_NO;
 00EA 9698              cbi 0x12,6
 00EC                   .dbline 46
 00EC           ;               }else
 00EC 14C0              rjmp L20
 00EE           L19:
 00EE                   .dbline 47
 00EE           ;               if(BEEP2_CONT==0)
 00EE 20900200          lds R2,L3
 00F2 30900300          lds R3,L3+1
 00F6 2220              tst R2
 00F8 71F4              brne L21
 00FA 3320              tst R3
 00FC 61F4              brne L21
 00FE           X2:
 00FE                   .dbline 48
 00FE           ;               {
 00FE                   .dbline 49
 00FE           ;                       BUZZ_YE;
 00FE 969A              sbi 0x12,6
 0100                   .dbline 50
 0100           ;                       BIT_80&=0xbf;
 0100 80910000          lds R24,_BIT_80
 0104 8F7B              andi R24,191
 0106 80930000          sts _BIT_80,R24
 010A                   .dbline 51
 010A           ;                       BEEP2_CONT=190;
 010A 8EEB              ldi R24,190
 010C 90E0              ldi R25,0
 010E 90930300          sts L3+1,R25
 0112 80930200          sts L3,R24
 0116                   .dbline 52
 0116           ;               }
 0116           L21:
 0116           L20:
 0116           L18:
 0116           L16:
 0116                   .dbline 53
 0116           ;       }
 0116           L13:
 0116                   .dbline 55
 0116           ; /*==========响铃2次函数结束============*/             
 0116           ;       ++TMS;
 0116 80910000          lds R24,_TMS
 011A 90910100          lds R25,_TMS+1
 011E 0196              adiw R24,1
 0120 90930100          sts _TMS+1,R25
 0124 80930000          sts _TMS,R24
 0128                   .dbline -2
 0128           L1:
 0128 2990              ld R2,y+
 012A 2FBE              out 0x3f,R2
 012C E991              ld R30,y+
 012E 9991              ld R25,y+
 0130 8991              ld R24,y+
 0132 3990              ld R3,y+
 0134 2990              ld R2,y+
 0136                   .dbline 0 ; func end
 0136 1895              reti
 0138                   .dbend

⌨️ 快捷键说明

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