; generated by Component: ARM Compiler 5.05 update 2 (build 169) Tool: ArmCC [4d0f38]
; commandline ArmCC [--list --debug -c --asm --interleave -o.\obj\vk1024b_driver.o --asm_dir=.\lst\ --list_dir=.\lst\ --depend=.\obj\vk1024b_driver.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..\exti_driver -I..\led_driver -I..\touch -I..\dotmatix_lcd -I..\KH -ID:\\A\LCD\׼ϵ_VK162X\׼ϵ\VK1024B_TESTCODE\project\VK1024B_FUNC\Keil\RTE -IC:\Keil_v5\ARM\PACK\ARM\CMSIS\4.3.0\CMSIS\Include -D__UVISION_VERSION=515 -D_RTE_ --omf_browse=.\obj\vk1024b_driver.crf ..\lcd_driver\VK1024B_driver.c]
                          THUMB

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

                  delay_nus PROC
;;;71     *******************************************************************************/
;;;72     void delay_nus(unsigned int n)	   
000000  e007              B        |L1.18|
                  |L1.2|
;;;73     {
;;;74     	unsigned char i;
;;;75     	while(n--)
;;;76     	{
;;;77     		i=10;
000002  210a              MOVS     r1,#0xa
;;;78     		while(i--)
000004  e000              B        |L1.8|
                  |L1.6|
;;;79     		{//nopָݵƬӦ޸
;;;80     			__nop();
000006  bf00              NOP      
                  |L1.8|
000008  000a              MOVS     r2,r1                 ;78
00000a  f1a10301          SUB      r3,r1,#1              ;78
00000e  b2d9              UXTB     r1,r3                 ;78
000010  d1f9              BNE      |L1.6|
                  |L1.18|
000012  0002              MOVS     r2,r0                 ;75
000014  f1a00001          SUB      r0,r0,#1              ;75
000018  d1f3              BNE      |L1.2|
;;;81     		}
;;;82     	}
;;;83     }
00001a  4770              BX       lr
;;;84     /*******************************************************************************
                          ENDP

                  delay_nms PROC
;;;90     *******************************************************************************/
;;;91     void delay_nms(unsigned long int n)
00001c  b510              PUSH     {r4,lr}
;;;92     {
00001e  4604              MOV      r4,r0
;;;93     	while(n--)
000020  e003              B        |L1.42|
                  |L1.34|
;;;94     	{
;;;95     		delay_nus(1000);
000022  f44f707a          MOV      r0,#0x3e8
000026  f7fffffe          BL       delay_nus
                  |L1.42|
00002a  0020              MOVS     r0,r4                 ;93
00002c  f1a40401          SUB      r4,r4,#1              ;93
000030  d1f7              BNE      |L1.34|
;;;96     	}
;;;97     }
000032  bd10              POP      {r4,pc}
;;;98     /*******************************************************************************
                          ENDP

                  WriteClockVk1024 PROC
;;;104    *******************************************************************************/
;;;105    void WriteClockVk1024(void)
000034  b500              PUSH     {lr}
;;;106    {
;;;107    	VK1024_WR_L(); 
000036  2000              MOVS     r0,#0
000038  49ed              LDR      r1,|L1.1008|
00003a  6008              STR      r0,[r1,#0]
;;;108    	delay_nus(VK1024_CLK);
00003c  2064              MOVS     r0,#0x64
00003e  f7fffffe          BL       delay_nus
;;;109    	VK1024_WR_H();	
000042  2001              MOVS     r0,#1
000044  49ea              LDR      r1,|L1.1008|
000046  6008              STR      r0,[r1,#0]
;;;110    	delay_nus(VK1024_CLK);	
000048  2064              MOVS     r0,#0x64
00004a  f7fffffe          BL       delay_nus
;;;111    }
00004e  bd00              POP      {pc}
;;;112    /*******************************************************************************
                          ENDP

                  WriteCommandVk1024 PROC
;;;118    *******************************************************************************/
;;;119    void WriteCommandVk1024(unsigned char FunctonCode)
000050  b570              PUSH     {r4-r6,lr}
;;;120    {
000052  4604              MOV      r4,r0
;;;121    	unsigned char Shift = 0x80; 
000054  2680              MOVS     r6,#0x80
;;;122    	unsigned char i;
;;;123    	
;;;124    	VK1024_CS_L();   //CS Ƭѡ   
000056  2000              MOVS     r0,#0
000058  49e5              LDR      r1,|L1.1008|
00005a  3908              SUBS     r1,r1,#8
00005c  6008              STR      r0,[r1,#0]
;;;125    	delay_nus(VK1024_CLK/2);
00005e  2032              MOVS     r0,#0x32
000060  f7fffffe          BL       delay_nus
;;;126    	VK1024_DATA_H();  
000064  2001              MOVS     r0,#1
000066  49e2              LDR      r1,|L1.1008|
000068  3928              SUBS     r1,r1,#0x28
00006a  6008              STR      r0,[r1,#0]
;;;127    	WriteClockVk1024();
00006c  f7fffffe          BL       WriteClockVk1024
;;;128    	VK1024_DATA_L();  
000070  2000              MOVS     r0,#0
000072  49df              LDR      r1,|L1.1008|
000074  3928              SUBS     r1,r1,#0x28
000076  6008              STR      r0,[r1,#0]
;;;129    	WriteClockVk1024();
000078  f7fffffe          BL       WriteClockVk1024
;;;130    	VK1024_DATA_L();  
00007c  2000              MOVS     r0,#0
00007e  49dc              LDR      r1,|L1.1008|
000080  3928              SUBS     r1,r1,#0x28
000082  6008              STR      r0,[r1,#0]
;;;131    	WriteClockVk1024();
000084  f7fffffe          BL       WriteClockVk1024
;;;132    
;;;133    	for(i = 0; i < 8; i++) 
000088  2500              MOVS     r5,#0
00008a  e010              B        |L1.174|
                  |L1.140|
;;;134    	{
;;;135    	 if(Shift & FunctonCode) 	
00008c  ea060004          AND      r0,r6,r4
000090  b120              CBZ      r0,|L1.156|
;;;136    		 VK1024_DATA_H(); 
000092  2001              MOVS     r0,#1
000094  49d6              LDR      r1,|L1.1008|
000096  3928              SUBS     r1,r1,#0x28
000098  6008              STR      r0,[r1,#0]
00009a  e003              B        |L1.164|
                  |L1.156|
;;;137    	 else 
;;;138    		 VK1024_DATA_L();	  
00009c  2000              MOVS     r0,#0
00009e  49d4              LDR      r1,|L1.1008|
0000a0  3928              SUBS     r1,r1,#0x28
0000a2  6008              STR      r0,[r1,#0]
                  |L1.164|
;;;139    
;;;140    	 WriteClockVk1024();
0000a4  f7fffffe          BL       WriteClockVk1024
;;;141    	 Shift = Shift >> 1;
0000a8  1076              ASRS     r6,r6,#1
0000aa  1c68              ADDS     r0,r5,#1              ;133
0000ac  b2c5              UXTB     r5,r0                 ;133
                  |L1.174|
0000ae  2d08              CMP      r5,#8                 ;133
0000b0  dbec              BLT      |L1.140|
;;;142    	}
;;;143      VK1024_DATA_L(); 
0000b2  2000              MOVS     r0,#0
0000b4  49ce              LDR      r1,|L1.1008|
0000b6  3928              SUBS     r1,r1,#0x28
0000b8  6008              STR      r0,[r1,#0]
;;;144    	WriteClockVk1024();	//һ0һλ X
0000ba  f7fffffe          BL       WriteClockVk1024
;;;145      VK1024_CS_H(); 			//CS Ƭѡ  
0000be  2001              MOVS     r0,#1
0000c0  49cb              LDR      r1,|L1.1008|
0000c2  3908              SUBS     r1,r1,#8
0000c4  6008              STR      r0,[r1,#0]
;;;146    	delay_nus(VK1024_CLK/2);
0000c6  2032              MOVS     r0,#0x32
0000c8  f7fffffe          BL       delay_nus
;;;147      VK1024_DATA_H(); 
0000cc  2001              MOVS     r0,#1
0000ce  49c8              LDR      r1,|L1.1008|
0000d0  3928              SUBS     r1,r1,#0x28
0000d2  6008              STR      r0,[r1,#0]
;;;148    }
0000d4  bd70              POP      {r4-r6,pc}
;;;149    
                          ENDP

                  WritenDataVk1024 PROC
;;;158    *******************************************************************************/
;;;159    void WritenDataVk1024(unsigned char Addr,unsigned char *Databuf,unsigned char Cnt)
0000d6  e92d47f0          PUSH     {r4-r10,lr}
;;;160    {
0000da  4682              MOV      r10,r0
0000dc  460e              MOV      r6,r1
0000de  4690              MOV      r8,r2
;;;161    	unsigned char i,j; 
;;;162    	unsigned char Shift;
;;;163    	unsigned char dataval; 
;;;164    	
;;;165    	VK1024_CS_L();   //CS Ƭѡ 
0000e0  2000              MOVS     r0,#0
0000e2  49c3              LDR      r1,|L1.1008|
0000e4  3908              SUBS     r1,r1,#8
0000e6  6008              STR      r0,[r1,#0]
;;;166    	delay_nus(VK1024_CLK/2);
0000e8  2032              MOVS     r0,#0x32
0000ea  f7fffffe          BL       delay_nus
;;;167    
;;;168    	VK1024_DATA_H();  
0000ee  2001              MOVS     r0,#1
0000f0  49bf              LDR      r1,|L1.1008|
0000f2  3928              SUBS     r1,r1,#0x28
0000f4  6008              STR      r0,[r1,#0]
;;;169    	WriteClockVk1024();  //101
0000f6  f7fffffe          BL       WriteClockVk1024
;;;170    	VK1024_DATA_L();  
0000fa  2000              MOVS     r0,#0
0000fc  49bc              LDR      r1,|L1.1008|
0000fe  3928              SUBS     r1,r1,#0x28
000100  6008              STR      r0,[r1,#0]
;;;171    	WriteClockVk1024();
000102  f7fffffe          BL       WriteClockVk1024
;;;172    	VK1024_DATA_H();  
000106  2001              MOVS     r0,#1
000108  49b9              LDR      r1,|L1.1008|
00010a  3928              SUBS     r1,r1,#0x28
00010c  6008              STR      r0,[r1,#0]
;;;173    	WriteClockVk1024();
00010e  f7fffffe          BL       WriteClockVk1024
;;;174    
;;;175    	Shift = 0x20;
000112  2520              MOVS     r5,#0x20
;;;176    	for( i = 0; i < vk1024_addrbit; i++) 
000114  2400              MOVS     r4,#0
000116  e010              B        |L1.314|
                  |L1.280|
;;;177    	{   		 
;;;178    		if (Addr & Shift) 
000118  ea0a0005          AND      r0,r10,r5
00011c  b120              CBZ      r0,|L1.296|
;;;179    			VK1024_DATA_H(); 		
00011e  2001              MOVS     r0,#1
000120  49b3              LDR      r1,|L1.1008|
000122  3928              SUBS     r1,r1,#0x28
000124  6008              STR      r0,[r1,#0]
000126  e003              B        |L1.304|
                  |L1.296|
;;;180    		else  
;;;181    			VK1024_DATA_L();
000128  2000              MOVS     r0,#0
00012a  49b1              LDR      r1,|L1.1008|
00012c  3928              SUBS     r1,r1,#0x28
00012e  6008              STR      r0,[r1,#0]
                  |L1.304|
;;;182    		WriteClockVk1024();		
000130  f7fffffe          BL       WriteClockVk1024
;;;183    		Shift = Shift >> 1; 
000134  106d              ASRS     r5,r5,#1
000136  1c60              ADDS     r0,r4,#1              ;176
000138  b2c4              UXTB     r4,r0                 ;176
                  |L1.314|
00013a  48ae              LDR      r0,|L1.1012|
00013c  7800              LDRB     r0,[r0,#0]            ;176  ; vk1024_addrbit
00013e  4284              CMP      r4,r0                 ;176
000140  dbea              BLT      |L1.280|
;;;184    	}
;;;185    	for (j = 0; j < Cnt; j++) 
000142  2700              MOVS     r7,#0
000144  e01a              B        |L1.380|
                  |L1.326|
;;;186    	{
;;;187    		Shift = 0x01;
000146  2501              MOVS     r5,#1
;;;188    		dataval=*Databuf++;
000148  f8169b01          LDRB     r9,[r6],#1
;;;189    		for (i = 0; i < 4; i++) 
00014c  2400              MOVS     r4,#0
00014e  e011              B        |L1.372|
                  |L1.336|
;;;190    		{
;;;191    			if( dataval & Shift) 
000150  ea090005          AND      r0,r9,r5
000154  b120              CBZ      r0,|L1.352|
;;;192    				VK1024_DATA_H();		 
000156  2001              MOVS     r0,#1
000158  49a5              LDR      r1,|L1.1008|
00015a  3928              SUBS     r1,r1,#0x28
00015c  6008              STR      r0,[r1,#0]
00015e  e003              B        |L1.360|
                  |L1.352|
;;;193    			else  
;;;194    				VK1024_DATA_L();
000160  2000              MOVS     r0,#0
000162  49a3              LDR      r1,|L1.1008|
000164  3928              SUBS     r1,r1,#0x28
000166  6008              STR      r0,[r1,#0]
                  |L1.360|
;;;195    			WriteClockVk1024();
000168  f7fffffe          BL       WriteClockVk1024
;;;196    			Shift = Shift << 1;
00016c  0668              LSLS     r0,r5,#25
00016e  0e05              LSRS     r5,r0,#24
000170  1c60              ADDS     r0,r4,#1              ;189
000172  b2c4              UXTB     r4,r0                 ;189
                  |L1.372|
000174  2c04              CMP      r4,#4                 ;189
000176  dbeb              BLT      |L1.336|
000178  1c78              ADDS     r0,r7,#1              ;185
00017a  b2c7              UXTB     r7,r0                 ;185
                  |L1.380|
00017c  4547              CMP      r7,r8                 ;185
00017e  dbe2              BLT      |L1.326|
;;;197    		}   
;;;198    	}
;;;199      VK1024_CS_H();   //CS Ƭѡ
000180  2001              MOVS     r0,#1
000182  499b              LDR      r1,|L1.1008|
000184  3908              SUBS     r1,r1,#8
000186  6008              STR      r0,[r1,#0]
;;;200    	delay_nus(VK1024_CLK/2);	 
000188  2032              MOVS     r0,#0x32
00018a  f7fffffe          BL       delay_nus
;;;201      VK1024_DATA_H(); 
00018e  2001              MOVS     r0,#1
000190  4997              LDR      r1,|L1.1008|
000192  3928              SUBS     r1,r1,#0x28
000194  6008              STR      r0,[r1,#0]
;;;202    }
000196  e8bd87f0          POP      {r4-r10,pc}
;;;203    /*******************************************************************************
                          ENDP

                  Vk1024_DisAll PROC
;;;210    *******************************************************************************/
;;;211    void Vk1024_DisAll(unsigned char dat)
00019a  b530              PUSH     {r4,r5,lr}
;;;212    {
00019c  4605              MOV      r5,r0
;;;213    	unsigned char segi;
;;;214    	
;;;215    	for(segi=0;segi<32;segi++)
00019e  2400              MOVS     r4,#0
0001a0  e004              B        |L1.428|
                  |L1.418|
;;;216    	{
;;;217    		vk1024_dispram[segi]=0x00;
0001a2  2000              MOVS     r0,#0
0001a4  4994              LDR      r1,|L1.1016|
0001a6  5508              STRB     r0,[r1,r4]
0001a8  1c60              ADDS     r0,r4,#1              ;215
0001aa  b2c4              UXTB     r4,r0                 ;215
                  |L1.428|
0001ac  2c20              CMP      r4,#0x20              ;215
0001ae  dbf8              BLT      |L1.418|
;;;218    	}
;;;219    	for(segi=19;segi<25;segi++)
0001b0  2413              MOVS     r4,#0x13
0001b2  e003              B        |L1.444|
                  |L1.436|
;;;220    	{
;;;221    		vk1024_dispram[segi]=dat;
0001b4  4890              LDR      r0,|L1.1016|
0001b6  5505              STRB     r5,[r0,r4]
0001b8  1c60              ADDS     r0,r4,#1              ;219
0001ba  b2c4              UXTB     r4,r0                 ;219
                  |L1.444|
0001bc  2c19              CMP      r4,#0x19              ;219
0001be  dbf9              BLT      |L1.436|
;;;222    	}
;;;223    	WritenDataVk1024(0,vk1024_dispram,32); //4bitַԶ1
0001c0  2220              MOVS     r2,#0x20
0001c2  498d              LDR      r1,|L1.1016|
0001c4  2000              MOVS     r0,#0
0001c6  f7fffffe          BL       WritenDataVk1024
;;;224    }
0001ca  bd30              POP      {r4,r5,pc}
;;;225    /*******************************************************************************
                          ENDP

                  Vk1024_DisDotOn PROC
;;;232    *******************************************************************************/
;;;233    void Vk1024_DisDotOn(unsigned char seg,unsigned char com)
0001cc  b5f8              PUSH     {r3-r7,lr}
;;;234    {
0001ce  4604              MOV      r4,r0
0001d0  460e              MOV      r6,r1
;;;235    	unsigned char addrbyte,addrbit,tempdat;
;;;236    	
;;;237    	addrbyte=seg;
0001d2  4625              MOV      r5,r4
;;;238    	addrbit=(1<<com);
0001d4  2001              MOVS     r0,#1
0001d6  40b0              LSLS     r0,r0,r6
0001d8  b2c7              UXTB     r7,r0
;;;239    	tempdat=vk1024_dispram[seg]|addrbit;
0001da  4887              LDR      r0,|L1.1016|
0001dc  5d00              LDRB     r0,[r0,r4]
0001de  4338              ORRS     r0,r0,r7
0001e0  9000              STR      r0,[sp,#0]
;;;240    	vk1024_dispram[seg]=tempdat;
0001e2  f89d0000          LDRB     r0,[sp,#0]
0001e6  4984              LDR      r1,|L1.1016|
0001e8  5508              STRB     r0,[r1,r4]
;;;241    	WritenDataVk1024(addrbyte,&tempdat,1);
0001ea  2201              MOVS     r2,#1
0001ec  4669              MOV      r1,sp
0001ee  4628              MOV      r0,r5
0001f0  f7fffffe          BL       WritenDataVk1024
;;;242    }
0001f4  bdf8              POP      {r3-r7,pc}
;;;243    /*******************************************************************************
                          ENDP

                  Vk1024_DisDotOff PROC
;;;250    *******************************************************************************/
;;;251    void Vk1024_DisDotOff(unsigned char seg,unsigned char com)
0001f6  b5f8              PUSH     {r3-r7,lr}
;;;252    {
0001f8  4604              MOV      r4,r0
0001fa  460e              MOV      r6,r1
;;;253    	unsigned char addrbyte,addrbit,tempdat;
;;;254    	
;;;255    	addrbyte=seg;
0001fc  4625              MOV      r5,r4
;;;256    	addrbit=(1<<com);
0001fe  2001              MOVS     r0,#1
000200  40b0              LSLS     r0,r0,r6
000202  b2c7              UXTB     r7,r0
;;;257    	tempdat=vk1024_dispram[seg]&(~addrbit);
000204  487c              LDR      r0,|L1.1016|
000206  5d00              LDRB     r0,[r0,r4]
000208  43b8              BICS     r0,r0,r7
00020a  9000              STR      r0,[sp,#0]
;;;258    	vk1024_dispram[seg]=tempdat;
00020c  f89d0000          LDRB     r0,[sp,#0]
000210  4979              LDR      r1,|L1.1016|
000212  5508              STRB     r0,[r1,r4]
;;;259    	WritenDataVk1024(addrbyte,&tempdat,1);
000214  2201              MOVS     r2,#1
000216  4669              MOV      r1,sp
000218  4628              MOV      r0,r5
00021a  f7fffffe          BL       WritenDataVk1024
;;;260    }
00021e  bdf8              POP      {r3-r7,pc}
;;;261    /*******************************************************************************
                          ENDP

                  Vk1024_Enter_PowerOff PROC
;;;267    *******************************************************************************/
;;;268    void Vk1024_Enter_PowerOff(void)
000220  b500              PUSH     {lr}
;;;269    {	
;;;270    	//ʹLCDOFFSYSDIS,ϵͳڵ͹״̬
;;;271    	//ֻʹƬRCʱԴʱ,ʹϵͳ͹״̬
;;;272    	WriteCommandVk1024(OSC_OFF);
000222  2000              MOVS     r0,#0
000224  f7fffffe          BL       WriteCommandVk1024
;;;273    	WriteCommandVk1024(DISP_OFF);
000228  2002              MOVS     r0,#2
00022a  f7fffffe          BL       WriteCommandVk1024
;;;274    }
00022e  bd00              POP      {pc}
;;;275    /*******************************************************************************
                          ENDP

                  Vk1024_Exit_PowerOff PROC
;;;281    *******************************************************************************/
;;;282    void Vk1024_Exit_PowerOff(void)
000230  b500              PUSH     {lr}
;;;283    {	
;;;284    	//˳͹״̬vk1024
;;;285    	WriteCommandVk1024(OSC_ON);
000232  2001              MOVS     r0,#1
000234  f7fffffe          BL       WriteCommandVk1024
;;;286    	WriteCommandVk1024(DISP_ON);
000238  2003              MOVS     r0,#3
00023a  f7fffffe          BL       WriteCommandVk1024
;;;287    	WriteCommandVk1024(COM_1_3__4);vk1024_maxcom=4;	//1/3bias 4com
00023e  2029              MOVS     r0,#0x29
000240  f7fffffe          BL       WriteCommandVk1024
000244  2004              MOVS     r0,#4
000246  496d              LDR      r1,|L1.1020|
000248  7008              STRB     r0,[r1,#0]
;;;288    //	WriteCommandVk1024(COM_1_3__3);vk1024_maxcom=3;	//1/3bias 3com
;;;289    //	WriteCommandVk1024(COM_1_3__2);vk1024_maxcom=2;	//1/3bias 2com
;;;290    //	WriteCommandVk1024(COM_1_2__4);vk1024_maxcom=4;	//1/2bias 4com
;;;291    //	WriteCommandVk1024(COM_1_2__3);vk1024_maxcom=3;	//1/2bias 3com
;;;292    //	WriteCommandVk1024(COM_1_2__2);vk1024_maxcom=2;	//1/2bias 2com
;;;293    }
00024a  bd00              POP      {pc}
;;;294    /*******************************************************************************
                          ENDP

                  Vk1024_Lowlevel_Init PROC
;;;300    *******************************************************************************/
;;;301    void Vk1024_Lowlevel_Init(void)
00024c  b510              PUSH     {r4,lr}
;;;302    {
;;;303    	//ͨߵƽͬӵƽת·
;;;304    	//˺ݿͻƬӦ޸	
;;;305    	GPIO_SetMode(VK1024_CS_PORT, VK1024_CS_PIN, GPIO_MODE_OUTPUT);
00024e  2201              MOVS     r2,#1
000250  0351              LSLS     r1,r2,#13
000252  486b              LDR      r0,|L1.1024|
000254  f7fffffe          BL       GPIO_SetMode
;;;306    	GPIO_SetMode(VK1024_WR_PORT, VK1024_WR_PIN, GPIO_MODE_OUTPUT);
000258  2201              MOVS     r2,#1
00025a  03d1              LSLS     r1,r2,#15
00025c  4868              LDR      r0,|L1.1024|
00025e  f7fffffe          BL       GPIO_SetMode
;;;307    	GPIO_SetMode(VK1024_DAT_PORT, VK1024_DAT_PIN, GPIO_MODE_OUTPUT);	
000262  2201              MOVS     r2,#1
000264  2120              MOVS     r1,#0x20
000266  4866              LDR      r0,|L1.1024|
000268  f7fffffe          BL       GPIO_SetMode
;;;308    		
;;;309    	VK1024_CS_H();                 
00026c  2001              MOVS     r0,#1
00026e  4960              LDR      r1,|L1.1008|
000270  3908              SUBS     r1,r1,#8
000272  6008              STR      r0,[r1,#0]
;;;310    	VK1024_WR_H();  
000274  495e              LDR      r1,|L1.1008|
000276  6008              STR      r0,[r1,#0]
;;;311    	VK1024_DATA_H(); 	
000278  495d              LDR      r1,|L1.1008|
00027a  3928              SUBS     r1,r1,#0x28
00027c  6008              STR      r0,[r1,#0]
;;;312    }
00027e  bd10              POP      {r4,pc}
;;;313    /*******************************************************************************
                          ENDP

                  Vk1024_Init PROC
;;;319    *******************************************************************************/
;;;320    void Vk1024_Init(void)
000280  b510              PUSH     {r4,lr}
;;;321    {	
;;;322    	//ܽøݿͻƬӦ޸
;;;323    	Vk1024_Lowlevel_Init();
000282  f7fffffe          BL       Vk1024_Lowlevel_Init
;;;324    	//
;;;325    	WriteCommandVk1024(OSC_ON);
000286  2001              MOVS     r0,#1
000288  f7fffffe          BL       WriteCommandVk1024
;;;326    	WriteCommandVk1024(DISP_ON);
00028c  2003              MOVS     r0,#3
00028e  f7fffffe          BL       WriteCommandVk1024
;;;327    	WriteCommandVk1024(COM_1_3__4);vk1024_maxcom=4;	//1/3bias 4com
000292  2029              MOVS     r0,#0x29
000294  f7fffffe          BL       WriteCommandVk1024
000298  2004              MOVS     r0,#4
00029a  4958              LDR      r1,|L1.1020|
00029c  7008              STRB     r0,[r1,#0]
;;;328    //	WriteCommandVk1024(COM_1_3__3);vk1024_maxcom=3;	//1/3bias 3com com2/com1/com0
;;;329    //	WriteCommandVk1024(COM_1_3__2);vk1024_maxcom=2;	//1/3bias 2com com1/com0
;;;330    //	WriteCommandVk1024(COM_1_2__4);vk1024_maxcom=4;	//1/2bias 4com
;;;331    //	WriteCommandVk1024(COM_1_2__3);vk1024_maxcom=3;	//1/2bias 3com com2/com1/com0
;;;332    //	WriteCommandVk1024(COM_1_2__2);vk1024_maxcom=2;	//1/2bias 2com com1/com0
;;;333    	//ϵĬ(δùܹرս͹)
;;;334    //	WriteCommandVk1024(BUZZ_2KHZ);
;;;335    //	WriteCommandVk1024(BUZZ_4KHZ);
;;;336    //	WriteCommandVk1024(BUZZ_ON);
;;;337    	WriteCommandVk1024(BUZZ_OFF);
00029e  2008              MOVS     r0,#8
0002a0  f7fffffe          BL       WriteCommandVk1024
;;;338    	WriteCommandVk1024(IRQ_DIS);
0002a4  2080              MOVS     r0,#0x80
0002a6  f7fffffe          BL       WriteCommandVk1024
;;;339    	WriteCommandVk1024(TIMER_DIS);
0002aa  2004              MOVS     r0,#4
0002ac  f7fffffe          BL       WriteCommandVk1024
;;;340    	WriteCommandVk1024(WDT_DIS);
0002b0  2005              MOVS     r0,#5
0002b2  f7fffffe          BL       WriteCommandVk1024
;;;341    }
0002b6  bd10              POP      {r4,pc}
;;;342    /*******************************************************************************
                          ENDP

                  Vk1024_Main PROC
;;;348    *******************************************************************************/
;;;349    void Vk1024_Main(void)
0002b8  f7fffffe          BL       Vk1024_Init
;;;350    {	
;;;351    	Vk1024_Init();
;;;352    	Vk1024_DisAll(0x00);
0002bc  2000              MOVS     r0,#0
0002be  f7fffffe          BL       Vk1024_DisAll
;;;353    	while(1)
0002c2  e094              B        |L1.1006|
                  |L1.708|
;;;354    	{
;;;355    		Vk1024_DisAll(0x0f);			//LCDȫ
0002c4  200f              MOVS     r0,#0xf
0002c6  f7fffffe          BL       Vk1024_DisAll
;;;356    		delay_nms(3000);					//ʱ3S
0002ca  f64030b8          MOV      r0,#0xbb8
0002ce  f7fffffe          BL       delay_nms
;;;357    		
;;;358    		Vk1024_DisAll(0x00);			//LCDȫ
0002d2  2000              MOVS     r0,#0
0002d4  f7fffffe          BL       Vk1024_DisAll
;;;359    		delay_nms(3000);					//ʱ3S
0002d8  f64030b8          MOV      r0,#0xbb8
0002dc  f7fffffe          BL       delay_nms
;;;360    		
;;;361    		//LCD
;;;362    		Vk1024_DisAll(0x05);
0002e0  2005              MOVS     r0,#5
0002e2  f7fffffe          BL       Vk1024_DisAll
;;;363    		delay_nms(1500);
0002e6  f24050dc          MOV      r0,#0x5dc
0002ea  f7fffffe          BL       delay_nms
;;;364    		Vk1024_DisAll(0x0A);
0002ee  200a              MOVS     r0,#0xa
0002f0  f7fffffe          BL       Vk1024_DisAll
;;;365    		delay_nms(1500);
0002f4  f24050dc          MOV      r0,#0x5dc
0002f8  f7fffffe          BL       delay_nms
;;;366    		
;;;367    		//
;;;368    		Vk1024_DisAll(0x00);      //LCDȫ
0002fc  2000              MOVS     r0,#0
0002fe  f7fffffe          BL       Vk1024_DisAll
;;;369    		Vk1024_Enter_PowerOff();  //ģʽ
000302  f7fffffe          BL       Vk1024_Enter_PowerOff
;;;370    		delay_nms(5000);          //ʱ5
000306  f2413088          MOV      r0,#0x1388
00030a  f7fffffe          BL       delay_nms
;;;371    		Vk1024_Exit_PowerOff();   //˳ģʽ
00030e  f7fffffe          BL       Vk1024_Exit_PowerOff
;;;372    		
;;;373    		Vk1024_DisAll(0x00);			//LCDȫ
000312  2000              MOVS     r0,#0
000314  f7fffffe          BL       Vk1024_DisAll
;;;374    		for(vk1024_segi=0;vk1024_segi<VK1024_SEGNUM;vk1024_segi++)//seg
000318  2000              MOVS     r0,#0
00031a  493a              LDR      r1,|L1.1028|
00031c  7008              STRB     r0,[r1,#0]
00031e  e027              B        |L1.880|
                  |L1.800|
;;;375    		{
;;;376    			for(vk1024_comi=0;vk1024_comi<vk1024_maxcom;vk1024_comi++)//com
000320  2000              MOVS     r0,#0
000322  4939              LDR      r1,|L1.1032|
000324  7008              STRB     r0,[r1,#0]
000326  e018              B        |L1.858|
                  |L1.808|
;;;377    			{
;;;378    				Vk1024_DisDotOn(vk1024_segtab[vk1024_segi],vk1024_comi);	//LCD
000328  4938              LDR      r1,|L1.1036|
00032a  4a36              LDR      r2,|L1.1028|
00032c  7812              LDRB     r2,[r2,#0]  ; vk1024_segi
00032e  5c88              LDRB     r0,[r1,r2]
000330  4935              LDR      r1,|L1.1032|
000332  7809              LDRB     r1,[r1,#0]  ; vk1024_comi
000334  f7fffffe          BL       Vk1024_DisDotOn
;;;379    				delay_nms(300);				//ʱ300mS
000338  f44f7096          MOV      r0,#0x12c
00033c  f7fffffe          BL       delay_nms
;;;380    				Vk1024_DisDotOff(vk1024_segtab[vk1024_segi],vk1024_comi); //LCDر
000340  4932              LDR      r1,|L1.1036|
000342  4a30              LDR      r2,|L1.1028|
000344  7812              LDRB     r2,[r2,#0]  ; vk1024_segi
000346  5c88              LDRB     r0,[r1,r2]
000348  492f              LDR      r1,|L1.1032|
00034a  7809              LDRB     r1,[r1,#0]  ; vk1024_comi
00034c  f7fffffe          BL       Vk1024_DisDotOff
000350  482d              LDR      r0,|L1.1032|
000352  7800              LDRB     r0,[r0,#0]            ;376  ; vk1024_comi
000354  1c40              ADDS     r0,r0,#1              ;376
000356  492c              LDR      r1,|L1.1032|
000358  7008              STRB     r0,[r1,#0]            ;376
                  |L1.858|
00035a  482b              LDR      r0,|L1.1032|
00035c  7800              LDRB     r0,[r0,#0]            ;376  ; vk1024_comi
00035e  4927              LDR      r1,|L1.1020|
000360  7809              LDRB     r1,[r1,#0]            ;376  ; vk1024_maxcom
000362  4288              CMP      r0,r1                 ;376
000364  dbe0              BLT      |L1.808|
000366  4827              LDR      r0,|L1.1028|
000368  7800              LDRB     r0,[r0,#0]            ;374  ; vk1024_segi
00036a  1c40              ADDS     r0,r0,#1              ;374
00036c  4925              LDR      r1,|L1.1028|
00036e  7008              STRB     r0,[r1,#0]            ;374
                  |L1.880|
000370  4824              LDR      r0,|L1.1028|
000372  7800              LDRB     r0,[r0,#0]            ;374  ; vk1024_segi
000374  2806              CMP      r0,#6                 ;374
000376  dbd3              BLT      |L1.800|
;;;381    			}
;;;382    		}
;;;383    		
;;;384    		Vk1024_DisAll(0x0f);			//LCDȫ
000378  200f              MOVS     r0,#0xf
00037a  f7fffffe          BL       Vk1024_DisAll
;;;385    		delay_nms(1000);					//ʱ1S
00037e  f44f707a          MOV      r0,#0x3e8
000382  f7fffffe          BL       delay_nms
;;;386    		for(vk1024_segi=0;vk1024_segi<VK1024_SEGNUM;vk1024_segi++)//seg
000386  2000              MOVS     r0,#0
000388  491e              LDR      r1,|L1.1028|
00038a  7008              STRB     r0,[r1,#0]
00038c  e027              B        |L1.990|
                  |L1.910|
;;;387    		{
;;;388    			for(vk1024_comi=0;vk1024_comi<vk1024_maxcom;vk1024_comi++)//com
00038e  2000              MOVS     r0,#0
000390  491d              LDR      r1,|L1.1032|
000392  7008              STRB     r0,[r1,#0]
000394  e018              B        |L1.968|
                  |L1.918|
;;;389    			{
;;;390    				Vk1024_DisDotOff(vk1024_segtab[vk1024_segi],vk1024_comi);	//LCDر
000396  491d              LDR      r1,|L1.1036|
000398  4a1a              LDR      r2,|L1.1028|
00039a  7812              LDRB     r2,[r2,#0]  ; vk1024_segi
00039c  5c88              LDRB     r0,[r1,r2]
00039e  491a              LDR      r1,|L1.1032|
0003a0  7809              LDRB     r1,[r1,#0]  ; vk1024_comi
0003a2  f7fffffe          BL       Vk1024_DisDotOff
;;;391    				delay_nms(300);				//ʱ300mS
0003a6  f44f7096          MOV      r0,#0x12c
0003aa  f7fffffe          BL       delay_nms
;;;392    				Vk1024_DisDotOn(vk1024_segtab[vk1024_segi],vk1024_comi); //LCD
0003ae  4917              LDR      r1,|L1.1036|
0003b0  4a14              LDR      r2,|L1.1028|
0003b2  7812              LDRB     r2,[r2,#0]  ; vk1024_segi
0003b4  5c88              LDRB     r0,[r1,r2]
0003b6  4914              LDR      r1,|L1.1032|
0003b8  7809              LDRB     r1,[r1,#0]  ; vk1024_comi
0003ba  f7fffffe          BL       Vk1024_DisDotOn
0003be  4812              LDR      r0,|L1.1032|
0003c0  7800              LDRB     r0,[r0,#0]            ;388  ; vk1024_comi
0003c2  1c40              ADDS     r0,r0,#1              ;388
0003c4  4910              LDR      r1,|L1.1032|
0003c6  7008              STRB     r0,[r1,#0]            ;388
                  |L1.968|
0003c8  480f              LDR      r0,|L1.1032|
0003ca  7800              LDRB     r0,[r0,#0]            ;388  ; vk1024_comi
0003cc  490b              LDR      r1,|L1.1020|
0003ce  7809              LDRB     r1,[r1,#0]            ;388  ; vk1024_maxcom
0003d0  4288              CMP      r0,r1                 ;388
0003d2  dbe0              BLT      |L1.918|
0003d4  480b              LDR      r0,|L1.1028|
0003d6  7800              LDRB     r0,[r0,#0]            ;386  ; vk1024_segi
0003d8  1c40              ADDS     r0,r0,#1              ;386
0003da  490a              LDR      r1,|L1.1028|
0003dc  7008              STRB     r0,[r1,#0]            ;386
                  |L1.990|
0003de  4809              LDR      r0,|L1.1028|
0003e0  7800              LDRB     r0,[r0,#0]            ;386  ; vk1024_segi
0003e2  2806              CMP      r0,#6                 ;386
0003e4  dbd3              BLT      |L1.910|
;;;393    			}
;;;394    		}
;;;395    		delay_nms(1000);					//ʱ1S
0003e6  f44f707a          MOV      r0,#0x3e8
0003ea  f7fffffe          BL       delay_nms
                  |L1.1006|
0003ee  e769              B        |L1.708|
;;;396    	}
;;;397    }
;;;398    /************************END OF FILE****/
                          ENDP

                  |L1.1008|
                          DCD      0x4000487c
                  |L1.1012|
                          DCD      vk1024_addrbit
                  |L1.1016|
                          DCD      vk1024_dispram
                  |L1.1020|
                          DCD      vk1024_maxcom
                  |L1.1024|
                          DCD      0x40004040
                  |L1.1028|
                          DCD      vk1024_segi
                  |L1.1032|
                          DCD      vk1024_comi
                  |L1.1036|
                          DCD      vk1024_segtab

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

                  vk1024_dispram
                          %        32

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

                  vk1024_segtab
000000  13141516          DCB      0x13,0x14,0x15,0x16
000004  1718              DCB      0x17,0x18
                  shuzi_zimo
000006  f505              DCB      0xf5,0x05
000008  d39727b6          DCB      0xd3,0x97,0x27,0xb6
00000c  f615f7b7          DCB      0xf6,0x15,0xf7,0xb7
000010  02e0c667          DCB      0x02,0xe0,0xc6,0x67
000014  05                DCB      0x05
                  vk1024_addrbit
000015  06                DCB      0x06
                  vk1024_segi
000016  00                DCB      0x00
                  vk1024_comi
000017  00                DCB      0x00
                  vk1024_maxcom
000018  00                DCB      0x00

;*** Start embedded assembler ***

#line 1 "..\\lcd_driver\\VK1024B_driver.c"
	AREA ||.rev16_text||, CODE
	THUMB
	EXPORT |__asm___16_VK1024B_driver_c_ef58c542____REV16|
#line 114 "..\\..\\..\\Library\\CMSIS\\Include\\core_cmInstr.h"
|__asm___16_VK1024B_driver_c_ef58c542____REV16| PROC
#line 115

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

 revsh r0, r0
 bx lr
	ENDP

;*** End   embedded assembler ***
