?? display.lis
字號(hào):
.module display.c
.area text(rom, con, rel)
0000 .dbfile D:\job\avrtest\web\example\display\display.c
0000 .dbfunc e timer1_init _timer1_init fV
.even
0000 _timer1_init::
0000 .dbline -1
0000 .dbline 13
0000 ; //ICC-AVR application builder : 2005-2-24 23:07:53
0000 ; // Target : M8
0000 ; // Crystal: 8.0000Mhz
0000 ;
0000 ; #include <iom8v.h>
0000 ; #include <macros.h>
0000 ;
0000 ; unsigned char n;
0000 ;
0000 ; //TIMER1 initialisation - prescale:256
0000 ; // actual value: 1.000Hz (0.0%)
0000 ; void timer1_init(void)
0000 ; {
0000 .dbline 14
0000 ; TCCR1B = 0x00; //stop
0000 2224 clr R2
0002 2EBC out 0x2e,R2
0004 .dbline 15
0004 ; TCNT1H = 0x85; //setup
0004 85E8 ldi R24,133
0006 8DBD out 0x2d,R24
0008 .dbline 16
0008 ; TCNT1L = 0xEE;
0008 8EEE ldi R24,238
000A 8CBD out 0x2c,R24
000C .dbline 17
000C ; OCR1AH = 0x7A;
000C 8AE7 ldi R24,122
000E 8BBD out 0x2b,R24
0010 .dbline 18
0010 ; OCR1AL = 0x12;
0010 82E1 ldi R24,18
0012 8ABD out 0x2a,R24
0014 .dbline 19
0014 ; OCR1BH = 0x7A;
0014 8AE7 ldi R24,122
0016 89BD out 0x29,R24
0018 .dbline 20
0018 ; OCR1BL = 0x12;
0018 82E1 ldi R24,18
001A 88BD out 0x28,R24
001C .dbline 21
001C ; ICR1H = 0x7A;
001C 8AE7 ldi R24,122
001E 87BD out 0x27,R24
0020 .dbline 22
0020 ; ICR1L = 0x12;
0020 82E1 ldi R24,18
0022 86BD out 0x26,R24
0024 .dbline 23
0024 ; TCCR1A = 0x00;
0024 2FBC out 0x2f,R2
0026 .dbline 24
0026 ; TCCR1B = 0x04; //start Timer
0026 84E0 ldi R24,4
0028 8EBD out 0x2e,R24
002A .dbline -2
002A .dbline 25
002A ; }
002A L1:
002A .dbline 0 ; func end
002A 0895 ret
002C .dbend
.area vector(rom, abs)
.org 16
0010 16C0 rjmp _timer1_ovf_isr
.area text(rom, con, rel)
002C .dbfile D:\job\avrtest\web\example\display\display.c
002C .dbfunc e timer1_ovf_isr _timer1_ovf_isr fV
002C ; i -> R16
002C ; ch -> R18
.even
002C _timer1_ovf_isr::
002C 2A92 st -y,R2
002E 0A93 st -y,R16
0030 2A93 st -y,R18
0032 8A93 st -y,R24
0034 9A93 st -y,R25
0036 2FB6 in R2,0x3f
0038 2A92 st -y,R2
003A .dbline -1
003A .dbline 30
003A ;
003A ; // timer1 中斷 ,1秒
003A ; #pragma interrupt_handler timer1_ovf_isr:9
003A ; void timer1_ovf_isr(void)
003A ; {
003A .dbline 33
003A ; unsigned char ch,i;
003A ;
003A ; TCNT1H = 0x85; //reload counter high value
003A 85E8 ldi R24,133
003C 8DBD out 0x2d,R24
003E .dbline 34
003E ; TCNT1L = 0xEE; //reload counter low value
003E 8EEE ldi R24,238
0040 8CBD out 0x2c,R24
0042 .dbline 36
0042 ;
0042 ; if(++n == 10) n = 0;
0042 80910000 lds R24,_n
0046 8F5F subi R24,255 ; addi 1
0048 282E mov R2,R24
004A 20920000 sts _n,R2
004E 8A30 cpi R24,10
0050 19F4 brne L3
0052 .dbline 36
0052 2224 clr R2
0054 20920000 sts _n,R2
0058 L3:
0058 .dbline 37
0058 ; ch = n | 0x70;
0058 20910000 lds R18,_n
005C 2067 ori R18,112
005E .dbline 38
005E ; PORTB &= ~0x01; // 消隱
005E C098 cbi 0x18,0
0060 .dbline 39
0060 ; PORTD &= ~0x40; // CLK
0060 9698 cbi 0x12,6
0062 .dbline 40
0062 0027 clr R16
0064 0AC0 rjmp L8
0066 L5:
0066 .dbline 40
0066 ; for(i=0; i<8; i++){
0066 .dbline 41
0066 ; if(ch & 0x80)
0066 27FF sbrs R18,7
0068 02C0 rjmp L9
006A .dbline 42
006A ; PORTD |= 0x80;
006A 979A sbi 0x12,7
006C 01C0 rjmp L10
006E L9:
006E .dbline 44
006E ; else
006E ; PORTD &= ~0x80;
006E 9798 cbi 0x12,7
0070 L10:
0070 .dbline 45
0070 220F lsl R18
0072 .dbline 46
0072 969A sbi 0x12,6
0074 .dbline 47
0074 0000 nop
0076 .dbline 48
0076 9698 cbi 0x12,6
0078 .dbline 49
0078 L6:
0078 .dbline 40
0078 0395 inc R16
007A L8:
007A .dbline 40
007A 0830 cpi R16,8
007C A0F3 brlo L5
007E .dbline 50
007E ; ch <<= 1;
007E ; PORTD |= 0x40;
007E ; asm("nop");
007E ; PORTD &= ~0x40;
007E ; }
007E ; PORTB |= 0x01; // 顯示
007E C09A sbi 0x18,0
0080 .dbline -2
0080 .dbline 51
0080 ; }
0080 L2:
0080 2990 ld R2,y+
0082 2FBE out 0x3f,R2
0084 9991 ld R25,y+
0086 8991 ld R24,y+
0088 2991 ld R18,y+
008A 0991 ld R16,y+
008C 2990 ld R2,y+
008E .dbline 0 ; func end
008E 1895 reti
0090 .dbsym r i 16 c
0090 .dbsym r ch 18 c
0090 .dbend
0090 .dbfunc e init_devices _init_devices fV
.even
0090 _init_devices::
0090 .dbline -1
0090 .dbline 55
0090 ;
0090 ; // 初始化
0090 ; void init_devices(void)
0090 ; {
0090 .dbline 56
0090 ; CLI(); // 禁止中斷
0090 F894 cli
0092 .dbline 57
0092 ; DDRB = 0x01; // 初始化操作74LS164的管腳
0092 81E0 ldi R24,1
0094 87BB out 0x17,R24
0096 .dbline 58
0096 ; DDRD = 0xC0; // 初始化操作74LS164的管腳
0096 80EC ldi R24,192
0098 81BB out 0x11,R24
009A .dbline 59
009A ; timer1_init();
009A B2DF rcall _timer1_init
009C .dbline 61
009C ;
009C ; MCUCR = 0x00;
009C 2224 clr R2
009E 25BE out 0x35,R2
00A0 .dbline 62
00A0 ; GICR = 0x00;
00A0 2BBE out 0x3b,R2
00A2 .dbline 63
00A2 ; TIMSK = 0x04; // 設(shè)置timer1中斷
00A2 84E0 ldi R24,4
00A4 89BF out 0x39,R24
00A6 .dbline 64
00A6 ; SEI(); // 中斷使能
00A6 7894 sei
00A8 .dbline -2
00A8 .dbline 65
00A8 ; }
00A8 L11:
00A8 .dbline 0 ; func end
00A8 0895 ret
00AA .dbend
00AA .dbfunc e main _main fV
00AA ; x -> R20
.even
00AA _main::
00AA .dbline -1
00AA .dbline 69
00AA ;
00AA ; //
00AA ; void main(void)
00AA ; {
00AA .dbline 71
00AA ; unsigned char x;
00AA ; init_devices();
00AA F2DF rcall _init_devices
00AC .dbline 73
00AC L13:
00AC .dbline 73
00AC .dbline 74
00AC 4395 inc R20
00AE .dbline 75
00AE .dbline 73
00AE .dbline 73
00AE FECF rjmp L13
00B0 X0:
00B0 .dbline -2
00B0 L12:
00B0 .dbline 0 ; func end
00B0 0895 ret
00B2 .dbsym r x 20 c
00B2 .dbend
.area bss(ram, con, rel)
0000 .dbfile D:\job\avrtest\web\example\display\display.c
0000 _n::
0000 .blkb 1
0001 .dbsym e n _n c
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -