; generated by Component: ARM Compiler 5.05 update 2 (build 169) Tool: ArmCC [4d0f38]
; commandline ArmCC [--list --debug -c --asm --interleave -o.\obj\vk0256_driver.o --asm_dir=.\lst\ --list_dir=.\lst\ --depend=.\obj\vk0256_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\׼ϵ\VK0256_TESTCODE\project\VK0256_FUNC\Keil\RTE -IC:\Keil_v5\ARM\PACK\ARM\CMSIS\4.3.0\CMSIS\Include -D__UVISION_VERSION=515 -D_RTE_ --omf_browse=.\obj\vk0256_driver.crf ..\lcd_driver\VK0256_driver.c]
                          THUMB

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

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

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

                  WriteClockVk0256 PROC
;;;105    *******************************************************************************/
;;;106    void WriteClockVk0256(void)
000034  b500              PUSH     {lr}
;;;107    {
;;;108    	VK0256_WR_L(); 
000036  2000              MOVS     r0,#0
000038  49eb              LDR      r1,|L1.1000|
00003a  6008              STR      r0,[r1,#0]
;;;109    	delay_nus(VK0256_CLK);
00003c  200a              MOVS     r0,#0xa
00003e  f7fffffe          BL       delay_nus
;;;110    	VK0256_WR_H();	
000042  2001              MOVS     r0,#1
000044  49e8              LDR      r1,|L1.1000|
000046  6008              STR      r0,[r1,#0]
;;;111    	delay_nus(VK0256_CLK);	
000048  200a              MOVS     r0,#0xa
00004a  f7fffffe          BL       delay_nus
;;;112    }
00004e  bd00              POP      {pc}
;;;113    /*******************************************************************************
                          ENDP

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

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

                  Vk0256_DisAll PROC
;;;211    *******************************************************************************/
;;;212    void Vk0256_DisAll(unsigned char dat)
00019a  b530              PUSH     {r4,r5,lr}
;;;213    {
00019c  4605              MOV      r5,r0
;;;214    	unsigned char segi;
;;;215    	
;;;216    	for(segi=0;segi<32;segi++)
00019e  2400              MOVS     r4,#0
0001a0  e003              B        |L1.426|
                  |L1.418|
;;;217    	{
;;;218    		vk0256_dispram[segi]=dat;
0001a2  4893              LDR      r0,|L1.1008|
0001a4  5505              STRB     r5,[r0,r4]
0001a6  1c60              ADDS     r0,r4,#1              ;216
0001a8  b2c4              UXTB     r4,r0                 ;216
                  |L1.426|
0001aa  2c20              CMP      r4,#0x20              ;216
0001ac  dbf9              BLT      |L1.418|
;;;219    	}
;;;220    	WritenDataVk0256(0,vk0256_dispram,32);//8bitַԶ2(ÿ4bitݵַԶ1)
0001ae  2220              MOVS     r2,#0x20
0001b0  498f              LDR      r1,|L1.1008|
0001b2  2000              MOVS     r0,#0
0001b4  f7fffffe          BL       WritenDataVk0256
;;;221    }
0001b8  bd30              POP      {r4,r5,pc}
;;;222    /*******************************************************************************
                          ENDP

                  Vk0256_DisDotOn PROC
;;;229    *******************************************************************************/
;;;230    void Vk0256_DisDotOn(unsigned char seg,unsigned char com)
0001ba  b5f8              PUSH     {r3-r7,lr}
;;;231    {
0001bc  4604              MOV      r4,r0
0001be  460d              MOV      r5,r1
;;;232    	unsigned char addrbyte,addrbit,tempdat;
;;;233    	
;;;234    	addrbyte=seg*2;
0001c0  0660              LSLS     r0,r4,#25
0001c2  0e06              LSRS     r6,r0,#24
;;;235    	addrbit=(1<<com);
0001c4  2001              MOVS     r0,#1
0001c6  40a8              LSLS     r0,r0,r5
0001c8  b2c7              UXTB     r7,r0
;;;236    	tempdat=vk0256_dispram[seg]|addrbit;
0001ca  4889              LDR      r0,|L1.1008|
0001cc  5d00              LDRB     r0,[r0,r4]
0001ce  4338              ORRS     r0,r0,r7
0001d0  9000              STR      r0,[sp,#0]
;;;237    	vk0256_dispram[seg]=tempdat;
0001d2  f89d0000          LDRB     r0,[sp,#0]
0001d6  4986              LDR      r1,|L1.1008|
0001d8  5508              STRB     r0,[r1,r4]
;;;238    	WritenDataVk0256(addrbyte,&tempdat,1);
0001da  2201              MOVS     r2,#1
0001dc  4669              MOV      r1,sp
0001de  4630              MOV      r0,r6
0001e0  f7fffffe          BL       WritenDataVk0256
;;;239    }
0001e4  bdf8              POP      {r3-r7,pc}
;;;240    /*******************************************************************************
                          ENDP

                  Vk0256_DisDotOff PROC
;;;247    *******************************************************************************/
;;;248    void Vk0256_DisDotOff(unsigned char seg,unsigned char com)
0001e6  b5f8              PUSH     {r3-r7,lr}
;;;249    {
0001e8  4604              MOV      r4,r0
0001ea  460d              MOV      r5,r1
;;;250    	unsigned char addrbyte,addrbit,tempdat;
;;;251    	
;;;252    	addrbyte=seg*2;
0001ec  0660              LSLS     r0,r4,#25
0001ee  0e06              LSRS     r6,r0,#24
;;;253    	addrbit=(1<<com);
0001f0  2001              MOVS     r0,#1
0001f2  40a8              LSLS     r0,r0,r5
0001f4  b2c7              UXTB     r7,r0
;;;254    	tempdat=vk0256_dispram[seg]&(~addrbit);
0001f6  487e              LDR      r0,|L1.1008|
0001f8  5d00              LDRB     r0,[r0,r4]
0001fa  43b8              BICS     r0,r0,r7
0001fc  9000              STR      r0,[sp,#0]
;;;255    	vk0256_dispram[seg]=tempdat;
0001fe  f89d0000          LDRB     r0,[sp,#0]
000202  497b              LDR      r1,|L1.1008|
000204  5508              STRB     r0,[r1,r4]
;;;256    	WritenDataVk0256(addrbyte,&tempdat,1);	
000206  2201              MOVS     r2,#1
000208  4669              MOV      r1,sp
00020a  4630              MOV      r0,r6
00020c  f7fffffe          BL       WritenDataVk0256
;;;257    }
000210  bdf8              POP      {r3-r7,pc}
;;;258    /*******************************************************************************
                          ENDP

                  Vk0256_Enter_PowerOff PROC
;;;264    *******************************************************************************/
;;;265    void Vk0256_Enter_PowerOff(void)
000212  b500              PUSH     {lr}
;;;266    {	
;;;267    	//ʹLCDOFFSYSDIS,ϵͳڵ͹״̬
;;;268    	//ֻʹƬRCʱԴʱ,ʹϵͳ͹״̬
;;;269    	WriteCommandVk0256(OSC_OFF);
000214  2000              MOVS     r0,#0
000216  f7fffffe          BL       WriteCommandVk0256
;;;270    	WriteCommandVk0256(DISP_OFF);
00021a  2002              MOVS     r0,#2
00021c  f7fffffe          BL       WriteCommandVk0256
;;;271    }
000220  bd00              POP      {pc}
;;;272    /*******************************************************************************
                          ENDP

                  Vk0256_Exit_PowerOff PROC
;;;278    *******************************************************************************/
;;;279    void Vk0256_Exit_PowerOff(void)
000222  b500              PUSH     {lr}
;;;280    {	
;;;281    	//˳͹״̬vk0256
;;;282    	WriteCommandVk0256(OSC_ON);
000224  2001              MOVS     r0,#1
000226  f7fffffe          BL       WriteCommandVk0256
;;;283    	WriteCommandVk0256(DISP_ON);
00022a  2003              MOVS     r0,#3
00022c  f7fffffe          BL       WriteCommandVk0256
;;;284    	vk0256_maxcom=8;	//1/4bias 8com
000230  2008              MOVS     r0,#8
000232  4970              LDR      r1,|L1.1012|
000234  7008              STRB     r0,[r1,#0]
;;;285    }
000236  bd00              POP      {pc}
;;;286    /*******************************************************************************
                          ENDP

                  Vk0256_Lowlevel_Init PROC
;;;292    *******************************************************************************/
;;;293    void Vk0256_Lowlevel_Init(void)
000238  b510              PUSH     {r4,lr}
;;;294    {
;;;295    	//ͨߵƽͬӵƽת·
;;;296    	//˺ݿͻƬӦ޸	
;;;297    	GPIO_SetMode(VK0256_CS_PORT, VK0256_CS_PIN, GPIO_MODE_OUTPUT);
00023a  2201              MOVS     r2,#1
00023c  0351              LSLS     r1,r2,#13
00023e  486e              LDR      r0,|L1.1016|
000240  f7fffffe          BL       GPIO_SetMode
;;;298    	GPIO_SetMode(VK0256_RD_PORT, VK0256_RD_PIN, GPIO_MODE_OUTPUT);
000244  2201              MOVS     r2,#1
000246  0391              LSLS     r1,r2,#14
000248  486b              LDR      r0,|L1.1016|
00024a  f7fffffe          BL       GPIO_SetMode
;;;299    	GPIO_SetMode(VK0256_WR_PORT, VK0256_WR_PIN, GPIO_MODE_OUTPUT);
00024e  2201              MOVS     r2,#1
000250  03d1              LSLS     r1,r2,#15
000252  4869              LDR      r0,|L1.1016|
000254  f7fffffe          BL       GPIO_SetMode
;;;300    	GPIO_SetMode(VK0256_DAT_PORT, VK0256_DAT_PIN, GPIO_MODE_OUTPUT);	//ֻʾݿΪIO
000258  2201              MOVS     r2,#1
00025a  2120              MOVS     r1,#0x20
00025c  4866              LDR      r0,|L1.1016|
00025e  f7fffffe          BL       GPIO_SetMode
;;;301    //	GPIO_SetMode(VK0256_DAT_PORT, VK0256_DAT_PIN, GPIO_MODE_QUASI); //ҪΪ˫IOڶʱΪIO
;;;302    		
;;;303    	VK0256_CS_H();
000262  2001              MOVS     r0,#1
000264  4960              LDR      r1,|L1.1000|
000266  3908              SUBS     r1,r1,#8
000268  6008              STR      r0,[r1,#0]
;;;304      VK0256_RD_H();	
00026a  1d09              ADDS     r1,r1,#4
00026c  6008              STR      r0,[r1,#0]
;;;305    	VK0256_WR_H();  
00026e  1d09              ADDS     r1,r1,#4
000270  6008              STR      r0,[r1,#0]
;;;306    	VK0256_DATA_H(); 	
000272  495d              LDR      r1,|L1.1000|
000274  3928              SUBS     r1,r1,#0x28
000276  6008              STR      r0,[r1,#0]
;;;307    }
000278  bd10              POP      {r4,pc}
;;;308    /*******************************************************************************
                          ENDP

                  Vk0256_Init PROC
;;;314    *******************************************************************************/
;;;315    void Vk0256_Init(void)
00027a  b510              PUSH     {r4,lr}
;;;316    {	
;;;317    	//ܽøݿͻƬӦ޸
;;;318    	Vk0256_Lowlevel_Init();
00027c  f7fffffe          BL       Vk0256_Lowlevel_Init
;;;319    	//
;;;320    	WriteCommandVk0256(OSC_ON);
000280  2001              MOVS     r0,#1
000282  f7fffffe          BL       WriteCommandVk0256
;;;321    	WriteCommandVk0256(DISP_ON);
000286  2003              MOVS     r0,#3
000288  f7fffffe          BL       WriteCommandVk0256
;;;322    	WriteCommandVk0256(RC32K); //ƬRC
00028c  2018              MOVS     r0,#0x18
00028e  f7fffffe          BL       WriteCommandVk0256
;;;323    //	WriteCommandVk0256(EXT32K); //ʱ
;;;324    	vk0256_maxcom=8;	//1/4bias 8com
000292  2008              MOVS     r0,#8
000294  4957              LDR      r1,|L1.1012|
000296  7008              STRB     r0,[r1,#0]
;;;325    	//ϵĬ(δùܹرս͹)
;;;326    //	WriteCommandVk1621(BUZZ_2KHZ);
;;;327    //	WriteCommandVk1621(BUZZ_4KHZ);
;;;328    //	WriteCommandVk1621(BUZZ_ON);
;;;329    	WriteCommandVk0256(BUZZ_OFF);
000298  f7fffffe          BL       WriteCommandVk0256
;;;330    	WriteCommandVk0256(IRQ_DIS);
00029c  2080              MOVS     r0,#0x80
00029e  f7fffffe          BL       WriteCommandVk0256
;;;331    	WriteCommandVk0256(TIMER_DIS);
0002a2  2004              MOVS     r0,#4
0002a4  f7fffffe          BL       WriteCommandVk0256
;;;332    	WriteCommandVk0256(WDT_DIS);
0002a8  2005              MOVS     r0,#5
0002aa  f7fffffe          BL       WriteCommandVk0256
;;;333    }
0002ae  bd10              POP      {r4,pc}
;;;334    /*******************************************************************************
                          ENDP

                  Vk0256_Main PROC
;;;340    *******************************************************************************/
;;;341    void Vk0256_Main(void)
0002b0  f7fffffe          BL       Vk0256_Init
;;;342    {	
;;;343    	Vk0256_Init();
;;;344    	Vk0256_DisAll(0x00);
0002b4  2000              MOVS     r0,#0
0002b6  f7fffffe          BL       Vk0256_DisAll
;;;345    	while(1)
0002ba  e094              B        |L1.998|
                  |L1.700|
;;;346    	{
;;;347    		Vk0256_DisAll(0xff);			//LCDȫ
0002bc  20ff              MOVS     r0,#0xff
0002be  f7fffffe          BL       Vk0256_DisAll
;;;348    		delay_nms(3000);					//ʱ3S
0002c2  f64030b8          MOV      r0,#0xbb8
0002c6  f7fffffe          BL       delay_nms
;;;349    		
;;;350    		Vk0256_DisAll(0x00);			//LCDȫ
0002ca  2000              MOVS     r0,#0
0002cc  f7fffffe          BL       Vk0256_DisAll
;;;351    		delay_nms(3000);					//ʱ3S
0002d0  f64030b8          MOV      r0,#0xbb8
0002d4  f7fffffe          BL       delay_nms
;;;352    		
;;;353    		//LCD
;;;354    		Vk0256_DisAll(0x55);
0002d8  2055              MOVS     r0,#0x55
0002da  f7fffffe          BL       Vk0256_DisAll
;;;355    		delay_nms(1500);
0002de  f24050dc          MOV      r0,#0x5dc
0002e2  f7fffffe          BL       delay_nms
;;;356    		Vk0256_DisAll(0xAA);
0002e6  20aa              MOVS     r0,#0xaa
0002e8  f7fffffe          BL       Vk0256_DisAll
;;;357    		delay_nms(1500);
0002ec  f24050dc          MOV      r0,#0x5dc
0002f0  f7fffffe          BL       delay_nms
;;;358    		
;;;359    		//
;;;360    		Vk0256_DisAll(0x00);      //LCDȫ
0002f4  2000              MOVS     r0,#0
0002f6  f7fffffe          BL       Vk0256_DisAll
;;;361    		Vk0256_Enter_PowerOff();  //ģʽ
0002fa  f7fffffe          BL       Vk0256_Enter_PowerOff
;;;362    		delay_nms(5000);          //ʱ5
0002fe  f2413088          MOV      r0,#0x1388
000302  f7fffffe          BL       delay_nms
;;;363    		Vk0256_Exit_PowerOff();   //˳ģʽ
000306  f7fffffe          BL       Vk0256_Exit_PowerOff
;;;364    		
;;;365    		Vk0256_DisAll(0x00);			//LCDȫ
00030a  2000              MOVS     r0,#0
00030c  f7fffffe          BL       Vk0256_DisAll
;;;366    		for(vk0256_segi=0;vk0256_segi<VK0256_SEGNUM;vk0256_segi++)//seg
000310  2000              MOVS     r0,#0
000312  493a              LDR      r1,|L1.1020|
000314  7008              STRB     r0,[r1,#0]
000316  e027              B        |L1.872|
                  |L1.792|
;;;367    		{
;;;368    			for(vk0256_comi=0;vk0256_comi<vk0256_maxcom;vk0256_comi++)//com
000318  2000              MOVS     r0,#0
00031a  4939              LDR      r1,|L1.1024|
00031c  7008              STRB     r0,[r1,#0]
00031e  e018              B        |L1.850|
                  |L1.800|
;;;369    			{
;;;370    				Vk0256_DisDotOn(vk0256_segtab[vk0256_segi],vk0256_comi);	//LCD
000320  4938              LDR      r1,|L1.1028|
000322  4a36              LDR      r2,|L1.1020|
000324  7812              LDRB     r2,[r2,#0]  ; vk0256_segi
000326  5c88              LDRB     r0,[r1,r2]
000328  4935              LDR      r1,|L1.1024|
00032a  7809              LDRB     r1,[r1,#0]  ; vk0256_comi
00032c  f7fffffe          BL       Vk0256_DisDotOn
;;;371    				delay_nms(300);				//ʱ300mS
000330  f44f7096          MOV      r0,#0x12c
000334  f7fffffe          BL       delay_nms
;;;372    				Vk0256_DisDotOff(vk0256_segtab[vk0256_segi],vk0256_comi);	//LCDر
000338  4932              LDR      r1,|L1.1028|
00033a  4a30              LDR      r2,|L1.1020|
00033c  7812              LDRB     r2,[r2,#0]  ; vk0256_segi
00033e  5c88              LDRB     r0,[r1,r2]
000340  492f              LDR      r1,|L1.1024|
000342  7809              LDRB     r1,[r1,#0]  ; vk0256_comi
000344  f7fffffe          BL       Vk0256_DisDotOff
000348  482d              LDR      r0,|L1.1024|
00034a  7800              LDRB     r0,[r0,#0]            ;368  ; vk0256_comi
00034c  1c40              ADDS     r0,r0,#1              ;368
00034e  492c              LDR      r1,|L1.1024|
000350  7008              STRB     r0,[r1,#0]            ;368
                  |L1.850|
000352  482b              LDR      r0,|L1.1024|
000354  7800              LDRB     r0,[r0,#0]            ;368  ; vk0256_comi
000356  4927              LDR      r1,|L1.1012|
000358  7809              LDRB     r1,[r1,#0]            ;368  ; vk0256_maxcom
00035a  4288              CMP      r0,r1                 ;368
00035c  dbe0              BLT      |L1.800|
00035e  4827              LDR      r0,|L1.1020|
000360  7800              LDRB     r0,[r0,#0]            ;366  ; vk0256_segi
000362  1c40              ADDS     r0,r0,#1              ;366
000364  4925              LDR      r1,|L1.1020|
000366  7008              STRB     r0,[r1,#0]            ;366
                  |L1.872|
000368  4824              LDR      r0,|L1.1020|
00036a  7800              LDRB     r0,[r0,#0]            ;366  ; vk0256_segi
00036c  2820              CMP      r0,#0x20              ;366
00036e  dbd3              BLT      |L1.792|
;;;373    			}
;;;374    		}
;;;375    		
;;;376    		Vk0256_DisAll(0xff);			//LCDȫ
000370  20ff              MOVS     r0,#0xff
000372  f7fffffe          BL       Vk0256_DisAll
;;;377    		delay_nms(1000);					//ʱ1S
000376  f44f707a          MOV      r0,#0x3e8
00037a  f7fffffe          BL       delay_nms
;;;378    		for(vk0256_segi=0;vk0256_segi<VK0256_SEGNUM;vk0256_segi++)//seg
00037e  2000              MOVS     r0,#0
000380  491e              LDR      r1,|L1.1020|
000382  7008              STRB     r0,[r1,#0]
000384  e027              B        |L1.982|
                  |L1.902|
;;;379    		{
;;;380    			for(vk0256_comi=0;vk0256_comi<vk0256_maxcom;vk0256_comi++)//com
000386  2000              MOVS     r0,#0
000388  491d              LDR      r1,|L1.1024|
00038a  7008              STRB     r0,[r1,#0]
00038c  e018              B        |L1.960|
                  |L1.910|
;;;381    			{
;;;382    				Vk0256_DisDotOff(vk0256_segtab[vk0256_segi],vk0256_comi);	//LCDر
00038e  491d              LDR      r1,|L1.1028|
000390  4a1a              LDR      r2,|L1.1020|
000392  7812              LDRB     r2,[r2,#0]  ; vk0256_segi
000394  5c88              LDRB     r0,[r1,r2]
000396  491a              LDR      r1,|L1.1024|
000398  7809              LDRB     r1,[r1,#0]  ; vk0256_comi
00039a  f7fffffe          BL       Vk0256_DisDotOff
;;;383    				delay_nms(300);				//ʱ300mS
00039e  f44f7096          MOV      r0,#0x12c
0003a2  f7fffffe          BL       delay_nms
;;;384    			Vk0256_DisDotOn(vk0256_segtab[vk0256_segi],vk0256_comi);	//LCDر
0003a6  4917              LDR      r1,|L1.1028|
0003a8  4a14              LDR      r2,|L1.1020|
0003aa  7812              LDRB     r2,[r2,#0]  ; vk0256_segi
0003ac  5c88              LDRB     r0,[r1,r2]
0003ae  4914              LDR      r1,|L1.1024|
0003b0  7809              LDRB     r1,[r1,#0]  ; vk0256_comi
0003b2  f7fffffe          BL       Vk0256_DisDotOn
0003b6  4812              LDR      r0,|L1.1024|
0003b8  7800              LDRB     r0,[r0,#0]            ;380  ; vk0256_comi
0003ba  1c40              ADDS     r0,r0,#1              ;380
0003bc  4910              LDR      r1,|L1.1024|
0003be  7008              STRB     r0,[r1,#0]            ;380
                  |L1.960|
0003c0  480f              LDR      r0,|L1.1024|
0003c2  7800              LDRB     r0,[r0,#0]            ;380  ; vk0256_comi
0003c4  490b              LDR      r1,|L1.1012|
0003c6  7809              LDRB     r1,[r1,#0]            ;380  ; vk0256_maxcom
0003c8  4288              CMP      r0,r1                 ;380
0003ca  dbe0              BLT      |L1.910|
0003cc  480b              LDR      r0,|L1.1020|
0003ce  7800              LDRB     r0,[r0,#0]            ;378  ; vk0256_segi
0003d0  1c40              ADDS     r0,r0,#1              ;378
0003d2  490a              LDR      r1,|L1.1020|
0003d4  7008              STRB     r0,[r1,#0]            ;378
                  |L1.982|
0003d6  4809              LDR      r0,|L1.1020|
0003d8  7800              LDRB     r0,[r0,#0]            ;378  ; vk0256_segi
0003da  2820              CMP      r0,#0x20              ;378
0003dc  dbd3              BLT      |L1.902|
;;;385    			}
;;;386    		}
;;;387    		delay_nms(1000);					//ʱ1S
0003de  f44f707a          MOV      r0,#0x3e8
0003e2  f7fffffe          BL       delay_nms
                  |L1.998|
0003e6  e769              B        |L1.700|
;;;388    	}
;;;389    }
;;;390    /************************END OF FILE****/
                          ENDP

                  |L1.1000|
                          DCD      0x4000487c
                  |L1.1004|
                          DCD      vk0256_addrbit
                  |L1.1008|
                          DCD      vk0256_dispram
                  |L1.1012|
                          DCD      vk0256_maxcom
                  |L1.1016|
                          DCD      0x40004040
                  |L1.1020|
                          DCD      vk0256_segi
                  |L1.1024|
                          DCD      vk0256_comi
                  |L1.1028|
                          DCD      vk0256_segtab

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

                  vk0256_dispram
                          %        32

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

                  vk0256_segtab
000000  00010203          DCB      0x00,0x01,0x02,0x03
000004  04050607          DCB      0x04,0x05,0x06,0x07
000008  08090a0b          DCB      0x08,0x09,0x0a,0x0b
00000c  0c0d0e0f          DCB      0x0c,0x0d,0x0e,0x0f
000010  10111213          DCB      0x10,0x11,0x12,0x13
000014  14151617          DCB      0x14,0x15,0x16,0x17
000018  18191a1b          DCB      0x18,0x19,0x1a,0x1b
00001c  1c1d1e1f          DCB      0x1c,0x1d,0x1e,0x1f
                  shuzi_zimo
000020  f505d397          DCB      0xf5,0x05,0xd3,0x97
000024  27b6f615          DCB      0x27,0xb6,0xf6,0x15
000028  f7b702e0          DCB      0xf7,0xb7,0x02,0xe0
00002c  c66705            DCB      0xc6,0x67,0x05
                  vk0256_addrbit
00002f  06                DCB      0x06
                  vk0256_segi
000030  00                DCB      0x00
                  vk0256_comi
000031  00                DCB      0x00
                  vk0256_maxcom
000032  00                DCB      0x00

;*** Start embedded assembler ***

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

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

 revsh r0, r0
 bx lr
	ENDP

;*** End   embedded assembler ***
