⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lcd.txt

📁 ucos2.86版本结合STM板极支持包
💻 TXT
📖 第 1 页 / 共 5 页
字号:
; 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

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -