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

📄 ds1337.lis

📁 AVR单片机C语言程序设计实例精粹
💻 LIS
📖 第 1 页 / 共 2 页
字号:
                        .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 + -