📄 ds1337.lis
字号:
.module DS1337.c
.area text(rom, con, rel)
0000 .dbfile E:\Steaven2000\AVR\AVR_Book\PROGRA~1\SOURCE~1\Code\I2C总线应用设计\DS1337.c
0000 .dbfunc e Init_DS1337_Calendar _Init_DS1337_Calendar fV
.even
0000 _Init_DS1337_Calendar::
0000 .dbline -1
0000 .dbline 21
0000 ; //***************************************************************
0000 ; // File Name : DS1337.c
0000 ; // Author : Steaven
0000 ; // Created : 2008-10-09
0000 ; // Modified :
0000 ; // Revision : V0.0
0000 ; //***************************************************************
0000 ;
0000 ; #include "includes.h"
0000 ;
0000 ; struct Calendar_struct Calendar;
0000 ; struct Calendar_struct Calendar_Read;
0000 ;
0000 ; //***************************************************************
0000 ; // Function : Init_DS1337_Calendar
0000 ; // Input : None
0000 ; // Output : None
0000 ; // Description : Init time with "2007-11-21,THU,21:32:00"
0000 ; //***************************************************************
0000 ; void Init_DS1337_Calendar(void)
0000 ; {
0000 .dbline 22
0000 ; Calendar.Second = 0x00;
0000 2224 clr R2
0002 20920700 sts _Calendar,R2
0006 .dbline 23
0006 ; Calendar.Minute = 0x32;
0006 82E3 ldi R24,50
0008 80930800 sts _Calendar+1,R24
000C .dbline 24
000C ; Calendar.Hour = 0x21;
000C 81E2 ldi R24,33
000E 80930900 sts _Calendar+2,R24
0012 .dbline 25
0012 ; Calendar.Day = 0x03;
0012 83E0 ldi R24,3
0014 80930A00 sts _Calendar+3,R24
0018 .dbline 26
0018 ; Calendar.Date = 0x21;
0018 81E2 ldi R24,33
001A 80930B00 sts _Calendar+4,R24
001E .dbline 27
001E ; Calendar.Month = 0x11;
001E 81E1 ldi R24,17
0020 80930C00 sts _Calendar+5,R24
0024 .dbline 28
0024 ; Calendar.Year = 0x07;
0024 87E0 ldi R24,7
0026 80930D00 sts _Calendar+6,R24
002A .dbline -2
002A .dbline 29
002A ; }
002A L1:
002A .dbline 0 ; func end
002A 0895 ret
002C .dbend
002C .dbfunc e Set_DS1337_Calendar _Set_DS1337_Calendar fV
002C ; data -> y+3
.even
002C _Set_DS1337_Calendar::
002C 2A97 sbiw R28,10
002E .dbline -1
002E .dbline 38
002E ;
002E ; //***************************************************************
002E ; // Function : Set_DS1337_Calendar
002E ; // Input : None
002E ; // Output : None
002E ; // Description : Write time to DS1337 Registers
002E ; //***************************************************************
002E ; void Set_DS1337_Calendar(void)
002E ; {
002E .dbline 40
002E ; INT8U data[Calendar_LENGTH];
002E ; data[0] = Calendar.Second;
002E 20900700 lds R2,_Calendar
0032 2B82 std y+3,R2
0034 .dbline 41
0034 ; data[1] = Calendar.Minute;
0034 20900800 lds R2,_Calendar+1
0038 2C82 std y+4,R2
003A .dbline 42
003A ; data[2] = Calendar.Hour;
003A 20900900 lds R2,_Calendar+2
003E 2D82 std y+5,R2
0040 .dbline 43
0040 ; data[3] = Calendar.Day;
0040 20900A00 lds R2,_Calendar+3
0044 2E82 std y+6,R2
0046 .dbline 44
0046 ; data[4] = Calendar.Date;
0046 20900B00 lds R2,_Calendar+4
004A 2F82 std y+7,R2
004C .dbline 45
004C ; data[5] = Calendar.Month;
004C 20900C00 lds R2,_Calendar+5
0050 2886 std y+8,R2
0052 .dbline 46
0052 ; data[6] = Calendar.Year;
0052 20900D00 lds R2,_Calendar+6
0056 2986 std y+9,R2
0058 .dbline 47
0058 ; I2C_Send_String_with_SubAddress(DS1337,Calendar_ADDRESS,\
0058 87E0 ldi R24,7
005A 8A83 std y+2,R24
005C CE01 movw R24,R28
005E 0396 adiw R24,3
0060 9983 std y+1,R25
0062 8883 std y+0,R24
0064 2227 clr R18
0066 00ED ldi R16,208
0068 0E940000 xcall _I2C_Send_String_with_SubAddress
006C .dbline -2
006C .dbline 49
006C ; data,Calendar_LENGTH);
006C ; }
006C L8:
006C 2A96 adiw R28,10
006E .dbline 0 ; func end
006E 0895 ret
0070 .dbsym l data 3 A[7:7]c
0070 .dbend
0070 .dbfunc e Read_DS1337_Calendar _Read_DS1337_Calendar fV
0070 ; data -> y+3
.even
0070 _Read_DS1337_Calendar::
0070 2A97 sbiw R28,10
0072 .dbline -1
0072 .dbline 58
0072 ;
0072 ; //***************************************************************
0072 ; // Function : Read_DS1337_Calendar
0072 ; // Input : None
0072 ; // Output : None
0072 ; // Description : Read real time from DS1337 Registers
0072 ; //***************************************************************
0072 ; void Read_DS1337_Calendar(void)
0072 ; {
0072 .dbline 60
0072 ; INT8U data[Calendar_LENGTH];
0072 ; I2C_Recive_String_with_SubAddress(DS1337,Calendar_ADDRESS,\
0072 87E0 ldi R24,7
0074 8A83 std y+2,R24
0076 CE01 movw R24,R28
0078 0396 adiw R24,3
007A 9983 std y+1,R25
007C 8883 std y+0,R24
007E 2227 clr R18
0080 00ED ldi R16,208
0082 0E940000 xcall _I2C_Recive_String_with_SubAddress
0086 .dbline 62
0086 ; data,Calendar_LENGTH);
0086 ; Calendar_Read.Second = data[0];
0086 2B80 ldd R2,y+3
0088 20920000 sts _Calendar_Read,R2
008C .dbline 63
008C ; Calendar_Read.Minute = data[1];
008C 2C80 ldd R2,y+4
008E 20920100 sts _Calendar_Read+1,R2
0092 .dbline 64
0092 ; Calendar_Read.Hour = data[2];
0092 2D80 ldd R2,y+5
0094 20920200 sts _Calendar_Read+2,R2
0098 .dbline 65
0098 ; Calendar_Read.Day = data[3];
0098 2E80 ldd R2,y+6
009A 20920300 sts _Calendar_Read+3,R2
009E .dbline 66
009E ; Calendar_Read.Date = data[4];
009E 2F80 ldd R2,y+7
00A0 20920400 sts _Calendar_Read+4,R2
00A4 .dbline 67
00A4 ; Calendar_Read.Month = data[5];
00A4 2884 ldd R2,y+8
00A6 20920500 sts _Calendar_Read+5,R2
00AA .dbline 68
00AA ; Calendar_Read.Year = data[6];
00AA 2984 ldd R2,y+9
00AC 20920600 sts _Calendar_Read+6,R2
00B0 .dbline -2
00B0 .dbline 69
00B0 ; }
00B0 L21:
00B0 2A96 adiw R28,10
00B2 .dbline 0 ; func end
00B2 0895 ret
00B4 .dbsym l data 3 A[7:7]c
00B4 .dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -