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

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

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

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

                  WriteClockVk1072c PROC
;;;107    *******************************************************************************/
;;;108    void WriteClockVk1072c(void)
000034  b500              PUSH     {lr}
;;;109    {
;;;110    	VK1072c_WR_L(); 
000036  2000              MOVS     r0,#0
000038  49f5              LDR      r1,|L1.1040|
00003a  6008              STR      r0,[r1,#0]
;;;111    	delay_nus(VK1072c_CLK);
00003c  200a              MOVS     r0,#0xa
00003e  f7fffffe          BL       delay_nus
;;;112    	VK1072c_WR_H();	
000042  2001              MOVS     r0,#1
000044  49f2              LDR      r1,|L1.1040|
000046  6008              STR      r0,[r1,#0]
;;;113    	delay_nus(VK1072c_CLK);	
000048  200a              MOVS     r0,#0xa
00004a  f7fffffe          BL       delay_nus
;;;114    }
00004e  bd00              POP      {pc}
;;;115    /*******************************************************************************
                          ENDP

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

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

                  Vk1072c_DisAll PROC
;;;213    *******************************************************************************/
;;;214    void Vk1072c_DisAll(unsigned char dat)
00019a  b530              PUSH     {r4,r5,lr}
;;;215    {
00019c  4605              MOV      r5,r0
;;;216    	unsigned char segi;
;;;217    	
;;;218    	for(segi=0;segi<32;segi++)
00019e  2400              MOVS     r4,#0
0001a0  e004              B        |L1.428|
                  |L1.418|
;;;219    	{
;;;220    		vk1072c_dispram[segi]=0x00;
0001a2  2000              MOVS     r0,#0
0001a4  499c              LDR      r1,|L1.1048|
0001a6  5508              STRB     r0,[r1,r4]
0001a8  1c60              ADDS     r0,r4,#1              ;218
0001aa  b2c4              UXTB     r4,r0                 ;218
                  |L1.428|
0001ac  2c20              CMP      r4,#0x20              ;218
0001ae  dbf8              BLT      |L1.418|
;;;221    	}
;;;222    	for(segi=0;segi<6;segi++)
0001b0  2400              MOVS     r4,#0
0001b2  e003              B        |L1.444|
                  |L1.436|
;;;223    	{
;;;224    		vk1072c_dispram[segi]=dat;
0001b4  4898              LDR      r0,|L1.1048|
0001b6  5505              STRB     r5,[r0,r4]
0001b8  1c60              ADDS     r0,r4,#1              ;222
0001ba  b2c4              UXTB     r4,r0                 ;222
                  |L1.444|
0001bc  2c06              CMP      r4,#6                 ;222
0001be  dbf9              BLT      |L1.436|
;;;225    	}
;;;226    	for(segi=13;segi<20;segi++)
0001c0  240d              MOVS     r4,#0xd
0001c2  e003              B        |L1.460|
                  |L1.452|
;;;227    	{
;;;228    		vk1072c_dispram[segi]=dat;
0001c4  4894              LDR      r0,|L1.1048|
0001c6  5505              STRB     r5,[r0,r4]
0001c8  1c60              ADDS     r0,r4,#1              ;226
0001ca  b2c4              UXTB     r4,r0                 ;226
                  |L1.460|
0001cc  2c14              CMP      r4,#0x14              ;226
0001ce  dbf9              BLT      |L1.452|
;;;229    	}
;;;230    	for(segi=26;segi<31;segi++)
0001d0  241a              MOVS     r4,#0x1a
0001d2  e003              B        |L1.476|
                  |L1.468|
;;;231    	{
;;;232    		vk1072c_dispram[segi]=dat;
0001d4  4890              LDR      r0,|L1.1048|
0001d6  5505              STRB     r5,[r0,r4]
0001d8  1c60              ADDS     r0,r4,#1              ;230
0001da  b2c4              UXTB     r4,r0                 ;230
                  |L1.476|
0001dc  2c1f              CMP      r4,#0x1f              ;230
0001de  dbf9              BLT      |L1.468|
;;;233    	}
;;;234    	WritenDataVk1072c(0,vk1072c_dispram,32);//4bitַԶ1
0001e0  2220              MOVS     r2,#0x20
0001e2  498d              LDR      r1,|L1.1048|
0001e4  2000              MOVS     r0,#0
0001e6  f7fffffe          BL       WritenDataVk1072c
;;;235    }
0001ea  bd30              POP      {r4,r5,pc}
;;;236    /*******************************************************************************
                          ENDP

                  Vk1072c_DisDotOn PROC
;;;243    *******************************************************************************/
;;;244    void Vk1072c_DisDotOn(unsigned char seg,unsigned char com)
0001ec  b5f8              PUSH     {r3-r7,lr}
;;;245    {
0001ee  4604              MOV      r4,r0
0001f0  460e              MOV      r6,r1
;;;246    	unsigned char addrbyte,addrbit,tempdat;
;;;247    	
;;;248    	addrbyte=seg;
0001f2  4625              MOV      r5,r4
;;;249    	addrbit=(1<<com);
0001f4  2001              MOVS     r0,#1
0001f6  40b0              LSLS     r0,r0,r6
0001f8  b2c7              UXTB     r7,r0
;;;250    	tempdat=vk1072c_dispram[seg]|addrbit;
0001fa  4887              LDR      r0,|L1.1048|
0001fc  5d00              LDRB     r0,[r0,r4]
0001fe  4338              ORRS     r0,r0,r7
000200  9000              STR      r0,[sp,#0]
;;;251    	vk1072c_dispram[seg]=tempdat;
000202  f89d0000          LDRB     r0,[sp,#0]
000206  4984              LDR      r1,|L1.1048|
000208  5508              STRB     r0,[r1,r4]
;;;252    	WritenDataVk1072c(addrbyte,&tempdat,1);
00020a  2201              MOVS     r2,#1
00020c  4669              MOV      r1,sp
00020e  4628              MOV      r0,r5
000210  f7fffffe          BL       WritenDataVk1072c
;;;253    }
000214  bdf8              POP      {r3-r7,pc}
;;;254    /*******************************************************************************
                          ENDP

                  Vk1072c_DisDotOff PROC
;;;261    *******************************************************************************/
;;;262    void Vk1072c_DisDotOff(unsigned char seg,unsigned char com)
000216  b5f8              PUSH     {r3-r7,lr}
;;;263    {
000218  4604              MOV      r4,r0
00021a  460e              MOV      r6,r1
;;;264    	unsigned char addrbyte,addrbit,tempdat;
;;;265    	
;;;266    	addrbyte=seg;
00021c  4625              MOV      r5,r4
;;;267    	addrbit=(1<<com);
00021e  2001              MOVS     r0,#1
000220  40b0              LSLS     r0,r0,r6
000222  b2c7              UXTB     r7,r0
;;;268    	tempdat=vk1072c_dispram[seg]&(~addrbit);
000224  487c              LDR      r0,|L1.1048|
000226  5d00              LDRB     r0,[r0,r4]
000228  43b8              BICS     r0,r0,r7
00022a  9000              STR      r0,[sp,#0]
;;;269    	vk1072c_dispram[seg]=tempdat;
00022c  f89d0000          LDRB     r0,[sp,#0]
000230  4979              LDR      r1,|L1.1048|
000232  5508              STRB     r0,[r1,r4]
;;;270    	WritenDataVk1072c(addrbyte,&tempdat,1);
000234  2201              MOVS     r2,#1
000236  4669              MOV      r1,sp
000238  4628              MOV      r0,r5
00023a  f7fffffe          BL       WritenDataVk1072c
;;;271    }
00023e  bdf8              POP      {r3-r7,pc}
;;;272    /*******************************************************************************
                          ENDP

                  Vk1072c_Enter_PowerOff PROC
;;;278    *******************************************************************************/
;;;279    void Vk1072c_Enter_PowerOff(void)
000240  b500              PUSH     {lr}
;;;280    {	
;;;281    	//ʹLCDOFFSYSDIS,ϵͳڵ͹״̬
;;;282    	//ֻʹƬRCʱԴʱ,ʹϵͳ͹״̬
;;;283    	WriteCommandVk1072c(OSC_OFF);
000242  2000              MOVS     r0,#0
000244  f7fffffe          BL       WriteCommandVk1072c
;;;284    	WriteCommandVk1072c(DISP_OFF);
000248  2002              MOVS     r0,#2
00024a  f7fffffe          BL       WriteCommandVk1072c
;;;285    }
00024e  bd00              POP      {pc}
;;;286    /*******************************************************************************
                          ENDP

                  Vk1072c_Exit_PowerOff PROC
;;;292    *******************************************************************************/
;;;293    void Vk1072c_Exit_PowerOff(void)
000250  b500              PUSH     {lr}
;;;294    {	
;;;295    	//˳͹״̬vk1072c
;;;296    	WriteCommandVk1072c(OSC_ON);
000252  2001              MOVS     r0,#1
000254  f7fffffe          BL       WriteCommandVk1072c
;;;297    	WriteCommandVk1072c(DISP_ON);
000258  2003              MOVS     r0,#3
00025a  f7fffffe          BL       WriteCommandVk1072c
;;;298    	WriteCommandVk1072c(COM_1_3__4);vk1072c_maxcom=4;	//1/3bias 4com
00025e  2029              MOVS     r0,#0x29
000260  f7fffffe          BL       WriteCommandVk1072c
000264  2004              MOVS     r0,#4
000266  496d              LDR      r1,|L1.1052|
000268  7008              STRB     r0,[r1,#0]
;;;299    //	WriteCommandVk1072c(COM_1_3__3);vk1072c_maxcom=3;	//1/3bias 3com
;;;300    //	WriteCommandVk1072c(COM_1_3__2);vk1072c_maxcom=2;	//1/3bias 2com
;;;301    //	WriteCommandVk1072c(COM_1_2__4);vk1072c_maxcom=4;	//1/2bias 4com
;;;302    //	WriteCommandVk1072c(COM_1_2__3);vk1072c_maxcom=3;	//1/2bias 3com
;;;303    //	WriteCommandVk1072c(COM_1_2__2);vk1072c_maxcom=2;	//1/2bias 2com
;;;304    }
00026a  bd00              POP      {pc}
;;;305    /*******************************************************************************
                          ENDP

                  Vk1072c_Lowlevel_Init PROC
;;;311    *******************************************************************************/
;;;312    void Vk1072c_Lowlevel_Init(void)
00026c  b510              PUSH     {r4,lr}
;;;313    {
;;;314    	//ͨߵƽͬӵƽת·
;;;315    	//˺ݿͻƬӦ޸	
;;;316    	GPIO_SetMode(VK1072c_CS_PORT, VK1072c_CS_PIN, GPIO_MODE_OUTPUT);
00026e  2201              MOVS     r2,#1
000270  0351              LSLS     r1,r2,#13
000272  486b              LDR      r0,|L1.1056|
000274  f7fffffe          BL       GPIO_SetMode
;;;317    	GPIO_SetMode(VK1072c_WR_PORT, VK1072c_WR_PIN, GPIO_MODE_OUTPUT);
000278  2201              MOVS     r2,#1
00027a  03d1              LSLS     r1,r2,#15
00027c  4868              LDR      r0,|L1.1056|
00027e  f7fffffe          BL       GPIO_SetMode
;;;318    	GPIO_SetMode(VK1072c_DAT_PORT, VK1072c_DAT_PIN, GPIO_MODE_OUTPUT);	//ֻʾݿΪIO
000282  2201              MOVS     r2,#1
000284  2120              MOVS     r1,#0x20
000286  4866              LDR      r0,|L1.1056|
000288  f7fffffe          BL       GPIO_SetMode
;;;319    		
;;;320    	VK1072c_CS_H();                 
00028c  2001              MOVS     r0,#1
00028e  4960              LDR      r1,|L1.1040|
000290  3908              SUBS     r1,r1,#8
000292  6008              STR      r0,[r1,#0]
;;;321    	VK1072c_WR_H();  
000294  495e              LDR      r1,|L1.1040|
000296  6008              STR      r0,[r1,#0]
;;;322    	VK1072c_DATA_H(); 	
000298  495d              LDR      r1,|L1.1040|
00029a  3928              SUBS     r1,r1,#0x28
00029c  6008              STR      r0,[r1,#0]
;;;323    }
00029e  bd10              POP      {r4,pc}
;;;324    /*******************************************************************************
                          ENDP

                  Vk1072c_Init PROC
;;;330    *******************************************************************************/
;;;331    void Vk1072c_Init(void)
0002a0  b510              PUSH     {r4,lr}
;;;332    {	
;;;333    	//ܽøݿͻƬӦ޸
;;;334    	Vk1072c_Lowlevel_Init();
0002a2  f7fffffe          BL       Vk1072c_Lowlevel_Init
;;;335    	//
;;;336    	WriteCommandVk1072c(OSC_ON);
0002a6  2001              MOVS     r0,#1
0002a8  f7fffffe          BL       WriteCommandVk1072c
;;;337    	WriteCommandVk1072c(DISP_ON);
0002ac  2003              MOVS     r0,#3
0002ae  f7fffffe          BL       WriteCommandVk1072c
;;;338    	WriteCommandVk1072c(COM_1_3__4);vk1072c_maxcom=4;	//1/3bias 4com
0002b2  2029              MOVS     r0,#0x29
0002b4  f7fffffe          BL       WriteCommandVk1072c
0002b8  2004              MOVS     r0,#4
0002ba  4958              LDR      r1,|L1.1052|
0002bc  7008              STRB     r0,[r1,#0]
;;;339    //	WriteCommandVk1072c(COM_1_3__3);vk1072c_maxcom=3;	//1/3bias 3com com2/com1/com0
;;;340    //	WriteCommandVk1072c(COM_1_3__2);vk1072c_maxcom=2;	//1/3bias 2com com1/com0
;;;341    //	WriteCommandVk1072c(COM_1_2__4);vk1072c_maxcom=4;	//1/2bias 4com
;;;342    //	WriteCommandVk1072c(COM_1_2__3);vk1072c_maxcom=3;	//1/2bias 3com com2/com1/com0
;;;343    //	WriteCommandVk1072c(COM_1_2__2);vk1072c_maxcom=2;	//1/2bias 2com com1/com0
;;;344    	//ϵĬ(δùܹرս͹)
;;;345    //	WriteCommandVk1072c(BUZZ_2KHZ);
;;;346    //	WriteCommandVk1072c(BUZZ_4KHZ);
;;;347    //	WriteCommandVk1072c(BUZZ_ON);
;;;348    	WriteCommandVk1072c(BUZZ_OFF);
0002be  2008              MOVS     r0,#8
0002c0  f7fffffe          BL       WriteCommandVk1072c
;;;349    	WriteCommandVk1072c(IRQ_DIS);
0002c4  2080              MOVS     r0,#0x80
0002c6  f7fffffe          BL       WriteCommandVk1072c
;;;350    	WriteCommandVk1072c(TIMER_DIS);
0002ca  2004              MOVS     r0,#4
0002cc  f7fffffe          BL       WriteCommandVk1072c
;;;351    	WriteCommandVk1072c(WDT_DIS);
0002d0  2005              MOVS     r0,#5
0002d2  f7fffffe          BL       WriteCommandVk1072c
;;;352    }
0002d6  bd10              POP      {r4,pc}
;;;353    /*******************************************************************************
                          ENDP

                  Vk1072c_Main PROC
;;;359    *******************************************************************************/
;;;360    void Vk1072c_Main(void)
0002d8  f7fffffe          BL       Vk1072c_Init
;;;361    {	
;;;362    	Vk1072c_Init();
;;;363    	Vk1072c_DisAll(0x00);
0002dc  2000              MOVS     r0,#0
0002de  f7fffffe          BL       Vk1072c_DisAll
;;;364    	while(1)
0002e2  e094              B        |L1.1038|
                  |L1.740|
;;;365    	{
;;;366    		Vk1072c_DisAll(0x0f);			//LCDȫ
0002e4  200f              MOVS     r0,#0xf
0002e6  f7fffffe          BL       Vk1072c_DisAll
;;;367    		delay_nms(3000);					//ʱ3S
0002ea  f64030b8          MOV      r0,#0xbb8
0002ee  f7fffffe          BL       delay_nms
;;;368    		
;;;369    		Vk1072c_DisAll(0x00);			//LCDȫ
0002f2  2000              MOVS     r0,#0
0002f4  f7fffffe          BL       Vk1072c_DisAll
;;;370    		delay_nms(3000);					//ʱ3S
0002f8  f64030b8          MOV      r0,#0xbb8
0002fc  f7fffffe          BL       delay_nms
;;;371    		
;;;372    		//LCD
;;;373    		Vk1072c_DisAll(0x05);
000300  2005              MOVS     r0,#5
000302  f7fffffe          BL       Vk1072c_DisAll
;;;374    		delay_nms(1500);
000306  f24050dc          MOV      r0,#0x5dc
00030a  f7fffffe          BL       delay_nms
;;;375    		Vk1072c_DisAll(0x0A);
00030e  200a              MOVS     r0,#0xa
000310  f7fffffe          BL       Vk1072c_DisAll
;;;376    		delay_nms(1500);
000314  f24050dc          MOV      r0,#0x5dc
000318  f7fffffe          BL       delay_nms
;;;377    		
;;;378    		//
;;;379    		Vk1072c_DisAll(0x00);      //LCDȫ
00031c  2000              MOVS     r0,#0
00031e  f7fffffe          BL       Vk1072c_DisAll
;;;380    		Vk1072c_Enter_PowerOff();  //ģʽ
000322  f7fffffe          BL       Vk1072c_Enter_PowerOff
;;;381    		delay_nms(5000);          //ʱ5
000326  f2413088          MOV      r0,#0x1388
00032a  f7fffffe          BL       delay_nms
;;;382    		Vk1072c_Exit_PowerOff();   //˳ģʽ
00032e  f7fffffe          BL       Vk1072c_Exit_PowerOff
;;;383    		
;;;384    		Vk1072c_DisAll(0x00);			//LCDȫ
000332  2000              MOVS     r0,#0
000334  f7fffffe          BL       Vk1072c_DisAll
;;;385    		for(vk1072c_segi=0;vk1072c_segi<VK1072c_SEGNUM;vk1072c_segi++)//seg
000338  2000              MOVS     r0,#0
00033a  493a              LDR      r1,|L1.1060|
00033c  7008              STRB     r0,[r1,#0]
00033e  e027              B        |L1.912|
                  |L1.832|
;;;386    		{
;;;387    			for(vk1072c_comi=0;vk1072c_comi<vk1072c_maxcom;vk1072c_comi++)//com
000340  2000              MOVS     r0,#0
000342  4939              LDR      r1,|L1.1064|
000344  7008              STRB     r0,[r1,#0]
000346  e018              B        |L1.890|
                  |L1.840|
;;;388    			{
;;;389    				Vk1072c_DisDotOn(vk1072c_segtab[vk1072c_segi],vk1072c_comi);	//LCD
000348  4938              LDR      r1,|L1.1068|
00034a  4a36              LDR      r2,|L1.1060|
00034c  7812              LDRB     r2,[r2,#0]  ; vk1072c_segi
00034e  5c88              LDRB     r0,[r1,r2]
000350  4935              LDR      r1,|L1.1064|
000352  7809              LDRB     r1,[r1,#0]  ; vk1072c_comi
000354  f7fffffe          BL       Vk1072c_DisDotOn
;;;390    				delay_nms(300);				//ʱ300mS
000358  f44f7096          MOV      r0,#0x12c
00035c  f7fffffe          BL       delay_nms
;;;391    				Vk1072c_DisDotOff(vk1072c_segtab[vk1072c_segi],vk1072c_comi); //LCDر
000360  4932              LDR      r1,|L1.1068|
000362  4a30              LDR      r2,|L1.1060|
000364  7812              LDRB     r2,[r2,#0]  ; vk1072c_segi
000366  5c88              LDRB     r0,[r1,r2]
000368  492f              LDR      r1,|L1.1064|
00036a  7809              LDRB     r1,[r1,#0]  ; vk1072c_comi
00036c  f7fffffe          BL       Vk1072c_DisDotOff
000370  482d              LDR      r0,|L1.1064|
000372  7800              LDRB     r0,[r0,#0]            ;387  ; vk1072c_comi
000374  1c40              ADDS     r0,r0,#1              ;387
000376  492c              LDR      r1,|L1.1064|
000378  7008              STRB     r0,[r1,#0]            ;387
                  |L1.890|
00037a  482b              LDR      r0,|L1.1064|
00037c  7800              LDRB     r0,[r0,#0]            ;387  ; vk1072c_comi
00037e  4927              LDR      r1,|L1.1052|
000380  7809              LDRB     r1,[r1,#0]            ;387  ; vk1072c_maxcom
000382  4288              CMP      r0,r1                 ;387
000384  dbe0              BLT      |L1.840|
000386  4827              LDR      r0,|L1.1060|
000388  7800              LDRB     r0,[r0,#0]            ;385  ; vk1072c_segi
00038a  1c40              ADDS     r0,r0,#1              ;385
00038c  4925              LDR      r1,|L1.1060|
00038e  7008              STRB     r0,[r1,#0]            ;385
                  |L1.912|
000390  4824              LDR      r0,|L1.1060|
000392  7800              LDRB     r0,[r0,#0]            ;385  ; vk1072c_segi
000394  2812              CMP      r0,#0x12              ;385
000396  dbd3              BLT      |L1.832|
;;;392    			}
;;;393    		}
;;;394    		
;;;395    		Vk1072c_DisAll(0x0f);			//LCDȫ
000398  200f              MOVS     r0,#0xf
00039a  f7fffffe          BL       Vk1072c_DisAll
;;;396    		delay_nms(1000);					//ʱ1S
00039e  f44f707a          MOV      r0,#0x3e8
0003a2  f7fffffe          BL       delay_nms
;;;397    		for(vk1072c_segi=0;vk1072c_segi<VK1072c_SEGNUM;vk1072c_segi++)//seg
0003a6  2000              MOVS     r0,#0
0003a8  491e              LDR      r1,|L1.1060|
0003aa  7008              STRB     r0,[r1,#0]
0003ac  e027              B        |L1.1022|
                  |L1.942|
;;;398    		{
;;;399    			for(vk1072c_comi=0;vk1072c_comi<vk1072c_maxcom;vk1072c_comi++)//com
0003ae  2000              MOVS     r0,#0
0003b0  491d              LDR      r1,|L1.1064|
0003b2  7008              STRB     r0,[r1,#0]
0003b4  e018              B        |L1.1000|
                  |L1.950|
;;;400    			{
;;;401    				Vk1072c_DisDotOff(vk1072c_segtab[vk1072c_segi],vk1072c_comi);	//LCDر
0003b6  491d              LDR      r1,|L1.1068|
0003b8  4a1a              LDR      r2,|L1.1060|
0003ba  7812              LDRB     r2,[r2,#0]  ; vk1072c_segi
0003bc  5c88              LDRB     r0,[r1,r2]
0003be  491a              LDR      r1,|L1.1064|
0003c0  7809              LDRB     r1,[r1,#0]  ; vk1072c_comi
0003c2  f7fffffe          BL       Vk1072c_DisDotOff
;;;402    				delay_nms(300);				//ʱ300mS
0003c6  f44f7096          MOV      r0,#0x12c
0003ca  f7fffffe          BL       delay_nms
;;;403    				Vk1072c_DisDotOn(vk1072c_segtab[vk1072c_segi],vk1072c_comi); //LCD
0003ce  4917              LDR      r1,|L1.1068|
0003d0  4a14              LDR      r2,|L1.1060|
0003d2  7812              LDRB     r2,[r2,#0]  ; vk1072c_segi
0003d4  5c88              LDRB     r0,[r1,r2]
0003d6  4914              LDR      r1,|L1.1064|
0003d8  7809              LDRB     r1,[r1,#0]  ; vk1072c_comi
0003da  f7fffffe          BL       Vk1072c_DisDotOn
0003de  4812              LDR      r0,|L1.1064|
0003e0  7800              LDRB     r0,[r0,#0]            ;399  ; vk1072c_comi
0003e2  1c40              ADDS     r0,r0,#1              ;399
0003e4  4910              LDR      r1,|L1.1064|
0003e6  7008              STRB     r0,[r1,#0]            ;399
                  |L1.1000|
0003e8  480f              LDR      r0,|L1.1064|
0003ea  7800              LDRB     r0,[r0,#0]            ;399  ; vk1072c_comi
0003ec  490b              LDR      r1,|L1.1052|
0003ee  7809              LDRB     r1,[r1,#0]            ;399  ; vk1072c_maxcom
0003f0  4288              CMP      r0,r1                 ;399
0003f2  dbe0              BLT      |L1.950|
0003f4  480b              LDR      r0,|L1.1060|
0003f6  7800              LDRB     r0,[r0,#0]            ;397  ; vk1072c_segi
0003f8  1c40              ADDS     r0,r0,#1              ;397
0003fa  490a              LDR      r1,|L1.1060|
0003fc  7008              STRB     r0,[r1,#0]            ;397
                  |L1.1022|
0003fe  4809              LDR      r0,|L1.1060|
000400  7800              LDRB     r0,[r0,#0]            ;397  ; vk1072c_segi
000402  2812              CMP      r0,#0x12              ;397
000404  dbd3              BLT      |L1.942|
;;;404    			}
;;;405    		}
;;;406    		delay_nms(1000);					//ʱ1S
000406  f44f707a          MOV      r0,#0x3e8
00040a  f7fffffe          BL       delay_nms
                  |L1.1038|
00040e  e769              B        |L1.740|
;;;407    	}
;;;408    }
;;;409    /************************END OF FILE****/
                          ENDP

                  |L1.1040|
                          DCD      0x4000487c
                  |L1.1044|
                          DCD      vk1072c_addrbit
                  |L1.1048|
                          DCD      vk1072c_dispram
                  |L1.1052|
                          DCD      vk1072c_maxcom
                  |L1.1056|
                          DCD      0x40004040
                  |L1.1060|
                          DCD      vk1072c_segi
                  |L1.1064|
                          DCD      vk1072c_comi
                  |L1.1068|
                          DCD      vk1072c_segtab

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

                  vk1072c_dispram
                          %        32

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

                  vk1072c_segtab
000000  00010203          DCB      0x00,0x01,0x02,0x03
000004  04050d0e          DCB      0x04,0x05,0x0d,0x0e
000008  0f101112          DCB      0x0f,0x10,0x11,0x12
00000c  131a1b1c          DCB      0x13,0x1a,0x1b,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
                  vk1072c_addrbit
000021  06                DCB      0x06
                  vk1072c_segi
000022  00                DCB      0x00
                  vk1072c_comi
000023  00                DCB      0x00
                  vk1072c_maxcom
000024  00                DCB      0x00

;*** Start embedded assembler ***

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

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

 revsh r0, r0
 bx lr
	ENDP

;*** End   embedded assembler ***
