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

📄 main.lis

📁 mega8515通过的DS1302芯片使用程序
💻 LIS
字号:
                        .module main.c
                        .area text(rom, con, rel)
 0000                   .dbfile D:\AVR实验\DS1302时间芯片\main.c
 0000                   .dbfunc e jisuan _jisuan fV
 0000           ;              d -> R20
 0000           ;              e -> R22
 0000           ;         b_data -> R16
                        .even
 0000           _jisuan::
 0000 00D0              rcall push_gset2
 0002                   .dbline -1
 0002                   .dbline 12
 0002           ; #include <iom8515v.h>
 0002           ; 
 0002           ; #include "ds1302.h"
 0002           ; #include "d4094.h"
 0002           ; 
 0002           ; 
 0002           ; uint gewei,shiwei;
 0002           ; uint sec,min,hour,n1,n2,n3,n4;
 0002           ; 
 0002           ; 
 0002           ; void jisuan(uchar b_data)
 0002           ; {
 0002                   .dbline 14
 0002           ;    uchar e,d;
 0002           ;    e=b_data;
 0002 602F              mov R22,R16
 0004                   .dbline 15
 0004           ;    d=e;
 0004 462F              mov R20,R22
 0006                   .dbline 16
 0006           ;    e=e&0x0f;
 0006 6F70              andi R22,15
 0008                   .dbline 17
 0008           ;    d=d>>4;
 0008 842F              mov R24,R20
 000A 8295              swap R24
 000C 8F70              andi R24,#0x0F
 000E 482F              mov R20,R24
 0010                   .dbline 18
 0010           ;    gewei=(e&0x01)+((e>>1)&0x01)*2+((e>>2)&0x01)*4+((e>>3)&0x01)*8;
 0010 862F              mov R24,R22
 0012 8695              lsr R24
 0014 8170              andi R24,1
 0016 92E0              ldi R25,2
 0018 989F              mul R25,R24
 001A 862F              mov R24,R22
 001C 9927              clr R25
 001E 8170              andi R24,1
 0020 9070              andi R25,0
 0022 800D              add R24,R0
 0024 911D              adc R25,R1
 0026 E62F              mov R30,R22
 0028 E695              lsr R30
 002A E695              lsr R30
 002C E170              andi R30,1
 002E F4E0              ldi R31,4
 0030 FE9F              mul R31,R30
 0032 800D              add R24,R0
 0034 911D              adc R25,R1
 0036 E62F              mov R30,R22
 0038 E695              lsr R30
 003A E695              lsr R30
 003C E695              lsr R30
 003E E170              andi R30,1
 0040 F8E0              ldi R31,8
 0042 FE9F              mul R31,R30
 0044 800D              add R24,R0
 0046 911D              adc R25,R1
 0048 90931100          sts _gewei+1,R25
 004C 80931000          sts _gewei,R24
 0050                   .dbline 19
 0050           ;    shiwei=(d&0x01)+((d>>1)&0x01)*2+((d>>2)&0x01)*4+((d>>3)&0x01)*8; 
 0050 842F              mov R24,R20
 0052 8695              lsr R24
 0054 8170              andi R24,1
 0056 92E0              ldi R25,2
 0058 989F              mul R25,R24
 005A 842F              mov R24,R20
 005C 9927              clr R25
 005E 8170              andi R24,1
 0060 9070              andi R25,0
 0062 800D              add R24,R0
 0064 911D              adc R25,R1
 0066 E42F              mov R30,R20
 0068 E695              lsr R30
 006A E695              lsr R30
 006C E170              andi R30,1
 006E F4E0              ldi R31,4
 0070 FE9F              mul R31,R30
 0072 800D              add R24,R0
 0074 911D              adc R25,R1
 0076 E42F              mov R30,R20
 0078 E695              lsr R30
 007A E695              lsr R30
 007C E695              lsr R30
 007E E170              andi R30,1
 0080 F8E0              ldi R31,8
 0082 FE9F              mul R31,R30
 0084 800D              add R24,R0
 0086 911D              adc R25,R1
 0088 90930F00          sts _shiwei+1,R25
 008C 80930E00          sts _shiwei,R24
 0090                   .dbline -2
 0090           L1:
 0090 00D0              rcall pop_gset2
 0092                   .dbline 0 ; func end
 0092 0895              ret
 0094                   .dbsym r d 20 c
 0094                   .dbsym r e 22 c
 0094                   .dbsym r b_data 16 c
 0094                   .dbend
 0094                   .dbfunc e main _main fV
 0094           ;            num -> R20,R21
                        .even
 0094           _main::
 0094                   .dbline -1
 0094                   .dbline 26
 0094           ; 
 0094           ;    }
 0094           ; 
 0094           ; 
 0094           ; 
 0094           ; void main()
 0094           ; {
 0094                   .dbline 29
 0094           ; 
 0094           ;   uint num; 
 0094           ;   DDRC=0xFF;
 0094 8FEF              ldi R24,255
 0096 84BB              out 0x14,R24
 0098                   .dbline 30
 0098           ;   PORTC=0xFF;
 0098 85BB              out 0x15,R24
 009A                   .dbline 31
 009A           ;   WriteSec(0x14);
 009A 04E1              ldi R16,20
 009C 10E0              ldi R17,0
 009E 00D0              rcall _WriteSec
 00A0                   .dbline 32
 00A0           ;   WriteMin(0x00);
 00A0 0027              clr R16
 00A2 1127              clr R17
 00A4 00D0              rcall _WriteMin
 00A6                   .dbline 33
 00A6           ;   WriteHour(0x00);
 00A6 0027              clr R16
 00A8 1127              clr R17
 00AA 00D0              rcall _WriteHour
 00AC 58C0              rjmp L4
 00AE           L3:
 00AE                   .dbline 35
 00AE                   .dbline 37
 00AE 00D0              rcall _ReadSec
 00B0 10930D00          sts _sec+1,R17
 00B4 00930C00          sts _sec,R16
 00B8                   .dbline 38
 00B8 00D0              rcall _ReadMin
 00BA 10930B00          sts _min+1,R17
 00BE 00930A00          sts _min,R16
 00C2                   .dbline 39
 00C2 00D0              rcall _ReadHour
 00C4 10930900          sts _hour+1,R17
 00C8 00930800          sts _hour,R16
 00CC                   .dbline 40
 00CC 00910C00          lds R16,_sec
 00D0 97DF              rcall _jisuan
 00D2                   .dbline 41
 00D2 20901000          lds R2,_gewei
 00D6 30901100          lds R3,_gewei+1
 00DA 30920700          sts _n1+1,R3
 00DE 20920600          sts _n1,R2
 00E2                   .dbline 42
 00E2 20900E00          lds R2,_shiwei
 00E6 30900F00          lds R3,_shiwei+1
 00EA 30920500          sts _n2+1,R3
 00EE 20920400          sts _n2,R2
 00F2                   .dbline 43
 00F2 00910A00          lds R16,_min
 00F6 84DF              rcall _jisuan
 00F8                   .dbline 44
 00F8 20901000          lds R2,_gewei
 00FC 30901100          lds R3,_gewei+1
 0100 30920300          sts _n3+1,R3
 0104 20920200          sts _n3,R2
 0108                   .dbline 45
 0108 20900E00          lds R2,_shiwei
 010C 30900F00          lds R3,_shiwei+1
 0110 30920100          sts _n4+1,R3
 0114 20920000          sts _n4,R2
 0118                   .dbline 46
 0118 20910200          lds R18,_n3
 011C 30910300          lds R19,_n3+1
 0120 04E6              ldi R16,100
 0122 10E0              ldi R17,0
 0124 00D0              rcall empy16s
 0126 1801              movw R2,R16
 0128 20910000          lds R18,_n4
 012C 30910100          lds R19,_n4+1
 0130 08EE              ldi R16,1000
 0132 13E0              ldi R17,3
 0134 00D0              rcall empy16s
 0136 A801              movw R20,R16
 0138 420D              add R20,R2
 013A 531D              adc R21,R3
 013C 20910400          lds R18,_n2
 0140 30910500          lds R19,_n2+1
 0144 0AE0              ldi R16,10
 0146 10E0              ldi R17,0
 0148 00D0              rcall empy16s
 014A 400F              add R20,R16
 014C 511F              adc R21,R17
 014E 20900600          lds R2,_n1
 0152 30900700          lds R3,_n1+1
 0156 420D              add R20,R2
 0158 531D              adc R21,R3
 015A                   .dbline 49
 015A 8A01              movw R16,R20
 015C 00D0              rcall _update_display_dp
 015E                   .dbline 51
 015E           L4:
 015E                   .dbline 34
 015E A7CF              rjmp L3
 0160           X0:
 0160                   .dbline -2
 0160           L2:
 0160                   .dbline 0 ; func end
 0160 0895              ret
 0162                   .dbsym r num 20 i
 0162                   .dbend
                        .area bss(ram, con, rel)
 0000                   .dbfile D:\AVR实验\DS1302时间芯片\main.c
 0000           _n4::
 0000                   .blkb 2
 0002                   .dbsym e n4 _n4 i
 0002           _n3::
 0002                   .blkb 2
 0004                   .dbsym e n3 _n3 i
 0004           _n2::
 0004                   .blkb 2
 0006                   .dbsym e n2 _n2 i
 0006           _n1::
 0006                   .blkb 2
 0008                   .dbsym e n1 _n1 i
 0008           _hour::
 0008                   .blkb 2
 000A                   .dbsym e hour _hour i
 000A           _min::
 000A                   .blkb 2
 000C                   .dbsym e min _min i
 000C           _sec::
 000C                   .blkb 2
 000E                   .dbsym e sec _sec i
 000E           _shiwei::
 000E                   .blkb 2
 0010                   .dbsym e shiwei _shiwei i
 0010           _gewei::
 0010                   .blkb 2
 0012                   .dbsym e gewei _gewei i

⌨️ 快捷键说明

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