lcddrive.txt
来自「STM32F103ZET6+UCOSII+UCGUI源码」· 文本 代码 · 共 1,540 行 · 第 1/5 页
TXT
1,540 行
000038 2078 MOVS r0,#0x78
00003a f7fffffe BL LCD_DisplayStringLine
;;;855 LCD_DisplayStringLine(Line6, " ");
00003e a120 ADR r1,|L8.192|
000040 2090 MOVS r0,#0x90
000042 f7fffffe BL LCD_DisplayStringLine
;;;856 LCD_DisplayStringLine(Line7, "Chongqing U_EASYTECH");
000046 a13c ADR r1,|L8.312|
000048 20a8 MOVS r0,#0xa8
00004a f7fffffe BL LCD_DisplayStringLine
;;;857 LCD_DisplayStringLine(Line8, "electronic company .");
00004e a140 ADR r1,|L8.336|
000050 20c0 MOVS r0,#0xc0
000052 f7fffffe BL LCD_DisplayStringLine
;;;858 LCD_DisplayStringLine(Line9, " www.u-easytech.com ");
000056 a144 ADR r1,|L8.360|
000058 20d8 MOVS r0,#0xd8
00005a f7fffffe BL LCD_DisplayStringLine
00005e f44f4078 MOV r0,#0xf800
000062 8020 STRH r0,[r4,#0]
;;;859
;;;860
;;;861
;;;862 LCD_SetTextColor(Red);
;;;863 LCD_DrawCircle(119, 159, 100);
000064 2264 MOVS r2,#0x64
000066 219f MOVS r1,#0x9f
000068 2077 MOVS r0,#0x77
00006a f7fffffe BL LCD_DrawCircle
00006e f64f70e0 MOV r0,#0xffe0
000072 8020 STRH r0,[r4,#0]
;;;864 LCD_SetTextColor(Yellow);
;;;865 LCD_DrawLine(19, 159, 100, 1);
000074 2301 MOVS r3,#1
000076 2264 MOVS r2,#0x64
000078 219f MOVS r1,#0x9f
00007a 2013 MOVS r0,#0x13
00007c f7fffffe BL LCD_DrawLine
;;;866 LCD_DrawLine(119, 59, 100, 0);
000080 2300 MOVS r3,#0
000082 2264 MOVS r2,#0x64
000084 213b MOVS r1,#0x3b
000086 2077 MOVS r0,#0x77
000088 f7fffffe BL LCD_DrawLine
00008c f44f60fc MOV r0,#0x7e0
000090 8020 STRH r0,[r4,#0]
;;;867 LCD_SetTextColor(Green);
;;;868 LCD_DrawRect(69, 59, 100, 200);
000092 23c8 MOVS r3,#0xc8
000094 2264 MOVS r2,#0x64
000096 213b MOVS r1,#0x3b
000098 e8bd4010 POP {r4,lr}
00009c 2045 MOVS r0,#0x45
00009e f7ffbffe B.W LCD_DrawRect
;;;869 }
;;;870
ENDP
0000a2 0000 DCW 0x0000
|L8.164|
DCD ||.data||
|L8.168|
0000a8 2020202048656c6c6f20576f726420212020202000 DCB " Hello Word ! ",0
0000bd 00 DCB 0
0000be 00 DCB 0
0000bf 00 DCB 0
|L8.192|
0000c0 202020202020202020202020202020202020202000 DCB " ",0
0000d5 00 DCB 0
0000d6 00 DCB 0
0000d7 00 DCB 0
|L8.216|
0000d8 546869732773206120544654322e3860204c434400 DCB "This's a TFT2.8` LCD",0
0000ed 00 DCB 0
0000ee 00 DCB 0
0000ef 00 DCB 0
|L8.240|
0000f0 64656d6f2070726f6772616d207769746820202000 DCB "demo program with ",0
000105 00 DCB 0
000106 00 DCB 0
000107 00 DCB 0
|L8.264|
000108 4d494e492d53544d333220626f7264207573652000 DCB "MINI-STM32 bord use ",0
00011d 00 DCB 0
00011e 00 DCB 0
00011f 00 DCB 0
|L8.288|
000120 53544d33324631303343385436204d4355202e2000 DCB "STM32F103C8T6 MCU . ",0
000135 00 DCB 0
000136 00 DCB 0
000137 00 DCB 0
|L8.312|
000138 43686f6e6771696e6720555f454153595445434800 DCB "Chongqing U_EASYTECH",0
00014d 00 DCB 0
00014e 00 DCB 0
00014f 00 DCB 0
|L8.336|
000150 656c656374726f6e696320636f6d70616e79202e00 DCB "electronic company .",0
000165 00 DCB 0
000166 00 DCB 0
000167 00 DCB 0
|L8.360|
000168 207777772e752d65617379746563682e636f6d2000 DCB " www.u-easytech.com ",0
00017d 00 DCB 0
00017e 00 DCB 0
00017f 00 DCB 0
AREA ||i.LCD_DrawChar||, CODE, READONLY, ALIGN=2
LCD_DrawChar PROC
;;;255 *******************************************************************************/
;;;256 void LCD_DrawChar(u8 Xpos, u16 Ypos, uc16 *c)
000000 e92d4ff0 PUSH {r4-r11,lr}
;;;257 {
;;;258 u32 index = 0, i = 0;
;;;259 u8 Xaddress = 0;
;;;260 u16 Yaddress=0;
;;;261
;;;262 Xaddress = Xpos;
000004 4605 MOV r5,r0
;;;263 Yaddress=319-Ypos;
000006 f2a1113f SUB r1,r1,#0x13f
00000a 4248 RSBS r0,r1,#0
00000c fa1ffb80 UXTH r11,r0
000010 4690 MOV r8,r2 ;257
000012 2400 MOVS r4,#0 ;258
;;;264 LCD_SetCursor(Xaddress, Yaddress);
000014 4659 MOV r1,r11
000016 4628 MOV r0,r5
000018 f7fffffe BL LCD_SetCursor
;;;265 // LCD_SetDisplayWindow( Xpos+24, 319 - Ypos, 24,16 );
;;;266 for(index = 0; index < 24; index++)
;;;267 {
;;;268 LCD_WriteRAM_Prepare(); /* Prepare to write GRAM */
;;;269 for(i = 0; i < 16; i++)
;;;270 {
;;;271 if((c[index] & (1 << i)) == 0x00)
;;;272 {
;;;273 LCD_WriteRAM(BackColor);
00001c 4f11 LDR r7,|L9.100|
00001e f04f0a22 MOV r10,#0x22
000022 f04f0901 MOV r9,#1 ;271
000026 f04f46d8 MOV r6,#0x6c000000 ;271
00002a bf00 NOP ;271
|L9.44|
00002c f8a6a000 STRH r10,[r6,#0] ;271
000030 2000 MOVS r0,#0 ;269
000032 464a MOV r2,r9 ;271
|L9.52|
000034 f8381014 LDRH r1,[r8,r4,LSL #1] ;271
000038 fa02f300 LSL r3,r2,r0 ;271
00003c 4219 TST r1,r3 ;271
00003e d101 BNE |L9.68|
000040 8879 LDRH r1,[r7,#2] ; BackColor
000042 e000 B |L9.70|
|L9.68|
;;;274 }
;;;275 else
;;;276 {
;;;277 LCD_WriteRAM(TextColor);
000044 8839 LDRH r1,[r7,#0] ; TextColor
|L9.70|
000046 8071 STRH r1,[r6,#2]
000048 1c40 ADDS r0,r0,#1 ;269
00004a 2810 CMP r0,#0x10 ;269
00004c d3f2 BCC |L9.52|
;;;278 }
;;;279 }
;;;280 Xaddress++;
00004e 1c6d ADDS r5,r5,#1
000050 b2ed UXTB r5,r5
;;;281 LCD_SetCursor(Xaddress, Yaddress);
000052 4659 MOV r1,r11
000054 4628 MOV r0,r5
000056 f7fffffe BL LCD_SetCursor
00005a 1c64 ADDS r4,r4,#1 ;266
00005c 2c18 CMP r4,#0x18 ;266
00005e d3e5 BCC |L9.44|
;;;282 }
;;;283 }
000060 e8bd8ff0 POP {r4-r11,pc}
;;;284
ENDP
|L9.100|
DCD ||.data||
AREA ||i.LCD_DrawCircle||, CODE, READONLY, ALIGN=2
LCD_DrawCircle PROC
;;;469 *******************************************************************************/
;;;470 void LCD_DrawCircle(u8 Xpos, u16 Ypos, u16 Radius)
000000 e92d4ff0 PUSH {r4-r11,lr}
;;;471 {
000004 4682 MOV r10,r0
;;;472 s32 D;/* Decision Variable */
;;;473 u32 CurX;/* Current X Value */
;;;474 u32 CurY;/* Current Y Value */
;;;475
;;;476 D = 3 - (Radius << 1);
000006 2003 MOVS r0,#3
000008 b088 SUB sp,sp,#0x20 ;471
00000a 468b MOV r11,r1 ;471
00000c eba00742 SUB r7,r0,r2,LSL #1
;;;477 CurX = 0;
000010 2400 MOVS r4,#0
;;;478 CurY = Radius;
000012 4615 MOV r5,r2
;;;479
;;;480 while (CurX <= CurY)
000014 e07a B |L10.268|
;;;481 {
;;;482 LCD_SetCursor(Xpos + CurX, Ypos + CurY);
000016 bf00 NOP
|L10.24|
000018 eb0b0005 ADD r0,r11,r5
00001c b281 UXTH r1,r0
00001e 9007 STR r0,[sp,#0x1c]
000020 eb0a0004 ADD r0,r10,r4
000024 9006 STR r0,[sp,#0x18]
000026 b280 UXTH r0,r0
000028 f7fffffe BL LCD_SetCursor
00002c f04f0822 MOV r8,#0x22
000030 f04f46d8 MOV r6,#0x6c000000
000034 f8a68000 STRH r8,[r6,#0]
;;;483 LCD_WriteRAM_Prepare(); /* Prepare to write GRAM */
;;;484 LCD_WriteRAM(TextColor);
000038 f8df90dc LDR r9,|L10.280|
00003c f8b90000 LDRH r0,[r9,#0] ; TextColor
000040 8070 STRH r0,[r6,#2]
;;;485
;;;486 LCD_SetCursor(Xpos + CurX, Ypos - CurY);
000042 ebab0005 SUB r0,r11,r5
000046 b281 UXTH r1,r0
000048 9005 STR r0,[sp,#0x14]
00004a 9806 LDR r0,[sp,#0x18]
00004c b280 UXTH r0,r0
00004e f7fffffe BL LCD_SetCursor
000052 f8a68000 STRH r8,[r6,#0]
;;;487 LCD_WriteRAM_Prepare(); /* Prepare to write GRAM */
;;;488 LCD_WriteRAM(TextColor);
000056 f8b90000 LDRH r0,[r9,#0] ; TextColor
00005a 8070 STRH r0,[r6,#2]
;;;489
;;;490 LCD_SetCursor(Xpos - CurX, Ypos + CurY);
00005c 9807 LDR r0,[sp,#0x1c]
00005e b281 UXTH r1,r0
000060 ebaa0004 SUB r0,r10,r4
000064 9004 STR r0,[sp,#0x10]
000066 b280 UXTH r0,r0
000068 f7fffffe BL LCD_SetCursor
00006c f8a68000 STRH r8,[r6,#0]
;;;491 LCD_WriteRAM_Prepare(); /* Prepare to write GRAM */
;;;492 LCD_WriteRAM(TextColor);
000070 f8b90000 LDRH r0,[r9,#0] ; TextColor
000074 8070 STRH r0,[r6,#2]
;;;493
;;;494 LCD_SetCursor(Xpos - CurX, Ypos - CurY);
000076 9805 LDR r0,[sp,#0x14]
000078 b281 UXTH r1,r0
00007a 9804 LDR r0,[sp,#0x10]
00007c b280 UXTH r0,r0
00007e f7fffffe BL LCD_SetCursor
000082 f8a68000 STRH r8,[r6,#0]
;;;495 LCD_WriteRAM_Prepare(); /* Prepare to write GRAM */
;;;496 LCD_WriteRAM(TextColor);
000086 f8b90000 LDRH r0,[r9,#0] ; TextColor
00008a 8070 STRH r0,[r6,#2]
;;;497
;;;498 LCD_SetCursor(Xpos + CurY, Ypos + CurX);
00008c eb0b0004 ADD r0,r11,r4
000090 b281 UXTH r1,r0
000092 9003 STR r0,[sp,#0xc]
000094 eb0a0005 ADD r0,r10,r5
000098 9002 STR r0,[sp,#8]
00009a b280 UXTH r0,r0
00009c f7fffffe BL LCD_SetCursor
0000a0 f8a68000 STRH r8,[r6,#0]
;;;499 LCD_WriteRAM_Prepare(); /* Prepare to write GRAM */
;;;500 LCD_WriteRAM(TextColor);
0000a4 f8b90000 LDRH r0,[r9,#0] ; TextColor
0000a8 8070 STRH r0,[r6,#2]
;;;501
;;;502 LCD_SetCursor(Xpos + CurY, Ypos - CurX);
0000aa ebab0004 SUB r0,r11,r4
0000ae b281 UXTH r1,r0
0000b0 9001 STR r0,[sp,#4]
0000b2 9802 LDR r0,[sp,#8]
0000b4 b280 UXTH r0,r0
0000b6 f7fffffe BL LCD_SetCursor
0000ba f8a68000 STRH r8,[r6,#0]
;;;503 LCD_WriteRAM_Prepare(); /* Prepare to write GRAM */
;;;504 LCD_WriteRAM(TextColor);
0000be f8b90000 LDRH r0,[r9,#0] ; TextColor
0000c2 8070 STRH r0,[r6,#2]
;;;505
;;;506 LCD_SetCursor(Xpos - CurY, Ypos + CurX);
0000c4 9803 LDR r0,[sp,#0xc]
0000c6 b281 UXTH r1,r0
0000c8 ebaa0005 SUB r0,r10,r5
0000cc 9000 STR r0,[sp,#0]
0000ce b280 UXTH r0,r0
0000d0 f7fffffe BL LCD_SetCursor
0000d4 f8a68000 STRH r8,[r6,#0]
;;;507 LCD_WriteRAM_Prepare(); /* Prepare to write GRAM */
;;;508 LCD_WriteRAM(TextColor);
0000d8 f8b90000 LDRH r0,[r9,#0] ; TextColor
0000dc 8070 STRH r0,[r6,#2]
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?