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

📄 calendar.txt

📁 STM32F103ZET6+UCOSII+UCGUI源码
💻 TXT
📖 第 1 页 / 共 5 页
字号:
000038  a158              ADR      r1,|L6.412|
00003a  20c0              MOVS     r0,#0xc0
00003c  f7fffffe          BL       LCD_DisplayStringLine
;;;165        LCD_DisplayStringLine(Line9, "Abort: Press Any Key");
000040  a15c              ADR      r1,|L6.436|
000042  20d8              MOVS     r0,#0xd8
000044  f7fffffe          BL       LCD_DisplayStringLine
                  |L6.72|
;;;166        
;;;167        while(1)
;;;168        { 
;;;169          pressedkey = ReadKey();
000048  f7fffffe          BL       ReadKey
;;;170    
;;;171          if(pressedkey == SEL)
00004c  2801              CMP      r0,#1
00004e  d103              BNE      |L6.88|
;;;172          {
;;;173            /* Adjust Time */
;;;174            Time_PreAdjust();
000050  e8bd41f0          POP      {r4-r8,lr}
000054  f7ffbffe          B.W      Time_PreAdjust
                  |L6.88|
;;;175            return;
;;;176          }
;;;177          else if (pressedkey != NOKEY)
000058  2800              CMP      r0,#0
00005a  d0f5              BEQ      |L6.72|
                  |L6.92|
;;;178          {
;;;179            return;
;;;180          }
;;;181        }
;;;182      }
;;;183      else
;;;184      {
;;;185        /* PWR and BKP clocks selection ------------------------------------------*/
;;;186        RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR | RCC_APB1Periph_BKP, ENABLE);
;;;187      
;;;188        /* Allow access to BKP Domain */
;;;189        PWR_BackupAccessCmd(ENABLE);
;;;190        
;;;191        /* Wait until last write operation on RTC registers has finished */
;;;192        RTC_WaitForLastTask();
;;;193      
;;;194        /* Enable the RTC Second */  
;;;195        RTC_ITConfig(RTC_IT_SEC, ENABLE);
;;;196    
;;;197        /* Wait until last write operation on RTC registers has finished */
;;;198        RTC_WaitForLastTask();
;;;199        
;;;200        /* Initialize Date structure */
;;;201        date_s.month = (BKP_ReadBackupRegister(BKP_DR3) & 0xFF00) >> 8;
;;;202        date_s.day = (BKP_ReadBackupRegister(BKP_DR3) & 0x00FF);
;;;203        date_s.year = BKP_ReadBackupRegister(BKP_DR2);
;;;204        daycolumn = BKP_ReadBackupRegister(BKP_DR4);
;;;205        dayline = BKP_ReadBackupRegister(BKP_DR5);
;;;206    
;;;207        if(RTC_GetCounter() / 86399 != 0)
;;;208        {
;;;209          for(i = 0; i < (RTC_GetCounter() / 86399); i++)
;;;210          {
;;;211            Date_Update();
;;;212          }
;;;213    
;;;214          RTC_SetCounter(RTC_GetCounter() % 86399);
;;;215    
;;;216          LCD_DisplayStringLine(Line8, "       Days elapsed ");
;;;217          tmp = i/100;
;;;218          LCD_DisplayChar(Line8, 276,(tmp + 0x30));
;;;219          tmp = ((i%100)/10);
;;;220          LCD_DisplayChar(Line8, 260,(tmp + 0x30));
;;;221          tmp = ((i%100)%10);
;;;222          LCD_DisplayChar(Line8, 244,(tmp + 0x30));
;;;223          LCD_DisplayStringLine(Line9, "      Press SEL     ");
;;;224    
;;;225          while(ReadKey() != SEL)
;;;226          {
;;;227          }
;;;228    
;;;229          LCD_ClearLine(Line8);
;;;230          LCD_ClearLine(Line9);
;;;231          LCD_DisplayStringLine(Line9, "Push SEL to Continue");
;;;232          Date_Display(date_s.year, date_s.month, date_s.day);
;;;233     
;;;234          while(ReadKey() != SEL)
;;;235          {
;;;236          }
;;;237       
;;;238          BKP_WriteBackupRegister(BKP_DR4, daycolumn);
;;;239          BKP_WriteBackupRegister(BKP_DR5, dayline);
;;;240        }
;;;241      }
;;;242    }
00005c  e8bd81f0          POP      {r4-r8,pc}
                  |L6.96|
000060  2101              MOVS     r1,#1                 ;186
000062  f04f50c0          MOV      r0,#0x18000000        ;186
000066  f7fffffe          BL       RCC_APB1PeriphClockCmd
00006a  2001              MOVS     r0,#1                 ;189
00006c  f7fffffe          BL       PWR_BackupAccessCmd
000070  f7fffffe          BL       RTC_WaitForLastTask
000074  2101              MOVS     r1,#1                 ;195
000076  4608              MOV      r0,r1                 ;195
000078  f7fffffe          BL       RTC_ITConfig
00007c  f7fffffe          BL       RTC_WaitForLastTask
000080  200c              MOVS     r0,#0xc               ;201
000082  f7fffffe          BL       BKP_ReadBackupRegister
000086  0a00              LSRS     r0,r0,#8              ;201
000088  7030              STRB     r0,[r6,#0]            ;201
00008a  200c              MOVS     r0,#0xc               ;202
00008c  f7fffffe          BL       BKP_ReadBackupRegister
000090  7070              STRB     r0,[r6,#1]            ;202
000092  2008              MOVS     r0,#8                 ;203
000094  f7fffffe          BL       BKP_ReadBackupRegister
000098  8070              STRH     r0,[r6,#2]            ;203
00009a  2010              MOVS     r0,#0x10              ;204
00009c  f7fffffe          BL       BKP_ReadBackupRegister
0000a0  f8df80dc          LDR      r8,|L6.384|
0000a4  f1a80810          SUB      r8,r8,#0x10           ;204
0000a8  f8a80000          STRH     r0,[r8,#0]            ;204
0000ac  4645              MOV      r5,r8                 ;204
0000ae  2014              MOVS     r0,#0x14              ;205
0000b0  f7fffffe          BL       BKP_ReadBackupRegister
0000b4  8068              STRH     r0,[r5,#2]            ;205
0000b6  f7fffffe          BL       RTC_GetCounter
0000ba  4d44              LDR      r5,|L6.460|
0000bc  42a8              CMP      r0,r5                 ;207
0000be  d3cd              BCC      |L6.92|
0000c0  e003              B        |L6.202|
0000c2  bf00              NOP                            ;211
                  |L6.196|
0000c4  f7fffffe          BL       Date_Update
0000c8  1c64              ADDS     r4,r4,#1              ;209
                  |L6.202|
0000ca  f7fffffe          BL       RTC_GetCounter
0000ce  fbb0f0f5          UDIV     r0,r0,r5              ;209
0000d2  42a0              CMP      r0,r4                 ;209
0000d4  d8f6              BHI      |L6.196|
0000d6  f7fffffe          BL       RTC_GetCounter
0000da  fbb0f1f5          UDIV     r1,r0,r5              ;214
0000de  fb050011          MLS      r0,r5,r1,r0           ;214
0000e2  f7fffffe          BL       RTC_SetCounter
0000e6  a13a              ADR      r1,|L6.464|
0000e8  20c0              MOVS     r0,#0xc0              ;216
0000ea  f7fffffe          BL       LCD_DisplayStringLine
0000ee  2764              MOVS     r7,#0x64              ;217
0000f0  fbb4f5f7          UDIV     r5,r4,r7              ;217
0000f4  f1050030          ADD      r0,r5,#0x30           ;218
0000f8  b2c2              UXTB     r2,r0                 ;218
0000fa  f44f718a          MOV      r1,#0x114             ;218
0000fe  20c0              MOVS     r0,#0xc0              ;218
000100  f7fffffe          BL       LCD_DisplayChar
000104  fb074515          MLS      r5,r7,r5,r4           ;219
000108  270a              MOVS     r7,#0xa               ;219
00010a  fbb5f4f7          UDIV     r4,r5,r7              ;219
00010e  f1040030          ADD      r0,r4,#0x30           ;220
000112  b2c2              UXTB     r2,r0                 ;220
000114  f44f7182          MOV      r1,#0x104             ;220
000118  20c0              MOVS     r0,#0xc0              ;220
00011a  f7fffffe          BL       LCD_DisplayChar
00011e  fb075014          MLS      r0,r7,r4,r5           ;221
000122  3030              ADDS     r0,r0,#0x30           ;222
000124  b2c2              UXTB     r2,r0                 ;222
000126  21f4              MOVS     r1,#0xf4              ;222
000128  20c0              MOVS     r0,#0xc0              ;222
00012a  f7fffffe          BL       LCD_DisplayChar
00012e  a12e              ADR      r1,|L6.488|
000130  20d8              MOVS     r0,#0xd8              ;223
000132  f7fffffe          BL       LCD_DisplayStringLine
000136  bf00              NOP                            ;225
                  |L6.312|
000138  f7fffffe          BL       ReadKey
00013c  2801              CMP      r0,#1                 ;225
00013e  d1fb              BNE      |L6.312|
000140  20c0              MOVS     r0,#0xc0              ;229
000142  f7fffffe          BL       LCD_ClearLine
000146  20d8              MOVS     r0,#0xd8              ;230
000148  f7fffffe          BL       LCD_ClearLine
00014c  a12c              ADR      r1,|L6.512|
00014e  20d8              MOVS     r0,#0xd8              ;231
000150  f7fffffe          BL       LCD_DisplayStringLine
000154  7872              LDRB     r2,[r6,#1]            ;232  ; date_s
000156  7831              LDRB     r1,[r6,#0]            ;232  ; date_s
000158  8870              LDRH     r0,[r6,#2]            ;232  ; date_s
00015a  f7fffffe          BL       Date_Display
00015e  bf00              NOP                            ;234
                  |L6.352|
000160  f7fffffe          BL       ReadKey
000164  2801              CMP      r0,#1                 ;234
000166  d1fb              BNE      |L6.352|
000168  4644              MOV      r4,r8                 ;238
00016a  f8b81000          LDRH     r1,[r8,#0]            ;238  ; daycolumn
00016e  2010              MOVS     r0,#0x10              ;238
000170  f7fffffe          BL       BKP_WriteBackupRegister
000174  8861              LDRH     r1,[r4,#2]            ;239  ; dayline
000176  e8bd41f0          POP      {r4-r8,lr}            ;239
00017a  2014              MOVS     r0,#0x14              ;239
00017c  f7ffbffe          B.W      BKP_WriteBackupRegister
;;;243    
                          ENDP

                  |L6.384|
                          DCD      ||.data||+0x10
                  |L6.388|
000184  54696d6520616e64204461746520436f6e66696700        DCB      "Time and Date Config",0
000199  00                DCB      0
00019a  00                DCB      0
00019b  00                DCB      0
                  |L6.412|
00019c  53656c6563743a2050726573732053454c20202000        DCB      "Select: Press SEL   ",0
0001b1  00                DCB      0
0001b2  00                DCB      0
0001b3  00                DCB      0
                  |L6.436|
0001b4  41626f72743a20507265737320416e79204b657900        DCB      "Abort: Press Any Key",0
0001c9  00                DCB      0
0001ca  00                DCB      0
0001cb  00                DCB      0
                  |L6.460|
                          DCD      0x0001517f
                  |L6.464|
0001d0  202020202020204461797320656c61707365642000        DCB      "       Days elapsed ",0
0001e5  00                DCB      0
0001e6  00                DCB      0
0001e7  00                DCB      0
                  |L6.488|
0001e8  20202020202050726573732053454c202020202000        DCB      "      Press SEL     ",0
0001fd  00                DCB      0
0001fe  00                DCB      0
0001ff  00                DCB      0
                  |L6.512|
000200  507573682053454c20746f20436f6e74696e756500        DCB      "Push SEL to Continue",0
000215  00                DCB      0
000216  00                DCB      0
000217  00                DCB      0

                          AREA ||i.Date_Adjust||, CODE, READONLY, ALIGN=1

                  Date_Adjust PROC
;;;583    *******************************************************************************/
;;;584    void Date_Adjust(void)
000000  b510              PUSH     {r4,lr}
;;;585    {
;;;586      IntExtOnOffConfig(DISABLE);
000002  2000              MOVS     r0,#0
000004  f7fffffe          BL       IntExtOnOffConfig
                  |L7.8|
;;;587     
;;;588      while(ReadKey() != NOKEY)
000008  f7fffffe          BL       ReadKey
00000c  2800              CMP      r0,#0
00000e  d1fb              BNE      |L7.8|
;;;589      {
;;;590      }
;;;591      /* Preadjust the date */
;;;592      Date_PreAdjust();
000010  f7fffffe          BL       Date_PreAdjust
;;;593      /* Clear the LCD */
;;;594      LCD_Clear(White);
000014  f64f70ff          MOV      r0,#0xffff
000018  f7fffffe          BL       LCD_Clear
;;;595      /* Display the menu */
;;;596      DisplayMenu();
00001c  f7fffffe          BL       DisplayMenu
;;;597      /* Enable the JoyStick interrupts */
;;;598      IntExtOnOffConfig(ENABLE);
000020  e8bd4010          POP      {r4,lr}
000024  2001              MOVS     r0,#1
000026  f7ffbffe          B.W      IntExtOnOffConfig
;;;599    }
;;;600    
                          ENDP


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

                  Date_Display PROC
;;;607    *******************************************************************************/
;;;608    void Date_Display(u16 nYear, u8 nMonth, u8 nDay)
000000  e92d4ff7          PUSH     {r0-r2,r4-r11,lr}
;;;609    {
000004  4681              MOV      r9,r0
000006  460d              MOV      r5,r1
;;;610      u32 mline = 0, mcolumn = 319, month = 0;
;;;611      u32 monthlength = 0;
;;;612    
;;;613      if(nMonth == 2)
000008  2902              CMP      r1,#2
00000a  d168              BNE      |L8.222|
;;;614      {
;;;615        if(IsLeapYear(nYear))
00000c  4648              MOV      r0,r9
00000e  f7fffffe          BL       IsLeapYear
000012  b108              CBZ      r0,|L8.24|
;;;616        {
;;;617          monthlength = 30;
000014  201e              MOVS     r0,#0x1e
000016  e001              B        |L8.28|
                  |L8.24|
;;;618        }
;;;619        else
;;;620        {
;;;621          monthlength = MonLen[nMonth - 1];

⌨️ 快捷键说明

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