📄 xianshi.lis
字号:
.module xianshi.c
.area text(rom, con, rel)
0000 .dbfile E:\实验\DS1302\显示/delay.c
0000 .dbfunc e delay_1us _delay_1us fV
.even
0000 _delay_1us::
0000 .dbline -1
0000 .dbline 4
0000 ; //ICC-AVR application builder : 2006-12-8 21:26:52
0000 ; // Target : M32
0000 ; // Crystal: 4.0000Mhz
0000 ;
0000 .dbline 5
0000 ; #include <iom16v.h>
0000 0000 nop
0002 .dbline -2
0002 L1:
0002 .dbline 0 ; func end
0002 0895 ret
0004 .dbend
0004 .dbfunc e delay_nus _delay_nus fV
0004 ; i -> R20,R21
0004 ; n -> R22,R23
.even
0004 _delay_nus::
0004 0E940000 xcall push_gset2
0008 B801 movw R22,R16
000A .dbline -1
000A .dbline 9
000A ; #include <macros.h>
000A ; #include "delay.c"
000A ; #include "disp.h"
000A ; void port_init(void)
000A .dbline 10
000A ; {
000A 4427 clr R20
000C 5527 clr R21
000E .dbline 11
000E ; PORTA = 0x00;
000E 03C0 xjmp L6
0010 L3:
0010 .dbline 12
0010 F7DF xcall _delay_1us
0012 L4:
0012 .dbline 11
0012 4F5F subi R20,255 ; offset = 1
0014 5F4F sbci R21,255
0016 L6:
0016 .dbline 11
0016 4617 cp R20,R22
0018 5707 cpc R21,R23
001A D0F3 brlo L3
001C .dbline -2
001C L2:
001C 0E940000 xcall pop_gset2
0020 .dbline 0 ; func end
0020 0895 ret
0022 .dbsym r i 20 i
0022 .dbsym r n 22 i
0022 .dbend
0022 .dbfunc e delay_1ms _delay_1ms fV
0022 ; i -> R16,R17
.even
0022 _delay_1ms::
0022 .dbline -1
0022 .dbline 16
0022 ; DDRA = 0xFF;
0022 ; PORTB = 0x00;
0022 ; DDRB = 0xFF;
0022 ; PORTC = 0x00;
0022 ; DDRC = 0x00;
0022 .dbline 18
0022 0027 clr R16
0024 1127 clr R17
0026 02C0 xjmp L11
0028 L8:
0028 .dbline 18
0028 L9:
0028 .dbline 18
0028 0F5F subi R16,255 ; offset = 1
002A 1F4F sbci R17,255
002C L11:
002C .dbline 18
002C ; PORTD = 0x00;
002C ; DDRD = 0xFE;
002C 0D38 cpi R16,141
002E E0E0 ldi R30,0
0030 1E07 cpc R17,R30
0032 D0F3 brlo L8
0034 .dbline -2
0034 L7:
0034 .dbline 0 ; func end
0034 0895 ret
0036 .dbsym r i 16 i
0036 .dbend
0036 .dbfunc e delay_nms _delay_nms fV
0036 ; i -> R20,R21
0036 ; n -> R22,R23
.even
0036 _delay_nms::
0036 0E940000 xcall push_gset2
003A B801 movw R22,R16
003C .dbline -1
003C .dbline 22
003C ; }
003C ; //UART0 initialize
003C ; // desired baud rate: 9600
003C ; // actual: baud rate:9615 (0.2%)
003C .dbline 23
003C ; // char size: 8 bit
003C 4427 clr R20
003E 5527 clr R21
0040 .dbline 24
0040 ; // parity: Disabled
0040 03C0 xjmp L16
0042 L13:
0042 .dbline 25
0042 .dbline 26
0042 EFDF xcall _delay_1ms
0044 .dbline 27
0044 L14:
0044 .dbline 24
0044 4F5F subi R20,255 ; offset = 1
0046 5F4F sbci R21,255
0048 L16:
0048 .dbline 24
0048 4617 cp R20,R22
004A 5707 cpc R21,R23
004C D0F3 brlo L13
004E .dbline -2
004E L12:
004E 0E940000 xcall pop_gset2
0052 .dbline 0 ; func end
0052 0895 ret
0054 .dbsym r i 20 i
0054 .dbsym r n 22 i
0054 .dbend
.area lit(rom, con, rel)
0000 _SEG_table::
0000 C0F9 .byte 192,249
0002 A4B0 .byte 164,176
0004 9992 .byte 153,146
0006 82F8 .byte 130,248
0008 8090 .byte 128,144
000A .dbfile E:\实验\DS1302\显示/disp.h
000A .dbsym e SEG_table _SEG_table A[10:10]kc
.area data(ram, con, rel)
0000 .dbfile E:\实验\DS1302\显示/disp.h
0000 _led_bit8Buff::
0000 .blkb 2
.area idata
0000 0000 .byte 0,0
.area data(ram, con, rel)
0002 .dbfile E:\实验\DS1302\显示/disp.h
0002 .blkb 2
.area idata
0002 0000 .byte 0,0
.area data(ram, con, rel)
0004 .dbfile E:\实验\DS1302\显示/disp.h
0004 .blkb 2
.area idata
0004 0000 .byte 0,0
.area data(ram, con, rel)
0006 .dbfile E:\实验\DS1302\显示/disp.h
0006 .blkb 2
.area idata
0006 0000 .byte 0,0
.area data(ram, con, rel)
0008 .dbfile E:\实验\DS1302\显示/disp.h
0008 .dbsym e led_bit8Buff _led_bit8Buff A[8:8]c
0008 _led_bit6Buff::
0008 .blkb 2
.area idata
0008 0000 .byte 0,0
.area data(ram, con, rel)
000A .dbfile E:\实验\DS1302\显示/disp.h
000A .blkb 2
.area idata
000A 0000 .byte 0,0
.area data(ram, con, rel)
000C .dbfile E:\实验\DS1302\显示/disp.h
000C .blkb 2
.area idata
000C 0000 .byte 0,0
.area data(ram, con, rel)
000E .dbfile E:\实验\DS1302\显示/disp.h
000E .dbsym e led_bit6Buff _led_bit6Buff A[6:6]c
.area text(rom, con, rel)
0054 .dbfile E:\实验\DS1302\显示/disp.h
0054 .dbfunc e disp_bit8 _disp_bit8 fV
.even
0054 _disp_bit8::
0054 .dbline -1
0054 .dbline 20
0054 .dbline 21
0054 81E0 ldi R24,1
0056 88BB out 0x18,R24
0058 .dbline 22
0058 80E0 ldi R24,<_SEG_table
005A 90E0 ldi R25,>_SEG_table
005C E0910000 lds R30,_led_bit8Buff
0060 FF27 clr R31
0062 E80F add R30,R24
0064 F91F adc R31,R25
0066 E491 lpm R30,Z
0068 E8BB out 0x18,R30
006A .dbline 23
006A 82E0 ldi R24,2
006C 88BB out 0x18,R24
006E .dbline 24
006E 80E0 ldi R24,<_SEG_table
0070 90E0 ldi R25,>_SEG_table
0072 E0910100 lds R30,_led_bit8Buff+1
0076 FF27 clr R31
0078 E80F add R30,R24
007A F91F adc R31,R25
007C E491 lpm R30,Z
007E E8BB out 0x18,R30
0080 .dbline 25
0080 ; void uart0_init(void)
0080 84E0 ldi R24,4
0082 88BB out 0x18,R24
0084 .dbline 26
0084 ; {
0084 80E0 ldi R24,<_SEG_table
0086 90E0 ldi R25,>_SEG_table
0088 E0910200 lds R30,_led_bit8Buff+2
008C FF27 clr R31
008E E80F add R30,R24
0090 F91F adc R31,R25
0092 E491 lpm R30,Z
0094 E8BB out 0x18,R30
0096 .dbline 27
0096 ; UCSRB = 0x00; //disable while setting baud rate
0096 88E0 ldi R24,8
0098 88BB out 0x18,R24
009A .dbline 28
009A ; UCSRA = 0x00;
009A 80E0 ldi R24,<_SEG_table
009C 90E0 ldi R25,>_SEG_table
009E E0910300 lds R30,_led_bit8Buff+3
00A2 FF27 clr R31
00A4 E80F add R30,R24
00A6 F91F adc R31,R25
00A8 E491 lpm R30,Z
00AA E8BB out 0x18,R30
00AC .dbline -2
00AC L17:
00AC .dbline 0 ; func end
00AC 0895 ret
00AE .dbend
00AE .dbfile E:\实验\DS1302\显示\xianshi.c
00AE .dbfunc e port_init _port_init fV
.even
00AE _port_init::
00AE .dbline -1
00AE .dbline 10
00AE .dbline 11
00AE 2224 clr R2
00B0 2BBA out 0x1b,R2
00B2 .dbline 12
00B2 8FEF ldi R24,255
00B4 8ABB out 0x1a,R24
00B6 .dbline 13
00B6 28BA out 0x18,R2
00B8 .dbline 14
00B8 87BB out 0x17,R24
00BA .dbline 15
00BA 25BA out 0x15,R2
00BC .dbline 16
00BC 24BA out 0x14,R2
00BE .dbline 17
00BE 22BA out 0x12,R2
00C0 .dbline 18
00C0 8EEF ldi R24,254
00C2 81BB out 0x11,R24
00C4 .dbline -2
00C4 L21:
00C4 .dbline 0 ; func end
00C4 0895 ret
00C6 .dbend
00C6 .dbfunc e uart0_init _uart0_init fV
.even
00C6 _uart0_init::
00C6 .dbline -1
00C6 .dbline 26
00C6 .dbline 27
00C6 2224 clr R2
00C8 2AB8 out 0xa,R2
00CA .dbline 28
00CA 2BB8 out 0xb,R2
00CC .dbline 29
00CC ; UCSRC = BIT(URSEL) | 0x06;
00CC 86E8 ldi R24,134
00CE 80BD out 0x20,R24
00D0 .dbline 30
00D0 ; UBRRL = 0x19; //set baud rate lo
00D0 89E1 ldi R24,25
00D2 89B9 out 0x9,R24
00D4 .dbline 31
00D4 ; UBRRH = 0x00; //set baud rate hi
00D4 20BC out 0x20,R2
00D6 .dbline 32
00D6 ; UCSRB = 0x98;
00D6 88E9 ldi R24,152
00D8 8AB9 out 0xa,R24
00DA .dbline -2
00DA L22:
00DA .dbline 0 ; func end
00DA 0895 ret
00DC .dbend
.area vector(rom, abs)
.org 52
0034 0C946E00 jmp _uart0_rx_isr
.area text(rom, con, rel)
00DC .dbfile E:\实验\DS1302\显示\xianshi.c
00DC .dbfunc e uart0_rx_isr _uart0_rx_isr fV
.even
00DC _uart0_rx_isr::
00DC .dbline -1
00DC .dbline 37
00DC ; }
00DC ;
00DC ; #pragma interrupt_handler uart0_rx_isr:14
00DC ; void uart0_rx_isr(void)
00DC ; {
00DC .dbline -2
00DC L23:
00DC .dbline 0 ; func end
00DC 1895 reti
00DE .dbend
00DE .dbfunc e init_devices _init_devices fV
.even
00DE _init_devices::
00DE .dbline -1
00DE .dbline 43
00DE ; //uart has received a character in UDR
00DE ; }
00DE ;
00DE ; //call this routine to initialize all peripherals
00DE ; void init_devices(void)
00DE ; {
00DE .dbline 45
00DE ; //stop errant interrupts until set up
00DE ; CLI(); //disable all interrupts
00DE F894 cli
00E0 .dbline 46
00E0 ; port_init();
00E0 E6DF xcall _port_init
00E2 .dbline 47
00E2 ; uart0_init();
00E2 F1DF xcall _uart0_init
00E4 .dbline 49
00E4 ;
00E4 ; MCUCR = 0x00;
00E4 2224 clr R2
00E6 25BE out 0x35,R2
00E8 .dbline 50
00E8 ; GICR = 0x00;
00E8 2BBE out 0x3b,R2
00EA .dbline 51
00EA ; TIMSK = 0x00; //timer interrupt sources
00EA 29BE out 0x39,R2
00EC .dbline 52
00EC ; SEI(); //re-enable interrupts
00EC 7894 sei
00EE .dbline -2
00EE L24:
00EE .dbline 0 ; func end
00EE 0895 ret
00F0 .dbend
00F0 .dbfunc e main _main fV
.even
00F0 _main::
00F0 .dbline -1
00F0 .dbline 57
00F0 ; //all peripherals are now initialized
00F0 ; }
00F0 ;
00F0 ; void main()
00F0 ; {init_devices();
00F0 .dbline 57
00F0 F6DF xcall _init_devices
00F2 04C0 xjmp L27
00F4 L26:
00F4 .dbline 59
00F4 .dbline 60
00F4 AFDF xcall _disp_bit8
00F6 .dbline 61
00F6 0AE0 ldi R16,10
00F8 10E0 ldi R17,0
00FA 9DDF xcall _delay_nms
00FC .dbline 62
00FC L27:
00FC .dbline 58
00FC FBCF xjmp L26
00FE X0:
00FE .dbline -2
00FE L25:
00FE .dbline 0 ; func end
00FE 0895 ret
0100 .dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -