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

📄 calendar.txt

📁 stm32.rar
💻 TXT
📖 第 1 页 / 共 5 页
字号:
0000a0  3030              ADDS     r0,r0,#0x30
0000a2  b2c2              UXTB     r2,r0
0000a4  2186              MOVS     r1,#0x86
0000a6  20c0              MOVS     r0,#0xc0
0000a8  f7ffbffe          B.W      LCD_DisplayChar
;;;408    }
;;;409    
                          ENDP

                  |L7.172|
0000ac  00000014          DCD      ||.data||+0x14

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

                  RegulateDay PROC
;;;1280   static void RegulateDay(void)
;;;1281   {
000000  e92d5ff0          PUSH     {r4-r12,lr}
;;;1282     u32 tmpValue = 0;
;;;1283     u32 MyKey = 0, ValueMax = 0;
;;;1284     u32 firstdaycolumn = 0, lastdaycolumn = 0, lastdayline = 0;
;;;1285     
;;;1286     if(date_s.month == 2)
000004  4b85              LDR      r3,|L8.540|
000006  7818              LDRB     r0,[r3,#0]  ; date_s
000008  f103040f          ADD      r4,r3,#0xf
00000c  2802              CMP      r0,#2
00000e  d106              BNE      |L8.30|
;;;1287     {
;;;1288       if(IsLeapYear(date_s.year))
000010  8858              LDRH     r0,[r3,#2]  ; date_s
000012  f7fffffe          BL       IsLeapYear
000016  b108              CBZ      r0,|L8.28|
;;;1289         ValueMax = 29;
000018  251d              MOVS     r5,#0x1d
00001a  e002              B        |L8.34|
                  |L8.28|
;;;1290       else
;;;1291         ValueMax = (MonLen[date_s.month - 1] - 1);
00001c  7818              LDRB     r0,[r3,#0]  ; date_s
                  |L8.30|
;;;1292     }
;;;1293     else
;;;1294     {
;;;1295       ValueMax = (MonLen[date_s.month - 1] - 1);
00001e  5d05              LDRB     r5,[r0,r4]
000020  1e6d              SUBS     r5,r5,#1
                  |L8.34|
;;;1296     }  
;;;1297   
;;;1298     firstdaycolumn = 0x13F - (0x30 * dn);
000022  f8df91f8          LDR      r9,|L8.540|
000026  f240113f          MOV      r1,#0x13f
00002a  f1a90910          SUB      r9,r9,#0x10
00002e  f8d90008          LDR      r0,[r9,#8]  ; dn
;;;1299   
;;;1300     lastdaycolumn = ValueMax - (7 - dn);
;;;1301     lastdayline = lastdaycolumn / 7;
;;;1302     lastdaycolumn %= 7;
000032  f2401b6f          MOV      r11,#0x16f
000036  eba00280          SUB      r2,r0,r0,LSL #2       ;1298
00003a  f1c00007          RSB      r0,r0,#7              ;1300
00003e  eb011802          ADD      r8,r1,r2,LSL #4       ;1298
000042  1a28              SUBS     r0,r5,r0              ;1300
000044  2207              MOVS     r2,#7                 ;1301
000046  fbb0f1f2          UDIV     r1,r0,r2              ;1301
00004a  fb020011          MLS      r0,r2,r1,r0
00004e  f04f0a48          MOV      r10,#0x48
;;;1303   
;;;1304     if(lastdaycolumn == 0)
000052  b928              CBNZ     r0,|L8.96|
;;;1305     {
;;;1306       lastdayline = Line3 + (lastdayline * 24);
000054  eb010041          ADD      r0,r1,r1,LSL #1
000058  eb0a07c0          ADD      r7,r10,r0,LSL #3
;;;1307       lastdaycolumn = 31;
00005c  261f              MOVS     r6,#0x1f
00005e  e008              B        |L8.114|
                  |L8.96|
;;;1308     }
;;;1309     else
;;;1310     {
;;;1311       lastdayline = Line4 + (lastdayline * 24);
000060  eb010141          ADD      r1,r1,r1,LSL #1
000064  2260              MOVS     r2,#0x60
;;;1312       lastdaycolumn = 0x13F -(0x30 * (lastdaycolumn - 1));
000066  eba00080          SUB      r0,r0,r0,LSL #2
00006a  eb0207c1          ADD      r7,r2,r1,LSL #3       ;1311
00006e  eb0b1600          ADD      r6,r11,r0,LSL #4
                  |L8.114|
;;;1313     }
;;;1314   
;;;1315     
;;;1316     /* Initialize tmpValue */
;;;1317     tmpValue = date_s.day;
000072  486a              LDR      r0,|L8.540|
000074  f8904001          LDRB.W   r4,[r0,#1]
                  |L8.120|
;;;1318     
;;;1319     /* Endless loop */
;;;1320     while(1)
;;;1321     {
;;;1322       /* Check which key is pressed */
;;;1323       MyKey = ReadKey();
000078  f7fffffe          BL       ReadKey
;;;1324   
;;;1325       /* If "RIGHT" pushbutton is pressed */
;;;1326       if(MyKey == RIGHT)
00007c  2802              CMP      r0,#2
00007e  d134              BNE      |L8.234|
;;;1327       {
;;;1328         LCD_SetTextColor(White);   
000080  f64f70ff          MOV      r0,#0xffff
000084  f7fffffe          BL       LCD_SetTextColor
;;;1329         LCD_DrawRect(dayline, daycolumn, 24, 32);
000088  f8b90002          LDRH     r0,[r9,#2]  ; dayline
00008c  2320              MOVS     r3,#0x20
00008e  2218              MOVS     r2,#0x18
000090  f8b91000          LDRH     r1,[r9,#0]  ; daycolumn
000094  b2c0              UXTB     r0,r0
000096  f7fffffe          BL       LCD_DrawRect
;;;1330         
;;;1331         /* Increase the value of the digit */
;;;1332         if(tmpValue == ValueMax)
00009a  42ac              CMP      r4,r5
00009c  d106              BNE      |L8.172|
;;;1333         {
;;;1334           tmpValue = 0;
;;;1335           dayline = Line3;
00009e  f8a9a002          STRH     r10,[r9,#2]  ; dayline
;;;1336           daycolumn = firstdaycolumn + 48;
0000a2  f1080030          ADD      r0,r8,#0x30
0000a6  2400              MOVS     r4,#0                 ;1334
0000a8  f8a90000          STRH     r0,[r9,#0]  ; daycolumn
                  |L8.172|
;;;1337         }
;;;1338                
;;;1339         if(daycolumn == 31)
0000ac  f8b90000          LDRH     r0,[r9,#0]  ; daycolumn
0000b0  281f              CMP      r0,#0x1f
0000b2  d106              BNE      |L8.194|
;;;1340         {
;;;1341           daycolumn = 367;
0000b4  f8a9b000          STRH     r11,[r9,#0]  ; daycolumn
;;;1342           dayline += 24;
0000b8  f8b90002          LDRH     r0,[r9,#2]  ; dayline
0000bc  3018              ADDS     r0,r0,#0x18
0000be  f8a90002          STRH     r0,[r9,#2]  ; dayline
                  |L8.194|
;;;1343         }
;;;1344   
;;;1345         daycolumn -= 48;
0000c2  f8b90000          LDRH     r0,[r9,#0]  ; daycolumn
0000c6  3830              SUBS     r0,r0,#0x30
0000c8  f8a90000          STRH     r0,[r9,#0]  ; daycolumn
;;;1346         LCD_SetTextColor(Red);   
0000cc  f44f4078          MOV      r0,#0xf800
0000d0  f7fffffe          BL       LCD_SetTextColor
;;;1347         LCD_DrawRect(dayline, daycolumn, 24, 32);
0000d4  f8b90002          LDRH     r0,[r9,#2]  ; dayline
0000d8  2320              MOVS     r3,#0x20
0000da  2218              MOVS     r2,#0x18
0000dc  f8b91000          LDRH     r1,[r9,#0]  ; daycolumn
0000e0  b2c0              UXTB     r0,r0
0000e2  f7fffffe          BL       LCD_DrawRect
;;;1348         tmpValue++;   
0000e6  1c64              ADDS     r4,r4,#1
0000e8  e7c6              B        |L8.120|
                  |L8.234|
;;;1349       }
;;;1350       /* If "LEFT" pushbutton is pressed */
;;;1351       if(MyKey == LEFT)
0000ea  2803              CMP      r0,#3
0000ec  d138              BNE      |L8.352|
;;;1352       {
;;;1353         LCD_SetTextColor(White);   
0000ee  f64f70ff          MOV      r0,#0xffff
0000f2  f7fffffe          BL       LCD_SetTextColor
;;;1354         LCD_DrawRect(dayline, daycolumn, 24, 32);
0000f6  f8b90002          LDRH     r0,[r9,#2]  ; dayline
0000fa  2320              MOVS     r3,#0x20
0000fc  2218              MOVS     r2,#0x18
0000fe  f8b91000          LDRH     r1,[r9,#0]  ; daycolumn
000102  b2c0              UXTB     r0,r0
000104  f7fffffe          BL       LCD_DrawRect
;;;1355         
;;;1356         /* Decrease the value of the digit */
;;;1357         if(tmpValue == 1)
000108  2c01              CMP      r4,#1
00010a  d106              BNE      |L8.282|
;;;1358         {
;;;1359           tmpValue = ValueMax + 1;
;;;1360           dayline = lastdayline;
00010c  f8a97002          STRH     r7,[r9,#2]  ; dayline
;;;1361           daycolumn = lastdaycolumn - 48;        
000110  f1a60030          SUB      r0,r6,#0x30
000114  1c6c              ADDS     r4,r5,#1              ;1359
000116  f8a90000          STRH     r0,[r9,#0]  ; daycolumn
                  |L8.282|
;;;1362         }
;;;1363         
;;;1364         if(daycolumn == 319)
00011a  f8b90000          LDRH     r0,[r9,#0]  ; daycolumn
00011e  f5a07180          SUB      r1,r0,#0x100
000122  393f              SUBS     r1,r1,#0x3f
000124  d108              BNE      |L8.312|
;;;1365         {
;;;1366           daycolumn = 0xFFEF;
000126  f64f70ef          MOV      r0,#0xffef
00012a  f8a90000          STRH     r0,[r9,#0]  ; daycolumn
;;;1367           dayline -= 24;
00012e  f8b90002          LDRH     r0,[r9,#2]  ; dayline
000132  3818              SUBS     r0,r0,#0x18
000134  f8a90002          STRH     r0,[r9,#2]  ; dayline
                  |L8.312|
;;;1368         } 
;;;1369   
;;;1370         daycolumn += 48;      
000138  f8b90000          LDRH     r0,[r9,#0]  ; daycolumn
00013c  3030              ADDS     r0,r0,#0x30
00013e  f8a90000          STRH     r0,[r9,#0]  ; daycolumn
;;;1371         LCD_SetTextColor(Red);   
000142  f44f4078          MOV      r0,#0xf800
000146  f7fffffe          BL       LCD_SetTextColor
;;;1372         LCD_DrawRect(dayline, daycolumn, 24, 32);
00014a  f8b90002          LDRH     r0,[r9,#2]  ; dayline
00014e  2320              MOVS     r3,#0x20
000150  2218              MOVS     r2,#0x18
000152  f8b91000          LDRH     r1,[r9,#0]  ; daycolumn
000156  b2c0              UXTB     r0,r0
000158  f7fffffe          BL       LCD_DrawRect
;;;1373         tmpValue--;
00015c  1e64              SUBS     r4,r4,#1
                  |L8.350|
00015e  e78b              B        |L8.120|
                  |L8.352|
;;;1374       }
;;;1375       /* If "UP" pushbutton is pressed */
;;;1376       if(MyKey == UP)
000160  2804              CMP      r0,#4
000162  d130              BNE      |L8.454|
;;;1377       {
;;;1378         LCD_SetTextColor(White);   
000164  f64f70ff          MOV      r0,#0xffff
000168  f7fffffe          BL       LCD_SetTextColor
;;;1379         LCD_DrawRect(dayline, daycolumn, 24, 32);
00016c  f8b90002          LDRH     r0,[r9,#2]  ; dayline
000170  2320              MOVS     r3,#0x20
000172  2218              MOVS     r2,#0x18
000174  f8b91000          LDRH     r1,[r9,#0]  ; daycolumn
000178  b2c0              UXTB     r0,r0
00017a  f7fffffe          BL       LCD_DrawRect
;;;1380            
;;;1381         if(tmpValue == 1)
00017e  2c01              CMP      r4,#1
000180  d105              BNE      |L8.398|
;;;1382         {
;;;1383           dayline = lastdayline;
000182  f8a97002          STRH     r7,[r9,#2]  ; dayline
;;;1384           daycolumn =  lastdaycolumn;
000186  f8a96000          STRH     r6,[r9,#0]  ; daycolumn
;;;1385           tmpValue = ValueMax;
00018a  462c              MOV      r4,r5
00018c  e00d              B        |L8.426|
                  |L8.398|
;;;1386         }
;;;1387         else if(tmpValue < 8)
00018e  2c08              CMP      r4,#8
000190  d205              BCS      |L8.414|
;;;1388         {
;;;1389           tmpValue = 1;
;;;1390           dayline = Line3;
000192  f8a9a002          STRH     r10,[r9,#2]  ; dayline
000196  2401              MOVS     r4,#1                 ;1389
;;;1391           daycolumn = firstdaycolumn; 
000198  f8a98000          STRH     r8,[r9,#0]  ; daycolumn
00019c  e005              B        |L8.426|
                  |L8.414|
;;;1392         }
;;;1393         else
;;;1394         {
;;;1395           dayline -= 24;
00019e  f8b90002          LDRH     r0,[r9,#2]  ; dayline
0001a2  3818              SUBS     r0,r0,#0x18
0001a4  f8a90002          STRH     r0,[r9,#2]  ; dayline
;;;1396           tmpValue -= 7;
0001a8  1fe4              SUBS     r4,r4,#7
                  |L8.426|
;;;1397         }
;;;1398         LCD_SetTextColor(Red);   
0001aa  f44f4078          MOV      r0,#0xf800
0001ae  f7fffffe          BL       LCD_SetTextColor
;;;1399         LCD_DrawRect(dayline, daycolumn, 24, 32);    
0001b2  f8b90002          LDRH     r0,[r9,#2]  ; dayline
0001b6  2320              MOVS     r3,#0x20
0001b8  2218              MOVS     r2,#0x18
0001ba  f8b91000          LDRH     r1,[r9,#0]  ; daycolumn
0001be  b2c0              UXTB     r0,r0
0001c0  f7fffffe          BL       LCD_DrawRect
0001c4  e758              B        |L8.120|
                  |L8.454|
;;;1400       } 
;;;1401       /* If "DOWN" pushbutton is pressed */
;;;1402       if(MyKey == DOWN)
0001c6  2805              CMP      r0,#5
0001c8  d122              BNE      |L8.528|
;;;1403       {
;;;1404         LCD_SetTextColor(White);   
0001ca  f64f70ff          MOV      r0,#0xffff
0001ce  f7fffffe          BL       LCD_SetTextColor
;;;1405         LCD_DrawRect(dayline, daycolumn, 24, 32);
0001d2  f8b90002          LDRH     r0,[r9,#2]  ; dayline
0001d6  2320              MOVS     r3,#0x20
0001d8  2218              MOVS     r2,#0x18
0001da  f8b91000          LDRH     r1,[r9,#0]  ; daycolumn
0001de  b2c0              UXTB     r0,r0
0001e0  f7fffffe          BL       LCD_DrawRect
;;;1406         if(tmpValue == ValueMax)
0001e4  42ac              CMP      r4,r5
0001e6  d105              BNE      |L8.500|
;;;1407         {
;;;1408           dayline = Line3;
0001e8  f8a9a002          STRH     r10,[r9,#2]  ; dayline

⌨️ 快捷键说明

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