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

📄 led.lis

📁 avr单片机
💻 LIS
📖 第 1 页 / 共 2 页
字号:
 0094 E1E0              ldi R30,1
 0096 1E07              cpc R17,R30
 0098 80F3              brlo L6
 009A                   .dbline -2
 009A           L5:
 009A                   .dbline 0 ; func end
 009A 0895              ret
 009C                   .dbsym r j 16 i
 009C                   .dbsym r i 18 i
 009C                   .dbend
 009C                   .dbfunc e init_devices _init_devices fV
                        .even
 009C           _init_devices::
 009C                   .dbline -1
 009C                   .dbline 59
 009C           ;  for(i=0;i<5000;i++);
 009C           ;  }
 009C           ;  
 009C           ; }
 009C           ; void init_devices(void)
 009C           ; {
 009C                   .dbline 61
 009C           ;  //stop errant interrupts until set up
 009C           ;  CLI(); //disable all interrupts
 009C F894              cli
 009E                   .dbline 62
 009E           ;  XDIV  = 0x00; //xtal divider//系统时钟分频控制寄存器
 009E 2224              clr R2
 00A0 2CBE              out 0x3c,R2
 00A2                   .dbline 63
 00A2           ;  XMCRA = 0x0E; //external memory//外部存储器控制寄存器
 00A2 8EE0              ldi R24,14
 00A4 80936D00          sts 109,R24
 00A8                   .dbline 64
 00A8           ;  XMCRB = 0x80;
 00A8 80E8              ldi R24,128
 00AA 80936C00          sts 108,R24
 00AE                   .dbline 65
 00AE           ;  port_init();
 00AE A8DF              xcall _port_init
 00B0                   .dbline 66
 00B0           ; timer0_init();
 00B0 C1DF              xcall _timer0_init
 00B2                   .dbline 67
 00B2           ;  MCUCR = 0xC0;//MCU控制寄存器
 00B2 80EC              ldi R24,192
 00B4 85BF              out 0x35,R24
 00B6                   .dbline 68
 00B6           ;  EICRA = 0x0A; //extended ext ints//外部中断控制寄存器
 00B6 8AE0              ldi R24,10
 00B8 80936A00          sts 106,R24
 00BC                   .dbline 69
 00BC           ;  EICRB = 0x0F; //extended ext ints
 00BC 8FE0              ldi R24,15
 00BE 8ABF              out 0x3a,R24
 00C0                   .dbline 70
 00C0           ;  EIMSK = 0x33; //0x03 extended ext enable
 00C0 83E3              ldi R24,51
 00C2 89BF              out 0x39,R24
 00C4                   .dbline 71
 00C4           ;  TIMSK = 0x12; //timer interrupt sources  01:time0
 00C4 82E1              ldi R24,18
 00C6 87BF              out 0x37,R24
 00C8                   .dbline 72
 00C8           ;  ETIMSK =0x00; //extended timer interrupt sources
 00C8 2224              clr R2
 00CA 20927D00          sts 125,R2
 00CE                   .dbline 73
 00CE           ;  SEI(); //re-enable interrupts
 00CE 7894              sei
 00D0                   .dbline -2
 00D0           L14:
 00D0                   .dbline 0 ; func end
 00D0 0895              ret
 00D2                   .dbend
 00D2                   .dbfunc e main _main fV
 00D2           ;            mid -> R20
 00D2           ;              i -> R22,R23
                        .even
 00D2           _main::
 00D2                   .dbline -1
 00D2                   .dbline 77
 00D2           ;  //all peripherals are now initialized
 00D2           ; }
 00D2           ; void main(void)
 00D2           ; {
 00D2                   .dbline 78
 00D2           ; watchdog_init();
 00D2 ACDF              xcall _watchdog_init
 00D4                   .dbline 79
 00D4           ;  WDR();
 00D4 A895              wdr
 00D6                   .dbline 80
 00D6           ;  init_devices();
 00D6 E2DF              xcall _init_devices
 00D8 33C0              xjmp L17
 00DA           L16:
 00DA                   .dbline 82
 00DA           ;  while(1)
 00DA           ;  {
 00DA                   .dbline 83
 00DA           ;    UI i=0;
 00DA 6627              clr R22
 00DC 7727              clr R23
 00DE                   .dbline 84
 00DE           ;    WDR();
 00DE A895              wdr
 00E0                   .dbline 85
 00E0           ;    if(T0Count0>10)
 00E0 8AE0              ldi R24,10
 00E2 90E0              ldi R25,0
 00E4 20900000          lds R2,_T0Count0
 00E8 30900100          lds R3,_T0Count0+1
 00EC 8215              cp R24,R2
 00EE 9305              cpc R25,R3
 00F0 38F5              brsh L19
 00F2                   .dbline 86
 00F2           ;    {
 00F2                   .dbline 87
 00F2           ;     UC mid=0x01;
 00F2 41E0              ldi R20,1
 00F4                   .dbline 88
 00F4           ;     WDR();
 00F4 A895              wdr
 00F6                   .dbline 89
 00F6           ;     T0Count0=0;
 00F6 2224              clr R2
 00F8 3324              clr R3
 00FA 30920100          sts _T0Count0+1,R3
 00FE 20920000          sts _T0Count0,R2
 0102                   .dbline 91
 0102           ;       
 0102           ;       for(i=0;i<8;i++)
 0102 09C0              xjmp L24
 0104           L21:
 0104                   .dbline 92
 0104                   .dbline 93
 0104 B5DF              xcall _delay
 0106                   .dbline 94
 0106 242E              mov R2,R20
 0108 2094              com R2
 010A 28BA              out 0x18,R2
 010C                   .dbline 95
 010C 82E0              ldi R24,2
 010E 849F              mul R24,R20
 0110 402D              mov R20,R0
 0112                   .dbline 97
 0112           L22:
 0112                   .dbline 91
 0112 6F5F              subi R22,255  ; offset = 1
 0114 7F4F              sbci R23,255
 0116           L24:
 0116                   .dbline 91
 0116 6830              cpi R22,8
 0118 E0E0              ldi R30,0
 011A 7E07              cpc R23,R30
 011C 98F3              brlo L21
 011E                   .dbline 99
 011E           ;       {
 011E           ;        delay();
 011E           ;        PORTB=~mid;
 011E           ;        mid=mid*2;
 011E           ;        
 011E           ;       }
 011E           ;               
 011E           ;       PORTB=0xFF;
 011E 8FEF              ldi R24,255
 0120 88BB              out 0x18,R24
 0122                   .dbline 100
 0122           ;       delay();
 0122 A6DF              xcall _delay
 0124                   .dbline 101
 0124           ;       PORTD=0xEF;
 0124 8FEE              ldi R24,239
 0126 82BB              out 0x12,R24
 0128                   .dbline 102
 0128           ;       delay();
 0128 A3DF              xcall _delay
 012A                   .dbline 103
 012A           ;       PORTD=0xDF;
 012A 8FED              ldi R24,223
 012C 82BB              out 0x12,R24
 012E                   .dbline 104
 012E           ;       delay();
 012E A0DF              xcall _delay
 0130                   .dbline 105
 0130           ;       PORTD=0xBF;
 0130 8FEB              ldi R24,191
 0132 82BB              out 0x12,R24
 0134                   .dbline 106
 0134           ;       delay();
 0134 9DDF              xcall _delay
 0136                   .dbline 107
 0136           ;       PORTD=0x7F;
 0136 8FE7              ldi R24,127
 0138 82BB              out 0x12,R24
 013A                   .dbline 108
 013A           ;       delay();
 013A 9ADF              xcall _delay
 013C                   .dbline 109
 013C           ;       PORTD=0xFF;
 013C 8FEF              ldi R24,255
 013E 82BB              out 0x12,R24
 0140                   .dbline 110
 0140           ;    }
 0140           L19:
 0140                   .dbline 111
 0140           L17:
 0140                   .dbline 81
 0140 CCCF              xjmp L16
 0142           X0:
 0142                   .dbline -2
 0142           L15:
 0142                   .dbline 0 ; func end
 0142 0895              ret
 0144                   .dbsym r mid 20 c
 0144                   .dbsym r i 22 i
 0144                   .dbend

⌨️ 快捷键说明

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