📄 main.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 + -