📄 led.lis
字号:
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 + -