; generated by Component: ARM Compiler 5.06 update 6 (build 750) Tool: ArmCC [4d3637]
; commandline ArmCC [--list --debug -c --asm --interleave -o.\obj\csb.o --asm_dir=.\list\ --list_dir=.\list\ --depend=.\obj\csb.d --cpu=Cortex-M3 --apcs=interwork -O0 --diag_suppress=9931 -I.\FWlib\inc -I.\user -I.\CM3 -I.\dmp -I.\RTE\_STM32-FD -If:\Users\Administrator\AppData\Local\Arm\Packs\ARM\CMSIS\5.7.0\CMSIS\Core\Include -If:\Users\Administrator\AppData\Local\Arm\Packs\Keil\STM32F1xx_DFP\2.4.1\Device\Include -D__MICROLIB -D__UVISION_VERSION=530 -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_STDPERIPH_DRIVER -DSTM32F10X_MD --omf_browse=.\obj\csb.crf user\csb.c]
                          THUMB

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

                  csb_Configuration PROC
;;;10     ****************************************************************************/  
;;;11     void csb_Configuration(void)
000000  b508              PUSH     {r3,lr}
;;;12     {
;;;13       GPIO_InitTypeDef GPIO_InitStructure;
;;;14       	
;;;15       GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;		   			 //Trig
000002  f44f7000          MOV      r0,#0x200
000006  f8ad0000          STRH     r0,[sp,#0]
;;;16       GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;			 //ͨģʽ
00000a  2010              MOVS     r0,#0x10
00000c  f88d0003          STRB     r0,[sp,#3]
;;;17       GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;			 //ģʽٶ50MHz
000010  2003              MOVS     r0,#3
000012  f88d0002          STRB     r0,[sp,#2]
;;;18       GPIO_Init(GPIOB, &GPIO_InitStructure); 
000016  4669              MOV      r1,sp
000018  483b              LDR      r0,|L1.264|
00001a  f7fffffe          BL       GPIO_Init
;;;19     
;;;20       GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;		             //Echo
00001e  2001              MOVS     r0,#1
000020  f8ad0000          STRH     r0,[sp,#0]
;;;21       GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;		 //ͨģʽ
000024  2004              MOVS     r0,#4
000026  f88d0003          STRB     r0,[sp,#3]
;;;22       GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;			 //ģʽٶ50MHz
00002a  2003              MOVS     r0,#3
00002c  f88d0002          STRB     r0,[sp,#2]
;;;23       GPIO_Init(GPIOB, &GPIO_InitStructure); 
000030  4669              MOV      r1,sp
000032  4835              LDR      r0,|L1.264|
000034  f7fffffe          BL       GPIO_Init
;;;24     }
000038  bd08              POP      {r3,pc}
;;;25     
                          ENDP

                  DIS_csb PROC
;;;35     ****************************************************************************/ 
;;;36     void DIS_csb(void){
00003a  b510              PUSH     {r4,lr}
;;;37       LCD_P12x24Str_f(2,0,"Distance: ");	     //ʾ
00003c  a233              ADR      r2,|L1.268|
00003e  2100              MOVS     r1,#0
000040  2002              MOVS     r0,#2
000042  f7fffffe          BL       LCD_P12x24Str_f
;;;38       if(distance<10) LCD_P24x40Str(24,3,"  cm");
000046  4834              LDR      r0,|L1.280|
000048  6800              LDR      r0,[r0,#0]  ; distance
00004a  280a              CMP      r0,#0xa
00004c  d205              BCS      |L1.90|
00004e  a233              ADR      r2,|L1.284|
000050  2103              MOVS     r1,#3
000052  2018              MOVS     r0,#0x18
000054  f7fffffe          BL       LCD_P24x40Str
000058  e00e              B        |L1.120|
                  |L1.90|
;;;39       else if(distance<100) LCD_P24x40Str(48,3," cm"); 
00005a  482f              LDR      r0,|L1.280|
00005c  6800              LDR      r0,[r0,#0]  ; distance
00005e  2864              CMP      r0,#0x64
000060  d205              BCS      |L1.110|
000062  a230              ADR      r2,|L1.292|
000064  2103              MOVS     r1,#3
000066  2030              MOVS     r0,#0x30
000068  f7fffffe          BL       LCD_P24x40Str
00006c  e004              B        |L1.120|
                  |L1.110|
;;;40       else LCD_P24x40Str(72,3,"cm");  
00006e  a22e              ADR      r2,|L1.296|
000070  2103              MOVS     r1,#3
000072  2048              MOVS     r0,#0x48
000074  f7fffffe          BL       LCD_P24x40Str
                  |L1.120|
;;;41       if(csb_flag==1)LCD_P24x40Str(0,3,dis_str_distance); 
000078  482c              LDR      r0,|L1.300|
00007a  6800              LDR      r0,[r0,#0]  ; csb_flag
00007c  2801              CMP      r0,#1
00007e  d105              BNE      |L1.140|
000080  4a2b              LDR      r2,|L1.304|
000082  2103              MOVS     r1,#3
000084  2000              MOVS     r0,#0
000086  f7fffffe          BL       LCD_P24x40Str
00008a  e004              B        |L1.150|
                  |L1.140|
;;;42       else LCD_P24x40Str(0,3,"0  "); 
00008c  a229              ADR      r2,|L1.308|
00008e  2103              MOVS     r1,#3
000090  2000              MOVS     r0,#0
000092  f7fffffe          BL       LCD_P24x40Str
                  |L1.150|
;;;43     }
000096  bd10              POP      {r4,pc}
;;;44     
                          ENDP

                  csb_distance PROC
;;;52     ****************************************************************************/ 
;;;53     void csb_distance(void){
000098  b510              PUSH     {r4,lr}
;;;54       if(csb_flag==1){
00009a  4824              LDR      r0,|L1.300|
00009c  6800              LDR      r0,[r0,#0]  ; csb_flag
00009e  2801              CMP      r0,#1
0000a0  d12e              BNE      |L1.256|
;;;55       	delay_ms(10);	                    //ʱ10ms   
0000a2  200a              MOVS     r0,#0xa
0000a4  f7fffffe          BL       delay_ms
;;;56       	Trig_H 
0000a8  f44f7100          MOV      r1,#0x200
0000ac  4816              LDR      r0,|L1.264|
0000ae  f7fffffe          BL       GPIO_SetBits
;;;57       	delay_ms(1);	                        //ʱ1ms
0000b2  2001              MOVS     r0,#1
0000b4  f7fffffe          BL       delay_ms
;;;58       	Trig_L  
0000b8  f44f7100          MOV      r1,#0x200
0000bc  4812              LDR      r0,|L1.264|
0000be  f7fffffe          BL       GPIO_ResetBits
;;;59       	while(Echo==0);		 	  	 	  
0000c2  bf00              NOP      
                  |L1.196|
0000c4  2101              MOVS     r1,#1
0000c6  4810              LDR      r0,|L1.264|
0000c8  f7fffffe          BL       GPIO_ReadInputDataBit
0000cc  2800              CMP      r0,#0
0000ce  d0f9              BEQ      |L1.196|
;;;60       	ct=0;		 					
0000d0  2000              MOVS     r0,#0
0000d2  4919              LDR      r1,|L1.312|
0000d4  6008              STR      r0,[r1,#0]  ; ct
;;;61       	while(Echo==1);						  //жECHOߣʼʱʱ
0000d6  bf00              NOP      
                  |L1.216|
0000d8  2101              MOVS     r1,#1
0000da  480b              LDR      r0,|L1.264|
0000dc  f7fffffe          BL       GPIO_ReadInputDataBit
0000e0  2801              CMP      r0,#1
0000e2  d0f9              BEQ      |L1.216|
;;;62       	distan[sample_ct]= ((ct*68)/100);		         //ݼĶʱʱϰľ   
0000e4  4814              LDR      r0,|L1.312|
0000e6  6800              LDR      r0,[r0,#0]  ; ct
0000e8  eb001000          ADD      r0,r0,r0,LSL #4
0000ec  0080              LSLS     r0,r0,#2
0000ee  2164              MOVS     r1,#0x64
0000f0  fbb0f0f1          UDIV     r0,r0,r1
0000f4  4911              LDR      r1,|L1.316|
0000f6  4a12              LDR      r2,|L1.320|
0000f8  6812              LDR      r2,[r2,#0]  ; sample_ct
0000fa  f8410022          STR      r0,[r1,r2,LSL #2]
0000fe  e002              B        |L1.262|
                  |L1.256|
;;;63       	
;;;64     
;;;65     	//if(distance>400) distance=2; 
;;;66       }
;;;67       else distance=0;	
000100  2000              MOVS     r0,#0
000102  4905              LDR      r1,|L1.280|
000104  6008              STR      r0,[r1,#0]  ; distance
                  |L1.262|
;;;68       //itoa(distance, (char *)dis_str_distance,10);	          //ֵתΪַ
;;;69     }
000106  bd10              POP      {r4,pc}
                          ENDP

                  |L1.264|
                          DCD      0x40010c00
                  |L1.268|
00010c  44697374          DCB      "Distance: ",0
000110  616e6365
000114  3a2000  
000117  00                DCB      0
                  |L1.280|
                          DCD      distance
                  |L1.284|
00011c  2020636d          DCB      "  cm",0
000120  00      
000121  00                DCB      0
000122  00                DCB      0
000123  00                DCB      0
                  |L1.292|
000124  20636d00          DCB      " cm",0
                  |L1.296|
000128  636d00            DCB      "cm",0
00012b  00                DCB      0
                  |L1.300|
                          DCD      csb_flag
                  |L1.304|
                          DCD      dis_str_distance
                  |L1.308|
000134  30202000          DCB      "0  ",0
                  |L1.312|
                          DCD      ||ct||
                  |L1.316|
                          DCD      distan
                  |L1.320|
                          DCD      sample_ct
