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

📄 main.lis

📁 ATMEGA128的PCF8536驱动程序
💻 LIS
字号:
                        .module main.c
                        .area lit(rom, con, rel)
 0000           L4:
 0000 0000              .byte 0,0
 0002 0001              .byte 0,1
 0004 0201              .byte 2,1
 0006 08                .byte 8
                        .area text(rom, con, rel)
 0000                   .dbfile D:\avrvi\AVRVi_m128_Starter_Kit\PCF8563_USART\source\main.c
 0000                   .dbfunc e main _main fV
 0000           ;            tmp -> R20
 0000           ;       sec_flag -> R22
 0000           ;           time -> R10,R11
 0000           ;       Set_time -> y+2
                        .even
 0000           _main::
 0000 2997              sbiw R28,9
 0002                   .dbline -1
 0002                   .dbline 12
 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           ; void main(void)
 0002           ; {
 0002                   .dbline 13
 0002           ;  unsigned char *time="2008-01-01 00:00:00";
 0002 80E0              ldi R24,<L3
 0004 90E0              ldi R25,>L3
 0006 5C01              movw R10,R24
 0008                   .dbline 14
 0008           ;  unsigned char sec_flag=0,tmp=0;
 0008 6627              clr R22
 000A                   .dbline 14
 000A 4427              clr R20
 000C                   .dbline 15
 000C           ;  unsigned char Set_time[7]={
 000C 80E0              ldi R24,<L4
 000E 90E0              ldi R25,>L4
 0010 FE01              movw R30,R28
 0012 3296              adiw R30,2
 0014 07E0              ldi R16,7
 0016 10E0              ldi R17,0
 0018 FA93              st -y,R31
 001A EA93              st -y,R30
 001C 9A93              st -y,R25
 001E 8A93              st -y,R24
 0020 0E940000          xcall asgncblk
 0024                   .dbline 25
 0024           ;                                                       0x00/*秒*/,
 0024           ;                                                       0x00/*分*/,
 0024           ;                                                       0x00/*时*/,
 0024           ;                                                       0x01/*天*/,
 0024           ;                                                       0x02/*星期*/,
 0024           ;                                                       0x01/*月/世纪*/,
 0024           ;                                                       0x08/*年*/
 0024           ;                                                  };
 0024           ;  
 0024           ;  CLI();
 0024 F894              cli
 0026                   .dbline 26
 0026           ;  Com_init();
 0026 0E940000          xcall _Com_init
 002A                   .dbline 27
 002A           ;  twi_init();
 002A 0E940000          xcall _twi_init
 002E                   .dbline 28
 002E           ;  PCF8563_init();
 002E 0E940000          xcall _PCF8563_init
 0032                   .dbline 29
 0032           ;  SEI();
 0032 7894              sei
 0034                   .dbline 31
 0034           ;  
 0034           ;  Com_putstring ("PCF8563 Set Time: ",18,&RTbuf_UART0);
 0034 80E0              ldi R24,<_RTbuf_UART0
 0036 90E0              ldi R25,>_RTbuf_UART0
 0038 9983              std y+1,R25
 003A 8883              std y+0,R24
 003C 22E1              ldi R18,18
 003E 00E0              ldi R16,<L5
 0040 10E0              ldi R17,>L5
 0042 0E940000          xcall _Com_putstring
 0046                   .dbline 32
 0046           ;  Com_putstring (time,19,&RTbuf_UART0);
 0046 80E0              ldi R24,<_RTbuf_UART0
 0048 90E0              ldi R25,>_RTbuf_UART0
 004A 9983              std y+1,R25
 004C 8883              std y+0,R24
 004E 23E1              ldi R18,19
 0050 8501              movw R16,R10
 0052 0E940000          xcall _Com_putstring
 0056                   .dbline 33
 0056           ;  Com_putstring ("\n\n",2,&RTbuf_UART0);
 0056 80E0              ldi R24,<_RTbuf_UART0
 0058 90E0              ldi R25,>_RTbuf_UART0
 005A 9983              std y+1,R25
 005C 8883              std y+0,R24
 005E 22E0              ldi R18,2
 0060 00E0              ldi R16,<L6
 0062 10E0              ldi R17,>L6
 0064 0E940000          xcall _Com_putstring
 0068                   .dbline 34
 0068           ;  PCF8536_wt_p(0x02,Set_time,7);
 0068 87E0              ldi R24,7
 006A 8883              std y+0,R24
 006C 9E01              movw R18,R28
 006E 2E5F              subi R18,254  ; offset = 2
 0070 3F4F              sbci R19,255
 0072 02E0              ldi R16,2
 0074 10E0              ldi R17,0
 0076 0E940000          xcall _PCF8536_wt_p
 007A 77C0              xjmp L8
 007C           L7:
 007C                   .dbline 36
 007C           ;  while(1)
 007C           ;       {
 007C                   .dbline 37
 007C           ;                PCF8536_rd(0x02,Set_time,7);
 007C 87E0              ldi R24,7
 007E 8883              std y+0,R24
 0080 9E01              movw R18,R28
 0082 2E5F              subi R18,254  ; offset = 2
 0084 3F4F              sbci R19,255
 0086 02E0              ldi R16,2
 0088 10E0              ldi R17,0
 008A 0E940000          xcall _PCF8536_rd
 008E                   .dbline 38
 008E           ;          Set_time[0] &= 0x7F;
 008E 8A81              ldd R24,y+2
 0090 8F77              andi R24,127
 0092 8A83              std y+2,R24
 0094                   .dbline 39
 0094           ;                Set_time[1] &= 0x7F;
 0094 8B81              ldd R24,y+3
 0096 8F77              andi R24,127
 0098 8B83              std y+3,R24
 009A                   .dbline 40
 009A           ;                Set_time[2] &= 0x3F;
 009A 8C81              ldd R24,y+4
 009C 8F73              andi R24,63
 009E 8C83              std y+4,R24
 00A0                   .dbline 41
 00A0           ;                Set_time[3] &= 0x3F;
 00A0 8D81              ldd R24,y+5
 00A2 8F73              andi R24,63
 00A4 8D83              std y+5,R24
 00A6                   .dbline 42
 00A6           ;                Set_time[4] &= 0x07;
 00A6 8E81              ldd R24,y+6
 00A8 8770              andi R24,7
 00AA 8E83              std y+6,R24
 00AC                   .dbline 43
 00AC           ;                Set_time[5] &= 0x1F;
 00AC 8F81              ldd R24,y+7
 00AE 8F71              andi R24,31
 00B0 8F83              std y+7,R24
 00B2                   .dbline 44
 00B2           ;                time[5] = (Set_time[5]>>4)+0x30;
 00B2 8295              swap R24
 00B4 8F70              andi R24,#0x0F
 00B6 805D              subi R24,208    ; addi 48
 00B8 F501              movw R30,R10
 00BA 8583              std z+5,R24
 00BC                   .dbline 45
 00BC           ;                time[6] = (Set_time[5]&0x0F)+0x30;
 00BC 8F81              ldd R24,y+7
 00BE 8F70              andi R24,15
 00C0 805D              subi R24,208    ; addi 48
 00C2 F501              movw R30,R10
 00C4 8683              std z+6,R24
 00C6                   .dbline 46
 00C6           ;                time[8] = (Set_time[3]>>4)+0x30;
 00C6 8D81              ldd R24,y+5
 00C8 8295              swap R24
 00CA 8F70              andi R24,#0x0F
 00CC 805D              subi R24,208    ; addi 48
 00CE F501              movw R30,R10
 00D0 8087              std z+8,R24
 00D2                   .dbline 47
 00D2           ;                time[9] = (Set_time[3]&0x0F)+0x30;
 00D2 8D81              ldd R24,y+5
 00D4 8F70              andi R24,15
 00D6 805D              subi R24,208    ; addi 48
 00D8 F501              movw R30,R10
 00DA 8187              std z+9,R24
 00DC                   .dbline 48
 00DC           ;                time[11] = (Set_time[2]>>4)+0x30;
 00DC 8C81              ldd R24,y+4
 00DE 8295              swap R24
 00E0 8F70              andi R24,#0x0F
 00E2 805D              subi R24,208    ; addi 48
 00E4 F501              movw R30,R10
 00E6 8387              std z+11,R24
 00E8                   .dbline 49
 00E8           ;                time[12] = (Set_time[2]&0x0F)+0x30;
 00E8 8C81              ldd R24,y+4
 00EA 8F70              andi R24,15
 00EC 805D              subi R24,208    ; addi 48
 00EE F501              movw R30,R10
 00F0 8487              std z+12,R24
 00F2                   .dbline 50
 00F2           ;                time[14] = (Set_time[1]>>4)+0x30;
 00F2 8B81              ldd R24,y+3
 00F4 8295              swap R24
 00F6 8F70              andi R24,#0x0F
 00F8 805D              subi R24,208    ; addi 48
 00FA F501              movw R30,R10
 00FC 8687              std z+14,R24
 00FE                   .dbline 51
 00FE           ;                time[15] = (Set_time[1]&0x0F)+0x30;
 00FE 8B81              ldd R24,y+3
 0100 8F70              andi R24,15
 0102 805D              subi R24,208    ; addi 48
 0104 F501              movw R30,R10
 0106 8787              std z+15,R24
 0108                   .dbline 52
 0108           ;                time[17] = (Set_time[0]>>4)+0x30;
 0108 8A81              ldd R24,y+2
 010A 8295              swap R24
 010C 8F70              andi R24,#0x0F
 010E 805D              subi R24,208    ; addi 48
 0110 F501              movw R30,R10
 0112 818B              std z+17,R24
 0114                   .dbline 53
 0114           ;                time[18] = (Set_time[0]&0x0F)+0x30;
 0114 8A81              ldd R24,y+2
 0116 8F70              andi R24,15
 0118 805D              subi R24,208    ; addi 48
 011A F501              movw R30,R10
 011C 828B              std z+18,R24
 011E                   .dbline 55
 011E           ;                
 011E           ;                tmp=sec_flag;
 011E 462F              mov R20,R22
 0120                   .dbline 57
 0120           ;                
 0120           ;                if(Set_time[0]%2)
 0120 12E0              ldi R17,2
 0122 0A81              ldd R16,y+2
 0124 0E940000          xcall mod8u
 0128 0023              tst R16
 012A 11F0              breq L23
 012C                   .dbline 58
 012C           ;                                                 {
 012C                   .dbline 59
 012C           ;                                                  sec_flag=0;
 012C 6627              clr R22
 012E                   .dbline 60
 012E           ;                                                 }              
 012E 01C0              xjmp L24
 0130           L23:
 0130                   .dbline 61
 0130           ;                else sec_flag=1;
 0130 61E0              ldi R22,1
 0132           L24:
 0132                   .dbline 63
 0132           ;                
 0132           ;                if(sec_flag!=tmp)
 0132 6417              cp R22,R20
 0134 D1F0              breq L25
 0136                   .dbline 64
 0136           ;                                                 {
 0136                   .dbline 65
 0136           ;                                                  Com_putstring ("PCF8563 Read Time: ",19,&RTbuf_UART0);                
 0136 80E0              ldi R24,<_RTbuf_UART0
 0138 90E0              ldi R25,>_RTbuf_UART0
 013A 9983              std y+1,R25
 013C 8883              std y+0,R24
 013E 23E1              ldi R18,19
 0140 00E0              ldi R16,<L27
 0142 10E0              ldi R17,>L27
 0144 0E940000          xcall _Com_putstring
 0148                   .dbline 66
 0148           ;                                                  Com_putstring (time,19,&RTbuf_UART0);
 0148 80E0              ldi R24,<_RTbuf_UART0
 014A 90E0              ldi R25,>_RTbuf_UART0
 014C 9983              std y+1,R25
 014E 8883              std y+0,R24
 0150 23E1              ldi R18,19
 0152 8501              movw R16,R10
 0154 0E940000          xcall _Com_putstring
 0158                   .dbline 67
 0158           ;                                                  Com_putstring ("\n\n",2,&RTbuf_UART0);
 0158 80E0              ldi R24,<_RTbuf_UART0
 015A 90E0              ldi R25,>_RTbuf_UART0
 015C 9983              std y+1,R25
 015E 8883              std y+0,R24
 0160 22E0              ldi R18,2
 0162 00E0              ldi R16,<L6
 0164 10E0              ldi R17,>L6
 0166 0E940000          xcall _Com_putstring
 016A                   .dbline 68
 016A           ;                                                 }              
 016A           L25:
 016A                   .dbline 71
 016A           L8:
 016A                   .dbline 35
 016A 88CF              xjmp L7
 016C           X0:
 016C                   .dbline -2
 016C           L2:
 016C 2996              adiw R28,9
 016E                   .dbline 0 ; func end
 016E 0895              ret
 0170                   .dbsym r tmp 20 c
 0170                   .dbsym r sec_flag 22 c
 0170                   .dbsym r time 10 pc
 0170                   .dbsym l Set_time 2 A[7:7]c
 0170                   .dbend
                        .area data(ram, con, rel)
 0000                   .dbfile D:\avrvi\AVRVi_m128_Starter_Kit\PCF8563_USART\source\main.c
 0000           L27:
 0000                   .blkb 20
                        .area idata
 0000 5043463835363320526561642054696D  .byte 'P,'C,'F,56,53,54,51,32,'R,'e,'a,'d,32,'T,'i,'m
 0010 653A2000          .byte 'e,58,32,0
                        .area data(ram, con, rel)
 0014                   .dbfile D:\avrvi\AVRVi_m128_Starter_Kit\PCF8563_USART\source\main.c
 0014           L6:
 0014                   .blkb 3
                        .area idata
 0014 0A0A00            .byte 10,10,0
                        .area data(ram, con, rel)
 0017                   .dbfile D:\avrvi\AVRVi_m128_Starter_Kit\PCF8563_USART\source\main.c
 0017           L5:
 0017                   .blkb 19
                        .area idata
 0017 50434638353633205365742054696D65  .byte 'P,'C,'F,56,53,54,51,32,'S,'e,'t,32,'T,'i,'m,'e
 0027 3A2000            .byte 58,32,0
                        .area data(ram, con, rel)
 002A                   .dbfile D:\avrvi\AVRVi_m128_Starter_Kit\PCF8563_USART\source\main.c
 002A           L3:
 002A                   .blkb 20
                        .area idata
 002A 323030382D30312D30312030303A3030  .byte 50,48,48,56,45,48,49,45,48,49,32,48,48,58,48,48
 003A 3A303000          .byte 58,48,48,0
                        .area data(ram, con, rel)
 003E                   .dbfile D:\avrvi\AVRVi_m128_Starter_Kit\PCF8563_USART\source\main.c

⌨️ 快捷键说明

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