?? lcd.txt
字號:
; generated by ARM/Thumb C/C++ Compiler with , RVCT3.1 [Build 914] for uVision
; commandline ArmCC [--debug -c --asm --interleave -o.\rvmdk\lcd.o --depend=.\rvmdk\lcd.d --device=DARMSTM -O1 -Otime -I. -I..\BSP -I..\..\..\..\..\uCOS-II\Ports\arm-cortex-m3\Generic\RealView -I..\..\..\..\..\uCOS-II\Source -I..\..\..\..\..\CPU\ST\STM32\inc -I..\..\..\..\..\uC-CPU -I..\..\..\..\..\uC-CPU\Arm-Cortex-M3\RealView -I..\..\..\..\..\uC-LIB -I..\..\..\..\..\uC-Probe\Target\Plugins\uCOS-II -I..\..\..\..\..\uC-Probe\Target\Communication\Generic\Source -I..\..\..\..\..\uC-Probe\Target\Communication\Generic\RS-232\Ports\ST\STM32 -I..\..\..\..\..\uC-Probe\Target\Communication\Generic\RS-232\Source -ID:\Keil\ARM\INC\ST\STM32F10x ..\BSP\lcd.c]
THUMB
AREA ||.text||, CODE, READONLY, ALIGN=2
LCD_CtrlLinesWrite PROC
;;;761 /* Set or Reset the control line */
;;;762 GPIO_WriteBit(GPIOx, CtrlPins, BitVal);
000000 f7fff7ff B.W GPIO_WriteBit
;;;763 }
;;;764
ENDP
LCD_WriteReg PROC
;;;620 void LCD_WriteReg(u8 LCD_Reg, u8 LCD_RegValue)
;;;621 {
000004 b570 PUSH {r4-r6,lr}
000006 4605 MOV r5,r0
000008 460c MOV r4,r1
;;;622 u16 tmp = 0;
;;;623
;;;624 LCD_CtrlLinesWrite(GPIOD, CtrlPin_NWR, Bit_RESET);
00000a 4ef9 LDR r6,|L1.1008|
00000c 2200 MOVS r2,#0
00000e f44ff44f MOV r1,#0x8000
000012 4630 MOV r0,r6
000014 f7fff7ff BL LCD_CtrlLinesWrite
;;;625 LCD_CtrlLinesWrite(GPIOD, CtrlPin_RS, Bit_RESET);
000018 2200 MOVS r2,#0
00001a 2180 MOVS r1,#0x80
00001c 4630 MOV r0,r6
00001e f7fff7ff BL LCD_CtrlLinesWrite
;;;626 LCD_CtrlLinesWrite(GPIOB, CtrlPin_NCS, Bit_RESET);
000022 4ef4 LDR r6,|L1.1012|
000024 2200 MOVS r2,#0
000026 2104 MOVS r1,#4
000028 4630 MOV r0,r6
00002a f7fff7ff BL LCD_CtrlLinesWrite
;;;627
;;;628 tmp = LCD_Reg << 8;
00002e 0228 LSLS r0,r5,#8
;;;629 tmp |= LCD_RegValue;
000030 ea40ea40 ORR r1,r0,r4
;;;630
;;;631 SPI_SendData(SPI2, tmp);
000034 4cf0 LDR r4,|L1.1016|
000036 4620 MOV r0,r4
000038 f7fff7ff BL SPI_SendData
|L1.60|
;;;632 while(SPI_GetFlagStatus(SPI2, SPI_FLAG_TXE) == RESET)
00003c 2102 MOVS r1,#2
00003e 4620 MOV r0,r4
000040 f7fff7ff BL SPI_GetFlagStatus
000044 2800 CMP r0,#0
000046 d0f9 BEQ |L1.60|
;;;633 {
;;;634 }
;;;635
;;;636 LCD_CtrlLinesWrite(GPIOB, CtrlPin_NCS, Bit_SET);
000048 4630 MOV r0,r6
00004a e8bde8bd POP {r4-r6,lr}
00004e 2201 MOVS r2,#1
000050 2104 MOVS r1,#4
000052 e7fe B LCD_CtrlLinesWrite
;;;637 }
;;;638
ENDP
Delay PROC
;;;162
;;;163 for (i = 0; i < nCount * 100; i++) {
000054 2100 MOVS r1,#0
000056 2219 MOVS r2,#0x19
000058 4350 MULS r0,r2,r0
|L1.90|
00005a ebb1ebb1 CMP r1,r0,LSL #2
00005e d201 BCS |L1.100|
000060 1c49 ADDS r1,r1,#1
000062 e7fa B |L1.90|
|L1.100|
;;;164 ;
;;;165 }
;;;166 }
000064 4770 BX lr
;;;167
ENDP
LCD_SPIConfig PROC
;;;772 void LCD_SPIConfig(void)
;;;773 {
000066 b510 PUSH {r4,lr}
000068 b086 SUB sp,sp,#0x18
;;;774 SPI_InitTypeDef SPI_InitStructure;
;;;775 GPIO_InitTypeDef GPIO_InitStructure;
;;;776
;;;777 /* Enable GPIOA clock */
;;;778 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
00006a 2101 MOVS r1,#1
00006c 2008 MOVS r0,#8
00006e f7fff7ff BL RCC_APB2PeriphClockCmd
;;;779
;;;780 /* Enable SPI2 clock */
;;;781 RCC_APB1PeriphClockCmd(RCC_APB1Periph_SPI2, ENABLE);
000072 2101 MOVS r1,#1
000074 0388 LSLS r0,r1,#14
000076 f7fff7ff BL RCC_APB1PeriphClockCmd
;;;782
;;;783 /* Configure SPI2 pins: NSS, SCK, MISO and MOSI */
;;;784 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12 | GPIO_Pin_13 | GPIO_Pin_14 | GPIO_Pin_15;
00007a f44ff44f MOV r0,#0xf000
00007e f8adf8ad STRH r0,[sp,#0]
;;;785 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
000082 2003 MOVS r0,#3
000084 f88df88d STRB r0,[sp,#2]
;;;786 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
000088 2018 MOVS r0,#0x18
00008a f88df88d STRB r0,[sp,#3]
;;;787 GPIO_Init(GPIOB, &GPIO_InitStructure);
00008e 4669 MOV r1,sp
000090 48d8 LDR r0,|L1.1012|
000092 f7fff7ff BL GPIO_Init
;;;788
;;;789 /* SPI2 Config */
;;;790 SPI_InitStructure.SPI_Direction = SPI_Direction_2Lines_FullDuplex;
000096 2000 MOVS r0,#0
000098 f8adf8ad STRH r0,[sp,#4]
;;;791 SPI_InitStructure.SPI_Mode = SPI_Mode_Master;
00009c f44ff44f MOV r1,#0x104
0000a0 f8adf8ad STRH r1,[sp,#6]
;;;792 SPI_InitStructure.SPI_DataSize = SPI_DataSize_16b;
0000a4 f44ff44f MOV r1,#0x800
0000a8 f8adf8ad STRH r1,[sp,#8]
;;;793 SPI_InitStructure.SPI_CPOL = SPI_CPOL_Low;
0000ac f8adf8ad STRH r0,[sp,#0xa]
;;;794 SPI_InitStructure.SPI_CPHA = SPI_CPHA_1Edge;
0000b0 f8adf8ad STRH r0,[sp,#0xc]
;;;795 SPI_InitStructure.SPI_NSS = SPI_NSS_Soft;
0000b4 1089 ASRS r1,r1,#2
0000b6 f8adf8ad STRH r1,[sp,#0xe]
;;;796 SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_2;
0000ba f8adf8ad STRH r0,[sp,#0x10]
;;;797 SPI_InitStructure.SPI_FirstBit = SPI_FirstBit_MSB;
0000be f8adf8ad STRH r0,[sp,#0x12]
;;;798 SPI_Init(SPI2, &SPI_InitStructure);
0000c2 4ccd LDR r4,|L1.1016|
0000c4 a901 ADD r1,sp,#4
0000c6 4620 MOV r0,r4
0000c8 f7fff7ff BL SPI_Init
;;;799
;;;800 /* SPI2 enable */
;;;801 SPI_Cmd(SPI2, ENABLE);
0000cc 2101 MOVS r1,#1
0000ce 4620 MOV r0,r4
0000d0 f7fff7ff BL SPI_Cmd
;;;802 }
0000d4 b006 ADD sp,sp,#0x18
0000d6 bd10 POP {r4,pc}
;;;803
ENDP
LCD_CtrlLinesConfig PROC
;;;729 void LCD_CtrlLinesConfig(void)
;;;730 {
0000d8 b508 PUSH {r3,lr}
;;;731 GPIO_InitTypeDef GPIO_InitStructure;
;;;732
;;;733 /* Configure NCS (PB.02) in Output Push-Pull mode */
;;;734 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;
0000da 2004 MOVS r0,#4
0000dc f8adf8ad STRH r0,[sp,#0]
;;;735 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
0000e0 2003 MOVS r0,#3
0000e2 f88df88d STRB r0,[sp,#2]
;;;736 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
0000e6 2010 MOVS r0,#0x10
0000e8 f88df88d STRB r0,[sp,#3]
;;;737 GPIO_Init(GPIOB, &GPIO_InitStructure);
0000ec 4669 MOV r1,sp
0000ee 48c1 LDR r0,|L1.1012|
0000f0 f7fff7ff BL GPIO_Init
;;;738
;;;739 /* Configure NWR(RNW), RS (PD.15, PD.07) in Output Push-Pull mode */
;;;740 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7 | GPIO_Pin_15;
0000f4 f248f248 MOV r0,#0x8080
0000f8 f8adf8ad STRH r0,[sp,#0]
;;;741 GPIO_Init(GPIOD, &GPIO_InitStructure);
0000fc 4669 MOV r1,sp
0000fe 48bc LDR r0,|L1.1008|
000100 f7fff7ff BL GPIO_Init
;;;742 }
000104 bd08 POP {r3,pc}
;;;743
ENDP
LCD_Init PROC
;;;42 void LCD_Init(void)
;;;43 {
000106 b510 PUSH {r4,lr}
;;;44 /* Configure the LCD Control pins --------------------------------------------*/
;;;45 LCD_CtrlLinesConfig();
000108 f7fff7ff BL LCD_CtrlLinesConfig
;;;46
;;;47 /* Configure the SPI2 interface ----------------------------------------------*/
;;;48 LCD_SPIConfig();
00010c f7fff7ff BL LCD_SPIConfig
;;;49
;;;50 /* Enable the LCD Oscillator -------------------------------------------------*/
;;;51 LCD_WriteReg(R1, 0x10);
000110 2110 MOVS r1,#0x10
000112 2001 MOVS r0,#1
000114 f7fff7ff BL LCD_WriteReg
;;;52 LCD_WriteReg(R0, 0xA0);
000118 21a0 MOVS r1,#0xa0
00011a 2000 MOVS r0,#0
00011c f7fff7ff BL LCD_WriteReg
;;;53 LCD_WriteReg(R3, 0x01);
000120 2101 MOVS r1,#1
000122 2003 MOVS r0,#3
000124 f7fff7ff BL LCD_WriteReg
;;;54 Delay(1); /* Delay 10 ms */
000128 2001 MOVS r0,#1
00012a f7fff7ff BL Delay
;;;55 LCD_WriteReg(R3, 0x00);
00012e 2100 MOVS r1,#0
000130 2003 MOVS r0,#3
000132 f7fff7ff BL LCD_WriteReg
;;;56 LCD_WriteReg(R43, 0x04);
000136 2104 MOVS r1,#4
000138 202b MOVS r0,#0x2b
00013a f7fff7ff BL LCD_WriteReg
;;;57
;;;58 LCD_WriteReg(R40, 0x18);
00013e 2118 MOVS r1,#0x18
000140 2028 MOVS r0,#0x28
000142 f7fff7ff BL LCD_WriteReg
;;;59 LCD_WriteReg(R26, 0x05);
000146 2105 MOVS r1,#5
000148 201a MOVS r0,#0x1a
00014a f7fff7ff BL LCD_WriteReg
;;;60 LCD_WriteReg(R37, 0x05);
00014e 2105 MOVS r1,#5
000150 2025 MOVS r0,#0x25
000152 f7fff7ff BL LCD_WriteReg
;;;61 LCD_WriteReg(R25, 0x00);
000156 2100 MOVS r1,#0
000158 2019 MOVS r0,#0x19
00015a f7fff7ff BL LCD_WriteReg
;;;62
;;;63 /* LCD Power On --------------------------------------------------------------*/
;;;64 LCD_WriteReg(R28, 0x73);
00015e 2173 MOVS r1,#0x73
000160 201c MOVS r0,#0x1c
000162 f7fff7ff BL LCD_WriteReg
;;;65 LCD_WriteReg(R36, 0x74);
000166 2174 MOVS r1,#0x74
000168 2024 MOVS r0,#0x24
00016a f7fff7ff BL LCD_WriteReg
;;;66 LCD_WriteReg(R30, 0x01);
00016e 2101 MOVS r1,#1
000170 201e MOVS r0,#0x1e
000172 f7fff7ff BL LCD_WriteReg
;;;67 LCD_WriteReg(R24, 0xC1);
000176 21c1 MOVS r1,#0xc1
000178 2018 MOVS r0,#0x18
00017a f7fff7ff BL LCD_WriteReg
;;;68 Delay(1); /* Delay 10 ms */
00017e 2001 MOVS r0,#1
000180 f7fff7ff BL Delay
;;;69 LCD_WriteReg(R24, 0xE1);
000184 21e1 MOVS r1,#0xe1
000186 2018 MOVS r0,#0x18
000188 f7fff7ff BL LCD_WriteReg
;;;70 LCD_WriteReg(R24, 0xF1);
00018c 21f1 MOVS r1,#0xf1
00018e 2018 MOVS r0,#0x18
000190 f7fff7ff BL LCD_WriteReg
;;;71 Delay(6); /* Delay 60 ms */
000194 2006 MOVS r0,#6
000196 f7fff7ff BL Delay
;;;72 LCD_WriteReg(R24, 0xF5);
00019a 21f5 MOVS r1,#0xf5
00019c 2018 MOVS r0,#0x18
00019e f7fff7ff BL LCD_WriteReg
;;;73 Delay(6); /* Delay 60 ms */
0001a2 2006 MOVS r0,#6
0001a4 f7fff7ff BL Delay
;;;74 LCD_WriteReg(R27, 0x09);
0001a8 2109 MOVS r1,#9
0001aa 201b MOVS r0,#0x1b
0001ac f7fff7ff BL LCD_WriteReg
;;;75 Delay(1); /* Delay 10 ms */
0001b0 2001 MOVS r0,#1
0001b2 f7fff7ff BL Delay
;;;76 LCD_WriteReg(R31, 0x11);
0001b6 2111 MOVS r1,#0x11
0001b8 201f MOVS r0,#0x1f
0001ba f7fff7ff BL LCD_WriteReg
;;;77 LCD_WriteReg(R32, 0x0E);
0001be 210e MOVS r1,#0xe
0001c0 2020 MOVS r0,#0x20
0001c2 f7fff7ff BL LCD_WriteReg
;;;78 LCD_WriteReg(R30, 0x81);
0001c6 2181 MOVS r1,#0x81
0001c8 201e MOVS r0,#0x1e
0001ca f7fff7ff BL LCD_WriteReg
;;;79 Delay(1); /* Delay 10 ms */
0001ce 2001 MOVS r0,#1
0001d0 f7fff7ff BL Delay
;;;80
;;;81 /* Chip Set ------------------------------------------------------------------*/
;;;82 LCD_WriteReg(R157, 0x00);
0001d4 2100 MOVS r1,#0
0001d6 209d MOVS r0,#0x9d
0001d8 f7fff7ff BL LCD_WriteReg
;;;83 LCD_WriteReg(R192, 0x00);
0001dc 2100 MOVS r1,#0
0001de 20c0 MOVS r0,#0xc0
0001e0 f7fff7ff BL LCD_WriteReg
;;;84
;;;85 LCD_WriteReg(R14, 0x00);
0001e4 2100 MOVS r1,#0
0001e6 200e MOVS r0,#0xe
0001e8 f7fff7ff BL LCD_WriteReg
;;;86 LCD_WriteReg(R15, 0x00);
0001ec 2100 MOVS r1,#0
0001ee 200f MOVS r0,#0xf
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -