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

📄 main.lis

📁 AVR单片机对DS3231的读写操作源代码
💻 LIS
字号:
                        .module main.c
                        .area lit(rom, con, rel)
 0000           _Tab::
 0000 149F              .byte 20,159
 0002 381A              .byte 56,26
 0004 9352              .byte 147,'R
 0006 501F              .byte 'P,31
 0008 1012              .byte 16,18
 000A 11D0              .byte 17,208
 000C 7498              .byte 't,152
 000E 7071              .byte 'p,'q
 0010                   .dbfile F:\ouravr\ds3231\main.c
 0010                   .dbsym e Tab _Tab A[16:16]kc
                        .area text(rom, con, rel)
 0000                   .dbfile F:\ouravr\ds3231\main.c
 0000                   .dbfunc e main _main fV
 0000           ;        Address -> R20
                        .even
 0000           _main::
 0000                   .dbline -1
 0000                   .dbline 12
 0000           ; #include <iom16v.h>
 0000           ; 
 0000           ; #define uchar unsigned char 
 0000           ; #define uint  unsigned int
 0000           ; 
 0000           ; void delay(uint ticks);//延时
 0000           ; 
 0000           ; unsigned char const Tab[]={0x14,0x9F,0x38,0x1A,0x93,0x52,0x50,0x1F,
 0000           ;                           0x10,0x12,0x11,0xD0,0x74,0x98,0x70,0x71};
 0000           ; 
 0000           ; void main()
 0000           ; {
 0000                   .dbline 14
 0000           ;  uchar Address;
 0000           ;  init_devices();
 0000 00D0              rcall _init_devices
 0002                   .dbline 16
 0002 4427              clr R20
 0004 06C0              rjmp L5
 0006           L2:
 0006                   .dbline 16
 0006 242F              mov R18,R20
 0008 3327              clr R19
 000A 042F              mov R16,R20
 000C 1127              clr R17
 000E 00D0              rcall _Write24c02_OneByte
 0010           L3:
 0010                   .dbline 16
 0010 4395              inc R20
 0012           L5:
 0012                   .dbline 16
 0012           ;  //向0到127这128个单元写顺序写入0到127
 0012           ;  for(Address=0;Address!=128;Address++)Write24c02_OneByte(Address,Address);
 0012 4038              cpi R20,128
 0014 C1F7              brne L2
 0016                   .dbline 17
 0016           ;  PORTA=0x80;
 0016 80E8              ldi R24,128
 0018 8BBB              out 0x1b,R24
 001A 15C0              rjmp L7
 001C           L6:
 001C                   .dbline 19
 001C           ;  while(1)
 001C           ;  {
 001C                   .dbline 20
 001C           ;   for(Address=0;Address!=128;Address++)
 001C 4427              clr R20
 001E 11C0              rjmp L12
 0020           L9:
 0020                   .dbline 21
 0020                   .dbline 23
 0020 042F              mov R16,R20
 0022 1127              clr R17
 0024 00D0              rcall _Read24c02_OneByte
 0026 80E0              ldi R24,<_Tab
 0028 90E0              ldi R25,>_Tab
 002A E02F              mov R30,R16
 002C F12F              mov R31,R17
 002E EF70              andi R30,15
 0030 F070              andi R31,0
 0032 E80F              add R30,R24
 0034 F91F              adc R31,R25
 0036 C895              lpm
 0038 05BA              out 0x15,R0
 003A                   .dbline 24
 003A 08E8              ldi R16,5000
 003C 13E1              ldi R17,19
 003E 05D0              rcall _delay
 0040                   .dbline 25
 0040           L10:
 0040                   .dbline 20
 0040 4395              inc R20
 0042           L12:
 0042                   .dbline 20
 0042 4038              cpi R20,128
 0044 69F7              brne L9
 0046                   .dbline 27
 0046           L7:
 0046                   .dbline 18
 0046 EACF              rjmp L6
 0048           X0:
 0048                   .dbline -2
 0048           L1:
 0048                   .dbline 0 ; func end
 0048 0895              ret
 004A                   .dbsym r Address 20 c
 004A                   .dbend
 004A                   .dbfunc e delay _delay fV
 004A           ;              i -> R20
 004A           ;          ticks -> R16,R17
                        .even
 004A           _delay::
 004A 00D0              rcall push_gset1
 004C                   .dbline -1
 004C                   .dbline 31
 004C           ;   {
 004C           ;    //把0到128单元的内容顺序读出并显示
 004C           ;    PORTC=Tab[Read24c02_OneByte(Address)&0x0f];
 004C           ;    delay(5000);
 004C           ;   }
 004C           ; 
 004C           ;  }
 004C           ; }
 004C           ; 
 004C           ; void delay(uint ticks)
 004C           ; {
 004C 05C0              rjmp L15
 004E           L14:
 004E                   .dbline 33
 004E 44E6              ldi R20,100
 0050 01C0              rjmp L20
 0052           L17:
 0052                   .dbline 33
 0052           L18:
 0052                   .dbline 33
 0052 4A95              dec R20
 0054           L20:
 0054                   .dbline 33
 0054 4423              tst R20
 0056 E9F7              brne L17
 0058           L15:
 0058                   .dbline 33
 0058           ;  uchar i;
 0058           ;  while(ticks--)for(i=100;i!=0;i--);//约0.1mS
 0058 202E              mov R2,R16
 005A 312E              mov R3,R17
 005C 0150              subi R16,1
 005E 1040              sbci R17,0
 0060 2220              tst R2
 0062 A9F7              brne L14
 0064 3320              tst R3
 0066 99F7              brne L14
 0068           X1:
 0068                   .dbline -2
 0068           L13:
 0068 00D0              rcall pop_gset1
 006A                   .dbline 0 ; func end
 006A 0895              ret
 006C                   .dbsym r i 20 c
 006C                   .dbsym r ticks 16 i
 006C                   .dbend

⌨️ 快捷键说明

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