📄 1.lis
字号:
.module _1.c
.area data(ram, con, rel)
0000 _disp::
0000 .blkb 2
.area idata
0000 C0F9 .byte 192,249
.area data(ram, con, rel)
0002 .blkb 2
.area idata
0002 A4B0 .byte 164,176
.area data(ram, con, rel)
0004 .blkb 2
.area idata
0004 9992 .byte 153,146
.area data(ram, con, rel)
0006 .blkb 2
.area idata
0006 82F8 .byte 130,248
.area data(ram, con, rel)
0008 .blkb 2
.area idata
0008 8090 .byte 128,144
.area data(ram, con, rel)
000A .dbfile E:\MYAVRW~1\SPI双~1\1.c
000A .dbsym e disp _disp A[10:10]c
.area text(rom, con, rel)
0000 .dbfile E:\MYAVRW~1\SPI双~1\1.c
0000 .dbfunc e delayms _delayms fV
0000 ; a -> R16
.even
0000 _delayms::
0000 .dbline -1
0000 .dbline 5
0000 ; #include < iom16v.h>
0000 ; #include <macros.h>
0000 ; unsigned char disp[] = {0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
0000 ; void delayms(void)
0000 ; {
0000 .dbline 7
0000 ; char a;
0000 ; for(a=0;a<141;a++)
0000 0027 clr R16
0002 01C0 xjmp L5
0004 L2:
0004 .dbline 8
0004 L3:
0004 .dbline 7
0004 0395 inc R16
0006 L5:
0006 .dbline 7
0006 0D38 cpi R16,141
0008 E8F3 brlo L2
000A .dbline -2
000A L1:
000A .dbline 0 ; func end
000A 0895 ret
000C .dbsym r a 16 c
000C .dbend
000C .dbfunc e delay _delay fV
000C ; b -> R20,R21
000C ; a -> R22,R23
.even
000C _delay::
000C 0E940000 xcall push_gset2
0010 B801 movw R22,R16
0012 .dbline -1
0012 .dbline 11
0012 ; ;
0012 ; }
0012 ; void delay(int a)
0012 ; {
0012 .dbline 13
0012 ; int b;
0012 ; for(b=0;b<a;b++)
0012 4427 clr R20
0014 5527 clr R21
0016 03C0 xjmp L10
0018 L7:
0018 .dbline 14
0018 F3DF xcall _delayms
001A L8:
001A .dbline 13
001A 4F5F subi R20,255 ; offset = 1
001C 5F4F sbci R21,255
001E L10:
001E .dbline 13
001E 4617 cp R20,R22
0020 5707 cpc R21,R23
0022 D4F3 brlt L7
0024 .dbline -2
0024 L6:
0024 0E940000 xcall pop_gset2
0028 .dbline 0 ; func end
0028 0895 ret
002A .dbsym r b 20 I
002A .dbsym r a 22 I
002A .dbend
002A .dbfunc e Spi_init _Spi_init fV
.even
002A _Spi_init::
002A .dbline -1
002A .dbline 17
002A ; delayms();
002A ; }
002A ; void Spi_init()
002A ; {
002A .dbline 18
002A ; DDRB|=(1<<7)|(1<<5)|(1<<4);
002A 87B3 in R24,0x17
002C 806B ori R24,176
002E 87BB out 0x17,R24
0030 .dbline 19
0030 ; SPCR=0x73;
0030 83E7 ldi R24,115
0032 8DB9 out 0xd,R24
0034 .dbline 20
0034 ; SPSR=0x00;
0034 2224 clr R2
0036 2EB8 out 0xe,R2
0038 .dbline -2
0038 L11:
0038 .dbline 0 ; func end
0038 0895 ret
003A .dbend
003A .dbfunc e Spi_Transmit _Spi_Transmit fV
003A ; a -> R16,R17
.even
003A _Spi_Transmit::
003A .dbline -1
003A .dbline 23
003A ; }
003A ; void Spi_Transmit(int a)
003A ; {
003A .dbline 24
003A ; PORTB&=~(1<<4);
003A C498 cbi 0x18,4
003C .dbline 25
003C ; SPCR |= (1<<MSTR); // MSTR有时会被清零,这里强制进入主机模式
003C 6C9A sbi 0xd,4
003E .dbline 26
003E ; SPDR=a;
003E 0FB9 out 0xf,R16
0040 L13:
0040 .dbline 27
0040 L14:
0040 .dbline 27
0040 ; while(SPSR^0X80);
0040 80E8 ldi R24,128
0042 90E0 ldi R25,0
0044 2EB0 in R2,0xe
0046 3324 clr R3
0048 2826 eor R2,R24
004A 3926 eor R3,R25
004C 2220 tst R2
004E C1F7 brne L13
0050 3320 tst R3
0052 B1F7 brne L13
0054 X0:
0054 .dbline 28
0054 ; PORTB|=(1<<4);
0054 C49A sbi 0x18,4
0056 .dbline -2
0056 L12:
0056 .dbline 0 ; func end
0056 0895 ret
0058 .dbsym r a 16 I
0058 .dbend
0058 .dbfunc e main _main fV
0058 ; data -> R20
.even
0058 _main::
0058 .dbline -1
0058 .dbline 33
0058 ;
0058 ; }
0058 ;
0058 ; void main()
0058 ; {
0058 .dbline 35
0058 ; unsigned char data;
0058 ; DDRA=0x00;
0058 2224 clr R2
005A 2ABA out 0x1a,R2
005C .dbline 36
005C ; PORTA=0xFF;
005C 8FEF ldi R24,255
005E 8BBB out 0x1b,R24
0060 .dbline 37
0060 ; DDRB=0xFF;
0060 87BB out 0x17,R24
0062 .dbline 38
0062 ; PORTB=0xFF;
0062 88BB out 0x18,R24
0064 .dbline 39
0064 ; DDRC=0x00;
0064 24BA out 0x14,R2
0066 .dbline 40
0066 ; PORTC=0x00;
0066 25BA out 0x15,R2
0068 .dbline 41
0068 ; DDRD=0x00;
0068 21BA out 0x11,R2
006A .dbline 42
006A ; PORTD=0x00;
006A 22BA out 0x12,R2
006C .dbline 44
006C ;
006C ; Spi_init();
006C DEDF xcall _Spi_init
006E 0BC0 xjmp L18
0070 L17:
0070 .dbline 47
0070 ;
0070 ; while(1)
0070 ; {
0070 .dbline 48
0070 ; for(data=0;data<111;data++)
0070 4427 clr R20
0072 07C0 xjmp L23
0074 L20:
0074 .dbline 50
0074 .dbline 51
0074 08EE ldi R16,1000
0076 13E0 ldi R17,3
0078 C9DF xcall _delay
007A .dbline 52
007A 042F mov R16,R20
007C 1127 clr R17
007E DDDF xcall _Spi_Transmit
0080 .dbline 54
0080 L21:
0080 .dbline 48
0080 4395 inc R20
0082 L23:
0082 .dbline 48
0082 4F36 cpi R20,111
0084 B8F3 brlo L20
0086 .dbline 61
0086 L18:
0086 .dbline 46
0086 F4CF xjmp L17
0088 X1:
0088 .dbline -2
0088 L16:
0088 .dbline 0 ; func end
0088 0895 ret
008A .dbsym r data 20 c
008A .dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -