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

📄 main.lst

📁 ADC Demo Source for LPC214X. 这是214X的ADC的应用例程
💻 LST
📖 第 1 页 / 共 5 页
字号:
  196:       LcdSendCommand(0x80 + (i & 1) * 16 + (i >> 1) * 8);
 00000014  1C20      MOV         R0,R4 ; i
 00000016  0600      LSL         R0,R0,#0x18 ; i
 00000018  0E00      LSR         R0,R0,#0x18
 0000001A  2101      MOV         R1,#0x1
 0000001C  4008      AND         R0,R1
 0000001E  0100      LSL         R0,R0,#0x4
 00000020  3080      ADD         R0,#0x80
 00000022  1C21      MOV         R1,R4 ; i
 00000024  0609      LSL         R1,R1,#0x18 ; i
 00000026  0E09      LSR         R1,R1,#0x18
 00000028  0849      LSR         R1,R1,#0x1
 0000002A  00C9      LSL         R1,R1,#0x3
 0000002C  1840      ADD         R0,R1
 0000002E  F7FF      BL          LcdSendCommand?T  ; T=0x0001  (1)
 00000030  FFE7      BL          LcdSendCommand?T  ; T=0x0001  (2)
  197:       for (j = 0;j < 16; j ++) {
 00000032  2500      MOV         R5,#0x0
 00000034  ---- Variable 'j' assigned to Register 'R5' ----
 00000034  E00F      B           L_35  ; T=0x00000056
 00000036          L_36:
  198:         LcdSendData(LcdBuffers.LcdBuff[i][j]);//显示刷新
 00000036  1C20      MOV         R0,R4 ; i
 00000038  0601      LSL         R1,R0,#0x18 ; i
 0000003A  0E09      LSR         R1,R1,#0x18
 0000003C  2011      MOV         R0,#0x11
 0000003E  4341      MUL         R1,R0
 00000040  1C28      MOV         R0,R5 ; j
 00000042  0600      LSL         R0,R0,#0x18 ; j
 00000044  0E00      LSR         R0,R0,#0x18
 00000046  1809      ADD         R1,R0
 00000048  4800      LDR         R0,=LcdBuffers ; LcdBuffers
 0000004A  5C40      LDRB        R0,[R0,R1]
 0000004C  F7FF      BL          LcdSendData?T  ; T=0x0001  (1)
 0000004E  FFD8      BL          LcdSendData?T  ; T=0x0001  (2)
  199:       }
 00000050  3501      ADD         R5,#0x1
 00000052  062D      LSL         R5,R5,#0x18
 00000054  0E2D      LSR         R5,R5,#0x18
 00000056          L_35:
 00000056  1C28      MOV         R0,R5 ; j
 00000058  0600      LSL         R0,R0,#0x18 ; j
 0000005A  0E00      LSR         R0,R0,#0x18
 0000005C  2810      CMP         R0,#0x10
 0000005E  DBEA      BLT         L_36  ; T=0x00000036
  200:       LcdBuffers.LcdBuffWrFlag[i] = 0;
 00000060  2000      MOV         R0,#0x0
 00000062  1C21      MOV         R1,R4 ; i
 00000064  060A      LSL         R2,R1,#0x18 ; i
 00000066  0E12      LSR         R2,R2,#0x18
 00000068  4800      LDR         R1,=LcdBuffers + 0x44 ; LcdBuffers+68
 0000006A  5488      STRB        R0,[R1,R2]
  202:   }
 0000006C          L_27:
 0000006C  3401      ADD         R4,#0x1
 0000006E  0624      LSL         R4,R4,#0x18
 00000070  0E24      LSR         R4,R4,#0x18
 00000072          L_29:
 00000072  1C20      MOV         R0,R4 ; i
 00000074  0600      LSL         R0,R0,#0x18 ; i
 00000076  0E00      LSR         R0,R0,#0x18
 00000078  2804      CMP         R0,#0x4
 0000007A  DBC4      BLT         L_30  ; T=0x00000006
 0000007C            ; SCOPE-END
  203: }
ARM COMPILER V2.42,  main                                                                  19/01/06  08:10:09  PAGE 19  

 0000007C  BC30      POP         {R4-R5}
 0000007E  BC08      POP         {R3}
 00000080  4718      BX          R3
 00000082          ENDP ; 'LcdDisplayBuffers?T'


*** CODE SEGMENT '?PR?SetLcdDisplayPos?T?main':
  206: void SetLcdDisplayPos(unsigned char row, unsigned char col)
 00000000  ---- Variable 'col' assigned to Register 'R1' ----
 00000000  1C02      MOV         R2,R0 ; row
 00000002  ---- Variable 'row' assigned to Register 'R2' ----
  208:   LcdBuffers.Row = row & 0x03;//4行
 00000002  1C10      MOV         R0,R2 ; row
 00000004  0602      LSL         R2,R0,#0x18 ; row
 00000006  0E12      LSR         R2,R2,#0x18
 00000008  2003      MOV         R0,#0x3
 0000000A  4002      AND         R2,R0
 0000000C  0612      LSL         R2,R2,#0x18
 0000000E  0E12      LSR         R2,R2,#0x18
 00000010  4800      LDR         R0,=LcdBuffers + 0x48 ; LcdBuffers+72
 00000012  7002      STRB        R2,[R0,#0x0] ; LcdBuffers+72
  209:   LcdBuffers.Col = col & 0x0f;//16列
 00000014  1C08      MOV         R0,R1 ; col
 00000016  0601      LSL         R1,R0,#0x18 ; col
 00000018  0E09      LSR         R1,R1,#0x18
 0000001A  200F      MOV         R0,#0xF
 0000001C  4001      AND         R1,R0
 0000001E  0609      LSL         R1,R1,#0x18
 00000020  0E09      LSR         R1,R1,#0x18
 00000022  4800      LDR         R0,=LcdBuffers + 0x49 ; LcdBuffers+73
 00000024  7001      STRB        R1,[R0,#0x0] ; LcdBuffers+73
  210: }
 00000026  4770      BX          R14
 00000028          ENDP ; 'SetLcdDisplayPos?T'


*** CODE SEGMENT '?PR?LcdDisplayString?T?main':
  212: void LcdDisplayString(unsigned char string[])
 00000000  B5F0      PUSH        {R4-R7,LR}
 00000002  1C04      MOV         R4,R0 ; string
 00000004  ---- Variable 'string' assigned to Register 'R4' ----
  213: {
 00000004            ; SCOPE-START
  215:   len = strlen(string);
 00000004  1C20      MOV         R0,R4 ; string
 00000006  F7FF      BL          strlen?T  ; T=0x0001  (1)
 00000008  FFFB      BL          strlen?T  ; T=0x0001  (2)
 0000000A  0603      LSL         R3,R0,#0x18 ; strlen?T
 0000000C  0E1B      LSR         R3,R3,#0x18
 0000000E  ---- Variable 'len' assigned to Register 'R3' ----
  216:   if ((LcdBuffers.Row < 4) && ((LcdBuffers.Col + len) <= 16)) {
 0000000E  4800      LDR         R0,=LcdBuffers + 0x48 ; LcdBuffers+72
 00000010  7801      LDRB        R1,[R0,#0x0] ; LcdBuffers+72
 00000012  1C08      MOV         R0,R1
 00000014  2804      CMP         R0,#0x4
 00000016  DA41      BGE         L_38  ; T=0x0000009C
 00000018  1C18      MOV         R0,R3 ; len
 0000001A  0602      LSL         R2,R0,#0x18 ; len
 0000001C  0E12      LSR         R2,R2,#0x18
 0000001E  4800      LDR         R0,=LcdBuffers + 0x49 ; LcdBuffers+73
 00000020  7800      LDRB        R0,[R0,#0x0] ; LcdBuffers+73
 00000022  1880      ADD         R0,R2
 00000024  2810      CMP         R0,#0x10
 00000026  DC39      BGT         L_38  ; T=0x0000009C
  217:     if (len == 0) {
 00000028  1C18      MOV         R0,R3 ; len
 0000002A  0600      LSL         R0,R0,#0x18 ; len
 0000002C  0E00      LSR         R0,R0,#0x18
 0000002E  2800      CMP         R0,#0x0
 00000030  D112      BNE         L_49  ; T=0x00000058
ARM COMPILER V2.42,  main                                                                  19/01/06  08:10:09  PAGE 20  

  218:       while(LcdBuffers.Col < 16) LcdBuffers.LcdBuff[LcdBuffers.Row][LcdBuffers.Col ++] = ' ';
 00000032  E00C      B           L_40  ; T=0x0000004E
 00000034          L_42:
 00000034  2020      MOV         R0,#0x20
 00000036  4800      LDR         R5,=LcdBuffers + 0x49 ; LcdBuffers+73
 00000038  782A      LDRB        R2,[R5,#0x0] ; LcdBuffers+73
 0000003A  1C16      MOV         R6,R2
 0000003C  3601      ADD         R6,#0x1
 0000003E  702E      STRB        R6,[R5,#0x0] ; LcdBuffers+73
 00000040  4800      LDR         R5,=LcdBuffers + 0x48 ; LcdBuffers+72
 00000042  782D      LDRB        R5,[R5,#0x0] ; LcdBuffers+72
 00000044  2611      MOV         R6,#0x11
 00000046  4375      MUL         R5,R6
 00000048  18AD      ADD         R5,R2
 0000004A  4800      LDR         R2,=LcdBuffers ; LcdBuffers
 0000004C  5550      STRB        R0,[R2,R5]
 0000004E          L_40:
 0000004E  4800      LDR         R0,=LcdBuffers + 0x49 ; LcdBuffers+73
 00000050  7800      LDRB        R0,[R0,#0x0] ; LcdBuffers+73
 00000052  2810      CMP         R0,#0x10
 00000054  DBEE      BLT         L_42  ; T=0x00000034
  219:     }
 00000056  E01D      B           L_44  ; T=0x00000094
  221:       for (i = 0; i < len; i ++) LcdBuffers.LcdBuff[LcdBuffers.Row][LcdBuffers.Col ++] = string[i];
 00000058          L_49:
 00000058  2200      MOV         R2,#0x0
 0000005A  ---- Variable 'i' assigned to Register 'R2' ----
 0000005A  E013      B           L_47  ; T=0x00000084
 0000005C          L_48:
 0000005C  1C10      MOV         R0,R2 ; i
 0000005E  0605      LSL         R5,R0,#0x18 ; i
 00000060  0E2D      LSR         R5,R5,#0x18
 00000062  1C20      MOV         R0,R4 ; string
 00000064  5D40      LDRB        R0,[R0,R5]
 00000066  4800      LDR         R6,=LcdBuffers + 0x49 ; LcdBuffers+73
 00000068  7835      LDRB        R5,[R6,#0x0] ; LcdBuffers+73
 0000006A  1C2F      MOV         R7,R5
 0000006C  3701      ADD         R7,#0x1
 0000006E  7037      STRB        R7,[R6,#0x0] ; LcdBuffers+73
 00000070  4800      LDR         R6,=LcdBuffers + 0x48 ; LcdBuffers+72
 00000072  7836      LDRB        R6,[R6,#0x0] ; LcdBuffers+72
 00000074  2711      MOV         R7,#0x11
 00000076  437E      MUL         R6,R7
 00000078  1976      ADD         R6,R5
 0000007A  4800      LDR         R5,=LcdBuffers ; LcdBuffers
 0000007C  55A8      STRB        R0,[R5,R6]
 0000007E  3201      ADD         R2,#0x1
 00000080  0612      LSL         R2,R2,#0x18
 00000082  0E12      LSR         R2,R2,#0x18
 00000084          L_47:
 00000084  1C18      MOV         R0,R3 ; len
 00000086  0605      LSL         R5,R0,#0x18 ; len
 00000088  0E2D      LSR         R5,R5,#0x18
 0000008A  1C10      MOV         R0,R2 ; i
 0000008C  0600      LSL         R0,R0,#0x18 ; i
 0000008E  0E00      LSR         R0,R0,#0x18
 00000090  42A8      CMP         R0,R5
 00000092  D3E3      BCC         L_48  ; T=0x0000005C
 00000094          L_44:
  222:     LcdBuffers.LcdBuffWrFlag[LcdBuffers.Row] = 1;//需要显示刷新
 00000094  2001      MOV         R0,#0x1
 00000096  1C0A      MOV         R2,R1
 00000098  4800      LDR         R1,=LcdBuffers + 0x44 ; LcdBuffers+68
 0000009A  5488      STRB        R0,[R1,R2]
  223:   }
 0000009C          L_38:
ARM COMPILER V2.42,  main                                                                  19/01/06  08:10:09  PAGE 21  

 0000009C            ; SCOPE-END
  224: }
 0000009C  BCF0      POP         {R4-R7}
 0000009E  BC08      POP         {R3}
 000000A0  4718      BX          R3
 000000A2          ENDP ; 'LcdDisplayString?T'


*** CODE SEGMENT '?PR?MSSP_Init?T?main':
  230:   IODIR0 |= (1 << SCK1);        // 设置SCK0控制口为输出 
 00000000  4800      LDR         R2,=0x20000
 00000002  4800      LDR         R0,=0xE0028008
 00000004  6801      LDR         R1,[R0,#0x0]
 00000006  4311      ORR         R1,R2
 00000008  6001      STR         R1,[R0,#0x0]
  231:   IODIR0 |= (1 << MOSI1);       // 设置MOSI0控制口为输出    
 0000000A  4800      LDR         R2,=0x80000
 0000000C  4800      LDR         R0,=0xE0028008
 0000000E  6801      LDR         R1,[R0,#0x0]
 00000010  4311      ORR         R1,R2
 00000012  6001      STR         R1,[R0,#0x0]
  232: }
 00000014  4770      BX          R14
 00000016          ENDP ; 'MSSP_Init?T'


*** CODE SEGMENT '?PR?SSP_Init?T?main':
  244:   PCONP |= 1<<10;
 00000000  4800      LDR         R2,=0x400
 00000002  4800      LDR         R0,=0xE01FC0C4
 00000004  6801      LDR         R1,[R0,#0x0]
 00000006  4311      ORR         R1,R2
 00000008  6001      STR         R1,[R0,#0x0]
  245:   PINSEL1 |= ((P0_17_SCK1 << P0_17_PINSEL) | (P0_19_MOSI1 << P0_19_PINSEL));
 0000000A  2288      MOV         R2,#0x88
 0000000C  4800      LDR         R0,=0xE002C004
 0000000E  6801      LDR         R1,[R0,#0x0]
 00000010  4311      ORR         R1,R2
 00000012  6001      STR         R1,[R0,#0x0]
  248:   SSPCR0 = (0x01 << 8) |              // SCR  设置SPI时钟分频
 00000014  4800      LDRH        R1,=0x107
 00000016  4800      LDR         R0,=0xE0068000
 00000018  8001      STRH        R1,[R0,#0x0]
  256:   SSPCR1 = (0x00 << 3) |              // SOD  从机输出禁能,1=禁止,0=允许
 0000001A  2102      MOV         R1,#0x2
 0000001C  4800      LDR         R0,=0xE0068004
 0000001E  7001      STRB        R1,[R0,#0x0]
  261:   SSPCPSR = 0x52;                     // PCLK分频值
 00000020  2152      MOV         R1,#0x52
 00000022  4800      LDR         R0,=0xE0068010
 00000024  7001      STRB        R1,[R0,#0x0]
  263:   SSPICR  = 0x03;                     // 中断清除寄存器
 00000026  2103      MOV         R1,#0x3
 00000028  4800      LDR         R0,=0xE0068020
 0000002A  7001      STRB        R1,[R0,#0x0]
  264: }
 0000002C  4770      BX          R14
 0000002E          ENDP ; 'SSP_Init?T'


*** CODE SEGMENT '?PR?SSP_SendData?T?main':
  275: uint8 SSP_SendData(uint8 data)
 00000000  1C01      MOV         R1,R0 ; data
 00000002  ---- Variable 'data' assigned to Register 'R1' ----
  277:     SSPDR = data;
 00000002  1C08      MOV         R0,R1 ; data
 00000004  0601      LSL         R1,R0,#0x18 ; data
 00000006  0E09      LSR         R1,R1,#0x18
 00000008  4800      LDR         R0,=0xE0068008
 0000000A  8001      STRH        R1,[R0,#0x0]
  278:  

⌨️ 快捷键说明

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