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

📄 lcd_app.txt

📁 mp3量不要让站长把时间都花费在为您修正说明上。压缩包解压时不能有密码。系统会自动删除debug和release目录
💻 TXT
📖 第 1 页 / 共 4 页
字号:
; generated by ARM/Thumb C/C++ Compiler with , RVCT3.1 [Build 934] for uVision
; commandline ArmCC [--debug -c --asm --interleave -olcd_app.o --depend=lcd_app.d --device=DARMP --apcs=interwork -O3 -IC:\Keil\ARM\INC\Philips --omf_browse=lcd_app.crf LCD_APP.c]
                          ARM

                          AREA ||.text||, CODE, READONLY, ALIGN=2

                  Print_ICON_12 PROC
;;;22     void Print_ICON_12(uint16 x,uint16 y,uint8 ch)
;;;23     {
000000  e92d5ff0          PUSH     {r4-r12,lr}
000004  e1a05001          MOV      r5,r1
;;;24     	uint8 i,j;
;;;25     	uint8 temp;
;;;26     	for(i=0;i<12;i++)
000008  e59f1ab8          LDR      r1,|L1.2760|
00000c  e1a09000          MOV      r9,r0                 ;23
000010  e0820082          ADD      r0,r2,r2,LSL #1
000014  e3a06000          MOV      r6,#0
000018  e0817180          ADD      r7,r1,r0,LSL #3
00001c  e3a08001          MOV      r8,#1
                  |L1.32|
;;;27     	{
;;;28     		temp = ICON[ch][i];
000020  e7d7b006          LDRB     r11,[r7,r6]
;;;29     		for(j=0;j<8;j++)
000024  e3a04000          MOV      r4,#0
000028  e089a006          ADD      r10,r9,r6
                  |L1.44|
;;;30     		{
;;;31     			if(temp&(1<<j))OnePixel(x+i,y+j,1);
00002c  e11b0418          TST      r11,r8,LSL r4
000030  e0850004          ADD      r0,r5,r4
000034  e20010ff          AND      r1,r0,#0xff
000038  e20a00ff          AND      r0,r10,#0xff
;;;32     			else OnePixel(x+i,y+j,0);
00003c  03a02000          MOVEQ    r2,#0
000040  13a02001          MOVNE    r2,#1                 ;31
000044  ebfffffe          BL       OnePixel
000048  e2840001          ADD      r0,r4,#1              ;29
00004c  e20040ff          AND      r4,r0,#0xff           ;29
000050  e3540008          CMP      r4,#8                 ;29
000054  3afffff4          BCC      |L1.44|
000058  e2860001          ADD      r0,r6,#1              ;26
00005c  e20060ff          AND      r6,r0,#0xff           ;26
000060  e356000c          CMP      r6,#0xc               ;26
000064  3affffed          BCC      |L1.32|
;;;33     		}
;;;34     	}
;;;35     	for(i=0;i<12;i++)
000068  e3a06000          MOV      r6,#0
                  |L1.108|
;;;36     	{
;;;37     		temp = ICON[ch][i+12];
00006c  e0870006          ADD      r0,r7,r6
000070  e5d0b00c          LDRB     r11,[r0,#0xc]
;;;38     		for(j=0;j<4;j++)
000074  e3a04000          MOV      r4,#0
000078  e089a006          ADD      r10,r9,r6
                  |L1.124|
;;;39     		{
;;;40     			if(temp&(1<<j))OnePixel(x+i,y+j+8,1);
00007c  e11b0418          TST      r11,r8,LSL r4
000080  e0850004          ADD      r0,r5,r4
000084  e2800008          ADD      r0,r0,#8
000088  e20010ff          AND      r1,r0,#0xff
00008c  e20a00ff          AND      r0,r10,#0xff
;;;41     			else OnePixel(x+i,y+j+8,0);
000090  03a02000          MOVEQ    r2,#0
000094  13a02001          MOVNE    r2,#1                 ;40
000098  ebfffffe          BL       OnePixel
00009c  e2840001          ADD      r0,r4,#1              ;38
0000a0  e20040ff          AND      r4,r0,#0xff           ;38
0000a4  e3540004          CMP      r4,#4                 ;38
0000a8  3afffff3          BCC      |L1.124|
0000ac  e2860001          ADD      r0,r6,#1              ;35
0000b0  e20060ff          AND      r6,r0,#0xff           ;35
0000b4  e356000c          CMP      r6,#0xc               ;35
0000b8  3affffeb          BCC      |L1.108|
;;;42     		}
;;;43     	}
;;;44     }
0000bc  e8bd5ff0          POP      {r4-r12,lr}
0000c0  e12fff1e          BX       lr
;;;45     
                          ENDP

                  Print_ICON1_12 PROC
;;;46     void Print_ICON1_12(uint16 x,uint16 y,uint8 ch)
;;;47     {
0000c4  e92d5ff0          PUSH     {r4-r12,lr}
0000c8  e1a05001          MOV      r5,r1
;;;48     	uint8 i,j;
;;;49     	uint8 temp;
;;;50     	for(i=0;i<6;i++)
0000cc  e59f19f8          LDR      r1,|L1.2764|
0000d0  e1a09000          MOV      r9,r0                 ;47
0000d4  e0820082          ADD      r0,r2,r2,LSL #1
0000d8  e3a06000          MOV      r6,#0
0000dc  e0817100          ADD      r7,r1,r0,LSL #2
0000e0  e3a08001          MOV      r8,#1
                  |L1.228|
;;;51     	{
;;;52     		temp =ICON1[ch][i];
0000e4  e7d7b006          LDRB     r11,[r7,r6]
;;;53     		for(j=0;j<8;j++)
0000e8  e3a04000          MOV      r4,#0
0000ec  e089a006          ADD      r10,r9,r6
                  |L1.240|
;;;54     		{
;;;55     			if(temp&(1<<j))OnePixel(x+i,y+j,1);
0000f0  e11b0418          TST      r11,r8,LSL r4
0000f4  e0850004          ADD      r0,r5,r4
0000f8  e20010ff          AND      r1,r0,#0xff
0000fc  e20a00ff          AND      r0,r10,#0xff
;;;56     			else OnePixel(x+i,y+j,0);
000100  03a02000          MOVEQ    r2,#0
000104  13a02001          MOVNE    r2,#1                 ;55
000108  ebfffffe          BL       OnePixel
00010c  e2840001          ADD      r0,r4,#1              ;53
000110  e20040ff          AND      r4,r0,#0xff           ;53
000114  e3540008          CMP      r4,#8                 ;53
000118  3afffff4          BCC      |L1.240|
00011c  e2860001          ADD      r0,r6,#1              ;50
000120  e20060ff          AND      r6,r0,#0xff           ;50
000124  e3560006          CMP      r6,#6                 ;50
000128  3affffed          BCC      |L1.228|
;;;57     		}
;;;58     	}
;;;59     	for(i=0;i<6;i++)
00012c  e3a06000          MOV      r6,#0
                  |L1.304|
;;;60     	{
;;;61     		temp = ICON1[ch][i+6];
000130  e0870006          ADD      r0,r7,r6
000134  e5d0b006          LDRB     r11,[r0,#6]
;;;62     		for(j=0;j<4;j++)
000138  e3a04000          MOV      r4,#0
00013c  e089a006          ADD      r10,r9,r6
                  |L1.320|
;;;63     		{
;;;64     			if(temp&(1<<j))OnePixel(x+i,y+j+8,1);
000140  e11b0418          TST      r11,r8,LSL r4
000144  e0850004          ADD      r0,r5,r4
000148  e2800008          ADD      r0,r0,#8
00014c  e20010ff          AND      r1,r0,#0xff
000150  e20a00ff          AND      r0,r10,#0xff
;;;65     			else OnePixel(x+i,y+j+8,0);
000154  03a02000          MOVEQ    r2,#0
000158  13a02001          MOVNE    r2,#1                 ;64
00015c  ebfffffe          BL       OnePixel
000160  e2840001          ADD      r0,r4,#1              ;62
000164  e20040ff          AND      r4,r0,#0xff           ;62
000168  e3540004          CMP      r4,#4                 ;62
00016c  3afffff3          BCC      |L1.320|
000170  e2860001          ADD      r0,r6,#1              ;59
000174  e20060ff          AND      r6,r0,#0xff           ;59
000178  e3560006          CMP      r6,#6                 ;59
00017c  3affffeb          BCC      |L1.304|
;;;66     		}
;;;67     	}
;;;68     }
000180  e8bd5ff0          POP      {r4-r12,lr}
000184  e12fff1e          BX       lr
;;;69     
                          ENDP

                  LCD_print12_P PROC
;;;70     uint8 LCD_print12_P(uint16 x,uint16 y,uint8 *str)
;;;71     {
000188  e92d40f8          PUSH     {r3-r7,lr}
00018c  e1a06002          MOV      r6,r2
;;;72     	uint16 tempX = x,tempY = y;
000190  e1a04000          MOV      r4,r0
000194  e1a05001          MOV      r5,r1
;;;73     	uint16 temp;
;;;74     	while(temp = *str)
000198  ea000046          B        |L1.696|
                  |L1.412|
;;;75     	{
;;;76     		if(temp == '\n')
00019c  e1dd00b0          LDRH     r0,[sp,#0]
0001a0  e350000a          CMP      r0,#0xa
0001a4  1a00000f          BNE      |L1.488|
;;;77     		{
;;;78     			if((MAX_X - tempX)<6)
0001a8  e2640054          RSB      r0,r4,#0x54
0001ac  e3500006          CMP      r0,#6
0001b0  aa000007          BGE      |L1.468|
;;;79     			{
;;;80     				tempX = 0;
;;;81     				if((MAX_Y - tempY)<24)return 1;
0001b4  e2650030          RSB      r0,r5,#0x30
0001b8  e3500018          CMP      r0,#0x18
0001bc  e3a04000          MOV      r4,#0                 ;80
0001c0  ba00002d          BLT      |L1.636|
                  |L1.452|
;;;82     				else tempY += 12;
0001c4  e285000c          ADD      r0,r5,#0xc
0001c8  e3c05801          BIC      r5,r0,#0x10000
;;;83     			}
;;;84     			else if((MAX_Y - tempY)<24)return 1;
;;;85     			else 
;;;86     			{
;;;87     				tempX = 0;
;;;88     				tempY += 12;
;;;89     			}
;;;90     			str ++;
0001cc  e2866001          ADD      r6,r6,#1
0001d0  ea000038          B        |L1.696|
                  |L1.468|
0001d4  e2650030          RSB      r0,r5,#0x30           ;84
0001d8  e3500018          CMP      r0,#0x18              ;84
0001dc  a3a04000          MOVGE    r4,#0                 ;87
0001e0  aafffff7          BGE      |L1.452|
0001e4  ea000024          B        |L1.636|
                  |L1.488|
;;;91     		}
;;;92     		else if(temp<0x20)
0001e8  e3500020          CMP      r0,#0x20
0001ec  2a00000a          BCS      |L1.540|
;;;93     		{
;;;94     			if((MAX_X - tempX)<6)
0001f0  e2640054          RSB      r0,r4,#0x54
0001f4  e3500006          CMP      r0,#6
0001f8  aa000005          BGE      |L1.532|
;;;95     			{
;;;96     				tempX = 0;
;;;97     				if((MAX_Y - tempY)<24)return 1;
0001fc  e2650030          RSB      r0,r5,#0x30
000200  e3500018          CMP      r0,#0x18
000204  e3a04000          MOV      r4,#0                 ;96
000208  ba00001b          BLT      |L1.636|
;;;98     				else tempY += 12;
00020c  e285000c          ADD      r0,r5,#0xc
000210  e3c05801          BIC      r5,r0,#0x10000
                  |L1.532|
;;;99     			}
;;;100    			Dis_Ascii_12(tempX,tempY,0x20);
000214  e3a02020          MOV      r2,#0x20
;;;101    			str ++;
;;;102    			tempX += 6;
000218  ea00000b          B        |L1.588|
                  |L1.540|
;;;103    
;;;104    		}
;;;105    		else if(temp<0x80)
00021c  e3500080          CMP      r0,#0x80
;;;106    		{
;;;107    			if((MAX_X - tempX)<6)
000220  e2641054          RSB      r1,r4,#0x54
000224  2a00000e          BCS      |L1.612|
000228  e3510006          CMP      r1,#6
00022c  aa000005          BGE      |L1.584|
;;;108    			{
;;;109    				tempX = 0;
;;;110    				if((MAX_Y - tempY)<24)return 1;
000230  e2651030          RSB      r1,r5,#0x30
000234  e3510018          CMP      r1,#0x18
000238  e3a04000          MOV      r4,#0                 ;109
00023c  ba00000e          BLT      |L1.636|
;;;111    				else tempY += 12;
000240  e285100c          ADD      r1,r5,#0xc
000244  e3c15801          BIC      r5,r1,#0x10000
                  |L1.584|
;;;112    			}
;;;113    			Dis_Ascii_12(tempX,tempY,temp);
000248  e20020ff          AND      r2,r0,#0xff
                  |L1.588|
00024c  e1a01005          MOV      r1,r5                 ;100
000250  e1a00004          MOV      r0,r4                 ;100
000254  ebfffffe          BL       Dis_Ascii_12
000258  e2866001          ADD      r6,r6,#1              ;101
00025c  e2840006          ADD      r0,r4,#6              ;102
000260  ea000013          B        |L1.692|
                  |L1.612|
;;;114    			str ++;
;;;115    			tempX += 6;
;;;116    		}
;;;117    		else
;;;118    		{
;;;119    			if((MAX_X - tempX)<12)
000264  e351000c          CMP      r1,#0xc
000268  aa000008          BGE      |L1.656|
;;;120    			{
;;;121    				tempX = 0;
;;;122    				if((MAX_Y - tempY)<24)return 1;
00026c  e2651030          RSB      r1,r5,#0x30
000270  e3510018          CMP      r1,#0x18
000274  e3a04000          MOV      r4,#0                 ;121
000278  aa000002          BGE      |L1.648|
                  |L1.636|
00027c  e3a00001          MOV      r0,#1
                  |L1.640|
000280  e8bd40f8          POP      {r3-r7,lr}
;;;123    				else tempY += 12;
;;;124    			}
;;;125    			temp += (*(++str))<<8;
;;;126    			Dis_GBK12(tempX,tempY,(uint8 *)(&temp));
;;;127    			str ++;
;;;128    			tempX += 12;
;;;129    		}
;;;130    	}
;;;131    	return 0;
;;;132    }
000284  e12fff1e          BX       lr
                  |L1.648|
000288  e285100c          ADD      r1,r5,#0xc            ;123
00028c  e3c15801          BIC      r5,r1,#0x10000        ;123
                  |L1.656|
000290  e5f61001          LDRB     r1,[r6,#1]!           ;125
000294  e28d2000          ADD      r2,sp,#0              ;126
000298  e0800401          ADD      r0,r0,r1,LSL #8       ;125
00029c  e58d0000          STR      r0,[sp,#0]            ;125
0002a0  e1a01005          MOV      r1,r5                 ;126
0002a4  e1a00004          MOV      r0,r4                 ;126
0002a8  ebfffffe          BL       Dis_GBK12
0002ac  e2866001          ADD      r6,r6,#1              ;127
0002b0  e284000c          ADD      r0,r4,#0xc            ;128
                  |L1.692|
0002b4  e3c04801          BIC      r4,r0,#0x10000        ;115
                  |L1.696|
0002b8  e5d60000          LDRB     r0,[r6,#0]            ;74
0002bc  e3500000          CMP      r0,#0                 ;74
0002c0  e58d0000          STR      r0,[sp,#0]            ;74
0002c4  1affffb4          BNE      |L1.412|
0002c8  eaffffec          B        |L1.640|
;;;133    
                          ENDP

                  LCD_print12_fast PROC
;;;134    uint8 LCD_print12_fast(uint16 x,uint16 y,uint8 *str)
;;;135    {
0002cc  e92d4070          PUSH     {r4-r6,lr}
0002d0  e1a06002          MOV      r6,r2
;;;136    	uint16 tempX = x,tempY = y;
0002d4  e1a04000          MOV      r4,r0
0002d8  e1a05001          MOV      r5,r1
;;;137    	while(*str)
0002dc  ea000041          B        |L1.1000|
                  |L1.736|
;;;138    	{
;;;139    		if(*str == '\n')
0002e0  e352000a          CMP      r2,#0xa
0002e4  1a00000f          BNE      |L1.808|
;;;140    		{
;;;141    			if((MAX_X - tempX)<6)
0002e8  e2640054          RSB      r0,r4,#0x54
0002ec  e3500006          CMP      r0,#6
0002f0  aa000007          BGE      |L1.788|
;;;142    			{
;;;143    				tempX = 0;
;;;144    				if((MAX_Y - tempY)<24)return 1;
0002f4  e2650030          RSB      r0,r5,#0x30
0002f8  e3500018          CMP      r0,#0x18
0002fc  e3a04000          MOV      r4,#0                 ;143
000300  ba00002c          BLT      |L1.952|
                  |L1.772|
;;;145    				else tempY += 12;
000304  e285000c          ADD      r0,r5,#0xc
000308  e3c05801          BIC      r5,r0,#0x10000
;;;146    			}

⌨️ 快捷键说明

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