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

📄 menux.txt

📁 STM32F103ZET6+UCOSII+UCGUI源码
💻 TXT
📖 第 1 页 / 共 3 页
字号:

                  DisplayMenu PROC
;;;216    *******************************************************************************/
;;;217    void DisplayMenu(void)
000000  e92d41f0          PUSH     {r4-r8,lr}
;;;218    {
;;;219      u32 Line = 0, index = 0;
000004  2400              MOVS     r4,#0
;;;220      tMenuItem psMenuItem2;
;;;221    
;;;222      /* Set the Back Color */
;;;223      LCD_SetBackColor(Blue);
000006  201f              MOVS     r0,#0x1f
000008  f7fffffe          BL       LCD_SetBackColor
;;;224      /* Set the Text Color */
;;;225      LCD_SetTextColor(White);
00000c  f64f77ff          MOV      r7,#0xffff
000010  4638              MOV      r0,r7
000012  f7fffffe          BL       LCD_SetTextColor
;;;226    
;;;227      /* Clear the LCD Screen */
;;;228      LCD_Clear(White);
000016  4638              MOV      r0,r7
000018  f7fffffe          BL       LCD_Clear
;;;229    
;;;230      LCD_DisplayStringLine(Line, psCurrentMenu->pszTitle);
00001c  4e18              LDR      r6,|L5.128|
00001e  6930              LDR      r0,[r6,#0x10]  ; psCurrentMenu
000020  6801              LDR      r1,[r0,#0]
000022  2000              MOVS     r0,#0
000024  f7fffffe          BL       LCD_DisplayStringLine
;;;231      Line += 24;
000028  2518              MOVS     r5,#0x18
;;;232    
;;;233      /* Set the Back Color */
;;;234      LCD_SetBackColor(White);
00002a  4638              MOV      r0,r7
00002c  f7fffffe          BL       LCD_SetBackColor
;;;235    
;;;236      /* Set the Text Color */
;;;237      LCD_SetTextColor(Blue);
000030  201f              MOVS     r0,#0x1f
000032  f7fffffe          BL       LCD_SetTextColor
;;;238    
;;;239      while(!(index >= (psCurrentMenu->nItems)))
000036  e008              B        |L5.74|
                  |L5.56|
;;;240      {
;;;241        psMenuItem2 = &(psCurrentMenu->psItems[index]);
000038  6840              LDR      r0,[r0,#4]
00003a  eb001004          ADD      r0,r0,r4,LSL #4
;;;242        LCD_DisplayStringLine(Line, psMenuItem2->pszTitle);
00003e  6801              LDR      r1,[r0,#0]
000040  b2e8              UXTB     r0,r5
000042  f7fffffe          BL       LCD_DisplayStringLine
;;;243        index++;
000046  1c64              ADDS     r4,r4,#1
;;;244        Line += 24;
000048  3518              ADDS     r5,r5,#0x18
                  |L5.74|
00004a  6930              LDR      r0,[r6,#0x10]         ;239  ; psCurrentMenu
00004c  7a01              LDRB     r1,[r0,#8]            ;239
00004e  42a1              CMP      r1,r4                 ;239
000050  d8f2              BHI      |L5.56|
;;;245      }
;;;246      /* Set the Back Color */
;;;247      LCD_SetBackColor(Green);
000052  f44f60fc          MOV      r0,#0x7e0
000056  f7fffffe          BL       LCD_SetBackColor
;;;248    
;;;249      /* Set the Text Color */
;;;250      LCD_SetTextColor(White);
00005a  4638              MOV      r0,r7
00005c  f7fffffe          BL       LCD_SetTextColor
;;;251    
;;;252      /* Get the current menu */
;;;253      psMenuItem = &(psCurrentMenu->psItems[MenuItemIndex]);
000060  6930              LDR      r0,[r6,#0x10]  ; psCurrentMenu
000062  6841              LDR      r1,[r0,#4]
000064  7830              LDRB     r0,[r6,#0]  ; MenuItemIndex
000066  eb011100          ADD      r1,r1,r0,LSL #4
;;;254    
;;;255      LCD_DisplayStringLine(((MenuItemIndex + 1) * 24), psMenuItem->pszTitle);
00006a  60b1              STR      r1,[r6,#8]  ; psMenuItem
00006c  6809              LDR      r1,[r1,#0]
00006e  e8bd41f0          POP      {r4-r8,lr}
000072  1c40              ADDS     r0,r0,#1
000074  eb000040          ADD      r0,r0,r0,LSL #1
000078  06c0              LSLS     r0,r0,#27
00007a  0e00              LSRS     r0,r0,#24
00007c  f7ffbffe          B.W      LCD_DisplayStringLine
;;;256    }
;;;257    
                          ENDP

                  |L5.128|
                          DCD      ||.data||

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

                  DownFunc PROC
;;;322    *******************************************************************************/
;;;323    void DownFunc(void)
000000  b570              PUSH     {r4-r6,lr}
;;;324    {
;;;325      /* Set the Back Color */
;;;326      LCD_SetBackColor(White);
000002  f64f75ff          MOV      r5,#0xffff
000006  4628              MOV      r0,r5
000008  f7fffffe          BL       LCD_SetBackColor
;;;327      /* Set the Text Color */
;;;328      LCD_SetTextColor(Blue);
00000c  201f              MOVS     r0,#0x1f
00000e  f7fffffe          BL       LCD_SetTextColor
;;;329      psMenuItem = &psCurrentMenu->psItems[MenuItemIndex];
000012  4c1a              LDR      r4,|L6.124|
000014  6920              LDR      r0,[r4,#0x10]  ; psCurrentMenu
000016  6841              LDR      r1,[r0,#4]
000018  7820              LDRB     r0,[r4,#0]  ; MenuItemIndex
00001a  eb011100          ADD      r1,r1,r0,LSL #4
;;;330      LCD_DisplayStringLine(((MenuItemIndex + 1) * 24), psMenuItem->pszTitle);
00001e  1c40              ADDS     r0,r0,#1
000020  eb000040          ADD      r0,r0,r0,LSL #1
000024  60a1              STR      r1,[r4,#8]  ; psMenuItem
000026  06c0              LSLS     r0,r0,#27
000028  6809              LDR      r1,[r1,#0]
00002a  0e00              LSRS     r0,r0,#24
00002c  f7fffffe          BL       LCD_DisplayStringLine
;;;331          
;;;332      /* Test on the MenuItemIndex value before incrementing it */
;;;333      if(MenuItemIndex >= ((psCurrentMenu->nItems)-1))
000030  6920              LDR      r0,[r4,#0x10]  ; psCurrentMenu
000032  7a01              LDRB     r1,[r0,#8]
000034  7820              LDRB     r0,[r4,#0]  ; MenuItemIndex
000036  1e49              SUBS     r1,r1,#1
000038  4281              CMP      r1,r0
00003a  dc01              BGT      |L6.64|
;;;334      {
;;;335        MenuItemIndex = 0;
00003c  2000              MOVS     r0,#0
00003e  e000              B        |L6.66|
                  |L6.64|
;;;336      }
;;;337      else
;;;338      {
;;;339        MenuItemIndex++;
000040  1c40              ADDS     r0,r0,#1
                  |L6.66|
000042  7020              STRB     r0,[r4,#0]
;;;340      }
;;;341      /* Set the Back Color */
;;;342      LCD_SetBackColor(Green);
000044  f44f60fc          MOV      r0,#0x7e0
000048  f7fffffe          BL       LCD_SetBackColor
;;;343      /* Set the Text Color */
;;;344      LCD_SetTextColor(White);
00004c  4628              MOV      r0,r5
00004e  f7fffffe          BL       LCD_SetTextColor
;;;345      /* Get the current menu */
;;;346      psMenuItem = &(psCurrentMenu->psItems[MenuItemIndex]);
000052  6920              LDR      r0,[r4,#0x10]  ; psCurrentMenu
000054  6841              LDR      r1,[r0,#4]
000056  7820              LDRB     r0,[r4,#0]  ; MenuItemIndex
000058  eb011100          ADD      r1,r1,r0,LSL #4
;;;347      LCD_DisplayStringLine(((MenuItemIndex + 1) * 24), psMenuItem->pszTitle);
00005c  1c40              ADDS     r0,r0,#1
00005e  eb000040          ADD      r0,r0,r0,LSL #1
000062  60a1              STR      r1,[r4,#8]  ; psMenuItem
000064  06c0              LSLS     r0,r0,#27
000066  6809              LDR      r1,[r1,#0]
000068  0e00              LSRS     r0,r0,#24
00006a  f7fffffe          BL       LCD_DisplayStringLine
;;;348      ItemNumb[nMenuLevel] = MenuItemIndex;
00006e  4903              LDR      r1,|L6.124|
000070  7862              LDRB     r2,[r4,#1]  ; nMenuLevel
000072  7820              LDRB     r0,[r4,#0]  ; MenuItemIndex
000074  1c89              ADDS     r1,r1,#2
000076  5488              STRB     r0,[r1,r2]
;;;349    }
000078  bd70              POP      {r4-r6,pc}
;;;350    
                          ENDP

00007a  0000              DCW      0x0000
                  |L6.124|
                          DCD      ||.data||

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

                  IdleFunc PROC
;;;453    *******************************************************************************/
;;;454    void IdleFunc(void)
000000  4770              BX       lr
;;;455    {
;;;456      /* Nothing to execute: return */
;;;457      return;
;;;458    }
;;;459    
                          ENDP


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

                  LCD_NORDisplay PROC
;;;838    *******************************************************************************/
;;;839    void LCD_NORDisplay(u32 address)
000000  e92d4ff1          PUSH     {r0,r4-r11,lr}
;;;840    {
000004  4c1b              LDR      r4,|L8.116|
000006  b082              SUB      sp,sp,#8
;;;841      u32 GPIOD_CRL = GPIOD->CRL,  GPIOD_CRH = GPIOD->CRH;
000008  6826              LDR      r6,[r4,#0]
00000a  6867              LDR      r7,[r4,#4]
;;;842      u32 GPIOE_CRL = GPIOE->CRL,  GPIOE_CRH = GPIOE->CRH;
00000c  f8d48400          LDR      r8,[r4,#0x400]
000010  f8d4b404          LDR      r11,[r4,#0x404]
;;;843      u32 GPIOF_CRL = GPIOF->CRL,  GPIOF_CRH = GPIOF->CRH;
000014  f8d40800          LDR      r0,[r4,#0x800]
000018  9001              STR      r0,[sp,#4]
00001a  f8d40804          LDR      r0,[r4,#0x804]
;;;844      u32 GPIOG_CRL = GPIOG->CRL,  GPIOG_CRH = GPIOG->CRH;
00001e  4d16              LDR      r5,|L8.120|
000020  9000              STR      r0,[sp,#0]
000022  f8d59000          LDR      r9,[r5,#0]
000026  f8d5a004          LDR      r10,[r5,#4]
;;;845    
;;;846      /* Write/read to/from FSMC SRAM memory  *************************************/
;;;847      /* Enable the FSMC Clock */
;;;848      RCC_AHBPeriphClockCmd(RCC_AHBPeriph_FSMC, ENABLE);
00002a  2101              MOVS     r1,#1
00002c  0208              LSLS     r0,r1,#8
00002e  f7fffffe          BL       RCC_AHBPeriphClockCmd
;;;849      
;;;850      /* Configure FSMC Bank1 NOR/SRAM2 */
;;;851      FSMC_NOR_Init();
000032  f7fffffe          BL       FSMC_NOR_Init
;;;852      
;;;853      /* Read NOR memory ID */
;;;854      FSMC_NOR_ReadID(&NOR_ID);
000036  4811              LDR      r0,|L8.124|
000038  f7fffffe          BL       FSMC_NOR_ReadID
;;;855    
;;;856      FSMC_NOR_ReturnToReadMode();
00003c  f7fffffe          BL       FSMC_NOR_ReturnToReadMode
;;;857    
;;;858     
;;;859      /* Slide n

⌨️ 快捷键说明

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