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

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

                  WriteCommandVk1072b PROC
;;;120    *******************************************************************************/
;;;121    void WriteCommandVk1072b(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    	VK1072b_CS_L();   //CS Ƭѡ   
000056  2000              MOVS     r0,#0
000058  49e7              LDR      r1,|L1.1016|
00005a  3908              SUBS     r1,r1,#8
00005c  6008              STR      r0,[r1,#0]
;;;127    	delay_nus(VK1072b_CLK/2);
00005e  2005              MOVS     r0,#5
000060  f7fffffe          BL       delay_nus
;;;128    	VK1072b_DATA_H();  
000064  2001              MOVS     r0,#1
000066  49e4              LDR      r1,|L1.1016|
000068  3928              SUBS     r1,r1,#0x28
00006a  6008              STR      r0,[r1,#0]
;;;129    	WriteClockVk1072b();
00006c  f7fffffe          BL       WriteClockVk1072b
;;;130    	VK1072b_DATA_L();  
000070  2000              MOVS     r0,#0
000072  49e1              LDR      r1,|L1.1016|
000074  3928              SUBS     r1,r1,#0x28
000076  6008              STR      r0,[r1,#0]
;;;131    	WriteClockVk1072b();
000078  f7fffffe          BL       WriteClockVk1072b
;;;132    	VK1072b_DATA_L();  
00007c  2000              MOVS     r0,#0
00007e  49de              LDR      r1,|L1.1016|
000080  3928              SUBS     r1,r1,#0x28
000082  6008              STR      r0,[r1,#0]
;;;133    	WriteClockVk1072b();
000084  f7fffffe          BL       WriteClockVk1072b
;;;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    		 VK1072b_DATA_H(); 
000092  2001              MOVS     r0,#1
000094  49d8              LDR      r1,|L1.1016|
000096  3928              SUBS     r1,r1,#0x28
000098  6008              STR      r0,[r1,#0]
00009a  e003              B        |L1.164|
                  |L1.156|
;;;139    	 else 
;;;140    		 VK1072b_DATA_L();	  
00009c  2000              MOVS     r0,#0
00009e  49d6              LDR      r1,|L1.1016|
0000a0  3928              SUBS     r1,r1,#0x28
0000a2  6008              STR      r0,[r1,#0]
                  |L1.164|
;;;141    
;;;142    	 WriteClockVk1072b();
0000a4  f7fffffe          BL       WriteClockVk1072b
;;;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      VK1072b_DATA_L(); 
0000b2  2000              MOVS     r0,#0
0000b4  49d0              LDR      r1,|L1.1016|
0000b6  3928              SUBS     r1,r1,#0x28
0000b8  6008              STR      r0,[r1,#0]
;;;146    	WriteClockVk1072b();	//һ0һλ X
0000ba  f7fffffe          BL       WriteClockVk1072b
;;;147      VK1072b_CS_H(); 			//CS Ƭѡ  
0000be  2001              MOVS     r0,#1
0000c0  49cd              LDR      r1,|L1.1016|
0000c2  3908              SUBS     r1,r1,#8
0000c4  6008              STR      r0,[r1,#0]
;;;148    	delay_nus(VK1072b_CLK/2);
0000c6  2005              MOVS     r0,#5
0000c8  f7fffffe          BL       delay_nus
;;;149      VK1072b_DATA_H(); 
0000cc  2001              MOVS     r0,#1
0000ce  49ca              LDR      r1,|L1.1016|
0000d0  3928              SUBS     r1,r1,#0x28
0000d2  6008              STR      r0,[r1,#0]
;;;150    }
0000d4  bd70              POP      {r4-r6,pc}
;;;151    
                          ENDP

                  WritenDataVk1072b PROC
;;;160    *******************************************************************************/
;;;161    void WritenDataVk1072b(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    	VK1072b_CS_L();   //CS Ƭѡ 
0000e0  2000              MOVS     r0,#0
0000e2  49c5              LDR      r1,|L1.1016|
0000e4  3908              SUBS     r1,r1,#8
0000e6  6008              STR      r0,[r1,#0]
;;;168    	delay_nus(VK1072b_CLK/2);
0000e8  2005              MOVS     r0,#5
0000ea  f7fffffe          BL       delay_nus
;;;169    
;;;170    	VK1072b_DATA_H();  
0000ee  2001              MOVS     r0,#1
0000f0  49c1              LDR      r1,|L1.1016|
0000f2  3928              SUBS     r1,r1,#0x28
0000f4  6008              STR      r0,[r1,#0]
;;;171    	WriteClockVk1072b();  //101
0000f6  f7fffffe          BL       WriteClockVk1072b
;;;172    	VK1072b_DATA_L();  
0000fa  2000              MOVS     r0,#0
0000fc  49be              LDR      r1,|L1.1016|
0000fe  3928              SUBS     r1,r1,#0x28
000100  6008              STR      r0,[r1,#0]
;;;173    	WriteClockVk1072b();
000102  f7fffffe          BL       WriteClockVk1072b
;;;174    	VK1072b_DATA_H();  
000106  2001              MOVS     r0,#1
000108  49bb              LDR      r1,|L1.1016|
00010a  3928              SUBS     r1,r1,#0x28
00010c  6008              STR      r0,[r1,#0]
;;;175    	WriteClockVk1072b();
00010e  f7fffffe          BL       WriteClockVk1072b
;;;176    
;;;177    	Shift = 0x20;
000112  2520              MOVS     r5,#0x20
;;;178    	for( i = 0; i < vk1072b_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    			VK1072b_DATA_H(); 		
00011e  2001              MOVS     r0,#1
000120  49b5              LDR      r1,|L1.1016|
000122  3928              SUBS     r1,r1,#0x28
000124  6008              STR      r0,[r1,#0]
000126  e003              B        |L1.304|
                  |L1.296|
;;;182    		else  
;;;183    			VK1072b_DATA_L();
000128  2000              MOVS     r0,#0
00012a  49b3              LDR      r1,|L1.1016|
00012c  3928              SUBS     r1,r1,#0x28
00012e  6008              STR      r0,[r1,#0]
                  |L1.304|
;;;184    		WriteClockVk1072b();		
000130  f7fffffe          BL       WriteClockVk1072b
;;;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  48b0              LDR      r0,|L1.1020|
00013c  7800              LDRB     r0,[r0,#0]            ;178  ; vk1072b_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 < 4; 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    				VK1072b_DATA_H();		 
000156  2001              MOVS     r0,#1
000158  49a7              LDR      r1,|L1.1016|
00015a  3928              SUBS     r1,r1,#0x28
00015c  6008              STR      r0,[r1,#0]
00015e  e003              B        |L1.360|
                  |L1.352|
;;;195    			else  
;;;196    				VK1072b_DATA_L();
000160  2000              MOVS     r0,#0
000162  49a5              LDR      r1,|L1.1016|
000164  3928              SUBS     r1,r1,#0x28
000166  6008              STR      r0,[r1,#0]
                  |L1.360|
;;;197    			WriteClockVk1072b();
000168  f7fffffe          BL       WriteClockVk1072b
;;;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  2c04              CMP      r4,#4                 ;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      VK1072b_CS_H();   //CS Ƭѡ
000180  2001              MOVS     r0,#1
000182  499d              LDR      r1,|L1.1016|
000184  3908              SUBS     r1,r1,#8
000186  6008              STR      r0,[r1,#0]
;;;202    	delay_nus(VK1072b_CLK/2);	 
000188  2005              MOVS     r0,#5
00018a  f7fffffe          BL       delay_nus
;;;203      VK1072b_DATA_H(); 
00018e  2001              MOVS     r0,#1
000190  4999              LDR      r1,|L1.1016|
000192  3928              SUBS     r1,r1,#0x28
000194  6008              STR      r0,[r1,#0]
;;;204    }
000196  e8bd87f0          POP      {r4-r10,pc}
;;;205    /*******************************************************************************
                          ENDP

                  Vk1072b_DisAll PROC
;;;212    *******************************************************************************/
;;;213    void Vk1072b_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<32;segi++)
00019e  2400              MOVS     r4,#0
0001a0  e004              B        |L1.428|
                  |L1.418|
;;;218    	{
;;;219    		vk1072b_dispram[segi]=0x00;
0001a2  2000              MOVS     r0,#0
0001a4  4996              LDR      r1,|L1.1024|
0001a6  5508              STRB     r0,[r1,r4]
0001a8  1c60              ADDS     r0,r4,#1              ;217
0001aa  b2c4              UXTB     r4,r0                 ;217
                  |L1.428|
0001ac  2c20              CMP      r4,#0x20              ;217
0001ae  dbf8              BLT      |L1.418|
;;;220    	}
;;;221    	for(segi=0;segi<31;segi+=2)
0001b0  2400              MOVS     r4,#0
0001b2  e003              B        |L1.444|
                  |L1.436|
;;;222    	{
;;;223    		vk1072b_dispram[segi]=dat;
0001b4  4892              LDR      r0,|L1.1024|
0001b6  5505              STRB     r5,[r0,r4]
0001b8  1ca0              ADDS     r0,r4,#2              ;221
0001ba  b2c4              UXTB     r4,r0                 ;221
                  |L1.444|
0001bc  2c1f              CMP      r4,#0x1f              ;221
0001be  dbf9              BLT      |L1.436|
;;;224    	}
;;;225    	vk1072b_dispram[15]=dat;
0001c0  488f              LDR      r0,|L1.1024|
0001c2  73c5              STRB     r5,[r0,#0xf]
;;;226    	vk1072b_dispram[29]=dat;
0001c4  7745              STRB     r5,[r0,#0x1d]
;;;227    	WritenDataVk1072b(0,vk1072b_dispram,32);//4bitַԶ1
0001c6  2220              MOVS     r2,#0x20
0001c8  4601              MOV      r1,r0
0001ca  2000              MOVS     r0,#0
0001cc  f7fffffe          BL       WritenDataVk1072b
;;;228    }
0001d0  bd30              POP      {r4,r5,pc}
;;;229    /*******************************************************************************
                          ENDP

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

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

                  Vk1072b_Enter_PowerOff PROC
;;;271    *******************************************************************************/
;;;272    void Vk1072b_Enter_PowerOff(void)
000226  b500              PUSH     {lr}
;;;273    {	
;;;274    	//ʹLCDOFFSYSDIS,ϵͳڵ͹״̬
;;;275    	//ֻʹƬRCʱԴʱ,ʹϵͳ͹״̬
;;;276    	WriteCommandVk1072b(OSC_OFF);
000228  2000              MOVS     r0,#0
00022a  f7fffffe          BL       WriteCommandVk1072b
;;;277    	WriteCommandVk1072b(DISP_OFF);
00022e  2002              MOVS     r0,#2
000230  f7fffffe          BL       WriteCommandVk1072b
;;;278    }
000234  bd00              POP      {pc}
;;;279    /*******************************************************************************
                          ENDP

                  Vk1072b_Exit_PowerOff PROC
;;;285    *******************************************************************************/
;;;286    void Vk1072b_Exit_PowerOff(void)
000236  b500              PUSH     {lr}
;;;287    {	
;;;288    	//˳͹״̬vk1072b
;;;289    	WriteCommandVk1072b(OSC_ON);
000238  2001              MOVS     r0,#1
00023a  f7fffffe          BL       WriteCommandVk1072b
;;;290    	WriteCommandVk1072b(DISP_ON);
00023e  2003              MOVS     r0,#3
000240  f7fffffe          BL       WriteCommandVk1072b
;;;291    	WriteCommandVk1072b(COM_1_3__4);vk1072b_maxcom=4;	//1/3bias 4com
000244  2029              MOVS     r0,#0x29
000246  f7fffffe          BL       WriteCommandVk1072b
00024a  2004              MOVS     r0,#4
00024c  496d              LDR      r1,|L1.1028|
00024e  7008              STRB     r0,[r1,#0]
;;;292    //	WriteCommandVk1072b(COM_1_3__3);vk1072b_maxcom=3;	//1/3bias 3com
;;;293    //	WriteCommandVk1072b(COM_1_3__2);vk1072b_maxcom=2;	//1/3bias 2com
;;;294    //	WriteCommandVk1072b(COM_1_2__4);vk1072b_maxcom=4;	//1/2bias 4com
;;;295    //	WriteCommandVk1072b(COM_1_2__3);vk1072b_maxcom=3;	//1/2bias 3com
;;;296    //	WriteCommandVk1072b(COM_1_2__2);vk1072b_maxcom=2;	//1/2bias 2com
;;;297    }
000250  bd00              POP      {pc}
;;;298    /*******************************************************************************
                          ENDP

                  Vk1072b_Lowlevel_Init PROC
;;;304    *******************************************************************************/
;;;305    void Vk1072b_Lowlevel_Init(void)
000252  b510              PUSH     {r4,lr}
;;;306    {
;;;307    	//ͨߵƽͬӵƽת·
;;;308    	//˺ݿͻƬӦ޸	
;;;309    	GPIO_SetMode(VK1072b_CS_PORT, VK1072b_CS_PIN, GPIO_MODE_OUTPUT);
000254  2201              MOVS     r2,#1
000256  0351              LSLS     r1,r2,#13
000258  486b              LDR      r0,|L1.1032|
00025a  f7fffffe          BL       GPIO_SetMode
;;;310    	GPIO_SetMode(VK1072b_WR_PORT, VK1072b_WR_PIN, GPIO_MODE_OUTPUT);
00025e  2201              MOVS     r2,#1
000260  03d1              LSLS     r1,r2,#15
000262  4869              LDR      r0,|L1.1032|
000264  f7fffffe          BL       GPIO_SetMode
;;;311    	GPIO_SetMode(VK1072b_DAT_PORT, VK1072b_DAT_PIN, GPIO_MODE_OUTPUT);	//ֻʾݿΪIO
000268  2201              MOVS     r2,#1
00026a  2120              MOVS     r1,#0x20
00026c  4866              LDR      r0,|L1.1032|
00026e  f7fffffe          BL       GPIO_SetMode
;;;312    		
;;;313    	VK1072b_CS_H();                 
000272  2001              MOVS     r0,#1
000274  4960              LDR      r1,|L1.1016|
000276  3908              SUBS     r1,r1,#8
000278  6008              STR      r0,[r1,#0]
;;;314    	VK1072b_WR_H();  
00027a  495f              LDR      r1,|L1.1016|
00027c  6008              STR      r0,[r1,#0]
;;;315    	VK1072b_DATA_H(); 	
00027e  495e              LDR      r1,|L1.1016|
000280  3928              SUBS     r1,r1,#0x28
000282  6008              STR      r0,[r1,#0]
;;;316    }
000284  bd10              POP      {r4,pc}
;;;317    /*******************************************************************************
                          ENDP

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

                  Vk1072b_Main PROC
;;;352    *******************************************************************************/
;;;353    void Vk1072b_Main(void)
0002be  f7fffffe          BL       Vk1072b_Init
;;;354    {	
;;;355    	Vk1072b_Init();
;;;356    	Vk1072b_DisAll(0x00);
0002c2  2000              MOVS     r0,#0
0002c4  f7fffffe          BL       Vk1072b_DisAll
;;;357    	while(1)
0002c8  e094              B        |L1.1012|
                  |L1.714|
;;;358    	{
;;;359    		Vk1072b_DisAll(0x0f);			//LCDȫ
0002ca  200f              MOVS     r0,#0xf
0002cc  f7fffffe          BL       Vk1072b_DisAll
;;;360    		delay_nms(3000);					//ʱ3S
0002d0  f64030b8          MOV      r0,#0xbb8
0002d4  f7fffffe          BL       delay_nms
;;;361    		
;;;362    		Vk1072b_DisAll(0x00);			//LCDȫ
0002d8  2000              MOVS     r0,#0
0002da  f7fffffe          BL       Vk1072b_DisAll
;;;363    		delay_nms(3000);					//ʱ3S
0002de  f64030b8          MOV      r0,#0xbb8
0002e2  f7fffffe          BL       delay_nms
;;;364    		
;;;365    		//LCD
;;;366    		Vk1072b_DisAll(0x05);
0002e6  2005              MOVS     r0,#5
0002e8  f7fffffe          BL       Vk1072b_DisAll
;;;367    		delay_nms(1500);
0002ec  f24050dc          MOV      r0,#0x5dc
0002f0  f7fffffe          BL       delay_nms
;;;368    		Vk1072b_DisAll(0x0A);
0002f4  200a              MOVS     r0,#0xa
0002f6  f7fffffe          BL       Vk1072b_DisAll
;;;369    		delay_nms(1500);
0002fa  f24050dc          MOV      r0,#0x5dc
0002fe  f7fffffe          BL       delay_nms
;;;370    		
;;;371    		//
;;;372    		Vk1072b_DisAll(0x00);      //LCDȫ
000302  2000              MOVS     r0,#0
000304  f7fffffe          BL       Vk1072b_DisAll
;;;373    		Vk1072b_Enter_PowerOff();  //ģʽ
000308  f7fffffe          BL       Vk1072b_Enter_PowerOff
;;;374    		delay_nms(5000);          //ʱ5
00030c  f2413088          MOV      r0,#0x1388
000310  f7fffffe          BL       delay_nms
;;;375    		Vk1072b_Exit_PowerOff();   //˳ģʽ
000314  f7fffffe          BL       Vk1072b_Exit_PowerOff
;;;376    		
;;;377    		Vk1072b_DisAll(0x00);			//LCDȫ
000318  2000              MOVS     r0,#0
00031a  f7fffffe          BL       Vk1072b_DisAll
;;;378    		for(vk1072b_segi=0;vk1072b_segi<VK1072b_SEGNUM;vk1072b_segi++)//seg
00031e  2000              MOVS     r0,#0
000320  493a              LDR      r1,|L1.1036|
000322  7008              STRB     r0,[r1,#0]
000324  e027              B        |L1.886|
                  |L1.806|
;;;379    		{
;;;380    			for(vk1072b_comi=0;vk1072b_comi<vk1072b_maxcom;vk1072b_comi++)//com
000326  2000              MOVS     r0,#0
000328  4939              LDR      r1,|L1.1040|
00032a  7008              STRB     r0,[r1,#0]
00032c  e018              B        |L1.864|
                  |L1.814|
;;;381    			{
;;;382    				Vk1072b_DisDotOn(vk1072b_segtab[vk1072b_segi],vk1072b_comi);	//LCD
00032e  4939              LDR      r1,|L1.1044|
000330  4a36              LDR      r2,|L1.1036|
000332  7812              LDRB     r2,[r2,#0]  ; vk1072b_segi
000334  5c88              LDRB     r0,[r1,r2]
000336  4936              LDR      r1,|L1.1040|
000338  7809              LDRB     r1,[r1,#0]  ; vk1072b_comi
00033a  f7fffffe          BL       Vk1072b_DisDotOn
;;;383    				delay_nms(300);				//ʱ300mS
00033e  f44f7096          MOV      r0,#0x12c
000342  f7fffffe          BL       delay_nms
;;;384    				Vk1072b_DisDotOff(vk1072b_segtab[vk1072b_segi],vk1072b_comi); //LCDر
000346  4933              LDR      r1,|L1.1044|
000348  4a30              LDR      r2,|L1.1036|
00034a  7812              LDRB     r2,[r2,#0]  ; vk1072b_segi
00034c  5c88              LDRB     r0,[r1,r2]
00034e  4930              LDR      r1,|L1.1040|
000350  7809              LDRB     r1,[r1,#0]  ; vk1072b_comi
000352  f7fffffe          BL       Vk1072b_DisDotOff
000356  482e              LDR      r0,|L1.1040|
000358  7800              LDRB     r0,[r0,#0]            ;380  ; vk1072b_comi
00035a  1c40              ADDS     r0,r0,#1              ;380
00035c  492c              LDR      r1,|L1.1040|
00035e  7008              STRB     r0,[r1,#0]            ;380
                  |L1.864|
000360  482b              LDR      r0,|L1.1040|
000362  7800              LDRB     r0,[r0,#0]            ;380  ; vk1072b_comi
000364  4927              LDR      r1,|L1.1028|
000366  7809              LDRB     r1,[r1,#0]            ;380  ; vk1072b_maxcom
000368  4288              CMP      r0,r1                 ;380
00036a  dbe0              BLT      |L1.814|
00036c  4827              LDR      r0,|L1.1036|
00036e  7800              LDRB     r0,[r0,#0]            ;378  ; vk1072b_segi
000370  1c40              ADDS     r0,r0,#1              ;378
000372  4926              LDR      r1,|L1.1036|
000374  7008              STRB     r0,[r1,#0]            ;378
                  |L1.886|
000376  4825              LDR      r0,|L1.1036|
000378  7800              LDRB     r0,[r0,#0]            ;378  ; vk1072b_segi
00037a  2812              CMP      r0,#0x12              ;378
00037c  dbd3              BLT      |L1.806|
;;;385    			}
;;;386    		}
;;;387    		
;;;388    		Vk1072b_DisAll(0x0f);			//LCDȫ
00037e  200f              MOVS     r0,#0xf
000380  f7fffffe          BL       Vk1072b_DisAll
;;;389    		delay_nms(1000);					//ʱ1S
000384  f44f707a          MOV      r0,#0x3e8
000388  f7fffffe          BL       delay_nms
;;;390    		for(vk1072b_segi=0;vk1072b_segi<VK1072b_SEGNUM;vk1072b_segi++)//seg
00038c  2000              MOVS     r0,#0
00038e  491f              LDR      r1,|L1.1036|
000390  7008              STRB     r0,[r1,#0]
000392  e027              B        |L1.996|
                  |L1.916|
;;;391    		{
;;;392    			for(vk1072b_comi=0;vk1072b_comi<vk1072b_maxcom;vk1072b_comi++)//com
000394  2000              MOVS     r0,#0
000396  491e              LDR      r1,|L1.1040|
000398  7008              STRB     r0,[r1,#0]
00039a  e018              B        |L1.974|
                  |L1.924|
;;;393    			{
;;;394    				Vk1072b_DisDotOff(vk1072b_segtab[vk1072b_segi],vk1072b_comi);	//LCDر
00039c  491d              LDR      r1,|L1.1044|
00039e  4a1b              LDR      r2,|L1.1036|
0003a0  7812              LDRB     r2,[r2,#0]  ; vk1072b_segi
0003a2  5c88              LDRB     r0,[r1,r2]
0003a4  491a              LDR      r1,|L1.1040|
0003a6  7809              LDRB     r1,[r1,#0]  ; vk1072b_comi
0003a8  f7fffffe          BL       Vk1072b_DisDotOff
;;;395    				delay_nms(300);				//ʱ300mS
0003ac  f44f7096          MOV      r0,#0x12c
0003b0  f7fffffe          BL       delay_nms
;;;396    				Vk1072b_DisDotOn(vk1072b_segtab[vk1072b_segi],vk1072b_comi); //LCD
0003b4  4917              LDR      r1,|L1.1044|
0003b6  4a15              LDR      r2,|L1.1036|
0003b8  7812              LDRB     r2,[r2,#0]  ; vk1072b_segi
0003ba  5c88              LDRB     r0,[r1,r2]
0003bc  4914              LDR      r1,|L1.1040|
0003be  7809              LDRB     r1,[r1,#0]  ; vk1072b_comi
0003c0  f7fffffe          BL       Vk1072b_DisDotOn
0003c4  4812              LDR      r0,|L1.1040|
0003c6  7800              LDRB     r0,[r0,#0]            ;392  ; vk1072b_comi
0003c8  1c40              ADDS     r0,r0,#1              ;392
0003ca  4911              LDR      r1,|L1.1040|
0003cc  7008              STRB     r0,[r1,#0]            ;392
                  |L1.974|
0003ce  4810              LDR      r0,|L1.1040|
0003d0  7800              LDRB     r0,[r0,#0]            ;392  ; vk1072b_comi
0003d2  490c              LDR      r1,|L1.1028|
0003d4  7809              LDRB     r1,[r1,#0]            ;392  ; vk1072b_maxcom
0003d6  4288              CMP      r0,r1                 ;392
0003d8  dbe0              BLT      |L1.924|
0003da  480c              LDR      r0,|L1.1036|
0003dc  7800              LDRB     r0,[r0,#0]            ;390  ; vk1072b_segi
0003de  1c40              ADDS     r0,r0,#1              ;390
0003e0  490a              LDR      r1,|L1.1036|
0003e2  7008              STRB     r0,[r1,#0]            ;390
                  |L1.996|
0003e4  4809              LDR      r0,|L1.1036|
0003e6  7800              LDRB     r0,[r0,#0]            ;390  ; vk1072b_segi
0003e8  2812              CMP      r0,#0x12              ;390
0003ea  dbd3              BLT      |L1.916|
;;;397    			}
;;;398    		}
;;;399    		delay_nms(1000);					//ʱ1S
0003ec  f44f707a          MOV      r0,#0x3e8
0003f0  f7fffffe          BL       delay_nms
                  |L1.1012|
0003f4  e769              B        |L1.714|
;;;400    	}
;;;401    }
;;;402    /************************END OF FILE****/
                          ENDP

0003f6  0000              DCW      0x0000
                  |L1.1016|
                          DCD      0x4000487c
                  |L1.1020|
                          DCD      vk1072b_addrbit
                  |L1.1024|
                          DCD      vk1072b_dispram
                  |L1.1028|
                          DCD      vk1072b_maxcom
                  |L1.1032|
                          DCD      0x40004040
                  |L1.1036|
                          DCD      vk1072b_segi
                  |L1.1040|
                          DCD      vk1072b_comi
                  |L1.1044|
                          DCD      vk1072b_segtab

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

                  vk1072b_dispram
                          %        32

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

                  vk1072b_segtab
000000  00020406          DCB      0x00,0x02,0x04,0x06
000004  080a0c0e          DCB      0x08,0x0a,0x0c,0x0e
000008  0f101214          DCB      0x0f,0x10,0x12,0x14
00000c  16181a1c          DCB      0x16,0x18,0x1a,0x1c
000010  1d1e              DCB      0x1d,0x1e
                  shuzi_zimo
000012  f505              DCB      0xf5,0x05
000014  d39727b6          DCB      0xd3,0x97,0x27,0xb6
000018  f615f7b7          DCB      0xf6,0x15,0xf7,0xb7
00001c  02e0c667          DCB      0x02,0xe0,0xc6,0x67
000020  05                DCB      0x05
                  vk1072b_addrbit
000021  06                DCB      0x06
                  vk1072b_segi
000022  00                DCB      0x00
                  vk1072b_comi
000023  00                DCB      0x00
                  vk1072b_maxcom
000024  00                DCB      0x00

;*** Start embedded assembler ***

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

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

 revsh r0, r0
 bx lr
	ENDP

;*** End   embedded assembler ***
