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

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

                  WriteCommandVk1622 PROC
;;;119    *******************************************************************************/
;;;120    void WriteCommandVk1622(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    	VK1622_CS_L();   //CS Ƭѡ   
000056  2000              MOVS     r0,#0
000058  49e1              LDR      r1,|L1.992|
00005a  3138              ADDS     r1,r1,#0x38
00005c  6008              STR      r0,[r1,#0]
;;;126    	delay_nus(VK1622_CLK/2);
00005e  2005              MOVS     r0,#5
000060  f7fffffe          BL       delay_nus
;;;127    	VK1622_DATA_H();  
000064  2001              MOVS     r0,#1
000066  49de              LDR      r1,|L1.992|
000068  3118              ADDS     r1,r1,#0x18
00006a  6008              STR      r0,[r1,#0]
;;;128    	WriteClockVk1622();
00006c  f7fffffe          BL       WriteClockVk1622
;;;129    	VK1622_DATA_L();  
000070  2000              MOVS     r0,#0
000072  49db              LDR      r1,|L1.992|
000074  3118              ADDS     r1,r1,#0x18
000076  6008              STR      r0,[r1,#0]
;;;130    	WriteClockVk1622();
000078  f7fffffe          BL       WriteClockVk1622
;;;131    	VK1622_DATA_L();  
00007c  2000              MOVS     r0,#0
00007e  49d8              LDR      r1,|L1.992|
000080  3118              ADDS     r1,r1,#0x18
000082  6008              STR      r0,[r1,#0]
;;;132    	WriteClockVk1622();
000084  f7fffffe          BL       WriteClockVk1622
;;;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    		 VK1622_DATA_H(); 
000092  2001              MOVS     r0,#1
000094  49d2              LDR      r1,|L1.992|
000096  3118              ADDS     r1,r1,#0x18
000098  6008              STR      r0,[r1,#0]
00009a  e003              B        |L1.164|
                  |L1.156|
;;;138    	 else 
;;;139    		 VK1622_DATA_L();	  
00009c  2000              MOVS     r0,#0
00009e  49d0              LDR      r1,|L1.992|
0000a0  3118              ADDS     r1,r1,#0x18
0000a2  6008              STR      r0,[r1,#0]
                  |L1.164|
;;;140    
;;;141    	 WriteClockVk1622();
0000a4  f7fffffe          BL       WriteClockVk1622
;;;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      VK1622_DATA_L(); 
0000b2  2000              MOVS     r0,#0
0000b4  49ca              LDR      r1,|L1.992|
0000b6  3118              ADDS     r1,r1,#0x18
0000b8  6008              STR      r0,[r1,#0]
;;;145    	WriteClockVk1622();	//һ0һλ X
0000ba  f7fffffe          BL       WriteClockVk1622
;;;146      VK1622_CS_H(); 			//CS Ƭѡ  
0000be  2001              MOVS     r0,#1
0000c0  49c7              LDR      r1,|L1.992|
0000c2  3138              ADDS     r1,r1,#0x38
0000c4  6008              STR      r0,[r1,#0]
;;;147    	delay_nus(VK1622_CLK/2);
0000c6  2005              MOVS     r0,#5
0000c8  f7fffffe          BL       delay_nus
;;;148      VK1622_DATA_H(); 
0000cc  2001              MOVS     r0,#1
0000ce  49c4              LDR      r1,|L1.992|
0000d0  3118              ADDS     r1,r1,#0x18
0000d2  6008              STR      r0,[r1,#0]
;;;149    }
0000d4  bd70              POP      {r4-r6,pc}
;;;150    
                          ENDP

                  WritenDataVk1622 PROC
;;;159    *******************************************************************************/
;;;160    void WritenDataVk1622(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    	VK1622_CS_L();   //CS Ƭѡ 
0000e0  2000              MOVS     r0,#0
0000e2  49bf              LDR      r1,|L1.992|
0000e4  3138              ADDS     r1,r1,#0x38
0000e6  6008              STR      r0,[r1,#0]
;;;167    	delay_nus(VK1622_CLK/2);
0000e8  2005              MOVS     r0,#5
0000ea  f7fffffe          BL       delay_nus
;;;168    
;;;169    	VK1622_DATA_H();  
0000ee  2001              MOVS     r0,#1
0000f0  49bb              LDR      r1,|L1.992|
0000f2  3118              ADDS     r1,r1,#0x18
0000f4  6008              STR      r0,[r1,#0]
;;;170    	WriteClockVk1622();  //101
0000f6  f7fffffe          BL       WriteClockVk1622
;;;171    	VK1622_DATA_L();  
0000fa  2000              MOVS     r0,#0
0000fc  49b8              LDR      r1,|L1.992|
0000fe  3118              ADDS     r1,r1,#0x18
000100  6008              STR      r0,[r1,#0]
;;;172    	WriteClockVk1622();
000102  f7fffffe          BL       WriteClockVk1622
;;;173    	VK1622_DATA_H();  
000106  2001              MOVS     r0,#1
000108  49b5              LDR      r1,|L1.992|
00010a  3118              ADDS     r1,r1,#0x18
00010c  6008              STR      r0,[r1,#0]
;;;174    	WriteClockVk1622();
00010e  f7fffffe          BL       WriteClockVk1622
;;;175    
;;;176    	Shift = 0x20;
000112  2520              MOVS     r5,#0x20
;;;177    	for( i = 0; i < vk1622_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    			VK1622_DATA_H(); 		
00011e  2001              MOVS     r0,#1
000120  49af              LDR      r1,|L1.992|
000122  3118              ADDS     r1,r1,#0x18
000124  6008              STR      r0,[r1,#0]
000126  e003              B        |L1.304|
                  |L1.296|
;;;181    		else  
;;;182    			VK1622_DATA_L();
000128  2000              MOVS     r0,#0
00012a  49ad              LDR      r1,|L1.992|
00012c  3118              ADDS     r1,r1,#0x18
00012e  6008              STR      r0,[r1,#0]
                  |L1.304|
;;;183    		WriteClockVk1622();		
000130  f7fffffe          BL       WriteClockVk1622
;;;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  48aa              LDR      r0,|L1.996|
00013c  7800              LDRB     r0,[r0,#0]            ;177  ; vk1622_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    				VK1622_DATA_H();		 
000156  2001              MOVS     r0,#1
000158  49a1              LDR      r1,|L1.992|
00015a  3118              ADDS     r1,r1,#0x18
00015c  6008              STR      r0,[r1,#0]
00015e  e003              B        |L1.360|
                  |L1.352|
;;;194    			else  
;;;195    				VK1622_DATA_L();
000160  2000              MOVS     r0,#0
000162  499f              LDR      r1,|L1.992|
000164  3118              ADDS     r1,r1,#0x18
000166  6008              STR      r0,[r1,#0]
                  |L1.360|
;;;196    			WriteClockVk1622();
000168  f7fffffe          BL       WriteClockVk1622
;;;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      VK1622_CS_H();   //CS Ƭѡ
000180  2001              MOVS     r0,#1
000182  4997              LDR      r1,|L1.992|
000184  3138              ADDS     r1,r1,#0x38
000186  6008              STR      r0,[r1,#0]
;;;201    	delay_nus(VK1622_CLK/2);	 
000188  2005              MOVS     r0,#5
00018a  f7fffffe          BL       delay_nus
;;;202      VK1622_DATA_H(); 
00018e  2001              MOVS     r0,#1
000190  4993              LDR      r1,|L1.992|
000192  3118              ADDS     r1,r1,#0x18
000194  6008              STR      r0,[r1,#0]
;;;203    }
000196  e8bd87f0          POP      {r4-r10,pc}
;;;204    /*******************************************************************************
                          ENDP

                  Vk1622_DisAll PROC
;;;211    *******************************************************************************/
;;;212    void Vk1622_DisAll(unsigned char dat)
00019a  b530              PUSH     {r4,r5,lr}
;;;213    {
00019c  b088              SUB      sp,sp,#0x20
00019e  4605              MOV      r5,r0
;;;214    	unsigned char segi;
;;;215    	unsigned char dispram[32];
;;;216    	
;;;217    	for(segi=0;segi<32;segi++)
0001a0  2400              MOVS     r4,#0
0001a2  e003              B        |L1.428|
                  |L1.420|
;;;218    	{
;;;219    		dispram[segi]=dat;
0001a4  f80d5004          STRB     r5,[sp,r4]
0001a8  1c60              ADDS     r0,r4,#1              ;217
0001aa  b2c4              UXTB     r4,r0                 ;217
                  |L1.428|
0001ac  2c20              CMP      r4,#0x20              ;217
0001ae  dbf9              BLT      |L1.420|
;;;220    	}
;;;221    	WritenDataVk1622(0,dispram,32);//8bitַԶ2(ÿ4bitݵַԶ1)
0001b0  2220              MOVS     r2,#0x20
0001b2  4669              MOV      r1,sp
0001b4  2000              MOVS     r0,#0
0001b6  f7fffffe          BL       WritenDataVk1622
;;;222    }
0001ba  b008              ADD      sp,sp,#0x20
0001bc  bd30              POP      {r4,r5,pc}
;;;223    /*******************************************************************************
                          ENDP

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

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

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

                  Vk1622_Exit_PowerOff PROC
;;;279    *******************************************************************************/
;;;280    void Vk1622_Exit_PowerOff(void)
000226  b500              PUSH     {lr}
;;;281    {	
;;;282    	//˳͹״̬vk1622
;;;283    	WriteCommandVk1622(OSC_ON);
000228  2001              MOVS     r0,#1
00022a  f7fffffe          BL       WriteCommandVk1622
;;;284    	WriteCommandVk1622(DISP_ON);
00022e  2003              MOVS     r0,#3
000230  f7fffffe          BL       WriteCommandVk1622
;;;285    	vk1622_maxcom=8;	//1/4bias 8com
000234  2008              MOVS     r0,#8
000236  496d              LDR      r1,|L1.1004|
000238  7008              STRB     r0,[r1,#0]
;;;286    }
00023a  bd00              POP      {pc}
;;;287    /*******************************************************************************
                          ENDP

                  Vk1622_Lowlevel_Init PROC
;;;293    *******************************************************************************/
;;;294    void Vk1622_Lowlevel_Init(void)
00023c  b510              PUSH     {r4,lr}
;;;295    {
;;;296    	//ͨߵƽͬӵƽת·
;;;297    	//˺ݿͻƬӦ޸	
;;;298    	GPIO_SetMode(VK1622_CS_PORT, VK1622_CS_PIN, GPIO_MODE_OUTPUT);
00023e  2201              MOVS     r2,#1
000240  0351              LSLS     r1,r2,#13
000242  486b              LDR      r0,|L1.1008|
000244  f7fffffe          BL       GPIO_SetMode
;;;299    	GPIO_SetMode(VK1622_WR_PORT, VK1622_WR_PIN, GPIO_MODE_OUTPUT);
000248  2201              MOVS     r2,#1
00024a  03d1              LSLS     r1,r2,#15
00024c  4868              LDR      r0,|L1.1008|
00024e  f7fffffe          BL       GPIO_SetMode
;;;300    	GPIO_SetMode(VK1622_DAT_PORT, VK1622_DAT_PIN, GPIO_MODE_OUTPUT);	//ֻʾݿΪIO
000252  2201              MOVS     r2,#1
000254  2120              MOVS     r1,#0x20
000256  4866              LDR      r0,|L1.1008|
000258  f7fffffe          BL       GPIO_SetMode
;;;301    //	GPIO_SetMode(VK1622_DAT_PORT, VK1622_DAT_PIN, GPIO_MODE_QUASI); //ҪΪ˫IOڶʱΪIO
;;;302    		
;;;303    	VK1622_CS_H();                       
00025c  2001              MOVS     r0,#1
00025e  4960              LDR      r1,|L1.992|
000260  3138              ADDS     r1,r1,#0x38
000262  6008              STR      r0,[r1,#0]
;;;304    	VK1622_WR_H();  
000264  495e              LDR      r1,|L1.992|
000266  6008              STR      r0,[r1,#0]
;;;305    	VK1622_DATA_H(); 	
000268  495d              LDR      r1,|L1.992|
00026a  3118              ADDS     r1,r1,#0x18
00026c  6008              STR      r0,[r1,#0]
;;;306    }
00026e  bd10              POP      {r4,pc}
;;;307    /*******************************************************************************
                          ENDP

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

                  Vk1622_Main PROC
;;;339    *******************************************************************************/
;;;340    void Vk1622_Main(void)
0002a6  f7fffffe          BL       Vk1622_Init
;;;341    {	
;;;342    	Vk1622_Init();
;;;343    	Vk1622_DisAll(0x00);
0002aa  2000              MOVS     r0,#0
0002ac  f7fffffe          BL       Vk1622_DisAll
;;;344    	while(1)
0002b0  e094              B        |L1.988|
                  |L1.690|
;;;345    	{
;;;346    		Vk1622_DisAll(0x0f);			//LCDȫ
0002b2  200f              MOVS     r0,#0xf
0002b4  f7fffffe          BL       Vk1622_DisAll
;;;347    		delay_nms(3000);					//ʱ3S
0002b8  f64030b8          MOV      r0,#0xbb8
0002bc  f7fffffe          BL       delay_nms
;;;348    		
;;;349    		Vk1622_DisAll(0x00);			//LCDȫ
0002c0  2000              MOVS     r0,#0
0002c2  f7fffffe          BL       Vk1622_DisAll
;;;350    		delay_nms(3000);					//ʱ3S
0002c6  f64030b8          MOV      r0,#0xbb8
0002ca  f7fffffe          BL       delay_nms
;;;351    		
;;;352    		//LCD
;;;353    		Vk1622_DisAll(0x05);
0002ce  2005              MOVS     r0,#5
0002d0  f7fffffe          BL       Vk1622_DisAll
;;;354    		delay_nms(1500);
0002d4  f24050dc          MOV      r0,#0x5dc
0002d8  f7fffffe          BL       delay_nms
;;;355    		Vk1622_DisAll(0x0A);
0002dc  200a              MOVS     r0,#0xa
0002de  f7fffffe          BL       Vk1622_DisAll
;;;356    		delay_nms(1500);
0002e2  f24050dc          MOV      r0,#0x5dc
0002e6  f7fffffe          BL       delay_nms
;;;357    		
;;;358    		//
;;;359    		Vk1622_DisAll(0x00);      //LCDȫ
0002ea  2000              MOVS     r0,#0
0002ec  f7fffffe          BL       Vk1622_DisAll
;;;360    		Vk1622_Enter_PowerOff();  //ģʽ
0002f0  f7fffffe          BL       Vk1622_Enter_PowerOff
;;;361    		delay_nms(5000);          //ʱ5
0002f4  f2413088          MOV      r0,#0x1388
0002f8  f7fffffe          BL       delay_nms
;;;362    		Vk1622_Exit_PowerOff();   //˳ģʽ
0002fc  f7fffffe          BL       Vk1622_Exit_PowerOff
;;;363    		
;;;364    		Vk1622_DisAll(0x00);			//LCDȫ
000300  2000              MOVS     r0,#0
000302  f7fffffe          BL       Vk1622_DisAll
;;;365    		for(vk1622_segi=0;vk1622_segi<VK1622_SEGNUM;vk1622_segi++)//seg
000306  2000              MOVS     r0,#0
000308  493a              LDR      r1,|L1.1012|
00030a  7008              STRB     r0,[r1,#0]
00030c  e027              B        |L1.862|
                  |L1.782|
;;;366    		{
;;;367    			for(vk1622_comi=0;vk1622_comi<vk1622_maxcom;vk1622_comi++)//com
00030e  2000              MOVS     r0,#0
000310  4939              LDR      r1,|L1.1016|
000312  7008              STRB     r0,[r1,#0]
000314  e018              B        |L1.840|
                  |L1.790|
;;;368    			{
;;;369    				Vk1622_DisDotOn(vk1622_segtab[vk1622_segi],vk1622_comi);	//LCD
000316  4939              LDR      r1,|L1.1020|
000318  4a36              LDR      r2,|L1.1012|
00031a  7812              LDRB     r2,[r2,#0]  ; vk1622_segi
00031c  5c88              LDRB     r0,[r1,r2]
00031e  4936              LDR      r1,|L1.1016|
000320  7809              LDRB     r1,[r1,#0]  ; vk1622_comi
000322  f7fffffe          BL       Vk1622_DisDotOn
;;;370    				delay_nms(300);				//ʱ300mS
000326  f44f7096          MOV      r0,#0x12c
00032a  f7fffffe          BL       delay_nms
;;;371    				Vk1622_DisDotOff(vk1622_segtab[vk1622_segi],vk1622_comi);	//LCDر
00032e  4933              LDR      r1,|L1.1020|
000330  4a30              LDR      r2,|L1.1012|
000332  7812              LDRB     r2,[r2,#0]  ; vk1622_segi
000334  5c88              LDRB     r0,[r1,r2]
000336  4930              LDR      r1,|L1.1016|
000338  7809              LDRB     r1,[r1,#0]  ; vk1622_comi
00033a  f7fffffe          BL       Vk1622_DisDotOff
00033e  482e              LDR      r0,|L1.1016|
000340  7800              LDRB     r0,[r0,#0]            ;367  ; vk1622_comi
000342  1c40              ADDS     r0,r0,#1              ;367
000344  492c              LDR      r1,|L1.1016|
000346  7008              STRB     r0,[r1,#0]            ;367
                  |L1.840|
000348  482b              LDR      r0,|L1.1016|
00034a  7800              LDRB     r0,[r0,#0]            ;367  ; vk1622_comi
00034c  4927              LDR      r1,|L1.1004|
00034e  7809              LDRB     r1,[r1,#0]            ;367  ; vk1622_maxcom
000350  4288              CMP      r0,r1                 ;367
000352  dbe0              BLT      |L1.790|
000354  4827              LDR      r0,|L1.1012|
000356  7800              LDRB     r0,[r0,#0]            ;365  ; vk1622_segi
000358  1c40              ADDS     r0,r0,#1              ;365
00035a  4926              LDR      r1,|L1.1012|
00035c  7008              STRB     r0,[r1,#0]            ;365
                  |L1.862|
00035e  4825              LDR      r0,|L1.1012|
000360  7800              LDRB     r0,[r0,#0]            ;365  ; vk1622_segi
000362  2820              CMP      r0,#0x20              ;365
000364  dbd3              BLT      |L1.782|
;;;372    			}
;;;373    		}
;;;374    		
;;;375    		Vk1622_DisAll(0xff);			//LCDȫ
000366  20ff              MOVS     r0,#0xff
000368  f7fffffe          BL       Vk1622_DisAll
;;;376    		delay_nms(1000);					//ʱ1S
00036c  f44f707a          MOV      r0,#0x3e8
000370  f7fffffe          BL       delay_nms
;;;377    		for(vk1622_segi=0;vk1622_segi<VK1622_SEGNUM;vk1622_segi++)//seg
000374  2000              MOVS     r0,#0
000376  491f              LDR      r1,|L1.1012|
000378  7008              STRB     r0,[r1,#0]
00037a  e027              B        |L1.972|
                  |L1.892|
;;;378    		{
;;;379    			for(vk1622_comi=0;vk1622_comi<vk1622_maxcom;vk1622_comi++)//com
00037c  2000              MOVS     r0,#0
00037e  491e              LDR      r1,|L1.1016|
000380  7008              STRB     r0,[r1,#0]
000382  e018              B        |L1.950|
                  |L1.900|
;;;380    			{
;;;381    				Vk1622_DisDotOff(vk1622_segtab[vk1622_segi],vk1622_comi);	//LCDر
000384  491d              LDR      r1,|L1.1020|
000386  4a1b              LDR      r2,|L1.1012|
000388  7812              LDRB     r2,[r2,#0]  ; vk1622_segi
00038a  5c88              LDRB     r0,[r1,r2]
00038c  491a              LDR      r1,|L1.1016|
00038e  7809              LDRB     r1,[r1,#0]  ; vk1622_comi
000390  f7fffffe          BL       Vk1622_DisDotOff
;;;382    				delay_nms(300);				//ʱ300mS
000394  f44f7096          MOV      r0,#0x12c
000398  f7fffffe          BL       delay_nms
;;;383    			Vk1622_DisDotOff(vk1622_segtab[vk1622_segi],vk1622_comi);	//LCDر
00039c  4917              LDR      r1,|L1.1020|
00039e  4a15              LDR      r2,|L1.1012|
0003a0  7812              LDRB     r2,[r2,#0]  ; vk1622_segi
0003a2  5c88              LDRB     r0,[r1,r2]
0003a4  4914              LDR      r1,|L1.1016|
0003a6  7809              LDRB     r1,[r1,#0]  ; vk1622_comi
0003a8  f7fffffe          BL       Vk1622_DisDotOff
0003ac  4812              LDR      r0,|L1.1016|
0003ae  7800              LDRB     r0,[r0,#0]            ;379  ; vk1622_comi
0003b0  1c40              ADDS     r0,r0,#1              ;379
0003b2  4911              LDR      r1,|L1.1016|
0003b4  7008              STRB     r0,[r1,#0]            ;379
                  |L1.950|
0003b6  4810              LDR      r0,|L1.1016|
0003b8  7800              LDRB     r0,[r0,#0]            ;379  ; vk1622_comi
0003ba  490c              LDR      r1,|L1.1004|
0003bc  7809              LDRB     r1,[r1,#0]            ;379  ; vk1622_maxcom
0003be  4288              CMP      r0,r1                 ;379
0003c0  dbe0              BLT      |L1.900|
0003c2  480c              LDR      r0,|L1.1012|
0003c4  7800              LDRB     r0,[r0,#0]            ;377  ; vk1622_segi
0003c6  1c40              ADDS     r0,r0,#1              ;377
0003c8  490a              LDR      r1,|L1.1012|
0003ca  7008              STRB     r0,[r1,#0]            ;377
                  |L1.972|
0003cc  4809              LDR      r0,|L1.1012|
0003ce  7800              LDRB     r0,[r0,#0]            ;377  ; vk1622_segi
0003d0  2820              CMP      r0,#0x20              ;377
0003d2  dbd3              BLT      |L1.892|
;;;384    			}
;;;385    		}
;;;386    		delay_nms(1000);					//ʱ1S
0003d4  f44f707a          MOV      r0,#0x3e8
0003d8  f7fffffe          BL       delay_nms
                  |L1.988|
0003dc  e769              B        |L1.690|
;;;387    	}
;;;388    }
;;;389    /************************END OF FILE****/
                          ENDP

0003de  0000              DCW      0x0000
                  |L1.992|
                          DCD      0x4000483c
                  |L1.996|
                          DCD      vk1622_addrbit
                  |L1.1000|
                          DCD      vk1622_dispram
                  |L1.1004|
                          DCD      vk1622_maxcom
                  |L1.1008|
                          DCD      0x40004040
                  |L1.1012|
                          DCD      vk1622_segi
                  |L1.1016|
                          DCD      vk1622_comi
                  |L1.1020|
                          DCD      vk1622_segtab

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

                  vk1622_dispram
                          %        32

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

                  vk1622_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
                  vk1622_addrbit
00002f  06                DCB      0x06
                  vk1622_segi
000030  00                DCB      0x00
                  vk1622_comi
000031  00                DCB      0x00
                  vk1622_maxcom
000032  00                DCB      0x00

;*** Start embedded assembler ***

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

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

 revsh r0, r0
 bx lr
	ENDP

;*** End   embedded assembler ***
