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

📄 calendar.txt

📁 STM32F103ZET6+UCOSII+UCGUI源码
💻 TXT
📖 第 1 页 / 共 5 页
字号:
000006  2300              MOVS     r3,#0
000008  7969              LDRB     r1,[r5,#5]  ; alarm_struct
00000a  2202              MOVS     r2,#2
00000c  20f4              MOVS     r0,#0xf4
00000e  f7fffffe          BL       ReadDigit
000012  4604              MOV      r4,r0
;;;1513   
;;;1514     if(Alarm_HH == 0x2)
000014  2802              CMP      r0,#2
000016  d10d              BNE      |L4.52|
;;;1515     {
;;;1516       if(alarm_struct.hour_l > 0x3)
000018  7928              LDRB     r0,[r5,#4]  ; alarm_struct
00001a  2803              CMP      r0,#3
00001c  d901              BLS      |L4.34|
;;;1517       {
;;;1518         alarm_struct.hour_l = 0x0;
00001e  2000              MOVS     r0,#0
000020  7128              STRB     r0,[r5,#4]
                  |L4.34|
;;;1519       }
;;;1520       Alarm_HH = Alarm_HH*10 + ReadDigit(228, alarm_struct.hour_l, 0x3, 0x0);
000022  7929              LDRB     r1,[r5,#4]  ; alarm_struct
000024  2300              MOVS     r3,#0
000026  2203              MOVS     r2,#3
000028  20e4              MOVS     r0,#0xe4
00002a  f7fffffe          BL       ReadDigit
00002e  f1000414          ADD      r4,r0,#0x14
000032  e009              B        |L4.72|
                  |L4.52|
;;;1521     }
;;;1522     else
;;;1523     {
;;;1524       Alarm_HH = Alarm_HH*10 + ReadDigit(228, alarm_struct.hour_l, 0x9, 0x0);
000034  7929              LDRB     r1,[r5,#4]  ; alarm_struct
000036  2300              MOVS     r3,#0
000038  2209              MOVS     r2,#9
00003a  20e4              MOVS     r0,#0xe4
00003c  f7fffffe          BL       ReadDigit
000040  eb040184          ADD      r1,r4,r4,LSL #2
000044  eb000441          ADD      r4,r0,r1,LSL #1
                  |L4.72|
;;;1525     }
;;;1526   
;;;1527     /* Read alarm minutes */
;;;1528     Alarm_MM = ReadDigit(196, alarm_struct.min_h, 0x5, 0x0);
000048  78e9              LDRB     r1,[r5,#3]  ; alarm_struct
00004a  2300              MOVS     r3,#0
00004c  2205              MOVS     r2,#5
00004e  20c4              MOVS     r0,#0xc4
000050  f7fffffe          BL       ReadDigit
000054  4606              MOV      r6,r0
;;;1529     Alarm_MM = Alarm_MM*10 + ReadDigit(182, alarm_struct.min_l, 0x9, 0x0);
000056  78a9              LDRB     r1,[r5,#2]  ; alarm_struct
000058  2300              MOVS     r3,#0
00005a  2209              MOVS     r2,#9
00005c  20b6              MOVS     r0,#0xb6
00005e  f7fffffe          BL       ReadDigit
000062  eb060186          ADD      r1,r6,r6,LSL #2
000066  eb000741          ADD      r7,r0,r1,LSL #1
;;;1530   
;;;1531     /* Read alarm seconds */
;;;1532     Alarm_SS = ReadDigit(150, alarm_struct.sec_h, 0x5, 0x0);
00006a  7869              LDRB     r1,[r5,#1]  ; alarm_struct
00006c  2300              MOVS     r3,#0
00006e  2205              MOVS     r2,#5
000070  2096              MOVS     r0,#0x96
000072  f7fffffe          BL       ReadDigit
000076  4606              MOV      r6,r0
;;;1533     Alarm_SS = Alarm_SS*10 + ReadDigit(134, alarm_struct.sec_l, 0x9, 0x0);
000078  7829              LDRB     r1,[r5,#0]  ; alarm_struct
00007a  2300              MOVS     r3,#0
00007c  2209              MOVS     r2,#9
00007e  2086              MOVS     r0,#0x86
000080  f7fffffe          BL       ReadDigit
000084  eb060186          ADD      r1,r6,r6,LSL #2
000088  eb000041          ADD      r0,r0,r1,LSL #1
;;;1534     
;;;1535     /* Return the alarm value to store in the RTC Alarm register */
;;;1536     return((Alarm_HH*3600 + Alarm_MM*60 + Alarm_SS));
00008c  f44f6161          MOV      r1,#0xe10
000090  434c              MULS     r4,r1,r4
000092  ebc71107          RSB      r1,r7,r7,LSL #4
000096  eb040181          ADD      r1,r4,r1,LSL #2
00009a  4408              ADD      r0,r0,r1
;;;1537   }
00009c  e8bd81f0          POP      {r4-r8,pc}
;;;1538   
                          ENDP

                  |L4.160|
                          DCD      ||.data||+0x1a

                          AREA ||i.Alarm_Show||, CODE, READONLY, ALIGN=2

                  Alarm_Show PROC
;;;1667   *******************************************************************************/
;;;1668   void Alarm_Show(void)
000000  b570              PUSH     {r4-r6,lr}
;;;1669   {
;;;1670     u32 tmp = 0;
;;;1671     
;;;1672     /* Disable the JoyStick interrupts */
;;;1673     IntExtOnOffConfig(DISABLE);
000002  2000              MOVS     r0,#0
000004  f7fffffe          BL       IntExtOnOffConfig
                  |L5.8|
;;;1674   
;;;1675     while(ReadKey() != NOKEY)
000008  f7fffffe          BL       ReadKey
00000c  2800              CMP      r0,#0
00000e  d1fb              BNE      |L5.8|
;;;1676     {
;;;1677     }
;;;1678   
;;;1679     RCC_AHBPeriphClockCmd(RCC_AHBPeriph_FSMC, ENABLE);
000010  2101              MOVS     r1,#1
000012  020d              LSLS     r5,r1,#8
000014  4628              MOV      r0,r5
000016  f7fffffe          BL       RCC_AHBPeriphClockCmd
;;;1680     /* Clear the LCD screen */
;;;1681     LCD_Clear(White);
00001a  f64f74ff          MOV      r4,#0xffff
00001e  4620              MOV      r0,r4
000020  f7fffffe          BL       LCD_Clear
;;;1682   
;;;1683     LCD_SetDisplayWindow(160, 223, 128, 128);
000024  2380              MOVS     r3,#0x80
000026  461a              MOV      r2,r3
000028  21df              MOVS     r1,#0xdf
00002a  20a0              MOVS     r0,#0xa0
00002c  f7fffffe          BL       LCD_SetDisplayWindow
;;;1684    
;;;1685     LCD_NORDisplay(ALARM_ICON);
000030  4826              LDR      r0,|L5.204|
000032  f7fffffe          BL       LCD_NORDisplay
;;;1686     RCC_AHBPeriphClockCmd(RCC_AHBPeriph_FSMC, ENABLE);
000036  2101              MOVS     r1,#1
000038  4628              MOV      r0,r5
00003a  f7fffffe          BL       RCC_AHBPeriphClockCmd
;;;1687     /* Disable LCD Window mode */
;;;1688     LCD_WindowModeDisable();
00003e  f7fffffe          BL       LCD_WindowModeDisable
;;;1689     
;;;1690     /* Set the LCD Back Color */
;;;1691     LCD_SetBackColor(Blue);
000042  201f              MOVS     r0,#0x1f
000044  f7fffffe          BL       LCD_SetBackColor
;;;1692   
;;;1693     /* Set the LCD Text Color */
;;;1694     LCD_SetTextColor(White);
000048  4620              MOV      r0,r4
00004a  f7fffffe          BL       LCD_SetTextColor
;;;1695   
;;;1696     if(BKP_ReadBackupRegister(BKP_DR1) != 0xA5A5)
00004e  2004              MOVS     r0,#4
000050  f7fffffe          BL       BKP_ReadBackupRegister
000054  f5a04125          SUB      r1,r0,#0xa500
000058  39a5              SUBS     r1,r1,#0xa5
00005a  d00c              BEQ      |L5.118|
;;;1697     {
;;;1698       LCD_DisplayStringLine(Line8, "Time not configured ");
00005c  a11c              ADR      r1,|L5.208|
00005e  20c0              MOVS     r0,#0xc0
000060  f7fffffe          BL       LCD_DisplayStringLine
;;;1699       LCD_DisplayStringLine(Line9, "     Press SEL      ");
000064  a120              ADR      r1,|L5.232|
000066  20d8              MOVS     r0,#0xd8
000068  f7fffffe          BL       LCD_DisplayStringLine
                  |L5.108|
;;;1700       while(ReadKey() == NOKEY)
00006c  f7fffffe          BL       ReadKey
000070  2800              CMP      r0,#0
000072  d0fb              BEQ      |L5.108|
000074  e020              B        |L5.184|
                  |L5.118|
;;;1701       {
;;;1702       }
;;;1703       /* Clear the LCD */
;;;1704       LCD_Clear(White);
;;;1705       /* Display the menu */
;;;1706       DisplayMenu();
;;;1707       /* Enable the JoyStick interrupts */
;;;1708       IntExtOnOffConfig(ENABLE);
;;;1709       return;
;;;1710     }
;;;1711     
;;;1712     /* Read the alarm value stored in the Backup register */
;;;1713     tmp = BKP_ReadBackupRegister(BKP_DR6);
000076  2018              MOVS     r0,#0x18
000078  f7fffffe          BL       BKP_ReadBackupRegister
00007c  4605              MOV      r5,r0
;;;1714     tmp |= BKP_ReadBackupRegister(BKP_DR7) << 16;
00007e  201c              MOVS     r0,#0x1c
000080  f7fffffe          BL       BKP_ReadBackupRegister
000084  ea454500          ORR      r5,r5,r0,LSL #16
;;;1715     
;;;1716     LCD_ClearLine(Line8);
000088  20c0              MOVS     r0,#0xc0
00008a  f7fffffe          BL       LCD_ClearLine
;;;1717   
;;;1718     /* Display alarm separators ":" on Line2 */
;;;1719     LCD_DisplayChar(Line8, 212, ':');
00008e  223a              MOVS     r2,#0x3a
000090  21d4              MOVS     r1,#0xd4
000092  20c0              MOVS     r0,#0xc0
000094  f7fffffe          BL       LCD_DisplayChar
;;;1720     LCD_DisplayChar(Line8, 166, ':');
000098  223a              MOVS     r2,#0x3a
00009a  21a6              MOVS     r1,#0xa6
00009c  20c0              MOVS     r0,#0xc0
00009e  f7fffffe          BL       LCD_DisplayChar
;;;1721   
;;;1722     /* Display actual alarm value */
;;;1723     Alarm_Display(tmp);
0000a2  4628              MOV      r0,r5
0000a4  f7fffffe          BL       Alarm_Display
                  |L5.168|
;;;1724   
;;;1725     /* Wait a press on pushbuttons */
;;;1726     while(ReadKey() != NOKEY)
0000a8  f7fffffe          BL       ReadKey
0000ac  2800              CMP      r0,#0
0000ae  d1fb              BNE      |L5.168|
                  |L5.176|
;;;1727     {
;;;1728     }
;;;1729   
;;;1730     /* Wait a press on pushbuttons */
;;;1731     while(ReadKey() == NOKEY)
0000b0  f7fffffe          BL       ReadKey
0000b4  2800              CMP      r0,#0
0000b6  d0fb              BEQ      |L5.176|
                  |L5.184|
;;;1732     {
;;;1733     }
;;;1734     /* Clear the LCD */
;;;1735     LCD_Clear(White);
0000b8  4620              MOV      r0,r4
0000ba  f7fffffe          BL       LCD_Clear
;;;1736     /* Display the menu */
;;;1737     DisplayMenu();
0000be  f7fffffe          BL       DisplayMenu
;;;1738     /* Enable the JoyStick interrupts */
;;;1739     IntExtOnOffConfig(ENABLE);
0000c2  e8bd4070          POP      {r4-r6,lr}
0000c6  2001              MOVS     r0,#1
0000c8  f7ffbffe          B.W      IntExtOnOffConfig
;;;1740   }
;;;1741   
                          ENDP

                  |L5.204|
                          DCD      0x64fe0f54
                  |L5.208|
0000d0  54696d65206e6f7420636f6e666967757265642000        DCB      "Time not configured ",0
0000e5  00                DCB      0
0000e6  00                DCB      0
0000e7  00                DCB      0
                  |L5.232|
0000e8  202020202050726573732053454c20202020202000        DCB      "     Press SEL      ",0
0000fd  00                DCB      0
0000fe  00                DCB      0
0000ff  00                DCB      0

                          AREA ||i.Calendar_Init||, CODE, READONLY, ALIGN=2

                  Calendar_Init PROC
;;;149    *******************************************************************************/
;;;150    void Calendar_Init(void)
000000  e92d41f0          PUSH     {r4-r8,lr}
;;;151    {
;;;152      u32 i = 0, tmp = 0, pressedkey = 0;
;;;153      
;;;154      /* Initialize Date structure */
;;;155      date_s.month = 01;
000004  4e5e              LDR      r6,|L6.384|
000006  2001              MOVS     r0,#1
000008  7030              STRB     r0,[r6,#0]
;;;156      date_s.day = 01;
00000a  7070              STRB     r0,[r6,#1]
;;;157      date_s.year = 2008;
00000c  f44f60fb          MOV      r0,#0x7d8
000010  8070              STRH     r0,[r6,#2]
000012  2400              MOVS     r4,#0                 ;152
;;;158        
;;;159      if(BKP_ReadBackupRegister(BKP_DR1) != 0xA5A5)
000014  2004              MOVS     r0,#4
000016  f7fffffe          BL       BKP_ReadBackupRegister
00001a  f5a04125          SUB      r1,r0,#0xa500
00001e  39a5              SUBS     r1,r1,#0xa5
000020  d01e              BEQ      |L6.96|
;;;160      {
;;;161        LCD_SetBackColor(Blue);
000022  201f              MOVS     r0,#0x1f
000024  f7fffffe          BL       LCD_SetBackColor
;;;162        LCD_SetTextColor(White);
000028  f64f70ff          MOV      r0,#0xffff
00002c  f7fffffe          BL       LCD_SetTextColor
;;;163        LCD_DisplayStringLine(Line7, "Time and Date Config");
000030  a154              ADR      r1,|L6.388|
000032  20a8              MOVS     r0,#0xa8
000034  f7fffffe          BL       LCD_DisplayStringLine
;;;164        LCD_DisplayStringLine(Line8, "Select: Press SEL   ");

⌨️ 快捷键说明

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