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

📄 lcd.txt

📁 针对STM32F103的UCOS移植
💻 TXT
📖 第 1 页 / 共 5 页
字号:
000760  2003              MOVS     r0,#3
000762  eba00642          SUB      r6,r0,r2,LSL #1
;;;548      CurX = 0;
000766  2400              MOVS     r4,#0
;;;549      CurY = Radius;
000768  4615              MOV      r5,r2
;;;550    
;;;551      while (CurX <= CurY)
00076a  f8df90a8          LDR      r9,|L1.2068|
                  |L1.1902|
;;;552      {
;;;553        LCD_SetCursor(Xpos + CurX, Ypos + CurY);
00076e  eb080a05          ADD      r10,r8,r5
000772  eb070b04          ADD      r11,r7,r4
000776  fa1ff18a          UXTH     r1,r10
00077a  f00b00ff          AND      r0,r11,#0xff
00077e  f7fffffe          BL       LCD_SetCursor
;;;554        LCD_WriteRAM(TextColor);
000782  f8b90000          LDRH     r0,[r9,#0]  ; TextColor
000786  f7fffffe          BL       LCD_WriteRAM
;;;555        LCD_SetCursor(Xpos + CurX, Ypos - CurY);
00078a  eba80005          SUB      r0,r8,r5
00078e  b281              UXTH     r1,r0
000790  9002              STR      r0,[sp,#8]
000792  f00b00ff          AND      r0,r11,#0xff
000796  f7fffffe          BL       LCD_SetCursor
;;;556        LCD_WriteRAM(TextColor);
00079a  f8b90000          LDRH     r0,[r9,#0]  ; TextColor
00079e  f7fffffe          BL       LCD_WriteRAM
;;;557        LCD_SetCursor(Xpos - CurX, Ypos + CurY);
0007a2  fa1ff18a          UXTH     r1,r10
0007a6  eba70a04          SUB      r10,r7,r4
0007aa  f00a00ff          AND      r0,r10,#0xff
0007ae  f7fffffe          BL       LCD_SetCursor
;;;558        LCD_WriteRAM(TextColor);
0007b2  f8b90000          LDRH     r0,[r9,#0]  ; TextColor
0007b6  f7fffffe          BL       LCD_WriteRAM
;;;559        LCD_SetCursor(Xpos - CurX, Ypos - CurY);
0007ba  9802              LDR      r0,[sp,#8]
0007bc  b281              UXTH     r1,r0
0007be  f00a00ff          AND      r0,r10,#0xff
0007c2  f7fffffe          BL       LCD_SetCursor
;;;560        LCD_WriteRAM(TextColor);
0007c6  f8b90000          LDRH     r0,[r9,#0]  ; TextColor
0007ca  f7fffffe          BL       LCD_WriteRAM
;;;561        LCD_SetCursor(Xpos + CurY, Ypos + CurX);
0007ce  eb080004          ADD      r0,r8,r4
0007d2  b281              UXTH     r1,r0
0007d4  eb070a05          ADD      r10,r7,r5
0007d8  9001              STR      r0,[sp,#4]
0007da  f00a00ff          AND      r0,r10,#0xff
0007de  f7fffffe          BL       LCD_SetCursor
;;;562        LCD_WriteRAM(TextColor);
0007e2  f8b90000          LDRH     r0,[r9,#0]  ; TextColor
0007e6  f7fffffe          BL       LCD_WriteRAM
;;;563        LCD_SetCursor(Xpos + CurY, Ypos - CurX);
0007ea  eba80b04          SUB      r11,r8,r4
0007ee  fa1ff18b          UXTH     r1,r11
0007f2  f00a00ff          AND      r0,r10,#0xff
0007f6  f7fffffe          BL       LCD_SetCursor
;;;564        LCD_WriteRAM(TextColor);
0007fa  f8b90000          LDRH     r0,[r9,#0]  ; TextColor
0007fe  f7fffffe          BL       LCD_WriteRAM
;;;565        LCD_SetCursor(Xpos - CurY, Ypos + CurX);
000802  9801              LDR      r0,[sp,#4]
000804  b281              UXTH     r1,r0
000806  e021              B        |L1.2124|
                  |L1.2056|
000808  40011400          DCD      0x40011400
                  |L1.2060|
00080c  40010c00          DCD      0x40010c00
                  |L1.2064|
000810  40003800          DCD      0x40003800
                  |L1.2068|
000814  00000000          DCD      ||.data||
                  |L1.2072|
000818  00000000          DCD      ||.constdata||
                  |L1.2076|
00081c  202020202020202020202020202020202020202000        DCB      "                    ",0
000831  00                DCB      0
000832  00                DCB      0
000833  00                DCB      0
                  |L1.2100|
000834  202020537472696e6720746f6f206c6f6e67202000        DCB      "   String too long  ",0
000849  00                DCB      0
00084a  00                DCB      0
00084b  00                DCB      0
                  |L1.2124|
00084c  eba70a05          SUB      r10,r7,r5
000850  f00a00ff          AND      r0,r10,#0xff
000854  f7fffffe          BL       LCD_SetCursor
;;;566        LCD_WriteRAM(TextColor);
000858  f8b90000          LDRH     r0,[r9,#0]  ; TextColor
00085c  f7fffffe          BL       LCD_WriteRAM
;;;567        LCD_SetCursor(Xpos - CurY, Ypos - CurX);
000860  fa1ff18b          UXTH     r1,r11
000864  f00a00ff          AND      r0,r10,#0xff
000868  f7fffffe          BL       LCD_SetCursor
;;;568        LCD_WriteRAM(TextColor);
00086c  f8b90000          LDRH     r0,[r9,#0]  ; TextColor
000870  f7fffffe          BL       LCD_WriteRAM
;;;569    
;;;570        if (D < 0)
000874  2e00              CMP      r6,#0
000876  da03              BGE      |L1.2176|
;;;571        {
;;;572          D += (CurX << 2) + 6;
000878  eb060084          ADD      r0,r6,r4,LSL #2
00087c  1d86              ADDS     r6,r0,#6
00087e  e005              B        |L1.2188|
                  |L1.2176|
;;;573        }
;;;574        else
;;;575        {
;;;576          D += ((CurX - CurY) << 2) + 10;
000880  1b60              SUBS     r0,r4,r5
000882  eb060080          ADD      r0,r6,r0,LSL #2
000886  f100060a          ADD      r6,r0,#0xa
;;;577          CurY--;
00088a  1e6d              SUBS     r5,r5,#1
                  |L1.2188|
;;;578        }
;;;579        CurX++;
00088c  1c64              ADDS     r4,r4,#1
00088e  42ac              CMP      r4,r5                 ;551
000890  f67faf6d          BLS      |L1.1902|
;;;580      }
;;;581    }
000894  b003              ADD      sp,sp,#0xc
000896  e8bd8ff0          POP      {r4-r11,pc}
;;;582    
                          ENDP

                  LCD_DrawMonoPict PROC
;;;590    void LCD_DrawMonoPict(uc32 *Pict)
;;;591    {
00089a  e92d41f0          PUSH     {r4-r8,lr}
00089e  4606              MOV      r6,r0
;;;592      u32 index = 0, i = 0;
0008a0  2500              MOVS     r5,#0
;;;593    
;;;594      LCD_SetCursor(0, 319);
0008a2  f240113f          MOV      r1,#0x13f
0008a6  2000              MOVS     r0,#0
0008a8  f7fffffe          BL       LCD_SetCursor
;;;595    
;;;596      for(index = 0; index < 2400; index++)
0008ac  4f3f              LDR      r7,|L1.2476|
0008ae  f04f0801          MOV      r8,#1
                  |L1.2226|
;;;597      {
;;;598        for(i = 0; i < 32; i++)
0008b2  2400              MOVS     r4,#0
                  |L1.2228|
;;;599        {
;;;600          if((Pict[index] & (1 << i)) == 0x00)
0008b4  f8560025          LDR      r0,[r6,r5,LSL #2]
0008b8  fa08f104          LSL      r1,r8,r4
0008bc  4208              TST      r0,r1
0008be  d103              BNE      |L1.2248|
;;;601          {
;;;602            LCD_WriteRAM(BackColor);
0008c0  8878              LDRH     r0,[r7,#2]  ; BackColor
0008c2  f7fffffe          BL       LCD_WriteRAM
0008c6  e002              B        |L1.2254|
                  |L1.2248|
;;;603          }
;;;604          else
;;;605          {
;;;606            LCD_WriteRAM(TextColor);
0008c8  8838              LDRH     r0,[r7,#0]  ; TextColor
0008ca  f7fffffe          BL       LCD_WriteRAM
                  |L1.2254|
0008ce  1c64              ADDS     r4,r4,#1              ;598
0008d0  2c20              CMP      r4,#0x20              ;598
0008d2  d3ef              BCC      |L1.2228|
0008d4  1c6d              ADDS     r5,r5,#1              ;596
0008d6  f5b56f16          CMP      r5,#0x960             ;596
0008da  d3ea              BCC      |L1.2226|
;;;607          }
;;;608        }
;;;609      }
;;;610    }
0008dc  e8bd81f0          POP      {r4-r8,pc}
;;;611    
                          ENDP

                  LCD_PowerOn PROC
;;;667    void LCD_PowerOn(void)
;;;668    {
0008e0  b510              PUSH     {r4,lr}
;;;669      /* Power On Set */
;;;670      LCD_WriteReg(R28, 0x73);
0008e2  2173              MOVS     r1,#0x73
0008e4  201c              MOVS     r0,#0x1c
0008e6  f7fffffe          BL       LCD_WriteReg
;;;671      LCD_WriteReg(R36, 0x74);
0008ea  2174              MOVS     r1,#0x74
0008ec  2024              MOVS     r0,#0x24
0008ee  f7fffffe          BL       LCD_WriteReg
;;;672      LCD_WriteReg(R30, 0x01);
0008f2  2101              MOVS     r1,#1
0008f4  201e              MOVS     r0,#0x1e
0008f6  f7fffffe          BL       LCD_WriteReg
;;;673      LCD_WriteReg(R24, 0xC1);
0008fa  21c1              MOVS     r1,#0xc1
0008fc  2018              MOVS     r0,#0x18
0008fe  f7fffffe          BL       LCD_WriteReg
;;;674      Delay(1); /* Delay 10 ms */
000902  2001              MOVS     r0,#1
000904  f7fffffe          BL       Delay
;;;675      LCD_WriteReg(R24, 0xE1);
000908  21e1              MOVS     r1,#0xe1
00090a  2018              MOVS     r0,#0x18
00090c  f7fffffe          BL       LCD_WriteReg
;;;676      LCD_WriteReg(R24, 0xF1);
000910  21f1              MOVS     r1,#0xf1
000912  2018              MOVS     r0,#0x18
000914  f7fffffe          BL       LCD_WriteReg
;;;677      Delay(6); /* Delay 60 ms */
000918  2006              MOVS     r0,#6
00091a  f7fffffe          BL       Delay
;;;678      LCD_WriteReg(R24, 0xF5);
00091e  21f5              MOVS     r1,#0xf5
000920  2018              MOVS     r0,#0x18
000922  f7fffffe          BL       LCD_WriteReg
;;;679      Delay(6); /* Delay 60 ms */
000926  2006              MOVS     r0,#6
000928  f7fffffe          BL       Delay
;;;680      LCD_WriteReg(R27, 0x09);
00092c  2109              MOVS     r1,#9
00092e  201b              MOVS     r0,#0x1b
000930  f7fffffe          BL       LCD_WriteReg
;;;681      Delay(1); /* Delay 10 ms */
000934  2001              MOVS     r0,#1
000936  f7fffffe          BL       Delay
;;;682      LCD_WriteReg(R31, 0x11);
00093a  2111              MOVS     r1,#0x11
00093c  201f              MOVS     r0,#0x1f
00093e  f7fffffe          BL       LCD_WriteReg
;;;683      LCD_WriteReg(R32, 0x0E);
000942  210e              MOVS     r1,#0xe
000944  2020              MOVS     r0,#0x20
000946  f7fffffe          BL       LCD_WriteReg
;;;684      LCD_WriteReg(R30, 0x81);
00094a  2181              MOVS     r1,#0x81
00094c  201e              MOVS     r0,#0x1e
00094e  f7fffffe          BL       LCD_WriteReg
;;;685      Delay(1); /* Delay 10 ms */
000952  e8bd4010          POP      {r4,lr}
000956  2001              MOVS     r0,#1
000958  f7ffbffe          B.W      Delay
;;;686    }
;;;687    
                          ENDP

                  LCD_DisplayOn PROC
;;;695    void LCD_DisplayOn(void)
;;;696    {
00095c  b510              PUSH     {r4,lr}
;;;697      LCD_WriteReg(R1, 0x50);
00095e  2150              MOVS     r1,#0x50
000960  2001              MOVS     r0,#1
000962  f7fffffe          BL       LCD_WriteReg
;;;698      LCD_WriteReg(R5, 0x04);
000966  2104              MOVS     r1,#4
000968  2005              MOVS     r0,#5
00096a  f7fffffe          BL       LCD_WriteReg
;;;699    
;;;700      /* Display On */
;;;701      LCD_WriteReg(R0, 0x80);
00096e  2180              MOVS     r1,#0x80
000970  2000              MOVS     r0,#0
000972  f7fffffe          BL       LCD_WriteReg
;;;702      LCD_WriteReg(R59, 0x01);
000976  2101              MOVS     r1,#1
000978  203b              MOVS     r0,#0x3b
00097a  f7fffffe          BL       LCD_WriteReg
;;;703      Delay(4);                 /* Delay 40 ms */
00097e  2004              MOVS     r0,#4
000980  f7fffffe          BL       Delay
;;;704      LCD_WriteReg(R0, 0x20);
000984  2120              MOVS     r1,#0x20
000986  e8bd4010          POP      {r4,lr}
00098a  2000              MOVS     r0,#0
00098c  f7ffbffe          B.W      LCD_WriteReg
;;;705    }
;;;706    
                          ENDP

                  LCD_DisplayOff PROC
;;;714    void LCD_DisplayOff(void)
;;;715    {
000990  b510              PUSH     {r4,lr}
;;;716      /* Display Off */
;;;717      LCD_WriteReg(R0, 0xA0);
000992  21a0              MOVS     r1,#0xa0
000994  2000              MOVS     r0,#0
000996  f7fffffe          BL       LCD_WriteReg
;;;718      Delay(4);                 /* Delay 40 ms */
00099a  2004              MOVS     r0,#4
00099c  f7fffffe          BL       Delay
;;;719      LCD_WriteReg(R59, 0x00);
0009a0  2100              MOVS     r1,#0
0009a2  e8bd4010          POP      {r4,lr}
0009a6  203b              MOVS     r0,#0x3b
0009a8  f7ffbffe          B.W      LCD_WriteReg
;;;720    }
;;;721    
                          ENDP

                  |L1.2476|
0009ac  00000000          DCD      ||.data||

                          AREA ||.data||, DATA, ALIGN=1

                  TextColor
000000  0000              DCW      0x0000
                  BackColor
000002  ffff              DCW      0xffff

                  

⌨️ 快捷键说明

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