📄 write_page.lis
字号:
.module write_page.c
.area text(rom, con, rel)
0000 .dbfile E:\产品\开发板\mega128-board\实验程序\I2C读写24C04\页写\write_page.c
0000 .dbfile E:\产品\开发板\mega128-board\实验程序\I2C读写24C04\页写\i2c.h
0000 .dbfunc e i2c_init _i2c_init fV
.even
0000 _i2c_init::
0000 .dbline -1
0000 .dbline 5
0000 ; #include<iom128v.h>
0000 ; #define uchar unsigned char
0000 ; #define uint unsigned int
0000 ; #include"i2c.h"
0000 ;
0000 .dbline 6
0000 ;
0000 9798 cbi 0x12,7
0002 .dbline 7
0002 ; //写一个字节
0002 81E0 ldi R24,1
0004 80937000 sts 112,R24
0008 .dbline 8
0008 ; main()
0008 80937100 sts 113,R24
000C .dbline -2
000C L1:
000C .dbline 0 ; func end
000C 0895 ret
000E .dbend
000E .dbfunc e i2c_start _i2c_start fV
.even
000E _i2c_start::
000E .dbline -1
000E .dbline 14
000E ; {
000E ; uchar aa[]={0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,0x10};
000E ; i2c_init(); //初始化
000E ; i2c_wrpage(aa,0x00,16); //字节写入
000E ; }
000E .dbline 15
000E 84EA ldi R24,164
0010 80937400 sts 116,R24
0014 L3:
0014 .dbline 16
0014 L4:
0014 .dbline 16
0014 20907400 lds R2,116
0018 27FE sbrs R2,7
001A FCCF rjmp L3
001C X0:
001C .dbline -2
001C L2:
001C .dbline 0 ; func end
001C 0895 ret
001E .dbend
001E .dbfunc e i2c_wrdata _i2c_wrdata fV
001E ; i2c_data -> R16
.even
001E _i2c_wrdata::
001E .dbline -1
001E .dbline 22
001E .dbline 23
001E 00937300 sts 115,R16
0022 .dbline 24
0022 84E8 ldi R24,132
0024 80937400 sts 116,R24
0028 L7:
0028 .dbline 25
0028 L8:
0028 .dbline 25
0028 20907400 lds R2,116
002C 27FE sbrs R2,7
002E FCCF rjmp L7
0030 X1:
0030 .dbline -2
0030 L6:
0030 .dbline 0 ; func end
0030 0895 ret
0032 .dbsym r i2c_data 16 c
0032 .dbend
0032 .dbfunc e i2c_redata _i2c_redata fc
0032 ; i2c_data -> R16
.even
0032 _i2c_redata::
0032 .dbline -1
0032 .dbline 31
0032 .dbline 33
0032 84E8 ldi R24,132
0034 80937400 sts 116,R24
0038 L11:
0038 .dbline 34
0038 L12:
0038 .dbline 34
0038 20907400 lds R2,116
003C 27FE sbrs R2,7
003E FCCF rjmp L11
0040 X2:
0040 .dbline 35
0040 00917300 lds R16,115
0044 .dbline 36
0044 .dbline -2
0044 L10:
0044 .dbline 0 ; func end
0044 0895 ret
0046 .dbsym r i2c_data 16 c
0046 .dbend
0046 .dbfunc e i2c_redataack _i2c_redataack fc
0046 ; i2c_data -> R16
.even
0046 _i2c_redataack::
0046 .dbline -1
0046 .dbline 41
0046 .dbline 43
0046 84EC ldi R24,196
0048 80937400 sts 116,R24
004C L15:
004C .dbline 44
004C L16:
004C .dbline 44
004C 20907400 lds R2,116
0050 27FE sbrs R2,7
0052 FCCF rjmp L15
0054 X3:
0054 .dbline 45
0054 00917300 lds R16,115
0058 .dbline 46
0058 .dbline -2
0058 L14:
0058 .dbline 0 ; func end
0058 0895 ret
005A .dbsym r i2c_data 16 c
005A .dbend
005A .dbfunc e i2c_stop _i2c_stop fV
.even
005A _i2c_stop::
005A .dbline -1
005A .dbline 53
005A .dbline 54
005A 84E9 ldi R24,148
005C 80937400 sts 116,R24
0060 .dbline -2
0060 L18:
0060 .dbline 0 ; func end
0060 0895 ret
0062 .dbend
0062 .dbfunc e i2c_wrbyte _i2c_wrbyte fV
0062 ; i2c_add -> R12
0062 ; i2c_data -> R10
.even
0062 _i2c_wrbyte::
0062 AA92 st -y,R10
0064 CA92 st -y,R12
0066 C22E mov R12,R18
0068 A02E mov R10,R16
006A .dbline -1
006A .dbline 59
006A L20:
006A .dbline 61
006A .dbline 62
006A D1DF xcall _i2c_start
006C .dbline 63
006C 00EA ldi R16,160
006E D7DF xcall _i2c_wrdata
0070 .dbline 64
0070 L21:
0070 .dbline 65
0070 80917100 lds R24,113
0074 887F andi R24,248
0076 8831 cpi R24,24
0078 C1F7 brne L20
007A X4:
007A .dbline 67
007A 0C2D mov R16,R12
007C D0DF xcall _i2c_wrdata
007E .dbline 68
007E 0A2D mov R16,R10
0080 CEDF xcall _i2c_wrdata
0082 .dbline 69
0082 EBDF xcall _i2c_stop
0084 .dbline -2
0084 L19:
0084 .dbline 0 ; func end
0084 C990 ld R12,y+
0086 A990 ld R10,y+
0088 0895 ret
008A .dbsym r i2c_add 12 c
008A .dbsym r i2c_data 10 c
008A .dbend
008A .dbfunc e i2c_wrpage _i2c_wrpage fV
008A ; i -> R10
008A ; i2c_nub -> y+4
008A ; i2c_add -> R10
008A ; i2c_data -> R12,R13
.even
008A _i2c_wrpage::
008A 0E940000 xcall push_xgset003C
008E A22E mov R10,R18
0090 6801 movw R12,R16
0092 .dbline -1
0092 .dbline 77
0092 L24:
0092 .dbline 80
0092 .dbline 81
0092 BDDF xcall _i2c_start
0094 .dbline 82
0094 00EA ldi R16,160
0096 C3DF xcall _i2c_wrdata
0098 .dbline 83
0098 L25:
0098 .dbline 84
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -