; generated by Component: ARM Compiler 5.05 update 2 (build 169) Tool: ArmCC [4d0f38]
; commandline ArmCC [--list --debug -c --asm --interleave -o.\obj\vkl280_app.o --asm_dir=.\lst\ --list_dir=.\lst\ --depend=.\obj\vkl280_app.d --cpu=Cortex-M4.fp --apcs=interwork -O0 --diag_suppress=9931 -I..\..\..\Library\CMSIS\Include -I..\..\..\Library\Device\Nuvoton\M451Series\Include -I..\..\..\Library\StdDriver\inc -I..\Bsp -I..\User -I..\lcd_driver -I.\RTE\_project -IC:\Keil_v5\ARM\PACK\ARM\CMSIS\4.3.0\CMSIS\Include -IDevice\M451\Include -D__UVISION_VERSION=527 -D_RTE_ --omf_browse=.\obj\vkl280_app.crf ..\Lcd_driver\VKL280_APP.c]
                          THUMB

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

                  Disp_All PROC
;;;36     *******************************************************************************/
;;;37     void Disp_All(unsigned char dat)
000000  b570              PUSH     {r4-r6,lr}
;;;38     {
000002  4605              MOV      r5,r0
;;;39     	unsigned char segi;
;;;40     	
;;;41     	for(segi=0;segi<35;segi++)
000004  2400              MOVS     r4,#0
000006  e003              B        |L1.16|
                  |L1.8|
;;;42     	{
;;;43     		VKL280_dispram[segi]=dat;		
000008  4868              LDR      r0,|L1.428|
00000a  5505              STRB     r5,[r0,r4]
00000c  1c60              ADDS     r0,r4,#1              ;41
00000e  b2c4              UXTB     r4,r0                 ;41
                  |L1.16|
000010  2c23              CMP      r4,#0x23              ;41
000012  dbf9              BLT      |L1.8|
;;;44     	}
;;;45     	WritenDataVKL280(0,VKL280_dispram,35);	//ÿ8bitݵַ1ÿ8λ1ACK
000014  2223              MOVS     r2,#0x23
000016  4965              LDR      r1,|L1.428|
000018  2000              MOVS     r0,#0
00001a  f7fffffe          BL       WritenDataVKL280
;;;46     }
00001e  bd70              POP      {r4-r6,pc}
;;;47     /*******************************************************************************
                          ENDP

                  Disp_DotOn PROC
;;;54     *******************************************************************************/
;;;55     void Disp_DotOn(unsigned char seg,unsigned char com)
000020  e92d41f0          PUSH     {r4-r8,lr}
;;;56     {
000024  4604              MOV      r4,r0
000026  460e              MOV      r6,r1
;;;57     	unsigned char addrbyte,addrbit,tempdat;
;;;58     	
;;;59     	//grid/segӦʾRAMַbit
;;;60     	addrbyte=seg;	
000028  4625              MOV      r5,r4
;;;61     	addrbit=1<<com;
00002a  2001              MOVS     r0,#1
00002c  40b0              LSLS     r0,r0,r6
00002e  b2c7              UXTB     r7,r0
;;;62     	tempdat=VKL280_dispram[addrbyte]|addrbit;
000030  485e              LDR      r0,|L1.428|
000032  5d40              LDRB     r0,[r0,r5]
000034  ea400807          ORR      r8,r0,r7
;;;63     	VKL280_dispram[addrbyte]=tempdat;
000038  485c              LDR      r0,|L1.428|
00003a  f8008005          STRB     r8,[r0,r5]
;;;64     	WritenDataVKL280(addrbyte,&VKL280_dispram[addrbyte],1);		//1ֽʾ
00003e  1941              ADDS     r1,r0,r5
000040  2201              MOVS     r2,#1
000042  4628              MOV      r0,r5
000044  f7fffffe          BL       WritenDataVKL280
;;;65     }
000048  e8bd81f0          POP      {r4-r8,pc}
;;;66     /*******************************************************************************
                          ENDP

                  Disp_DotOff PROC
;;;73     *******************************************************************************/
;;;74     void Disp_DotOff(unsigned char seg,unsigned char com)
00004c  e92d41f0          PUSH     {r4-r8,lr}
;;;75     {
000050  4604              MOV      r4,r0
000052  460e              MOV      r6,r1
;;;76     	unsigned char addrbyte,addrbit,tempdat;
;;;77     	
;;;78     	//grid/segӦʾRAMַbit
;;;79     	addrbyte=seg;	
000054  4625              MOV      r5,r4
;;;80     	addrbit=1<<com;
000056  2001              MOVS     r0,#1
000058  40b0              LSLS     r0,r0,r6
00005a  b2c7              UXTB     r7,r0
;;;81     	tempdat=VKL280_dispram[addrbyte]&(~addrbit);
00005c  4853              LDR      r0,|L1.428|
00005e  5d40              LDRB     r0,[r0,r5]
000060  ea200807          BIC      r8,r0,r7
;;;82     	VKL280_dispram[addrbyte]=tempdat;
000064  4851              LDR      r0,|L1.428|
000066  f8008005          STRB     r8,[r0,r5]
;;;83     	WritenDataVKL280(addrbyte,&VKL280_dispram[addrbyte],1);		//1ֽʾ
00006a  1941              ADDS     r1,r0,r5
00006c  2201              MOVS     r2,#1
00006e  4628              MOV      r0,r5
000070  f7fffffe          BL       WritenDataVKL280
;;;84     }
000074  e8bd81f0          POP      {r4-r8,pc}
;;;85     /*******************************************************************************
                          ENDP

                  VKL280_Main PROC
;;;91     *******************************************************************************/
;;;92     void VKL280_Main(void)
000078  f7fffffe          BL       VKL280_Init
;;;93     {	
;;;94     	VKL280_Init();
;;;95     	Disp_All(0x00);	//LEDȫ,ʾRAM0
00007c  2000              MOVS     r0,#0
00007e  f7fffffe          BL       Disp_All
;;;96     	while(1)
000082  e092              B        |L1.426|
                  |L1.132|
;;;97     	{		
;;;98     		//ڲԹػ͹
;;;99     		Disp_All(0x00);			    //LCDȫ		
000084  2000              MOVS     r0,#0
000086  f7fffffe          BL       Disp_All
;;;100    		VKL280_Enter_Shutoff();	//ػģʽ
00008a  f7fffffe          BL       VKL280_Enter_Shutoff
;;;101    		Delay_nmS(5000);				//ʱ5S		
00008e  f2413088          MOV      r0,#0x1388
000092  f7fffffe          BL       Delay_nmS
;;;102    		VKL280_Exit_Shutoff();	//˳ػģʽģʽ			
000096  f7fffffe          BL       VKL280_Exit_Shutoff
;;;103    		
;;;104    		//LCDȫ
;;;105    		Disp_All(0xFF);			      //ȫ0xFF
00009a  20ff              MOVS     r0,#0xff
00009c  f7fffffe          BL       Disp_All
;;;106    		Delay_nmS(1500);					//ʱ	
0000a0  f24050dc          MOV      r0,#0x5dc
0000a4  f7fffffe          BL       Delay_nmS
;;;107    		//LCDȫ
;;;108    		Disp_All(0x00);			      //ȫ0x00
0000a8  2000              MOVS     r0,#0
0000aa  f7fffffe          BL       Disp_All
;;;109    		Delay_nmS(1500);					//ʱ
0000ae  f24050dc          MOV      r0,#0x5dc
0000b2  f7fffffe          BL       Delay_nmS
;;;110    						
;;;111    		Disp_All(0x55);			      //0x55
0000b6  2055              MOVS     r0,#0x55
0000b8  f7fffffe          BL       Disp_All
;;;112    		ReadnDataVKL280(0,VKL280_readbuf,18);	//RAM
0000bc  2212              MOVS     r2,#0x12
0000be  493c              LDR      r1,|L1.432|
0000c0  2000              MOVS     r0,#0
0000c2  f7fffffe          BL       ReadnDataVKL280
;;;113    		Delay_nmS(500);					//ʱ	
0000c6  f44f70fa          MOV      r0,#0x1f4
0000ca  f7fffffe          BL       Delay_nmS
;;;114    
;;;115    		Disp_All(0xAA);			      //0xAA	
0000ce  20aa              MOVS     r0,#0xaa
0000d0  f7fffffe          BL       Disp_All
;;;116        ReadnDataVKL280(0,VKL280_readbuf,18);	//RAM		
0000d4  2212              MOVS     r2,#0x12
0000d6  4936              LDR      r1,|L1.432|
0000d8  2000              MOVS     r0,#0
0000da  f7fffffe          BL       ReadnDataVKL280
;;;117    		Delay_nmS(500);					//ʱ
0000de  f44f70fa          MOV      r0,#0x1f4
0000e2  f7fffffe          BL       Delay_nmS
;;;118    		
;;;119    		//LCD
;;;120    		Disp_All(0x00);				    //LEDȫ,ʾRAM0
0000e6  2000              MOVS     r0,#0
0000e8  f7fffffe          BL       Disp_All
;;;121    		Delay_nmS(500);						//ʱ
0000ec  f44f70fa          MOV      r0,#0x1f4
0000f0  f7fffffe          BL       Delay_nmS
;;;122    		for(VKL280_segi=0;VKL280_segi<35;VKL280_segi++)//seg0-34
0000f4  2000              MOVS     r0,#0
0000f6  492f              LDR      r1,|L1.436|
0000f8  7008              STRB     r0,[r1,#0]
0000fa  e021              B        |L1.320|
                  |L1.252|
;;;123    		{
;;;124    			for(VKL280_comi=0;VKL280_comi<8;VKL280_comi++)//com0-3
0000fc  2000              MOVS     r0,#0
0000fe  492e              LDR      r1,|L1.440|
000100  7008              STRB     r0,[r1,#0]
000102  e014              B        |L1.302|
                  |L1.260|
;;;125    			{
;;;126    				Disp_DotOn(VKL280_segi,VKL280_comi);		//LCD
000104  482c              LDR      r0,|L1.440|
000106  7801              LDRB     r1,[r0,#0]  ; VKL280_comi
000108  482a              LDR      r0,|L1.436|
00010a  7800              LDRB     r0,[r0,#0]  ; VKL280_segi
00010c  f7fffffe          BL       Disp_DotOn
;;;127    				Delay_nmS(300);				//ʱ
000110  f44f7096          MOV      r0,#0x12c
000114  f7fffffe          BL       Delay_nmS
;;;128    				Disp_DotOff(VKL280_segi,VKL280_comi);		//ϵʵֵδ˳
000118  4827              LDR      r0,|L1.440|
00011a  7801              LDRB     r1,[r0,#0]  ; VKL280_comi
00011c  4825              LDR      r0,|L1.436|
00011e  7800              LDRB     r0,[r0,#0]  ; VKL280_segi
000120  f7fffffe          BL       Disp_DotOff
000124  4824              LDR      r0,|L1.440|
000126  7800              LDRB     r0,[r0,#0]            ;124  ; VKL280_comi
000128  1c40              ADDS     r0,r0,#1              ;124
00012a  4923              LDR      r1,|L1.440|
00012c  7008              STRB     r0,[r1,#0]            ;124
                  |L1.302|
00012e  4822              LDR      r0,|L1.440|
000130  7800              LDRB     r0,[r0,#0]            ;124  ; VKL280_comi
000132  2808              CMP      r0,#8                 ;124
000134  dbe6              BLT      |L1.260|
000136  481f              LDR      r0,|L1.436|
000138  7800              LDRB     r0,[r0,#0]            ;122  ; VKL280_segi
00013a  1c40              ADDS     r0,r0,#1              ;122
00013c  491d              LDR      r1,|L1.436|
00013e  7008              STRB     r0,[r1,#0]            ;122
                  |L1.320|
000140  481c              LDR      r0,|L1.436|
000142  7800              LDRB     r0,[r0,#0]            ;122  ; VKL280_segi
000144  2823              CMP      r0,#0x23              ;122
000146  dbd9              BLT      |L1.252|
;;;129    			}
;;;130    		}
;;;131    		
;;;132    		//LCDر
;;;133    		Disp_All(0xFF);				    //LEDȫ
000148  20ff              MOVS     r0,#0xff
00014a  f7fffffe          BL       Disp_All
;;;134    		Delay_nmS(500);						//ʱ
00014e  f44f70fa          MOV      r0,#0x1f4
000152  f7fffffe          BL       Delay_nmS
;;;135    		for(VKL280_segi=0;VKL280_segi<35;VKL280_segi++)//seg0-34
000156  2000              MOVS     r0,#0
000158  4916              LDR      r1,|L1.436|
00015a  7008              STRB     r0,[r1,#0]
00015c  e021              B        |L1.418|
                  |L1.350|
;;;136    		{
;;;137    			for(VKL280_comi=0;VKL280_comi<8;VKL280_comi++)//com0-3
00015e  2000              MOVS     r0,#0
000160  4915              LDR      r1,|L1.440|
000162  7008              STRB     r0,[r1,#0]
000164  e014              B        |L1.400|
                  |L1.358|
;;;138    			{
;;;139    				Disp_DotOff(VKL280_segi,VKL280_comi);		//LCDر
000166  4814              LDR      r0,|L1.440|
000168  7801              LDRB     r1,[r0,#0]  ; VKL280_comi
00016a  4812              LDR      r0,|L1.436|
00016c  7800              LDRB     r0,[r0,#0]  ; VKL280_segi
00016e  f7fffffe          BL       Disp_DotOff
;;;140    				Delay_nmS(300);				//ʱ
000172  f44f7096          MOV      r0,#0x12c
000176  f7fffffe          BL       Delay_nmS
;;;141    				Disp_DotOn(VKL280_segi,VKL280_comi);		//ϵʵֵرգδ˳ر
00017a  480f              LDR      r0,|L1.440|
00017c  7801              LDRB     r1,[r0,#0]  ; VKL280_comi
00017e  480d              LDR      r0,|L1.436|
000180  7800              LDRB     r0,[r0,#0]  ; VKL280_segi
000182  f7fffffe          BL       Disp_DotOn
000186  480c              LDR      r0,|L1.440|
000188  7800              LDRB     r0,[r0,#0]            ;137  ; VKL280_comi
00018a  1c40              ADDS     r0,r0,#1              ;137
00018c  490a              LDR      r1,|L1.440|
00018e  7008              STRB     r0,[r1,#0]            ;137
                  |L1.400|
000190  4809              LDR      r0,|L1.440|
000192  7800              LDRB     r0,[r0,#0]            ;137  ; VKL280_comi
000194  2808              CMP      r0,#8                 ;137
000196  dbe6              BLT      |L1.358|
000198  4806              LDR      r0,|L1.436|
00019a  7800              LDRB     r0,[r0,#0]            ;135  ; VKL280_segi
00019c  1c40              ADDS     r0,r0,#1              ;135
00019e  4905              LDR      r1,|L1.436|
0001a0  7008              STRB     r0,[r1,#0]            ;135
                  |L1.418|
0001a2  4804              LDR      r0,|L1.436|
0001a4  7800              LDRB     r0,[r0,#0]            ;135  ; VKL280_segi
0001a6  2823              CMP      r0,#0x23              ;135
0001a8  dbd9              BLT      |L1.350|
                  |L1.426|
0001aa  e76b              B        |L1.132|
;;;142    			}
;;;143    		}
;;;144    		
;;;145    	}
;;;146    }
;;;147    /************************END OF FILE****/
                          ENDP

                  |L1.428|
                          DCD      VKL280_dispram
                  |L1.432|
                          DCD      VKL280_readbuf
                  |L1.436|
                          DCD      VKL280_segi
                  |L1.440|
                          DCD      VKL280_comi

                          AREA ||.bss||, DATA, NOINIT, ALIGN=0

                  VKL280_dispram
                          %        35
                  VKL280_readbuf
                          %        35

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

                  VKL280_segi
000000  00                DCB      0x00
                  VKL280_comi
000001  00                DCB      0x00

;*** Start embedded assembler ***

#line 1 "..\\Lcd_driver\\VKL280_APP.c"
	AREA ||.rev16_text||, CODE
	THUMB
	EXPORT |__asm___12_VKL280_APP_c_Disp_All____REV16|
#line 114 "..\\..\\..\\Library\\CMSIS\\Include\\core_cmInstr.h"
|__asm___12_VKL280_APP_c_Disp_All____REV16| PROC
#line 115

 rev16 r0, r0
 bx lr
	ENDP
	AREA ||.revsh_text||, CODE
	THUMB
	EXPORT |__asm___12_VKL280_APP_c_Disp_All____REVSH|
#line 128
|__asm___12_VKL280_APP_c_Disp_All____REVSH| PROC
#line 129

 revsh r0, r0
 bx lr
	ENDP

;*** End   embedded assembler ***
