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

📄 main.lis

📁 一个基于ATMEGA128的TWI(I2C)EEPROM-24c01的程序
💻 LIS
字号:
                        .module main.c
                        .area text(rom, con, rel)
 0000                   .dbfile D:\avrvi\AVRVi_m128_Starter_Kit\TWI_24C01\source\main.c
 0000                   .dbfunc e main _main fV
 0000           ;              w -> R12,R13
 0000           ;              r -> R22,R23
 0000           ;              y -> R10,R11
 0000           ;              x -> y+2
 0000           ;              b -> R14,R15
 0000           ;              a -> R20,R21
 0000           ;              i -> R4,R5
                        .even
 0000           _main::
 0000 2497              sbiw R28,4
 0002                   .dbline -1
 0002                   .dbline 15
 0002           ; /************************************************
 0002           ; 文件:main.c
 0002           ; 用途:
 0002           ; 注意:内部8M晶振
 0002           ; 创建:2008.4.1
 0002           ; 修改:2008.4.1
 0002           ; Copy Right  (c)  www.avrvi.com  AVR与虚拟仪器
 0002           ; ************************************************/
 0002           ; 
 0002           ; #include "config.h"
 0002           ; 
 0002           ; unsigned char write_buff[64],read_buff[64];
 0002           ; 
 0002           ; void main(void)
 0002           ; {
 0002                   .dbline 18
 0002           ;      unsigned int i,a,b,x,y;  
 0002           ;      unsigned char *r,*w;
 0002           ;        delay_nms(100);
 0002 04E6              ldi R16,100
 0004 10E0              ldi R17,0
 0006 0E940000          xcall _delay_nms
 000A                   .dbline 19
 000A           ;      twi_init();      //初始化cpu
 000A 0E940000          xcall _twi_init
 000E                   .dbline 21
 000E 4424              clr R4
 0010 5524              clr R5
 0012 10C0              xjmp L5
 0014           L2:
 0014                   .dbline 21
 0014 80E0              ldi R24,<_write_buff
 0016 90E0              ldi R25,>_write_buff
 0018 F201              movw R30,R4
 001A E80F              add R30,R24
 001C F91F              adc R31,R25
 001E 2224              clr R2
 0020 2082              std z+0,R2
 0022 80E0              ldi R24,<_read_buff
 0024 90E0              ldi R25,>_read_buff
 0026 F201              movw R30,R4
 0028 E80F              add R30,R24
 002A F91F              adc R31,R25
 002C 2082              std z+0,R2
 002E           L3:
 002E                   .dbline 21
 002E C201              movw R24,R4
 0030 0196              adiw R24,1
 0032 2C01              movw R4,R24
 0034           L5:
 0034                   .dbline 21
 0034           ; 
 0034           ;        for(i=0;i<64;i++)      read_buff[i]=write_buff[i]=0;//清主机读和写缓存区
 0034 C201              movw R24,R4
 0036 8034              cpi R24,64
 0038 E0E0              ldi R30,0
 003A 9E07              cpc R25,R30
 003C 58F3              brlo L2
 003E                   .dbline 22
 003E 4424              clr R4
 0040 5524              clr R5
 0042 0AC0              xjmp L9
 0044           L6:
 0044                   .dbline 22
 0044 80E0              ldi R24,<_write_buff
 0046 90E0              ldi R25,>_write_buff
 0048 F201              movw R30,R4
 004A E80F              add R30,R24
 004C F91F              adc R31,R25
 004E 242C              mov R2,R4
 0050 2082              std z+0,R2
 0052           L7:
 0052                   .dbline 22
 0052 C201              movw R24,R4
 0054 0196              adiw R24,1
 0056 2C01              movw R4,R24
 0058           L9:
 0058                   .dbline 22
 0058           ;        for(i=0;i<64;i++)      write_buff[i]=i;//写缓存区赋初值
 0058 C201              movw R24,R4
 005A 8034              cpi R24,64
 005C E0E0              ldi R30,0
 005E 9E07              cpc R25,R30
 0060 88F3              brlo L6
 0062                   .dbline 24
 0062           ; 
 0062           ;      r=read_buff;     //读参数
 0062 60E0              ldi R22,<_read_buff
 0064 70E0              ldi R23,>_read_buff
 0066                   .dbline 25
 0066           ;      b=0x00;
 0066 EE24              clr R14
 0068 FF24              clr R15
 006A                   .dbline 26
 006A           ;      a=64;
 006A 40E4              ldi R20,64
 006C 50E0              ldi R21,0
 006E                   .dbline 28
 006E           ; 
 006E           ;      w=write_buff;    //写参数
 006E 80E0              ldi R24,<_write_buff
 0070 90E0              ldi R25,>_write_buff
 0072 6C01              movw R12,R24
 0074                   .dbline 29
 0074           ;      x=0x00;
 0074 0024              clr R0
 0076 1124              clr R1
 0078 1B82              std y+3,R1
 007A 0A82              std y+2,R0
 007C                   .dbline 30
 007C           ;      y=64;
 007C 80E4              ldi R24,64
 007E 90E0              ldi R25,0
 0080 5C01              movw R10,R24
 0082                   .dbline 32
 0082           ; 
 0082           ;      wt24c(w,x,y);    //写
 0082 B982              std y+1,R11
 0084 A882              std y+0,R10
 0086 9001              movw R18,R0
 0088 8601              movw R16,R12
 008A 4F92              push R4
 008C 5F92              push R5
 008E 0E940000          xcall _wt24c
 0092 5F90              pop R5
 0094 4F90              pop R4
 0096                   .dbline 33
 0096           ;      rd24c(r,b,a);    //读
 0096 5983              std y+1,R21
 0098 4883              std y+0,R20
 009A 9701              movw R18,R14
 009C 8B01              movw R16,R22
 009E 4F92              push R4
 00A0 5F92              push R5
 00A2 0E940000          xcall _rd24c
 00A6 5F90              pop R5
 00A8 4F90              pop R4
 00AA           L10:
 00AA                   .dbline 35
 00AA           L11:
 00AA                   .dbline 35
 00AA FFCF              xjmp L10
 00AC           X0:
 00AC                   .dbline -2
 00AC           L1:
 00AC 2496              adiw R28,4
 00AE                   .dbline 0 ; func end
 00AE 0895              ret
 00B0                   .dbsym r w 12 pc
 00B0                   .dbsym r r 22 pc
 00B0                   .dbsym r y 10 i
 00B0                   .dbsym l x 2 i
 00B0                   .dbsym r b 14 i
 00B0                   .dbsym r a 20 i
 00B0                   .dbsym r i 4 i
 00B0                   .dbend
                        .area bss(ram, con, rel)
 0000                   .dbfile D:\avrvi\AVRVi_m128_Starter_Kit\TWI_24C01\source\main.c
 0000           _read_buff::
 0000                   .blkb 64
 0040                   .dbsym e read_buff _read_buff A[64:64]c
 0040           _write_buff::
 0040                   .blkb 64
 0080                   .dbsym e write_buff _write_buff A[64:64]c

⌨️ 快捷键说明

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