; generated by Component: ARM Compiler 5.05 update 2 (build 169) Tool: ArmCC [4d0f38]
; commandline ArmCC [--list --debug -c --asm --interleave -o.\obj\vk1629c_driver.o --asm_dir=.\lst\ --list_dir=.\lst\ --depend=.\obj\vk1629c_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\LED\VK1629ϵ\VK1629ϵп\VK1629C\VK1629C_TESTCODE\project\VK1629C_FUNC\Keil\RTE -IC:\Keil_v5\ARM\PACK\ARM\CMSIS\4.3.0\CMSIS\Include -D__UVISION_VERSION=515 -D_RTE_ --omf_browse=.\obj\vk1629c_driver.crf ..\led_driver\vk1629C_driver.c]
                          THUMB

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

                  VK1629C_delay_nus PROC
;;;31     *******************************************************************************/
;;;32     void  VK1629C_delay_nus(unsigned int n)	   
000000  e007              B        |L1.18|
                  |L1.2|
;;;33     {
;;;34     	unsigned char i;
;;;35     	while(n--)
;;;36     	{
;;;37     		i=10;
000002  210a              MOVS     r1,#0xa
;;;38     		while(i--)
000004  e000              B        |L1.8|
                  |L1.6|
;;;39     		{//nopָݵƬӦ޸
;;;40     			__nop();
000006  bf00              NOP      
                  |L1.8|
000008  000a              MOVS     r2,r1                 ;38
00000a  f1a10301          SUB      r3,r1,#1              ;38
00000e  b2d9              UXTB     r1,r3                 ;38
000010  d1f9              BNE      |L1.6|
                  |L1.18|
000012  0002              MOVS     r2,r0                 ;35
000014  f1a00001          SUB      r0,r0,#1              ;35
000018  d1f3              BNE      |L1.2|
;;;41     		}
;;;42     	}
;;;43     }	
00001a  4770              BX       lr
;;;44     /*******************************************************************************
                          ENDP

                  VK1629C_delayms PROC
;;;50     *******************************************************************************/
;;;51     void  VK1629C_delayms(unsigned long int n)
00001c  b510              PUSH     {r4,lr}
;;;52     {
00001e  4604              MOV      r4,r0
;;;53     	while(n--)
000020  e003              B        |L1.42|
                  |L1.34|
;;;54     	{
;;;55     		 VK1629C_delay_nus(1000);
000022  f44f707a          MOV      r0,#0x3e8
000026  f7fffffe          BL       VK1629C_delay_nus
                  |L1.42|
00002a  0020              MOVS     r0,r4                 ;53
00002c  f1a40401          SUB      r4,r4,#1              ;53
000030  d1f7              BNE      |L1.34|
;;;56     	}
;;;57     }
000032  bd10              POP      {r4,pc}
;;;58     /*******************************************************************************
                          ENDP

                  VK1629CWrite1BytetoIC PROC
;;;64     *******************************************************************************/
;;;65     void VK1629CWrite1BytetoIC(unsigned char data8)
000034  b530              PUSH     {r4,r5,lr}
;;;66     {
000036  4604              MOV      r4,r0
;;;67     	unsigned char i;
;;;68     	
;;;69     	VK1629C_STB_LOW;			//֤STBΪ͵ƽ֮ǰ˿ڵ״̬
000038  2000              MOVS     r0,#0
00003a  49cd              LDR      r1,|L1.880|
00003c  6008              STR      r0,[r1,#0]
;;;70     	for(i=0;i<8;i++)
00003e  2500              MOVS     r5,#0
000040  e01b              B        |L1.122|
                  |L1.66|
;;;71     	{
;;;72     		VK1629C_CLK_LOW;		//ȽCLK
000042  2000              MOVS     r0,#0
000044  49ca              LDR      r1,|L1.880|
000046  1f09              SUBS     r1,r1,#4
000048  6008              STR      r0,[r1,#0]
;;;73     		if((data8&0x01)!=0)
00004a  f0040001          AND      r0,r4,#1
00004e  b118              CBZ      r0,|L1.88|
;;;74     		{
;;;75     			VK1629C_DAT_HIGH;//Ҫ͵ݵĵλΪ1ѡDIOø
000050  2001              MOVS     r0,#1
000052  1f09              SUBS     r1,r1,#4
000054  6008              STR      r0,[r1,#0]
000056  e003              B        |L1.96|
                  |L1.88|
;;;76     		}
;;;77     		else
;;;78     		{
;;;79     			VK1629C_DAT_LOW;	//Ҫ͵ݵĵλΪ0ѡDIO
000058  2000              MOVS     r0,#0
00005a  49c5              LDR      r1,|L1.880|
00005c  3908              SUBS     r1,r1,#8
00005e  6008              STR      r0,[r1,#0]
                  |L1.96|
;;;80     		}
;;;81     		VK1629C_delay_nus(200);
000060  20c8              MOVS     r0,#0xc8
000062  f7fffffe          BL       VK1629C_delay_nus
;;;82     		VK1629C_CLK_HIGH;	//ʱӵ
000066  2001              MOVS     r0,#1
000068  49c1              LDR      r1,|L1.880|
00006a  1f09              SUBS     r1,r1,#4
00006c  6008              STR      r0,[r1,#0]
;;;83     		VK1629C_delay_nus(200);
00006e  20c8              MOVS     r0,#0xc8
000070  f7fffffe          BL       VK1629C_delay_nus
;;;84     		data8=data8>>1;		//׼һBIT
000074  1064              ASRS     r4,r4,#1
000076  1c68              ADDS     r0,r5,#1              ;70
000078  b2c5              UXTB     r5,r0                 ;70
                  |L1.122|
00007a  2d08              CMP      r5,#8                 ;70
00007c  dbe1              BLT      |L1.66|
;;;85     	
;;;86     	}//һֽں˳ѭ
;;;87     }
00007e  bd30              POP      {r4,r5,pc}
;;;88     
                          ENDP

                  VK1629CRead1BytefromIC PROC
;;;95     *******************************************************************************/
;;;96     unsigned char VK1629CRead1BytefromIC(void)
000080  b530              PUSH     {r4,r5,lr}
;;;97     {
;;;98     	unsigned char i,k=0;//iѭkʱ
000082  2400              MOVS     r4,#0
;;;99     
;;;100    	VK1629C_DAT_HIGH;	//ͷDIOΪ
000084  2001              MOVS     r0,#1
000086  49ba              LDR      r1,|L1.880|
000088  3908              SUBS     r1,r1,#8
00008a  6008              STR      r0,[r1,#0]
;;;101    	VK1629C_STB_LOW;	//֤STBΪ͵ƽ֮ǰ˿ڵ״̬
00008c  2000              MOVS     r0,#0
00008e  49b8              LDR      r1,|L1.880|
000090  6008              STR      r0,[r1,#0]
;;;102    	for(i=0;i<8;i++)
000092  2500              MOVS     r5,#0
000094  e01a              B        |L1.204|
                  |L1.150|
;;;103    	{
;;;104    		VK1629C_CLK_LOW;//ȽCLK
000096  2000              MOVS     r0,#0
000098  49b5              LDR      r1,|L1.880|
00009a  1f09              SUBS     r1,r1,#4
00009c  6008              STR      r0,[r1,#0]
;;;105    		VK1629C_delay_nus(200);
00009e  20c8              MOVS     r0,#0xc8
0000a0  f7fffffe          BL       VK1629C_delay_nus
;;;106    		k=k>>1;
0000a4  1064              ASRS     r4,r4,#1
;;;107    		if(VK1629C_DIO_IO==0)
0000a6  48b2              LDR      r0,|L1.880|
0000a8  3808              SUBS     r0,r0,#8
0000aa  6800              LDR      r0,[r0,#0]
0000ac  b910              CBNZ     r0,|L1.180|
;;;108    		{
;;;109    			k=k&0x7f;			//DIOΪ͵ƽkλ塰0λֲ
0000ae  f004047f          AND      r4,r4,#0x7f
0000b2  e002              B        |L1.186|
                  |L1.180|
;;;110    		}
;;;111    		else
;;;112    		{
;;;113    			k=(k|0x80)&0xff;//DIOΪߵƽkλá1λֲ
0000b4  b2e0              UXTB     r0,r4
0000b6  f0400480          ORR      r4,r0,#0x80
                  |L1.186|
;;;114    		}
;;;115    		VK1629C_CLK_HIGH;	//ʱӵ
0000ba  2001              MOVS     r0,#1
0000bc  49ac              LDR      r1,|L1.880|
0000be  1f09              SUBS     r1,r1,#4
0000c0  6008              STR      r0,[r1,#0]
;;;116    		VK1629C_delay_nus(200);
0000c2  20c8              MOVS     r0,#0xc8
0000c4  f7fffffe          BL       VK1629C_delay_nus
0000c8  1c68              ADDS     r0,r5,#1              ;102
0000ca  b2c5              UXTB     r5,r0                 ;102
                  |L1.204|
0000cc  2d08              CMP      r5,#8                 ;102
0000ce  dbe2              BLT      |L1.150|
;;;117    	}//һֽں˳ѭ
;;;118    	
;;;119    	return(k);//ض1ֽ	
0000d0  4620              MOV      r0,r4
;;;120    }
0000d2  bd30              POP      {r4,r5,pc}
;;;121    /*******************************************************************************
                          ENDP

                  VK1629C_Disp_AutoAdd1Addr PROC
;;;129    *******************************************************************************/
;;;130    void VK1629C_Disp_AutoAdd1Addr(unsigned char addr,unsigned char* databuf, unsigned char num)
0000d4  b5f0              PUSH     {r4-r7,lr}
;;;131    {
0000d6  4605              MOV      r5,r0
0000d8  460c              MOV      r4,r1
0000da  4616              MOV      r6,r2
;;;132    	unsigned char i;//iƱҪٸֽʾ
;;;133    	
;;;134    	VK1629C_STB_HIGH;//ͨѶʼǰͨѶ˿ȫʼΪ1	
0000dc  2001              MOVS     r0,#1
0000de  49a4              LDR      r1,|L1.880|
0000e0  6008              STR      r0,[r1,#0]
;;;135    	VK1629CWrite1BytetoIC(VK1629C_WRDTA_AUTOADD1ADDR);//òõַԶ1ʽдʾݣ
0000e2  2040              MOVS     r0,#0x40
0000e4  f7fffffe          BL       VK1629CWrite1BytetoIC
;;;136    	VK1629C_STB_HIGH;//ҪSTBá1
0000e8  2001              MOVS     r0,#1
0000ea  49a1              LDR      r1,|L1.880|
0000ec  6008              STR      r0,[r1,#0]
;;;137    	VK1629CWrite1BytetoIC(VK1629C_STARTADDR+addr);//ʼַ
0000ee  f10501c0          ADD      r1,r5,#0xc0
0000f2  b2c8              UXTB     r0,r1
0000f4  f7fffffe          BL       VK1629CWrite1BytetoIC
;;;138    	//ַ󣬡STBΪ0Ҫʾ
;;;139    	for(i=0;i<num;i++)
0000f8  2700              MOVS     r7,#0
0000fa  e005              B        |L1.264|
                  |L1.252|
;;;140    	{
;;;141    		VK1629CWrite1BytetoIC(*databuf++);//ʾݹУSTBһֱΪ0
0000fc  f8140b01          LDRB     r0,[r4],#1
000100  f7fffffe          BL       VK1629CWrite1BytetoIC
000104  1c78              ADDS     r0,r7,#1              ;139
000106  b2c7              UXTB     r7,r0                 ;139
                  |L1.264|
000108  42b7              CMP      r7,r6                 ;139
00010a  dbf7              BLT      |L1.252|
;;;142    	}
;;;143    	VK1629C_STB_HIGH;//еʾݺ14BYTE󣬽STBá1
00010c  2001              MOVS     r0,#1
00010e  4998              LDR      r1,|L1.880|
000110  6008              STR      r0,[r1,#0]
;;;144    	VK1629CWrite1BytetoIC(VK1629C_DISP_ON|VK1629C_PDUTY_12_16);//ʾ
000112  208d              MOVS     r0,#0x8d
000114  f7fffffe          BL       VK1629CWrite1BytetoIC
;;;145    	VK1629C_STB_HIGH;//ʾ󽫡STBá1
000118  2001              MOVS     r0,#1
00011a  4995              LDR      r1,|L1.880|
00011c  6008              STR      r0,[r1,#0]
;;;146    }
00011e  bdf0              POP      {r4-r7,pc}
;;;147    /*******************************************************************************
                          ENDP

                  VK1629C_Disp_FixedAddr PROC
;;;153    *******************************************************************************/
;;;154    void VK1629C_Disp_FixedAddr(unsigned char addr, unsigned char data8)
000120  b530              PUSH     {r4,r5,lr}
;;;155    {
000122  4604              MOV      r4,r0
000124  460d              MOV      r5,r1
;;;156    	VK1629C_STB_HIGH;//ͨѶʼǰͨѶ˿ȫʼΪ1	
000126  2001              MOVS     r0,#1
000128  4991              LDR      r1,|L1.880|
00012a  6008              STR      r0,[r1,#0]
;;;157    	VK1629CWrite1BytetoIC(VK1629C_WRDTA_FIXEDADDR);//òù̶ַдʾݣ
00012c  2044              MOVS     r0,#0x44
00012e  f7fffffe          BL       VK1629CWrite1BytetoIC
;;;158    	VK1629C_STB_HIGH;//ҪSTBá1
000132  2001              MOVS     r0,#1
000134  498e              LDR      r1,|L1.880|
000136  6008              STR      r0,[r1,#0]
;;;159    	VK1629CWrite1BytetoIC(VK1629C_STARTADDR+addr);//ʾݶӦĵַ
000138  f10401c0          ADD      r1,r4,#0xc0
00013c  b2c8              UXTB     r0,r1
00013e  f7fffffe          BL       VK1629CWrite1BytetoIC
;;;160    	//ַ󣬡STBΪ0Ҫʾ
;;;161    	VK1629CWrite1BytetoIC(data8);//֡STB=01BYTEʾ
000142  4628              MOV      r0,r5
000144  f7fffffe          BL       VK1629CWrite1BytetoIC
;;;162    	VK1629C_STB_HIGH;//ʾݺ󽫡STBá1
000148  2001              MOVS     r0,#1
00014a  4989              LDR      r1,|L1.880|
00014c  6008              STR      r0,[r1,#0]
;;;163    	VK1629CWrite1BytetoIC(VK1629C_DISP_ON|VK1629C_PDUTY_12_16);//ʾ
00014e  208d              MOVS     r0,#0x8d
000150  f7fffffe          BL       VK1629CWrite1BytetoIC
;;;164    	VK1629C_STB_HIGH;//ʾ󽫡STBá1
000154  2001              MOVS     r0,#1
000156  4986              LDR      r1,|L1.880|
000158  6008              STR      r0,[r1,#0]
;;;165    }
00015a  bd30              POP      {r4,r5,pc}
;;;166    	
                          ENDP

                  VK1629C_KeyScan PROC
;;;173    *******************************************************************************/
;;;174    unsigned char VK1629C_KeyScan(void)
00015c  b510              PUSH     {r4,lr}
;;;175    {
;;;176    	unsigned char i;
;;;177    	
;;;178    	VK1629C_STB_HIGH;
00015e  2001              MOVS     r0,#1
000160  4983              LDR      r1,|L1.880|
000162  6008              STR      r0,[r1,#0]
;;;179    	VK1629CWrite1BytetoIC(VK1629C_CMD_READKEY);//Ϊ
000164  2042              MOVS     r0,#0x42
000166  f7fffffe          BL       VK1629CWrite1BytetoIC
;;;180    	//STBΪ0ֵ
;;;181    	//ļֵMCUļĴ
;;;182    	//ICͺ˳ɶȶ
;;;183    	for(i=0;i<4;i++)
00016a  2400              MOVS     r4,#0
00016c  e005              B        |L1.378|
                  |L1.366|
;;;184    	{
;;;185    		vk1629C_key[i]=VK1629CRead1BytefromIC();
00016e  f7fffffe          BL       VK1629CRead1BytefromIC
000172  4980              LDR      r1,|L1.884|
000174  5508              STRB     r0,[r1,r4]
000176  1c60              ADDS     r0,r4,#1              ;183
000178  b2c4              UXTB     r4,r0                 ;183
                  |L1.378|
00017a  2c04              CMP      r4,#4                 ;183
00017c  dbf7              BLT      |L1.366|
;;;186    	}
;;;187    	VK1629C_STB_HIGH;
00017e  2001              MOVS     r0,#1
000180  497b              LDR      r1,|L1.880|
000182  6008              STR      r0,[r1,#0]
;;;188    	
;;;189    	return 0;//STBá1
000184  2000              MOVS     r0,#0
;;;190    }
000186  bd10              POP      {r4,pc}
;;;191    /*******************************************************************************
                          ENDP

                  VK1629C_Init PROC
;;;197    *******************************************************************************/ 
;;;198    void VK1629C_Init(void)    
000188  b510              PUSH     {r4,lr}
;;;199    {   
;;;200    	GPIO_SetMode(VK1629C_STB_PORT, VK1629C_STB_PIN, GPIO_MODE_OUTPUT);
00018a  2201              MOVS     r2,#1
00018c  0311              LSLS     r1,r2,#12
00018e  487a              LDR      r0,|L1.888|
000190  f7fffffe          BL       GPIO_SetMode
;;;201    	GPIO_SetMode(VK1629C_CLK_PORT, VK1629C_CLK_PIN, GPIO_MODE_OUTPUT);
000194  2201              MOVS     r2,#1
000196  02d1              LSLS     r1,r2,#11
000198  4877              LDR      r0,|L1.888|
00019a  f7fffffe          BL       GPIO_SetMode
;;;202    	GPIO_SetMode(VK1629C_DIO_PORT, VK1629C_DIO_PIN, GPIO_MODE_QUASI);
00019e  2203              MOVS     r2,#3
0001a0  f44f6180          MOV      r1,#0x400
0001a4  4874              LDR      r0,|L1.888|
0001a6  f7fffffe          BL       GPIO_SetMode
;;;203    	
;;;204    	VK1629C_STB_HIGH;                
0001aa  2001              MOVS     r0,#1
0001ac  4970              LDR      r1,|L1.880|
0001ae  6008              STR      r0,[r1,#0]
;;;205    	VK1629C_CLK_HIGH;   
0001b0  1f09              SUBS     r1,r1,#4
0001b2  6008              STR      r0,[r1,#0]
;;;206    	VK1629C_DAT_HIGH;
0001b4  1f09              SUBS     r1,r1,#4
0001b6  6008              STR      r0,[r1,#0]
;;;207    }  
0001b8  bd10              POP      {r4,pc}
;;;208    /*******************************************************************************
                          ENDP

                  VK1629C_disAll PROC
;;;214    *******************************************************************************/ 
;;;215    void VK1629C_disAll(unsigned char dat) 
0001ba  b530              PUSH     {r4,r5,lr}
;;;216    {
0001bc  4605              MOV      r5,r0
;;;217      unsigned char i;
;;;218    	
;;;219    	for(i=0;i<16;i++)
0001be  2400              MOVS     r4,#0
0001c0  e003              B        |L1.458|
                  |L1.450|
;;;220    	{
;;;221    		vk1629C_dispram[i]=dat;
0001c2  486e              LDR      r0,|L1.892|
0001c4  5505              STRB     r5,[r0,r4]
0001c6  1c60              ADDS     r0,r4,#1              ;219
0001c8  b2c4              UXTB     r4,r0                 ;219
                  |L1.458|
0001ca  2c10              CMP      r4,#0x10              ;219
0001cc  dbf9              BLT      |L1.450|
;;;222    	}
;;;223    	VK1629C_Disp_AutoAdd1Addr(0,vk1629C_dispram,16);
0001ce  2210              MOVS     r2,#0x10
0001d0  496a              LDR      r1,|L1.892|
0001d2  2000              MOVS     r0,#0
0001d4  f7fffffe          BL       VK1629C_Disp_AutoAdd1Addr
;;;224    }	
0001d8  bd30              POP      {r4,r5,pc}
;;;225    
                          ENDP

                  VK1629C_DisDotOn PROC
;;;233    *******************************************************************************/
;;;234    void VK1629C_DisDotOn(unsigned char seg,unsigned char grid)
0001da  b5f8              PUSH     {r3-r7,lr}
;;;235    {
0001dc  4605              MOV      r5,r0
0001de  460c              MOV      r4,r1
;;;236    	unsigned char addrbyte,addrbit,tempdat;
;;;237    	
;;;238    	if (seg<8)
0001e0  2d08              CMP      r5,#8
0001e2  da05              BGE      |L1.496|
;;;239    	{
;;;240    	  addrbyte=grid*2;
0001e4  0660              LSLS     r0,r4,#25
0001e6  0e06              LSRS     r6,r0,#24
;;;241    	  addrbit=(1<<seg);
0001e8  2001              MOVS     r0,#1
0001ea  40a8              LSLS     r0,r0,r5
0001ec  b2c7              UXTB     r7,r0
0001ee  e008              B        |L1.514|
                  |L1.496|
;;;242    	}
;;;243    	else
;;;244    	{
;;;245    		addrbyte=grid*2+1;
0001f0  2001              MOVS     r0,#1
0001f2  eb000044          ADD      r0,r0,r4,LSL #1
0001f6  b2c6              UXTB     r6,r0
;;;246    	  addrbit=(1<<(seg-8));
0001f8  f1a50008          SUB      r0,r5,#8
0001fc  2101              MOVS     r1,#1
0001fe  4081              LSLS     r1,r1,r0
000200  b2cf              UXTB     r7,r1
                  |L1.514|
;;;247    	}
;;;248    	tempdat=vk1629C_dispram[grid]|addrbit;
000202  485e              LDR      r0,|L1.892|
000204  5d00              LDRB     r0,[r0,r4]
000206  4338              ORRS     r0,r0,r7
000208  9000              STR      r0,[sp,#0]
;;;249    	vk1629C_dispram[grid]=tempdat;
00020a  f89d0000          LDRB     r0,[sp,#0]
00020e  495b              LDR      r1,|L1.892|
000210  5508              STRB     r0,[r1,r4]
;;;250    	VK1629C_Disp_AutoAdd1Addr(addrbyte,&tempdat,1);
000212  2201              MOVS     r2,#1
000214  4669              MOV      r1,sp
000216  4630              MOV      r0,r6
000218  f7fffffe          BL       VK1629C_Disp_AutoAdd1Addr
;;;251    }
00021c  bdf8              POP      {r3-r7,pc}
;;;252    /*******************************************************************************
                          ENDP

                  VK1629C_DisDotOff PROC
;;;259    *******************************************************************************/
;;;260    void VK1629C_DisDotOff(unsigned char seg,unsigned char grid)
00021e  b5f8              PUSH     {r3-r7,lr}
;;;261    {
000220  4605              MOV      r5,r0
000222  460c              MOV      r4,r1
;;;262    	unsigned char addrbyte,addrbit,tempdat;
;;;263    	
;;;264    	if (seg<8)
000224  2d08              CMP      r5,#8
000226  da05              BGE      |L1.564|
;;;265    	{
;;;266    	  addrbyte=grid*2;
000228  0660              LSLS     r0,r4,#25
00022a  0e06              LSRS     r6,r0,#24
;;;267    	  addrbit=(1<<seg);
00022c  2001              MOVS     r0,#1
00022e  40a8              LSLS     r0,r0,r5
000230  b2c7              UXTB     r7,r0
000232  e008              B        |L1.582|
                  |L1.564|
;;;268    	}
;;;269    	else
;;;270    	{
;;;271    		addrbyte=grid*2+1;
000234  2001              MOVS     r0,#1
000236  eb000044          ADD      r0,r0,r4,LSL #1
00023a  b2c6              UXTB     r6,r0
;;;272    	  addrbit=(1<<(seg-8));
00023c  f1a50008          SUB      r0,r5,#8
000240  2101              MOVS     r1,#1
000242  4081              LSLS     r1,r1,r0
000244  b2cf              UXTB     r7,r1
                  |L1.582|
;;;273    	}
;;;274    	tempdat=vk1629C_dispram[grid]&(~addrbit);
000246  484d              LDR      r0,|L1.892|
000248  5d00              LDRB     r0,[r0,r4]
00024a  43b8              BICS     r0,r0,r7
00024c  9000              STR      r0,[sp,#0]
;;;275    	vk1629C_dispram[grid]=tempdat;
00024e  f89d0000          LDRB     r0,[sp,#0]
000252  494a              LDR      r1,|L1.892|
000254  5508              STRB     r0,[r1,r4]
;;;276    	VK1629C_Disp_AutoAdd1Addr(addrbyte,&tempdat,1);	
000256  2201              MOVS     r2,#1
000258  4669              MOV      r1,sp
00025a  4630              MOV      r0,r6
00025c  f7fffffe          BL       VK1629C_Disp_AutoAdd1Addr
;;;277    }
000260  bdf8              POP      {r3-r7,pc}
;;;278    /*******************************************************************************
                          ENDP

                  VK1629C_Main PROC
;;;284    *******************************************************************************/ 
;;;285    void VK1629C_Main(void)
000262  f7fffffe          BL       VK1629C_Init
;;;286    {  
;;;287    	VK1629C_Init();
;;;288    	VK1629C_disAll(0x00);
000266  2000              MOVS     r0,#0
000268  f7fffffe          BL       VK1629C_disAll
;;;289    	
;;;290    	while(1)
00026c  e07f              B        |L1.878|
                  |L1.622|
;;;291    	{
;;;292    		VK1629C_disAll(0xff);	 
00026e  20ff              MOVS     r0,#0xff
000270  f7fffffe          BL       VK1629C_disAll
;;;293    		VK1629C_delayms(1500); 
000274  f24050dc          MOV      r0,#0x5dc
000278  f7fffffe          BL       VK1629C_delayms
;;;294    		VK1629C_disAll(0x00);		
00027c  2000              MOVS     r0,#0
00027e  f7fffffe          BL       VK1629C_disAll
;;;295    		VK1629C_delayms(1500);
000282  f24050dc          MOV      r0,#0x5dc
000286  f7fffffe          BL       VK1629C_delayms
;;;296    		
;;;297    		VK1629C_disAll(0xAA);	 
00028a  20aa              MOVS     r0,#0xaa
00028c  f7fffffe          BL       VK1629C_disAll
;;;298    		VK1629C_delayms(1500); 
000290  f24050dc          MOV      r0,#0x5dc
000294  f7fffffe          BL       VK1629C_delayms
;;;299    		VK1629C_disAll(0x55);		
000298  2055              MOVS     r0,#0x55
00029a  f7fffffe          BL       VK1629C_disAll
;;;300    		VK1629C_delayms(1500);
00029e  f24050dc          MOV      r0,#0x5dc
0002a2  f7fffffe          BL       VK1629C_delayms
;;;301    		
;;;302    		VK1629C_disAll(0x00);		
0002a6  2000              MOVS     r0,#0
0002a8  f7fffffe          BL       VK1629C_disAll
;;;303    		VK1629C_delayms(500);
0002ac  f44f70fa          MOV      r0,#0x1f4
0002b0  f7fffffe          BL       VK1629C_delayms
;;;304    			for(vk1629C_segi=0;vk1629C_segi<15;vk1629C_segi++)//seg
0002b4  2000              MOVS     r0,#0
0002b6  4932              LDR      r1,|L1.896|
0002b8  7008              STRB     r0,[r1,#0]
0002ba  e020              B        |L1.766|
                  |L1.700|
;;;305    		{
;;;306    			for(vk1629C_gridi=0;vk1629C_gridi<8;vk1629C_gridi++)//com
0002bc  2000              MOVS     r0,#0
0002be  4931              LDR      r1,|L1.900|
0002c0  7008              STRB     r0,[r1,#0]
0002c2  e013              B        |L1.748|
                  |L1.708|
;;;307    			{
;;;308    				VK1629C_DisDotOn(vk1629C_segi,vk1629C_gridi);	//LED
0002c4  482f              LDR      r0,|L1.900|
0002c6  7801              LDRB     r1,[r0,#0]  ; vk1629C_gridi
0002c8  482d              LDR      r0,|L1.896|
0002ca  7800              LDRB     r0,[r0,#0]  ; vk1629C_segi
0002cc  f7fffffe          BL       VK1629C_DisDotOn
;;;309    				VK1629C_delayms(200);				//ʱ200mS
0002d0  20c8              MOVS     r0,#0xc8
0002d2  f7fffffe          BL       VK1629C_delayms
;;;310    				VK1629C_DisDotOff(vk1629C_segi,vk1629C_gridi);//LEDر
0002d6  482b              LDR      r0,|L1.900|
0002d8  7801              LDRB     r1,[r0,#0]  ; vk1629C_gridi
0002da  4829              LDR      r0,|L1.896|
0002dc  7800              LDRB     r0,[r0,#0]  ; vk1629C_segi
0002de  f7fffffe          BL       VK1629C_DisDotOff
0002e2  4828              LDR      r0,|L1.900|
0002e4  7800              LDRB     r0,[r0,#0]            ;306  ; vk1629C_gridi
0002e6  1c40              ADDS     r0,r0,#1              ;306
0002e8  4926              LDR      r1,|L1.900|
0002ea  7008              STRB     r0,[r1,#0]            ;306
                  |L1.748|
0002ec  4825              LDR      r0,|L1.900|
0002ee  7800              LDRB     r0,[r0,#0]            ;306  ; vk1629C_gridi
0002f0  2808              CMP      r0,#8                 ;306
0002f2  dbe7              BLT      |L1.708|
0002f4  4822              LDR      r0,|L1.896|
0002f6  7800              LDRB     r0,[r0,#0]            ;304  ; vk1629C_segi
0002f8  1c40              ADDS     r0,r0,#1              ;304
0002fa  4921              LDR      r1,|L1.896|
0002fc  7008              STRB     r0,[r1,#0]            ;304
                  |L1.766|
0002fe  4820              LDR      r0,|L1.896|
000300  7800              LDRB     r0,[r0,#0]            ;304  ; vk1629C_segi
000302  280f              CMP      r0,#0xf               ;304
000304  dbda              BLT      |L1.700|
;;;311    			}
;;;312    		}
;;;313    		VK1629C_disAll(0xFF);		
000306  20ff              MOVS     r0,#0xff
000308  f7fffffe          BL       VK1629C_disAll
;;;314    		VK1629C_delayms(500);
00030c  f44f70fa          MOV      r0,#0x1f4
000310  f7fffffe          BL       VK1629C_delayms
;;;315    			for(vk1629C_segi=0;vk1629C_segi<15;vk1629C_segi++)//seg
000314  2000              MOVS     r0,#0
000316  491a              LDR      r1,|L1.896|
000318  7008              STRB     r0,[r1,#0]
00031a  e020              B        |L1.862|
                  |L1.796|
;;;316    		{
;;;317    			for(vk1629C_gridi=0;vk1629C_gridi<8;vk1629C_gridi++)//com
00031c  2000              MOVS     r0,#0
00031e  4919              LDR      r1,|L1.900|
000320  7008              STRB     r0,[r1,#0]
000322  e013              B        |L1.844|
                  |L1.804|
;;;318    			{
;;;319    				VK1629C_DisDotOff(vk1629C_segi,vk1629C_gridi);	//LEDر
000324  4817              LDR      r0,|L1.900|
000326  7801              LDRB     r1,[r0,#0]  ; vk1629C_gridi
000328  4815              LDR      r0,|L1.896|
00032a  7800              LDRB     r0,[r0,#0]  ; vk1629C_segi
00032c  f7fffffe          BL       VK1629C_DisDotOff
;;;320    				VK1629C_delayms(200);				//ʱ200mS
000330  20c8              MOVS     r0,#0xc8
000332  f7fffffe          BL       VK1629C_delayms
;;;321    				VK1629C_DisDotOn(vk1629C_segi,vk1629C_gridi);//LED
000336  4813              LDR      r0,|L1.900|
000338  7801              LDRB     r1,[r0,#0]  ; vk1629C_gridi
00033a  4811              LDR      r0,|L1.896|
00033c  7800              LDRB     r0,[r0,#0]  ; vk1629C_segi
00033e  f7fffffe          BL       VK1629C_DisDotOn
000342  4810              LDR      r0,|L1.900|
000344  7800              LDRB     r0,[r0,#0]            ;317  ; vk1629C_gridi
000346  1c40              ADDS     r0,r0,#1              ;317
000348  490e              LDR      r1,|L1.900|
00034a  7008              STRB     r0,[r1,#0]            ;317
                  |L1.844|
00034c  480d              LDR      r0,|L1.900|
00034e  7800              LDRB     r0,[r0,#0]            ;317  ; vk1629C_gridi
000350  2808              CMP      r0,#8                 ;317
000352  dbe7              BLT      |L1.804|
000354  480a              LDR      r0,|L1.896|
000356  7800              LDRB     r0,[r0,#0]            ;315  ; vk1629C_segi
000358  1c40              ADDS     r0,r0,#1              ;315
00035a  4909              LDR      r1,|L1.896|
00035c  7008              STRB     r0,[r1,#0]            ;315
                  |L1.862|
00035e  4808              LDR      r0,|L1.896|
000360  7800              LDRB     r0,[r0,#0]            ;315  ; vk1629C_segi
000362  280f              CMP      r0,#0xf               ;315
000364  dbda              BLT      |L1.796|
;;;322    			}
;;;323    		}
;;;324    		VK1629C_disAll(0x00);
000366  2000              MOVS     r0,#0
000368  f7fffffe          BL       VK1629C_disAll
;;;325    		//ԣʱѭ
;;;326    //		VK1629C_KeyScan();
;;;327    //		VK1629C_delayms(20);
;;;328    	
;;;329    		
;;;330    		__nop();
00036c  bf00              NOP      
                  |L1.878|
00036e  e77e              B        |L1.622|
;;;331    	}
;;;332    }    
;;;333    /************************END OF FILE****/
                          ENDP

                  |L1.880|
                          DCD      0x40004870
                  |L1.884|
                          DCD      vk1629C_key
                  |L1.888|
                          DCD      0x40004040
                  |L1.892|
                          DCD      vk1629C_dispram
                  |L1.896|
                          DCD      vk1629C_segi
                  |L1.900|
                          DCD      vk1629C_gridi

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

                  vk1629C_dispram
                          %        16

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

                  vk1629C_key
                          DCDU     0x00000000
                  vk1629C_segi
000004  00                DCB      0x00
                  vk1629C_gridi
000005  00                DCB      0x00

;*** Start embedded assembler ***

#line 1 "..\\led_driver\\vk1629C_driver.c"
	AREA ||.rev16_text||, CODE
	THUMB
	EXPORT |__asm___16_vk1629C_driver_c_37aab6d6____REV16|
#line 114 "..\\..\\..\\Library\\CMSIS\\Include\\core_cmInstr.h"
|__asm___16_vk1629C_driver_c_37aab6d6____REV16| PROC
#line 115

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

 revsh r0, r0
 bx lr
	ENDP

;*** End   embedded assembler ***
