📄 num-tiner0.lis
字号:
00AA .dbline 71
00AA ;
00AA ; //call this routine to initialise all peripherals
00AA ; void init_devices(void)
00AA ; {
00AA .dbline 73
00AA ; //stop errant interrupts until set up
00AA ; CLI(); //disable all interrupts
00AA F894 cli
00AC .dbline 74
00AC ; port_init();
00AC A9DF rcall _port_init
00AE .dbline 75
00AE ; timer0_init();
00AE B3DF rcall _timer0_init
00B0 .dbline 77
00B0 ;
00B0 ; MCUCR = 0x00;
00B0 2224 clr R2
00B2 25BE out 0x35,R2
00B4 .dbline 78
00B4 ; GICR = 0x00;
00B4 2BBE out 0x3b,R2
00B6 .dbline 79
00B6 ; TIMSK = 0x01; //timer interrupt sources
00B6 81E0 ldi R24,1
00B8 89BF out 0x39,R24
00BA .dbline 80
00BA ; SEI(); //re-enable interrupts
00BA 7894 sei
00BC .dbline -2
00BC .dbline 82
00BC ; //all peripherals are now initialised
00BC ; }
00BC L13:
00BC .dbline 0 ; func end
00BC 0895 ret
00BE .dbend
00BE .dbfunc e delay _delay fV
00BE ; j -> R16,R17
00BE ; i -> R18,R19
00BE ; z -> R20,R21
.even
00BE _delay::
00BE 00D0 rcall push_gset1
00C0 .dbline -1
00C0 .dbline 89
00C0 ;
00C0 ;
00C0 ;
00C0 ;
00C0 ; //自定义函数
00C0 ; void delay(void)
00C0 ; {
00C0 .dbline 91
00C0 2227 clr R18
00C2 3327 clr R19
00C4 02C0 rjmp L18
00C6 L15:
00C6 .dbline 91
00C6 L16:
00C6 .dbline 91
00C6 2F5F subi R18,255 ; offset = 1
00C8 3F4F sbci R19,255
00CA L18:
00CA .dbline 91
00CA ; unsigned int i,j,z;
00CA ; for(i=0;i<10000;i++);
00CA 2031 cpi R18,16
00CC E7E2 ldi R30,39
00CE 3E07 cpc R19,R30
00D0 D0F3 brlo L15
00D2 .dbline 92
00D2 ; { for(j=0;j<10000;j++)
00D2 .dbline 92
00D2 0027 clr R16
00D4 1127 clr R17
00D6 0BC0 rjmp L22
00D8 L19:
00D8 .dbline 93
00D8 .dbline 93
00D8 4427 clr R20
00DA 5527 clr R21
00DC 02C0 rjmp L26
00DE L23:
00DE .dbline 93
00DE L24:
00DE .dbline 93
00DE 4F5F subi R20,255 ; offset = 1
00E0 5F4F sbci R21,255
00E2 L26:
00E2 .dbline 93
00E2 4436 cpi R20,100
00E4 E0E0 ldi R30,0
00E6 5E07 cpc R21,R30
00E8 D0F3 brlo L23
00EA .dbline 93
00EA L20:
00EA .dbline 92
00EA 0F5F subi R16,255 ; offset = 1
00EC 1F4F sbci R17,255
00EE L22:
00EE .dbline 92
00EE 0031 cpi R16,16
00F0 E7E2 ldi R30,39
00F2 1E07 cpc R17,R30
00F4 88F3 brlo L19
00F6 .dbline 94
00F6 ; { for(z=0;z<100;z++);}
00F6 ; }
00F6 .dbline -2
00F6 .dbline 95
00F6 ; }
00F6 L14:
00F6 00D0 rcall pop_gset1
00F8 .dbline 0 ; func end
00F8 0895 ret
00FA .dbsym r j 16 i
00FA .dbsym r i 18 i
00FA .dbsym r z 20 i
00FA .dbend
00FA .dbfunc e main _main fV
00FA ; i -> R20
.even
00FA _main::
00FA .dbline -1
00FA .dbline 98
00FA ;
00FA ; void main(void)
00FA ; {
00FA .dbline 100
00FA ; char i;
00FA ; init_devices();
00FA D7DF rcall _init_devices
00FC 42C0 rjmp L29
00FE L28:
00FE .dbline 103
00FE ;
00FE ; while(1)
00FE ; {
00FE .dbline 105
00FE ;
00FE ; for(i=0;i<=9;i++)
00FE 4427 clr R20
0100 0BC0 rjmp L34
0102 L31:
0102 .dbline 106
0102 .dbline 106
0102 80E0 ldi R24,<_num
0104 90E0 ldi R25,>_num
0106 E42F mov R30,R20
0108 FF27 clr R31
010A E80F add R30,R24
010C F91F adc R31,R25
010E 2080 ldd R2,z+0
0110 20920100 sts _lednum1,R2
0114 .dbline 107
0114 D4DF rcall _delay
0116 .dbline 108
0116 L32:
0116 .dbline 105
0116 4395 inc R20
0118 L34:
0118 .dbline 105
0118 89E0 ldi R24,9
011A 8417 cp R24,R20
011C 90F7 brsh L31
011E .dbline 111
011E ; { lednum1 = num[i];
011E ; delay();
011E ; }
011E ;
011E ;
011E ; PORTB |= 0x20;//位选2
011E C59A sbi 0x18,5
0120 .dbline 112
0120 ; for(i=0;i<=9;i++)
0120 4427 clr R20
0122 0BC0 rjmp L38
0124 L35:
0124 .dbline 113
0124 .dbline 113
0124 80E0 ldi R24,<_num
0126 90E0 ldi R25,>_num
0128 E42F mov R30,R20
012A FF27 clr R31
012C E80F add R30,R24
012E F91F adc R31,R25
0130 2080 ldd R2,z+0
0132 20920200 sts _lednum2,R2
0136 .dbline 114
0136 C3DF rcall _delay
0138 .dbline 115
0138 L36:
0138 .dbline 112
0138 4395 inc R20
013A L38:
013A .dbline 112
013A 89E0 ldi R24,9
013C 8417 cp R24,R20
013E 90F7 brsh L35
0140 .dbline 118
0140 ; { lednum2 = num[i];
0140 ; delay();
0140 ; }
0140 ;
0140 ;
0140 ; PORTC |= 0x10;//位选3
0140 AC9A sbi 0x15,4
0142 .dbline 119
0142 ; for(i=0;i<=9;i++)
0142 4427 clr R20
0144 0BC0 rjmp L42
0146 L39:
0146 .dbline 120
0146 .dbline 120
0146 80E0 ldi R24,<_num
0148 90E0 ldi R25,>_num
014A E42F mov R30,R20
014C FF27 clr R31
014E E80F add R30,R24
0150 F91F adc R31,R25
0152 2080 ldd R2,z+0
0154 20920300 sts _lednum3,R2
0158 .dbline 121
0158 B2DF rcall _delay
015A .dbline 122
015A L40:
015A .dbline 119
015A 4395 inc R20
015C L42:
015C .dbline 119
015C 89E0 ldi R24,9
015E 8417 cp R24,R20
0160 90F7 brsh L39
0162 .dbline 126
0162 ; { lednum3 = num[i];
0162 ; delay();
0162 ; }
0162 ;
0162 ;
0162 ;
0162 ; for(i=0;i<=9;i++)
0162 4427 clr R20
0164 0BC0 rjmp L46
0166 L43:
0166 .dbline 127
0166 .dbline 127
0166 80E0 ldi R24,<_num
0168 90E0 ldi R25,>_num
016A E42F mov R30,R20
016C FF27 clr R31
016E E80F add R30,R24
0170 F91F adc R31,R25
0172 2080 ldd R2,z+0
0174 20920400 sts _lednum4,R2
0178 .dbline 128
0178 A2DF rcall _delay
017A .dbline 129
017A L44:
017A .dbline 126
017A 4395 inc R20
017C L46:
017C .dbline 126
017C 89E0 ldi R24,9
017E 8417 cp R24,R20
0180 90F7 brsh L43
0182 .dbline 132
0182 L29:
0182 .dbline 102
0182 BDCF rjmp L28
0184 X0:
0184 .dbline -2
0184 .dbline 133
0184 ; { lednum4 = num[i];
0184 ; delay();
0184 ; }
0184 ;
0184 ;
0184 ; }
0184 ; }
0184 L27:
0184 .dbline 0 ; func end
0184 0895 ret
0186 .dbsym r i 20 c
0186 .dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -