📄 24cxxmain.lis
字号:
.module _24CxxMain.c
.area text(rom, con, rel)
0000 .dbfile E:\avr\m16_twi_24x\24CxxMain.c
0000 .dbfunc e main _main fV
0000 ; y -> R14,R15
0000 ; x -> R10,R11
0000 ; w -> R12,R13
0000 ; b -> R20,R21
0000 ; r -> R22,R23
0000 ; c -> y+4
0000 ; i -> y+2
.even
0000 _main::
0000 2697 sbiw R28,6
0002 .dbline -1
0002 .dbline 13
0002 ; #include<iom16v.h>
0002 ; #include<macros.h>
0002 ; #include"xd.h"
0002 ; #define XDmain
0002 ; #include"xdprj.h"
0002 ;
0002 ;
0002 ; uchar r_buf[64];
0002 ;
0002 ; uchar w_buf[64];
0002 ;
0002 ; void main()
0002 ; {
0002 .dbline 24
0002 ; uint i;
0002 ;
0002 ; uchar *r;
0002 ; uint b;
0002 ; uint c;
0002 ;
0002 ; uchar *w;
0002 ; uint x;
0002 ; uint y;
0002 ;
0002 ; tms(100);
0002 04E6 ldi R16,100
0004 0E940000 xcall _tms
0008 .dbline 27
0008 ;
0008 ; //-----初始化cpu------
0008 ; setreg_m16(); //初始化cpu
0008 A3D0 xcall _setreg_m16
000A .dbline 30
000A ;
000A ;
000A ; for(i=0;i<64;i++) //清主机读和写缓存区
000A 0024 clr R0
000C 1124 clr R1
000E 1B82 std y+3,R1
0010 0A82 std y+2,R0
0012 14C0 xjmp L5
0014 L2:
0014 .dbline 31
0014 80E0 ldi R24,<_w_buf
0016 90E0 ldi R25,>_w_buf
0018 EA81 ldd R30,y+2
001A FB81 ldd R31,y+3
001C E80F add R30,R24
001E F91F adc R31,R25
0020 2224 clr R2
0022 2082 std z+0,R2
0024 80E0 ldi R24,<_r_buf
0026 90E0 ldi R25,>_r_buf
0028 EA81 ldd R30,y+2
002A FB81 ldd R31,y+3
002C E80F add R30,R24
002E F91F adc R31,R25
0030 2082 std z+0,R2
0032 L3:
0032 .dbline 30
0032 8A81 ldd R24,y+2
0034 9B81 ldd R25,y+3
0036 0196 adiw R24,1
0038 9B83 std y+3,R25
003A 8A83 std y+2,R24
003C L5:
003C .dbline 30
003C 8A81 ldd R24,y+2
003E 9B81 ldd R25,y+3
0040 8034 cpi R24,64
0042 E0E0 ldi R30,0
0044 9E07 cpc R25,R30
0046 30F3 brlo L2
0048 .dbline 33
0048 ; r_buf[i]=w_buf[i]=0;
0048 ;
0048 ; for(i=0;i<64;i++) //写缓存区赋初值
0048 0024 clr R0
004A 1124 clr R1
004C 1B82 std y+3,R1
004E 0A82 std y+2,R0
0050 0EC0 xjmp L9
0052 L6:
0052 .dbline 34
0052 80E0 ldi R24,<_w_buf
0054 90E0 ldi R25,>_w_buf
0056 EA81 ldd R30,y+2
0058 FB81 ldd R31,y+3
005A E80F add R30,R24
005C F91F adc R31,R25
005E 2A80 ldd R2,y+2
0060 3B80 ldd R3,y+3
0062 2082 std z+0,R2
0064 L7:
0064 .dbline 33
0064 8A81 ldd R24,y+2
0066 9B81 ldd R25,y+3
0068 0196 adiw R24,1
006A 9B83 std y+3,R25
006C 8A83 std y+2,R24
006E L9:
006E .dbline 33
006E 8A81 ldd R24,y+2
0070 9B81 ldd R25,y+3
0072 8034 cpi R24,64
0074 E0E0 ldi R30,0
0076 9E07 cpc R25,R30
0078 60F3 brlo L6
007A .dbline 36
007A ; w_buf[i]=i;
007A ;
007A ; r=r_buf; //读参数
007A 60E0 ldi R22,<_r_buf
007C 70E0 ldi R23,>_r_buf
007E .dbline 37
007E ; b=0x00;
007E 4427 clr R20
0080 5527 clr R21
0082 .dbline 38
0082 ; c=64;
0082 80E4 ldi R24,64
0084 90E0 ldi R25,0
0086 9D83 std y+5,R25
0088 8C83 std y+4,R24
008A .dbline 40
008A ;
008A ; w=w_buf; //写参数
008A 80E0 ldi R24,<_w_buf
008C 90E0 ldi R25,>_w_buf
008E 6C01 movw R12,R24
0090 .dbline 41
0090 ; x=0x00;
0090 AA24 clr R10
0092 BB24 clr R11
0094 .dbline 42
0094 ; y=64;
0094 80E4 ldi R24,64
0096 90E0 ldi R25,0
0098 7C01 movw R14,R24
009A .dbline 44
009A ;
009A ; wt24c(w,x,y); //写
009A F982 std y+1,R15
009C E882 std y+0,R14
009E 9501 movw R18,R10
00A0 8601 movw R16,R12
00A2 0E940000 xcall _wt24c
00A6 .dbline 46
00A6 ;
00A6 ; rd24c(r,b,c); //读
00A6 0C80 ldd R0,y+4
00A8 1D80 ldd R1,y+5
00AA 1982 std y+1,R1
00AC 0882 std y+0,R0
00AE 9A01 movw R18,R20
00B0 8B01 movw R16,R22
00B2 0E940000 xcall _rd24c
00B6 .dbline 49
00B6 ;
00B6 ; //-----读出的数据发送到PC-----
00B6 ; for(i=0;i<64;i++)
00B6 0024 clr R0
00B8 1124 clr R1
00BA 1B82 std y+3,R1
00BC 0A82 std y+2,R0
00BE 13C0 xjmp L13
00C0 L10:
00C0 .dbline 50
00C0 80E0 ldi R24,<_r_buf
00C2 90E0 ldi R25,>_r_buf
00C4 EA81 ldd R30,y+2
00C6 FB81 ldd R31,y+3
00C8 E80F add R30,R24
00CA F91F adc R31,R25
00CC 2080 ldd R2,z+0
00CE 80E0 ldi R24,<_txd_buf
00D0 90E0 ldi R25,>_txd_buf
00D2 EA81 ldd R30,y+2
00D4 FB81 ldd R31,y+3
00D6 E80F add R30,R24
00D8 F91F adc R31,R25
00DA 2082 std z+0,R2
00DC L11:
00DC .dbline 49
00DC 8A81 ldd R24,y+2
00DE 9B81 ldd R25,y+3
00E0 0196 adiw R24,1
00E2 9B83 std y+3,R25
00E4 8A83 std y+2,R24
00E6 L13:
00E6 .dbline 49
00E6 8A81 ldd R24,y+2
00E8 9B81 ldd R25,y+3
00EA 8034 cpi R24,64
00EC E0E0 ldi R30,0
00EE 9E07 cpc R25,R30
00F0 38F3 brlo L10
00F2 .dbline 52
00F2 ; txd_buf[i]=r_buf[i];
00F2 ;
00F2 ; txd_buf[69]=syserr;
00F2 2090C600 lds R2,_syserr
00F6 2092C500 sts _txd_buf+69,R2
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -