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

📄 m16_eeprom.lis

📁 我最近使用的一些程序代码
💻 LIS
📖 第 1 页 / 共 2 页
字号:
 007E E59B              sbis 0x1c,5
 0080 03C0              rjmp L17
 0082                   .dbline 38
 0082 04E0              ldi R16,4
 0084 10E0              ldi R17,0
 0086 BCDF              xcall _DelayMs
 0088           L17:
 0088                   .dbline 39
 0088           ;  EEARH=Address>>8;
 0088 1B01              movw R2,R22
 008A 232C              mov R2,R3
 008C 3324              clr R3
 008E 2FBA              out 0x1f,R2
 0090                   .dbline 40
 0090           ;  EEARL=Address&0x00ff;
 0090 CB01              movw R24,R22
 0092 9070              andi R25,0
 0094 8EBB              out 0x1e,R24
 0096                   .dbline 41
 0096           ;  EEDR=Data;
 0096 4DBB              out 0x1d,R20
 0098                   .dbline 42
 0098           ;  EECR=EECR|0x04;
 0098 E29A              sbi 0x1c,2
 009A                   .dbline 43
 009A           ;  EECR=EECR|0x02;
 009A E19A              sbi 0x1c,1
 009C                   .dbline 44
 009C           ;  DelayMs(4);
 009C 04E0              ldi R16,4
 009E 10E0              ldi R17,0
 00A0 AFDF              xcall _DelayMs
 00A2                   .dbline -2
 00A2                   .dbline 45
 00A2           ; }
 00A2           L16:
 00A2 0E940000          xcall pop_gset2
 00A6                   .dbline 0 ; func end
 00A6 0895              ret
 00A8                   .dbsym r Address 22 i
 00A8                   .dbsym r Data 20 c
 00A8                   .dbend
 00A8                   .dbfunc e Read_EEPROM _Read_EEPROM fc
 00A8           ;              i -> R20
 00A8           ;        Address -> R20,R21
                        .even
 00A8           _Read_EEPROM::
 00A8 0E940000          xcall push_gset1
 00AC A801              movw R20,R16
 00AE                   .dbline -1
 00AE                   .dbline 48
 00AE           ; 
 00AE           ; uchar Read_EEPROM(uint Address)
 00AE           ; {uchar i;
 00AE                   .dbline 49
 00AE           ;  if(EECR&0x01) DelayMs(4);
 00AE E09B              sbis 0x1c,0
 00B0 03C0              rjmp L20
 00B2                   .dbline 49
 00B2 04E0              ldi R16,4
 00B4 10E0              ldi R17,0
 00B6 A4DF              xcall _DelayMs
 00B8           L20:
 00B8                   .dbline 50
 00B8           ;  EEARH=Address>>8;
 00B8 1A01              movw R2,R20
 00BA 232C              mov R2,R3
 00BC 3324              clr R3
 00BE 2FBA              out 0x1f,R2
 00C0                   .dbline 51
 00C0           ;  EEARL=Address&0x00ff;
 00C0 CA01              movw R24,R20
 00C2 9070              andi R25,0
 00C4 8EBB              out 0x1e,R24
 00C6                   .dbline 52
 00C6           ;  EECR=EECR|0x01;
 00C6 E09A              sbi 0x1c,0
 00C8                   .dbline 53
 00C8           ;  DelayMs(5);
 00C8 05E0              ldi R16,5
 00CA 10E0              ldi R17,0
 00CC 99DF              xcall _DelayMs
 00CE                   .dbline 54
 00CE           ;  i=EEDR;
 00CE                   .dbline 55
 00CE           ;  return(i);
 00CE 4DB3              in R20,0x1d
 00D0 042F              mov R16,R20
 00D2                   .dbline -2
 00D2           L19:
 00D2 0E940000          xcall pop_gset1
 00D6                   .dbline 0 ; func end
 00D6 0895              ret
 00D8                   .dbsym r i 20 c
 00D8                   .dbsym r Address 20 i
 00D8                   .dbend
 00D8                   .dbfunc e main _main fV
 00D8           ;              i -> R20
                        .even
 00D8           _main::
 00D8                   .dbline -1
 00D8                   .dbline 59
 00D8           ; }
 00D8           ; 
 00D8           ; void main(void)
 00D8           ; {uchar i;
 00D8                   .dbline 60
 00D8           ;  Init_IO();                    //初始化I/O口
 00D8 C8DF              xcall _Init_IO
 00DA                   .dbline 61
 00DA           ;  PORTA=0xff;                   //点亮以测试所有的数码管
 00DA 8FEF              ldi R24,255
 00DC 8BBB              out 0x1b,R24
 00DE                   .dbline 62
 00DE           ;  PORTC=0x00;   
 00DE 2224              clr R2
 00E0 25BA              out 0x15,R2
 00E2                   .dbline 63
 00E2           ;  DelayMs(30);                 //延时
 00E2 0EE1              ldi R16,30
 00E4 10E0              ldi R17,0
 00E6 8CDF              xcall _DelayMs
 00E8                   .dbline 64
 00E8           ;  PORTC=0xff;                   //熄灭所有的数码管
 00E8 8FEF              ldi R24,255
 00EA 85BB              out 0x15,R24
 00EC                   .dbline 65
 00EC           ;  for(i=0;i<4;i++)
 00EC 4427              clr R20
 00EE 07C0              xjmp L26
 00F0           L23:
 00F0                   .dbline 66
 00F0                   .dbline 66
 00F0 242F              mov R18,R20
 00F2 3327              clr R19
 00F4 85E0              ldi R24,5
 00F6 849F              mul R24,R20
 00F8 002D              mov R16,R0
 00FA BDDF              xcall _Write_EEPROM
 00FC                   .dbline 66
 00FC           L24:
 00FC                   .dbline 65
 00FC 4395              inc R20
 00FE           L26:
 00FE                   .dbline 65
 00FE 4430              cpi R20,4
 0100 B8F3              brlo L23
 0102                   .dbline 67
 0102           ;     {Write_EEPROM(5*i,i);}
 0102           ;  for(i=0;i<4;i++)
 0102 4427              clr R20
 0104 0BC0              xjmp L30
 0106           L27:
 0106                   .dbline 68
 0106                   .dbline 68
 0106 042F              mov R16,R20
 0108 1127              clr R17
 010A CEDF              xcall _Read_EEPROM
 010C 80E0              ldi R24,<_Read_Data
 010E 90E0              ldi R25,>_Read_Data
 0110 E42F              mov R30,R20
 0112 FF27              clr R31
 0114 E80F              add R30,R24
 0116 F91F              adc R31,R25
 0118 0083              std z+0,R16
 011A                   .dbline 69
 011A           L28:
 011A                   .dbline 67
 011A 4395              inc R20
 011C           L30:
 011C                   .dbline 67
 011C 4430              cpi R20,4
 011E 98F3              brlo L27
 0120 0CC0              xjmp L32
 0122           L31:
 0122                   .dbline 71
 0122                   .dbline 72
 0122 20900200          lds R2,_Read_Data
 0126 E0910000          lds R30,_p1
 012A F0910100          lds R31,_p1+1
 012E 2082              std z+0,R2
 0130                   .dbline 73
 0130 8F01              movw R16,R30
 0132 79DF              xcall _Display
 0134                   .dbline 74
 0134 02E0              ldi R16,2
 0136 10E0              ldi R17,0
 0138 63DF              xcall _DelayMs
 013A                   .dbline 75
 013A           L32:
 013A                   .dbline 70
 013A F3CF              xjmp L31
 013C           X2:
 013C                   .dbline -2
 013C                   .dbline 76
 013C           ;     {Read_Data[i]=Read_EEPROM(i);
 013C           ;       }
 013C           ;  while(1)
 013C           ;  {
 013C           ;   p1[0]=Read_Data[0];
 013C           ;   Display(p1);
 013C           ;   DelayMs(2);
 013C           ;  }
 013C           ; }
 013C           L22:
 013C                   .dbline 0 ; func end
 013C 0895              ret
 013E                   .dbsym r i 20 c
 013E                   .dbend
                        .area bss(ram, con, rel)
 0000                   .dbfile F:\myavr\temp\M16_EEPROM\M16_EEPROM.C
 0000           _p1::
 0000                   .blkb 2
 0002                   .dbsym e p1 _p1 pc
 0002           _Read_Data::
 0002                   .blkb 4
 0006                   .dbsym e Read_Data _Read_Data A[4:4]c

⌨️ 快捷键说明

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