⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 write_page.lis

📁 这个程序是用atmega128芯片对24c04进行读写的例子
💻 LIS
📖 第 1 页 / 共 2 页
字号:
 0098 80917100          lds R24,113
 009C 887F              andi R24,248
 009E 8831              cpi R24,24
 00A0 C1F7              brne L24
 00A2           X5:
 00A2                   .dbline 86
 00A2 0A2D              mov R16,R10
 00A4 BCDF              xcall _i2c_wrdata
 00A6                   .dbline 87
 00A6 AA24              clr R10
 00A8 05C0              xjmp L30
 00AA           L27:
 00AA                   .dbline 88
 00AA                   .dbline 89
 00AA F601              movw R30,R12
 00AC 0191              ld R16,Z+
 00AE 6F01              movw R12,R30
 00B0 B6DF              xcall _i2c_wrdata
 00B2                   .dbline 90
 00B2           L28:
 00B2                   .dbline 87
 00B2 A394              inc R10
 00B4           L30:
 00B4                   .dbline 87
 00B4 0C80              ldd R0,y+4
 00B6 A014              cp R10,R0
 00B8 C0F3              brlo L27
 00BA           X6:
 00BA                   .dbline 91
 00BA CFDF              xcall _i2c_stop
 00BC                   .dbline -2
 00BC           L23:
 00BC                   .dbline 0 ; func end
 00BC 0C940000          xjmp pop_xgset003C
 00C0                   .dbsym r i 10 c
 00C0                   .dbsym l i2c_nub 4 c
 00C0                   .dbsym r i2c_add 10 c
 00C0                   .dbsym r i2c_data 12 pc
 00C0                   .dbend
 00C0                   .dbfunc e i2c_rebyte _i2c_rebyte fc
 00C0           ;       i2c_data -> R10
 00C0           ;        i2c_add -> R10
                        .even
 00C0           _i2c_rebyte::
 00C0 AA92              st -y,R10
 00C2 A02E              mov R10,R16
 00C4                   .dbline -1
 00C4                   .dbline 96
 00C4           L32:
 00C4                   .dbline 99
 00C4                   .dbline 100
 00C4 A4DF              xcall _i2c_start
 00C6                   .dbline 101
 00C6 00EA              ldi R16,160
 00C8 AADF              xcall _i2c_wrdata
 00CA                   .dbline 102
 00CA           L33:
 00CA                   .dbline 103
 00CA 80917100          lds R24,113
 00CE 887F              andi R24,248
 00D0 8831              cpi R24,24
 00D2 C1F7              brne L32
 00D4           X7:
 00D4                   .dbline 105
 00D4 0A2D              mov R16,R10
 00D6 A3DF              xcall _i2c_wrdata
 00D8                   .dbline 106
 00D8 9ADF              xcall _i2c_start
 00DA                   .dbline 107
 00DA 01EA              ldi R16,161
 00DC A0DF              xcall _i2c_wrdata
 00DE                   .dbline 108
 00DE A9DF              xcall _i2c_redata
 00E0 A02E              mov R10,R16
 00E2                   .dbline 109
 00E2 BBDF              xcall _i2c_stop
 00E4                   .dbline 110
 00E4 0A2D              mov R16,R10
 00E6                   .dbline -2
 00E6           L31:
 00E6                   .dbline 0 ; func end
 00E6 A990              ld R10,y+
 00E8 0895              ret
 00EA                   .dbsym r i2c_data 10 c
 00EA                   .dbsym r i2c_add 10 c
 00EA                   .dbend
 00EA                   .dbfunc e i2c_rese _i2c_rese fV
 00EA           ;              i -> R10
 00EA           ;        i2c_nub -> y+4
 00EA           ;        i2c_add -> R10
 00EA           ;       i2c_data -> R20,R21
                        .even
 00EA           _i2c_rese::
 00EA 0E940000          xcall push_xgset300C
 00EE A22E              mov R10,R18
 00F0 A801              movw R20,R16
 00F2                   .dbline -1
 00F2                   .dbline 119
 00F2           L36:
 00F2                   .dbline 122
 00F2                   .dbline 123
 00F2 8DDF              xcall _i2c_start
 00F4                   .dbline 124
 00F4 00EA              ldi R16,160
 00F6 93DF              xcall _i2c_wrdata
 00F8                   .dbline 125
 00F8           L37:
 00F8                   .dbline 126
 00F8 80917100          lds R24,113
 00FC 887F              andi R24,248
 00FE 8831              cpi R24,24
 0100 C1F7              brne L36
 0102           X8:
 0102                   .dbline 128
 0102 0A2D              mov R16,R10
 0104 8CDF              xcall _i2c_wrdata
 0106                   .dbline 129
 0106 83DF              xcall _i2c_start
 0108                   .dbline 130
 0108 01EA              ldi R16,161
 010A 89DF              xcall _i2c_wrdata
 010C                   .dbline 131
 010C AA24              clr R10
 010E 06C0              xjmp L42
 0110           L39:
 0110                   .dbline 132
 0110                   .dbline 133
 0110 9ADF              xcall _i2c_redataack
 0112 FA01              movw R30,R20
 0114 0083              std z+0,R16
 0116                   .dbline 134
 0116 4F5F              subi R20,255  ; offset = 1
 0118 5F4F              sbci R21,255
 011A                   .dbline 135
 011A           L40:
 011A                   .dbline 131
 011A A394              inc R10
 011C           L42:
 011C                   .dbline 131
 011C 8C81              ldd R24,y+4
 011E 8150              subi R24,1
 0120 A816              cp R10,R24
 0122 B0F3              brlo L39
 0124           X9:
 0124                   .dbline 136
 0124 86DF              xcall _i2c_redata
 0126 FA01              movw R30,R20
 0128 0083              std z+0,R16
 012A                   .dbline 137
 012A 97DF              xcall _i2c_stop
 012C                   .dbline -2
 012C           L35:
 012C                   .dbline 0 ; func end
 012C 0C940000          xjmp pop_xgset300C
 0130                   .dbsym r i 10 c
 0130                   .dbsym l i2c_nub 4 c
 0130                   .dbsym r i2c_add 10 c
 0130                   .dbsym r i2c_data 20 pc
 0130                   .dbend
                        .area lit(rom, con, rel)
 0000           L44:
 0000 0102              .byte 1,2
 0002 0304              .byte 3,4
 0004 0506              .byte 5,6
 0006 0708              .byte 7,8
 0008 090A              .byte 9,10
 000A 0B0C              .byte 11,12
 000C 0D0E              .byte 13,14
 000E 0F10              .byte 15,16
                        .area text(rom, con, rel)
 0130                   .dbfile E:\产品\开发板\mega128-board\实验程序\I2C读写24C04\页写\i2c.h
 0130                   .dbfile E:\产品\开发板\mega128-board\实验程序\I2C读写24C04\页写\write_page.c
 0130                   .dbfunc e main _main fI
 0130           ;             aa -> y+1
                        .even
 0130           _main::
 0130 6197              sbiw R28,17
 0132                   .dbline -1
 0132                   .dbline 9
 0132                   .dbline 10
 0132 80E0              ldi R24,<L44
 0134 90E0              ldi R25,>L44
 0136 FE01              movw R30,R28
 0138 3196              adiw R30,1
 013A 00E1              ldi R16,16
 013C 10E0              ldi R17,0
 013E FA93              st -y,R31
 0140 EA93              st -y,R30
 0142 9A93              st -y,R25
 0144 8A93              st -y,R24
 0146 0E940000          xcall asgncblkx
 014A                   .dbline 11
 014A 5ADF              xcall _i2c_init
 014C                   .dbline 12
 014C 80E1              ldi R24,16
 014E 8883              std y+0,R24
 0150 2227              clr R18
 0152 8E01              movw R16,R28
 0154 0F5F              subi R16,255  ; offset = 1
 0156 1F4F              sbci R17,255
 0158 98DF              xcall _i2c_wrpage
 015A                   .dbline -2
 015A           L43:
 015A                   .dbline 0 ; func end
 015A 6196              adiw R28,17
 015C 0895              ret
 015E                   .dbsym l aa 1 A[16:16]c
 015E                   .dbend

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -