📄 main.lis
字号:
.module main.c
.area text(rom, con, rel)
0000 .dbfile D:\AVR\我的程序\同步串口SPI实验/cfg.h
0000 .dbfunc e delay_ms _delay_ms fV
0000 ; i -> R20,R21
0000 ; time -> R16,R17
.even
0000 _delay_ms::
0000 0E940000 xcall push_gset1
0004 .dbline -1
0004 .dbline 10
0004 ; /***********************************
0004 ; *实验目的:熟悉SPI操作及数码管显示
0004 ; *设 计:萧联珠
0004 ; *日 期:2007-11-20
0004 ; ************************************/
0004 ; #include <iom16v.h>
0004 ; #include "cfg.h"
0004 ;
0004 ; unsigned char disp[10] = {0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
0004 ;
0004 .dbline 12
0004 ;
0004 ; void main(void)
0004 0AC0 xjmp L5
0006 L2:
0006 .dbline 13
0006 4427 clr R20
0008 5527 clr R21
000A L6:
000A .dbline 13
000A L7:
000A .dbline 13
000A 4F5F subi R20,255 ; offset = 1
000C 5F4F sbci R21,255
000E .dbline 13
000E 483E cpi R20,232
0010 E3E0 ldi R30,3
0012 5E07 cpc R21,R30
0014 D4F3 brlt L6
0016 L3:
0016 .dbline 12
0016 0150 subi R16,1
0018 1040 sbci R17,0
001A L5:
001A .dbline 12
001A 2224 clr R2
001C 3324 clr R3
001E 2016 cp R2,R16
0020 3106 cpc R3,R17
0022 8CF3 brlt L2
0024 .dbline -2
0024 L1:
0024 0E940000 xcall pop_gset1
0028 .dbline 0 ; func end
0028 0895 ret
002A .dbsym r i 20 I
002A .dbsym r time 16 I
002A .dbend
002A .dbfunc e port_init _port_init fV
.even
002A _port_init::
002A .dbline -1
002A .dbline 18
002A ; {
002A ;
002A ; unsigned char i = 0;
002A ; unsigned int flag_num;
002A ;
002A ; DDRB = 0xFF; /*PB口设置为输出*/
002A .dbline 19
002A ; PORTB = 0xF0; /*选通数码管*/
002A 8D9A sbi 0x11,5
002C .dbline 20
002C ;
002C 959A sbi 0x12,5
002E .dbline -2
002E L10:
002E .dbline 0 ; func end
002E 0895 ret
0030 .dbend
0030 .dbfunc e SPI_MasterInit _SPI_MasterInit fV
.even
0030 _SPI_MasterInit::
0030 .dbline -1
0030 .dbline 24
0030 ; SPI_MasterInit();
0030 ;
0030 ; while (1)
0030 ; {
0030 .dbline 26
0030 ; for(flag_num=0;flag_num<10;flag_num++)
0030 ; {
0030 87B3 in R24,0x17
0032 806A ori R24,160
0034 87BB out 0x17,R24
0036 .dbline 27
0036 ; SPI_595_Out(disp[flag_num]);
0036 83E5 ldi R24,83
0038 8DB9 out 0xd,R24
003A .dbline -2
003A L11:
003A .dbline 0 ; func end
003A 0895 ret
003C .dbend
003C .dbfunc e SPI_MasterTransmit _SPI_MasterTransmit fV
003C ; i -> R16
.even
003C _SPI_MasterTransmit::
003C .dbline -1
003C .dbline 33
003C ; delay_ms(200);
003C ; }
003C ; }
003C ; }
003C ; }
003C ; }
003C .dbline 35
003C ; }
003C ; }
003C 0FB9 out 0xf,R16
003E L13:
003E .dbline 36
003E L14:
003E .dbline 36
003E ; }
003E 779B sbis 0xe,7
0040 FECF rjmp L13
0042 .dbline -2
0042 L12:
0042 .dbline 0 ; func end
0042 0895 ret
0044 .dbsym r i 16 c
0044 .dbend
0044 .dbfunc e SPI_595_Out _SPI_595_Out fV
0044 ; i -> R20
.even
0044 _SPI_595_Out::
0044 0E940000 xcall push_gset1
0048 402F mov R20,R16
004A .dbline -1
004A .dbline 41
004A ; }
004A ; }
004A ; }
004A ; }
004A ; }
004A .dbline 42
004A ; }
004A C498 cbi 0x18,4
004C .dbline 43
004C ; }
004C 042F mov R16,R20
004E F6DF xcall _SPI_MasterTransmit
0050 .dbline 44
0050 ; }
0050 C49A sbi 0x18,4
0052 .dbline -2
0052 L16:
0052 0E940000 xcall pop_gset1
0056 .dbline 0 ; func end
0056 0895 ret
0058 .dbsym r i 20 c
0058 .dbend
.area data(ram, con, rel)
0000 .dbfile D:\AVR\我的程序\同步串口SPI实验/cfg.h
0000 _disp::
0000 .blkb 2
.area idata
0000 C0F9 .byte 192,249
.area data(ram, con, rel)
0002 .dbfile D:\AVR\我的程序\同步串口SPI实验/cfg.h
0002 .blkb 2
.area idata
0002 A4B0 .byte 164,176
.area data(ram, con, rel)
0004 .dbfile D:\AVR\我的程序\同步串口SPI实验/cfg.h
0004 .blkb 2
.area idata
0004 9992 .byte 153,146
.area data(ram, con, rel)
0006 .dbfile D:\AVR\我的程序\同步串口SPI实验/cfg.h
0006 .blkb 2
.area idata
0006 82F8 .byte 130,248
.area data(ram, con, rel)
0008 .dbfile D:\AVR\我的程序\同步串口SPI实验/cfg.h
0008 .blkb 2
.area idata
0008 8090 .byte 128,144
.area data(ram, con, rel)
000A .dbfile D:\AVR\我的程序\同步串口SPI实验/cfg.h
000A .dbfile D:\AVR\我的程序\同步串口SPI实验\main.c
000A .dbsym e disp _disp A[10:10]c
.area text(rom, con, rel)
0058 .dbfile D:\AVR\我的程序\同步串口SPI实验\main.c
0058 .dbfunc e main _main fV
0058 ; i -> R20
0058 ; flag_num -> R20,R21
.even
0058 _main::
0058 .dbline -1
0058 .dbline 13
0058 .dbline 15
0058 4427 clr R20
005A .dbline 18
005A 8FEF ldi R24,255
005C 87BB out 0x17,R24
005E .dbline 19
005E 80EF ldi R24,240
0060 88BB out 0x18,R24
0062 .dbline 21
0062 E6DF xcall _SPI_MasterInit
0064 13C0 xjmp L19
0066 L18:
0066 .dbline 24
0066 .dbline 25
0066 4427 clr R20
0068 5527 clr R21
006A 0CC0 xjmp L24
006C L21:
006C .dbline 26
006C .dbline 27
006C 80E0 ldi R24,<_disp
006E 90E0 ldi R25,>_disp
0070 FA01 movw R30,R20
0072 E80F add R30,R24
0074 F91F adc R31,R25
0076 0081 ldd R16,z+0
0078 E5DF xcall _SPI_595_Out
007A .dbline 28
007A 08EC ldi R16,200
007C 10E0 ldi R17,0
007E C0DF xcall _delay_ms
0080 .dbline 29
0080 L22:
0080 .dbline 25
0080 4F5F subi R20,255 ; offset = 1
0082 5F4F sbci R21,255
0084 L24:
0084 .dbline 25
0084 4A30 cpi R20,10
0086 E0E0 ldi R30,0
0088 5E07 cpc R21,R30
008A 80F3 brlo L21
008C .dbline 30
008C L19:
008C .dbline 23
008C ECCF xjmp L18
008E X0:
008E .dbline -2
008E L17:
008E .dbline 0 ; func end
008E 0895 ret
0090 .dbsym r i 20 c
0090 .dbsym r flag_num 20 i
0090 .dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -