; generated by Component: ARM Compiler 5.06 update 7 (build 960) Tool: ArmCC [4d365d]
; commandline ArmCC [--c99 --list --split_sections --debug -c --asm --interleave -o..\output\lcd_example.o --asm_dir=..\List\ --list_dir=..\List\ --depend=..\output\lcd_example.d --cpu=Cortex-M0+ --apcs=interwork --diag_suppress=9931 -I..\FWLib\SC32F1XXX_Lib\inc -I..\User\HeadFiles -I..\User -I..\Drivers -I..\Apps -I..\CMSIS -IF:\Users\SOC\AppData\Local\Arm\Packs\ARM\CMSIS\5.8.0\Device\ARM\ARMCM0plus\Include -D__UVISION_VERSION=536 -DARMCM0P -DSC32f10xx --omf_browse=..\output\lcd_example.crf ..\Apps\LCD_Example.c]
                          THUMB

                          AREA ||i.LCD_Example_Function||, CODE, READONLY, ALIGN=1

                  LCD_Example_Function PROC
;;;12     
;;;13     void LCD_Example_Function(void)
000000  b086              SUB      sp,sp,#0x18
;;;14     {
;;;15       
;;;16       uint16_t i,j;
;;;17       LCD_InitTypeDef LCD_InitStruct; //定义LCD初始化结构体变量
;;;18       
;;;19       /* 使能LCD时钟 */
;;;20       RCC_APB2Cmd(ENABLE);  //LCD外设挂载在APB2时钟上
000002  2001              MOVS     r0,#1
000004  f7fffffe          BL       RCC_APB2Cmd
;;;21       RCC_APB2PeriphClockCmd(RCC_APB2Periph_LCD_LED, ENABLE);
000008  2101              MOVS     r1,#1
00000a  2003              MOVS     r0,#3
00000c  f7fffffe          BL       RCC_APB2PeriphClockCmd
;;;22       RCC_APB2PeriphClockCmd(RCC_APB2Periph_LEDPWM, ENABLE);
000010  2101              MOVS     r1,#1
000012  4608              MOV      r0,r1
000014  f7fffffe          BL       RCC_APB2PeriphClockCmd
;;;23       /* 结构体成员初始化 */
;;;24       LCD_StructInit(&LCD_InitStruct);
000018  4668              MOV      r0,sp
00001a  f7fffffe          BL       LCD_StructInit
;;;25       
;;;26       LCD_InitStruct.LCD_Bias = LCD_Bias_1_4;	//1/4偏置电压
00001e  2000              MOVS     r0,#0
000020  466a              MOV      r2,sp
000022  80d0              STRH     r0,[r2,#6]
;;;27     #if defined(SC32f10xx)||defined(SC32f12xx)
;;;28       LCD_InitStruct.LCD_Duty = LCD_Duty_1_4_SEG4_27COM0_3;	//配置占空比为1/4，S4~S27为segment，C0~C3为common
000024  21b0              MOVS     r1,#0xb0
000026  8051              STRH     r1,[r2,#2]
;;;29     #endif
;;;30       LCD_InitStruct.LCD_FrameFre = LCD_FrameFre_B64Hz;	//帧频为B类型64Hz
000028  8010              STRH     r0,[r2,#0]
;;;31       LCD_InitStruct.LCD_ResSel = LCD_ResSel_33K;	//内部分压电阻为33K欧姆
00002a  8110              STRH     r0,[r2,#8]
;;;32       /* 使能COM管脚输出通道 */
;;;33       LCD_InitStruct.LCD_ComPin = LCD_Channel_0 | LCD_Channel_1 | LCD_Channel_2 | LCD_Channel_3;//C0~C3
00002c  210f              MOVS     r1,#0xf
;;;34       /* 使能Seg管脚输出通道，每个位对应一个通道 */
;;;35       LCD_InitStruct.LCD_SegPin =  0x00000F00;//使能SEG8~11
00002e  9103              STR      r1,[sp,#0xc]
000030  0209              LSLS     r1,r1,#8
;;;36       LCD_InitStruct.LCD_VOIRSIF = LCD_VOIRSIF_Disable;	//关闭快速充电
000032  9104              STR      r1,[sp,#0x10]
000034  8090              STRH     r0,[r2,#4]
;;;37       LCD_InitStruct.LCD_Voltage = 5;	//VLCD = VDD*(17+VLCD[3:0])/32= VDD
000036  2005              MOVS     r0,#5
000038  8150              STRH     r0,[r2,#0xa]
;;;38       LCD_Init(&LCD_InitStruct);
00003a  4668              MOV      r0,sp
00003c  f7fffffe          BL       LCD_Init
;;;39       
;;;40       LCD_Cmd(ENABLE);
000040  2001              MOVS     r0,#1
000042  f7fffffe          BL       LCD_Cmd
;;;41     	
;;;42       while(1)
;;;43       {
;;;44         for(i=0;i<1000;i++)//延时
;;;45         {
;;;46           for(j=0;j<2000;j++);
000046  247d              MOVS     r4,#0x7d
000048  0124              LSLS     r4,r4,#4
00004a  1065              ASRS     r5,r4,#1              ;44
                  |L1.76|
00004c  2100              MOVS     r1,#0                 ;44
                  |L1.78|
00004e  2000              MOVS     r0,#0
                  |L1.80|
000050  1c40              ADDS     r0,r0,#1
000052  b280              UXTH     r0,r0
000054  42a0              CMP      r0,r4
000056  d3fb              BCC      |L1.80|
000058  1c49              ADDS     r1,r1,#1
00005a  b289              UXTH     r1,r1                 ;44
00005c  42a9              CMP      r1,r5                 ;44
00005e  d3f6              BCC      |L1.78|
;;;47         }	
;;;48         
;;;49         /* COM0~3 SEG8~11点亮 */
;;;50         LCD_Write(LCD_RAMRegister_8,0x0F);//COM0~3 SEG8点亮
000060  210f              MOVS     r1,#0xf
000062  2008              MOVS     r0,#8
000064  f7fffffe          BL       LCD_Write
;;;51         LCD_Write(LCD_RAMRegister_9,0x0F);//COM0~3 SEG9点亮
000068  210f              MOVS     r1,#0xf
00006a  2009              MOVS     r0,#9
00006c  f7fffffe          BL       LCD_Write
;;;52         LCD_Write(LCD_RAMRegister_10,0x0F);//COM0~3 SEG10点亮
000070  210f              MOVS     r1,#0xf
000072  200a              MOVS     r0,#0xa
000074  f7fffffe          BL       LCD_Write
;;;53         LCD_Write(LCD_RAMRegister_11,0x0F);//COM0~3 SEG11点亮
000078  210f              MOVS     r1,#0xf
00007a  200b              MOVS     r0,#0xb
00007c  f7fffffe          BL       LCD_Write
;;;54         
;;;55         for(i=0;i<1000;i++)//延时
000080  2100              MOVS     r1,#0
                  |L1.130|
;;;56         {
;;;57           for(j=0;j<2000;j++);
000082  2000              MOVS     r0,#0
                  |L1.132|
000084  1c40              ADDS     r0,r0,#1
000086  b280              UXTH     r0,r0
000088  42a0              CMP      r0,r4
00008a  d3fb              BCC      |L1.132|
00008c  1c49              ADDS     r1,r1,#1
00008e  b289              UXTH     r1,r1                 ;55
000090  42a9              CMP      r1,r5                 ;55
000092  d3f6              BCC      |L1.130|
;;;58         }	
;;;59         
;;;60         /* COM0~3 SEG4~7熄灭 */	
;;;61         LCD_Write(LCD_RAMRegister_8,0x00);//COM0~3 SEG8熄灭
000094  2100              MOVS     r1,#0
000096  2008              MOVS     r0,#8
000098  f7fffffe          BL       LCD_Write
;;;62         LCD_Write(LCD_RAMRegister_9,0x00);//COM0~3 SEG9熄灭
00009c  2100              MOVS     r1,#0
00009e  2009              MOVS     r0,#9
0000a0  f7fffffe          BL       LCD_Write
;;;63         LCD_Write(LCD_RAMRegister_10,0x00);//COM0~3 SEG10熄灭
0000a4  2100              MOVS     r1,#0
0000a6  200a              MOVS     r0,#0xa
0000a8  f7fffffe          BL       LCD_Write
;;;64         LCD_Write(LCD_RAMRegister_11,0x00);//COM0~3 SEG11熄灭
0000ac  2100              MOVS     r1,#0
0000ae  200b              MOVS     r0,#0xb
0000b0  f7fffffe          BL       LCD_Write
0000b4  e7ca              B        |L1.76|
;;;65       }
;;;66     }
;;;67     #endif
                          ENDP


;*** Start embedded assembler ***

#line 1 "..\\Apps\\LCD_Example.c"
	AREA ||.rev16_text||, CODE
	THUMB
	EXPORT |__asm___13_LCD_Example_c_4d5182e9____REV16|
#line 463 "..\\CMSIS\\cmsis_armcc.h"
|__asm___13_LCD_Example_c_4d5182e9____REV16| PROC
#line 464

 rev16 r0, r0
 bx lr
	ENDP
	AREA ||.revsh_text||, CODE
	THUMB
	EXPORT |__asm___13_LCD_Example_c_4d5182e9____REVSH|
#line 478
|__asm___13_LCD_Example_c_4d5182e9____REVSH| PROC
#line 479

 revsh r0, r0
 bx lr
	ENDP

;*** End   embedded assembler ***
