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

📄 calendar.txt

📁 STM32外部SRAM用作datamemery的程序 开发环境MDK
💻 TXT
📖 第 1 页 / 共 5 页
字号:
00009e  b2c0              UXTB     r0,r0
0000a0  3030              ADDS     r0,r0,#0x30
0000a2  b2c2              UXTB     r2,r0
0000a4  2186              MOVS     r1,#0x86
0000a6  20c0              MOVS     r0,#0xc0
0000a8  f7fff7ff          B.W      LCD_DisplayChar
;;;403    }
;;;404    
                          ENDP

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

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

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

⌨️ 快捷键说明

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