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

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

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

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

                  WriteClockVk1623 PROC
;;;106    *******************************************************************************/
;;;107    void WriteClockVk1623(void)
000034  b500              PUSH     {lr}
;;;108    {
;;;109    	VK1623_WR_L(); 
000036  2000              MOVS     r0,#0
000038  49ec              LDR      r1,|L1.1004|
00003a  6008              STR      r0,[r1,#0]
;;;110    	delay_nus(VK1623_CLK);
00003c  200a              MOVS     r0,#0xa
00003e  f7fffffe          BL       delay_nus
;;;111    	VK1623_WR_H();	
000042  2001              MOVS     r0,#1
000044  49e9              LDR      r1,|L1.1004|
000046  6008              STR      r0,[r1,#0]
;;;112    	delay_nus(VK1623_CLK);	
000048  200a              MOVS     r0,#0xa
00004a  f7fffffe          BL       delay_nus
;;;113    }
00004e  bd00              POP      {pc}
;;;114    /*******************************************************************************
                          ENDP

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

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

                  Vk1623_DisAll PROC
;;;212    *******************************************************************************/
;;;213    void Vk1623_DisAll(unsigned char dat)
00019a  b530              PUSH     {r4,r5,lr}
;;;214    {
00019c  4605              MOV      r5,r0
;;;215    	unsigned char segi;
;;;216    	
;;;217    	for(segi=0;segi<64;segi++)
00019e  2400              MOVS     r4,#0
0001a0  e003              B        |L1.426|
                  |L1.418|
;;;218    	{
;;;219    		vk1623_dispram[segi]=dat;
0001a2  4894              LDR      r0,|L1.1012|
0001a4  5505              STRB     r5,[r0,r4]
0001a6  1c60              ADDS     r0,r4,#1              ;217
0001a8  b2c4              UXTB     r4,r0                 ;217
                  |L1.426|
0001aa  2c40              CMP      r4,#0x40              ;217
0001ac  dbf9              BLT      |L1.418|
;;;220    	}
;;;221    	WritenDataVk1623(0,vk1623_dispram,48);//8bitַԶ2(ÿ4bitݵַԶ1)
0001ae  2230              MOVS     r2,#0x30
0001b0  4990              LDR      r1,|L1.1012|
0001b2  2000              MOVS     r0,#0
0001b4  f7fffffe          BL       WritenDataVk1623
;;;222    }
0001b8  bd30              POP      {r4,r5,pc}
;;;223    /*******************************************************************************
                          ENDP

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

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

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

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

                  Vk1623_Lowlevel_Init PROC
;;;293    *******************************************************************************/
;;;294    void Vk1623_Lowlevel_Init(void)
000238  b510              PUSH     {r4,lr}
;;;295    {
;;;296    	//ͨߵƽͬӵƽת·
;;;297    	//˺ݿͻƬӦ޸	
;;;298    	GPIO_SetMode(VK1623_CS_PORT, VK1623_CS_PIN, GPIO_MODE_OUTPUT);
00023a  2201              MOVS     r2,#1
00023c  0351              LSLS     r1,r2,#13
00023e  486f              LDR      r0,|L1.1020|
000240  f7fffffe          BL       GPIO_SetMode
;;;299    	GPIO_SetMode(VK1623_RD_PORT, VK1623_RD_PIN, GPIO_MODE_OUTPUT);
000244  2201              MOVS     r2,#1
000246  0391              LSLS     r1,r2,#14
000248  486c              LDR      r0,|L1.1020|
00024a  f7fffffe          BL       GPIO_SetMode
;;;300    	GPIO_SetMode(VK1623_WR_PORT, VK1623_WR_PIN, GPIO_MODE_OUTPUT);
00024e  2201              MOVS     r2,#1
000250  03d1              LSLS     r1,r2,#15
000252  486a              LDR      r0,|L1.1020|
000254  f7fffffe          BL       GPIO_SetMode
;;;301    	GPIO_SetMode(VK1623_DAT_PORT, VK1623_DAT_PIN, GPIO_MODE_OUTPUT);	//ֻʾݿΪIO
000258  2201              MOVS     r2,#1
00025a  2120              MOVS     r1,#0x20
00025c  4867              LDR      r0,|L1.1020|
00025e  f7fffffe          BL       GPIO_SetMode
;;;302    //	GPIO_SetMode(VK1623_DAT_PORT, VK1623_DAT_PIN, GPIO_MODE_QUASI); //ҪΪ˫IOڶʱΪIO
;;;303    		
;;;304    	VK1623_CS_H();      
000262  2001              MOVS     r0,#1
000264  4961              LDR      r1,|L1.1004|
000266  3908              SUBS     r1,r1,#8
000268  6008              STR      r0,[r1,#0]
;;;305    	VK1623_RD_H();  //RDŲߵƽ                  
00026a  1d09              ADDS     r1,r1,#4
00026c  6008              STR      r0,[r1,#0]
;;;306    	VK1623_WR_H();  
00026e  1d09              ADDS     r1,r1,#4
000270  6008              STR      r0,[r1,#0]
;;;307    	VK1623_DATA_H(); 	
000272  495e              LDR      r1,|L1.1004|
000274  3928              SUBS     r1,r1,#0x28
000276  6008              STR      r0,[r1,#0]
;;;308    }
000278  bd10              POP      {r4,pc}
;;;309    /*******************************************************************************
                          ENDP

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

                  Vk1623_Main PROC
;;;342    *******************************************************************************/
;;;343    void Vk1623_Main(void)
0002b2  f7fffffe          BL       Vk1623_Init
;;;344    {	
;;;345    	Vk1623_Init();
;;;346    	Vk1623_DisAll(0x00);
0002b6  2000              MOVS     r0,#0
0002b8  f7fffffe          BL       Vk1623_DisAll
;;;347    	while(1)
0002bc  e094              B        |L1.1000|
                  |L1.702|
;;;348    	{
;;;349    		Vk1623_DisAll(0xff);			//LCDȫ
0002be  20ff              MOVS     r0,#0xff
0002c0  f7fffffe          BL       Vk1623_DisAll
;;;350    		delay_nms(3000);					//ʱ3S
0002c4  f64030b8          MOV      r0,#0xbb8
0002c8  f7fffffe          BL       delay_nms
;;;351    		
;;;352    		Vk1623_DisAll(0x00);			//LCDȫ
0002cc  2000              MOVS     r0,#0
0002ce  f7fffffe          BL       Vk1623_DisAll
;;;353    		delay_nms(3000);					//ʱ3S
0002d2  f64030b8          MOV      r0,#0xbb8
0002d6  f7fffffe          BL       delay_nms
;;;354    		
;;;355    		//LCD
;;;356    		Vk1623_DisAll(0x55);
0002da  2055              MOVS     r0,#0x55
0002dc  f7fffffe          BL       Vk1623_DisAll
;;;357    		delay_nms(1500);
0002e0  f24050dc          MOV      r0,#0x5dc
0002e4  f7fffffe          BL       delay_nms
;;;358    		Vk1623_DisAll(0xAA);
0002e8  20aa              MOVS     r0,#0xaa
0002ea  f7fffffe          BL       Vk1623_DisAll
;;;359    		delay_nms(1500);
0002ee  f24050dc          MOV      r0,#0x5dc
0002f2  f7fffffe          BL       delay_nms
;;;360    		
;;;361    		//
;;;362    		Vk1623_DisAll(0x00);      //LCDȫ
0002f6  2000              MOVS     r0,#0
0002f8  f7fffffe          BL       Vk1623_DisAll
;;;363    		Vk1623_Enter_PowerOff();  //ģʽ
0002fc  f7fffffe          BL       Vk1623_Enter_PowerOff
;;;364    		delay_nms(5000);          //ʱ5
000300  f2413088          MOV      r0,#0x1388
000304  f7fffffe          BL       delay_nms
;;;365    		Vk1623_Exit_PowerOff();   //˳ģʽ
000308  f7fffffe          BL       Vk1623_Exit_PowerOff
;;;366    		
;;;367    		Vk1623_DisAll(0x00);			//LCDȫ
00030c  2000              MOVS     r0,#0
00030e  f7fffffe          BL       Vk1623_DisAll
;;;368    		for(vk1623_segi=0;vk1623_segi<VK1623_SEGNUM;vk1623_segi++)//seg
000312  2000              MOVS     r0,#0
000314  493a              LDR      r1,|L1.1024|
000316  7008              STRB     r0,[r1,#0]
000318  e027              B        |L1.874|
                  |L1.794|
;;;369    		{
;;;370    			for(vk1623_comi=0;vk1623_comi<vk1623_maxcom;vk1623_comi++)//com
00031a  2000              MOVS     r0,#0
00031c  4939              LDR      r1,|L1.1028|
00031e  7008              STRB     r0,[r1,#0]
000320  e018              B        |L1.852|
                  |L1.802|
;;;371    			{
;;;372    				Vk1623_DisDotOn(vk1623_segtab[vk1623_segi],vk1623_comi);	//LCD
000322  4939              LDR      r1,|L1.1032|
000324  4a36              LDR      r2,|L1.1024|
000326  7812              LDRB     r2,[r2,#0]  ; vk1623_segi
000328  5c88              LDRB     r0,[r1,r2]
00032a  4936              LDR      r1,|L1.1028|
00032c  7809              LDRB     r1,[r1,#0]  ; vk1623_comi
00032e  f7fffffe          BL       Vk1623_DisDotOn
;;;373    				delay_nms(300);				//ʱ300mS
000332  f44f7096          MOV      r0,#0x12c
000336  f7fffffe          BL       delay_nms
;;;374    				Vk1623_DisDotOff(vk1623_segtab[vk1623_segi],vk1623_comi);	//LCDر
00033a  4933              LDR      r1,|L1.1032|
00033c  4a30              LDR      r2,|L1.1024|
00033e  7812              LDRB     r2,[r2,#0]  ; vk1623_segi
000340  5c88              LDRB     r0,[r1,r2]
000342  4930              LDR      r1,|L1.1028|
000344  7809              LDRB     r1,[r1,#0]  ; vk1623_comi
000346  f7fffffe          BL       Vk1623_DisDotOff
00034a  482e              LDR      r0,|L1.1028|
00034c  7800              LDRB     r0,[r0,#0]            ;370  ; vk1623_comi
00034e  1c40              ADDS     r0,r0,#1              ;370
000350  492c              LDR      r1,|L1.1028|
000352  7008              STRB     r0,[r1,#0]            ;370
                  |L1.852|
000354  482b              LDR      r0,|L1.1028|
000356  7800              LDRB     r0,[r0,#0]            ;370  ; vk1623_comi
000358  4927              LDR      r1,|L1.1016|
00035a  7809              LDRB     r1,[r1,#0]            ;370  ; vk1623_maxcom
00035c  4288              CMP      r0,r1                 ;370
00035e  dbe0              BLT      |L1.802|
000360  4827              LDR      r0,|L1.1024|
000362  7800              LDRB     r0,[r0,#0]            ;368  ; vk1623_segi
000364  1c40              ADDS     r0,r0,#1              ;368
000366  4926              LDR      r1,|L1.1024|
000368  7008              STRB     r0,[r1,#0]            ;368
                  |L1.874|
00036a  4825              LDR      r0,|L1.1024|
00036c  7800              LDRB     r0,[r0,#0]            ;368  ; vk1623_segi
00036e  2830              CMP      r0,#0x30              ;368
000370  dbd3              BLT      |L1.794|
;;;375    			}
;;;376    		}
;;;377    		
;;;378    		Vk1623_DisAll(0xff);			//LCDȫ
000372  20ff              MOVS     r0,#0xff
000374  f7fffffe          BL       Vk1623_DisAll
;;;379    		delay_nms(1000);					//ʱ1S
000378  f44f707a          MOV      r0,#0x3e8
00037c  f7fffffe          BL       delay_nms
;;;380    		for(vk1623_segi=0;vk1623_segi<VK1623_SEGNUM;vk1623_segi++)//seg
000380  2000              MOVS     r0,#0
000382  491f              LDR      r1,|L1.1024|
000384  7008              STRB     r0,[r1,#0]
000386  e027              B        |L1.984|
                  |L1.904|
;;;381    		{
;;;382    			for(vk1623_comi=0;vk1623_comi<vk1623_maxcom;vk1623_comi++)//com
000388  2000              MOVS     r0,#0
00038a  491e              LDR      r1,|L1.1028|
00038c  7008              STRB     r0,[r1,#0]
00038e  e018              B        |L1.962|
                  |L1.912|
;;;383    			{
;;;384    				Vk1623_DisDotOff(vk1623_segtab[vk1623_segi],vk1623_comi);	//LCDر
000390  491d              LDR      r1,|L1.1032|
000392  4a1b              LDR      r2,|L1.1024|
000394  7812              LDRB     r2,[r2,#0]  ; vk1623_segi
000396  5c88              LDRB     r0,[r1,r2]
000398  491a              LDR      r1,|L1.1028|
00039a  7809              LDRB     r1,[r1,#0]  ; vk1623_comi
00039c  f7fffffe          BL       Vk1623_DisDotOff
;;;385    				delay_nms(300);				//ʱ300mS
0003a0  f44f7096          MOV      r0,#0x12c
0003a4  f7fffffe          BL       delay_nms
;;;386    			Vk1623_DisDotOff(vk1623_segtab[vk1623_segi],vk1623_comi);	//LCDر
0003a8  4917              LDR      r1,|L1.1032|
0003aa  4a15              LDR      r2,|L1.1024|
0003ac  7812              LDRB     r2,[r2,#0]  ; vk1623_segi
0003ae  5c88              LDRB     r0,[r1,r2]
0003b0  4914              LDR      r1,|L1.1028|
0003b2  7809              LDRB     r1,[r1,#0]  ; vk1623_comi
0003b4  f7fffffe          BL       Vk1623_DisDotOff
0003b8  4812              LDR      r0,|L1.1028|
0003ba  7800              LDRB     r0,[r0,#0]            ;382  ; vk1623_comi
0003bc  1c40              ADDS     r0,r0,#1              ;382
0003be  4911              LDR      r1,|L1.1028|
0003c0  7008              STRB     r0,[r1,#0]            ;382
                  |L1.962|
0003c2  4810              LDR      r0,|L1.1028|
0003c4  7800              LDRB     r0,[r0,#0]            ;382  ; vk1623_comi
0003c6  490c              LDR      r1,|L1.1016|
0003c8  7809              LDRB     r1,[r1,#0]            ;382  ; vk1623_maxcom
0003ca  4288              CMP      r0,r1                 ;382
0003cc  dbe0              BLT      |L1.912|
0003ce  480c              LDR      r0,|L1.1024|
0003d0  7800              LDRB     r0,[r0,#0]            ;380  ; vk1623_segi
0003d2  1c40              ADDS     r0,r0,#1              ;380
0003d4  490a              LDR      r1,|L1.1024|
0003d6  7008              STRB     r0,[r1,#0]            ;380
                  |L1.984|
0003d8  4809              LDR      r0,|L1.1024|
0003da  7800              LDRB     r0,[r0,#0]            ;380  ; vk1623_segi
0003dc  2830              CMP      r0,#0x30              ;380
0003de  dbd3              BLT      |L1.904|
;;;387    			}
;;;388    		}
;;;389    		delay_nms(1000);					//ʱ1S
0003e0  f44f707a          MOV      r0,#0x3e8
0003e4  f7fffffe          BL       delay_nms
                  |L1.1000|
0003e8  e769              B        |L1.702|
;;;390    	}
;;;391    }
;;;392    /************************END OF FILE****/
                          ENDP

0003ea  0000              DCW      0x0000
                  |L1.1004|
                          DCD      0x4000487c
                  |L1.1008|
                          DCD      vk1623_addrbit
                  |L1.1012|
                          DCD      vk1623_dispram
                  |L1.1016|
                          DCD      vk1623_maxcom
                  |L1.1020|
                          DCD      0x40004040
                  |L1.1024|
                          DCD      vk1623_segi
                  |L1.1028|
                          DCD      vk1623_comi
                  |L1.1032|
                          DCD      vk1623_segtab

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

                  vk1623_dispram
                          %        48

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

                  vk1623_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
000020  20212223          DCB      0x20,0x21,0x22,0x23
000024  24252627          DCB      0x24,0x25,0x26,0x27
000028  28292a2b          DCB      0x28,0x29,0x2a,0x2b
00002c  2c2d2e2f          DCB      0x2c,0x2d,0x2e,0x2f
                  shuzi_zimo
000030  f505d397          DCB      0xf5,0x05,0xd3,0x97
000034  27b6f615          DCB      0x27,0xb6,0xf6,0x15
000038  f7b702e0          DCB      0xf7,0xb7,0x02,0xe0
00003c  c66705            DCB      0xc6,0x67,0x05
                  vk1623_addrbit
00003f  07                DCB      0x07
                  vk1623_segi
000040  00                DCB      0x00
                  vk1623_comi
000041  00                DCB      0x00
                  vk1623_maxcom
000042  00                DCB      0x00

;*** Start embedded assembler ***

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

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

 revsh r0, r0
 bx lr
	ENDP

;*** End   embedded assembler ***
