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

📄 main.lst

📁 ARM7 GPIO试验 型号LPC2131 LPC2132 LPC2134 LPC2136 LPC2138 LPC214X 各种方式输入输出演示 Keil原工程代码 本人亲自编写 详细注释 非常易
💻 LST
📖 第 1 页 / 共 2 页
字号:
 0000000A  4800      LDR         R1,=0xE002C000
 0000000C  600A      STR         R2,[R1,#0x0]
   48:     IO0DIR  = BEEP;             // 设置BEEP控制口为输出 
 0000000E  2280      MOV         R2,#0x80
 00000010  4800      LDR         R1,=0xE0028008
 00000012  600A      STR         R2,[R1,#0x0]
   49:     PINSEL2 = PINSEL2 & (~0x08);// P1[25:16]连接GPIO
 00000014  4800      LDR         R1,=0xE002C014
 00000016  680A      LDR         R2,[R1,#0x0]
 00000018  2108      MOV         R1,#0x8
 0000001A  438A      BIC         R2,R1
 0000001C  4800      LDR         R1,=0xE002C014
 0000001E  600A      STR         R2,[R1,#0x0]
   50:     IO1DIR  |= LED1;                // 设置LED1控制口为输出     
 00000020  4800      LDR         R1,=LED1 ; LED1
 00000022  680B      LDR         R3,[R1,#0x0] ; LED1
 00000024  4800      LDR         R1,=0xE0028018
 00000026  680A      LDR         R2,[R1,#0x0]
 00000028  431A      ORR         R2,R3
 0000002A  600A      STR         R2,[R1,#0x0]
ARM COMPILER V2.53,  Main                                                                  03/03/09  22:31:59  PAGE 6   

   55:     for(i=0;i<3;i++)
 0000002C  1C05      MOV         R5,R0 ; i
 0000002E          L_14:
   57:         IO0SET = BEEP;          // BEEP停止蜂鸣
 0000002E  2180      MOV         R1,#0x80
 00000030  4800      LDR         R0,=0xE0028004
 00000032  6001      STR         R1,[R0,#0x0]
   58:         IO1CLR = LED1;          // LED1点亮
 00000034  4800      LDR         R0,=LED1 ; LED1
 00000036  6801      LDR         R1,[R0,#0x0] ; LED1
 00000038  4800      LDR         R0,=0xE002801C
 0000003A  6001      STR         R1,[R0,#0x0]
   59:         DelayNS(30);
 0000003C  201E      MOV         R0,#0x1E
 0000003E  F7FF      BL          DelayNS?T  ; T=0x0001  (1)
 00000040  FFDF      BL          DelayNS?T  ; T=0x0001  (2)
   60:         IO0CLR = BEEP;          // BEEP 蜂鸣
 00000042  2180      MOV         R1,#0x80
 00000044  4800      LDR         R0,=0xE002800C
 00000046  6001      STR         R1,[R0,#0x0]
   61:         IO1SET = LED1;          // LED1熄灭
 00000048  4800      LDR         R0,=LED1 ; LED1
 0000004A  6801      LDR         R1,[R0,#0x0] ; LED1
 0000004C  4800      LDR         R0,=0xE0028014
 0000004E  6001      STR         R1,[R0,#0x0]
   62:         DelayNS(15);
 00000050  200F      MOV         R0,#0xF
 00000052  F7FF      BL          DelayNS?T  ; T=0x0001  (1)
 00000054  FFD5      BL          DelayNS?T  ; T=0x0001  (2)
   63:     }
 00000056  3501      ADD         R5,#0x1
 00000058  1C28      MOV         R0,R5 ; i
 0000005A  2803      CMP         R0,#0x3 ; i
 0000005C  D3E7      BCC         L_14  ; T=0x0000002E
   64:     IO0SET = BEEP;          // BEEP停止蜂鸣
 0000005E  2180      MOV         R1,#0x80
 00000060  4800      LDR         R0,=0xE0028004
 00000062  6001      STR         R1,[R0,#0x0]
   67:     IO1DIR  = LEDS8;            // 设置LED1控制口为输出
 00000064  4800      LDR         R0,=LEDS8 ; LEDS8
 00000066  6801      LDR         R1,[R0,#0x0] ; LEDS8
 00000068  4800      LDR         R0,=0xE0028018
 0000006A  6001      STR         R1,[R0,#0x0]
   68:     for (j=0; j<2; j++)
 0000006C  2400      MOV         R4,#0x0
   70:         for (i=0; i<8; i++)
 0000006E          L_25:
 0000006E  2500      MOV         R5,#0x0
 00000070          L_24:
   72:             IO1SET = ~(LEDS8 & (7 << (18+i)));
 00000070  1C29      MOV         R1,R5 ; i
 00000072  3112      ADD         R1,#0x12
 00000074  2007      MOV         R0,#0x7
 00000076  4088      LSL         R0,R1
 00000078  4800      LDR         R1,=LEDS8 ; LEDS8
 0000007A  6809      LDR         R1,[R1,#0x0] ; LEDS8
 0000007C  4001      AND         R1,R0
 0000007E  43C9      MVN         R1,R1
 00000080  4800      LDR         R0,=0xE0028014
 00000082  6001      STR         R1,[R0,#0x0]
   73:             DelayNS(10);
 00000084  200A      MOV         R0,#0xA
 00000086  F7FF      BL          DelayNS?T  ; T=0x0001  (1)
 00000088  FFBB      BL          DelayNS?T  ; T=0x0001  (2)
   74:             IO1CLR = LEDS8 & (7 << (18+i));
 0000008A  1C29      MOV         R1,R5 ; i
ARM COMPILER V2.53,  Main                                                                  03/03/09  22:31:59  PAGE 7   

 0000008C  3112      ADD         R1,#0x12
 0000008E  2007      MOV         R0,#0x7
 00000090  4088      LSL         R0,R1
 00000092  4800      LDR         R1,=LEDS8 ; LEDS8
 00000094  6809      LDR         R1,[R1,#0x0] ; LEDS8
 00000096  4001      AND         R1,R0
 00000098  4800      LDR         R0,=0xE002801C
 0000009A  6001      STR         R1,[R0,#0x0]
   75:             DelayNS(10);
 0000009C  200A      MOV         R0,#0xA
 0000009E  F7FF      BL          DelayNS?T  ; T=0x0001  (1)
 000000A0  FFAF      BL          DelayNS?T  ; T=0x0001  (2)
   76:         }
 000000A2  3501      ADD         R5,#0x1
 000000A4  1C28      MOV         R0,R5 ; i
 000000A6  2808      CMP         R0,#0x8 ; i
 000000A8  D3E2      BCC         L_24  ; T=0x00000070
   78:     }
 000000AA  3401      ADD         R4,#0x1
 000000AC  1C20      MOV         R0,R4 ; j
 000000AE  2802      CMP         R0,#0x2 ; j
 000000B0  D3DD      BCC         L_25  ; T=0x0000006E
   81:     for (j=0; j<2; j++)
 000000B2  2400      MOV         R4,#0x0
   83:         for (i=0; i<42; i++)
 000000B4          L_35:
 000000B4  2500      MOV         R5,#0x0
 000000B6          L_34:
   85:             IO1SET = ~((LED_TBL[i]) << 18);
 000000B6  1C29      MOV         R1,R5 ; i
 000000B8  0089      LSL         R1,R1,#0x2 ; i
 000000BA  4800      LDR         R0,=LED_TBL ; LED_TBL
 000000BC  5841      LDR         R1,[R0,R1]
 000000BE  0489      LSL         R1,R1,#0x12
 000000C0  43C9      MVN         R1,R1
 000000C2  4800      LDR         R0,=0xE0028014
 000000C4  6001      STR         R1,[R0,#0x0]
   86:             DelayNS(10);
 000000C6  200A      MOV         R0,#0xA
 000000C8  F7FF      BL          DelayNS?T  ; T=0x0001  (1)
 000000CA  FF9A      BL          DelayNS?T  ; T=0x0001  (2)
   87:             IO1CLR = ((LED_TBL[i]) << 18);
 000000CC  1C29      MOV         R1,R5 ; i
 000000CE  0089      LSL         R1,R1,#0x2 ; i
 000000D0  4800      LDR         R0,=LED_TBL ; LED_TBL
 000000D2  5841      LDR         R1,[R0,R1]
 000000D4  0489      LSL         R1,R1,#0x12
 000000D6  4800      LDR         R0,=0xE002801C
 000000D8  6001      STR         R1,[R0,#0x0]
   88:             DelayNS(10);
 000000DA  200A      MOV         R0,#0xA
 000000DC  F7FF      BL          DelayNS?T  ; T=0x0001  (1)
 000000DE  FF90      BL          DelayNS?T  ; T=0x0001  (2)
   89:         }
 000000E0  3501      ADD         R5,#0x1
 000000E2  1C28      MOV         R0,R5 ; i
 000000E4  282A      CMP         R0,#0x2A ; i
 000000E6  D3E6      BCC         L_34  ; T=0x000000B6
   90:     }
 000000E8  3401      ADD         R4,#0x1
 000000EA  1C20      MOV         R0,R4 ; j
 000000EC  2802      CMP         R0,#0x2 ; j
 000000EE  D3E1      BCC         L_35  ; T=0x000000B4
   93:     for (j=0; j<4; j++)
 000000F0  2400      MOV         R4,#0x0
 000000F2          L_39:
ARM COMPILER V2.53,  Main                                                                  03/03/09  22:31:59  PAGE 8   

   95:         if ((IO1SET&LED1)==0)
 000000F2  4800      LDR         R0,=LED1 ; LED1
 000000F4  6801      LDR         R1,[R0,#0x0] ; LED1
 000000F6  4800      LDR         R0,=0xE0028014
 000000F8  6800      LDR         R0,[R0,#0x0]
 000000FA  4008      AND         R0,R1
 000000FC  2800      CMP         R0,#0x0
 000000FE  D102      BNE         L_41  ; T=0x00000106
   96:             IO1SET=LED1;
 00000100  4800      LDR         R0,=0xE0028014
 00000102  6001      STR         R1,[R0,#0x0]
 00000104  E001      B           L_42  ; T=0x0000010A
 00000106          L_41:
   98:             IO1CLR=LED1;
 00000106  4800      LDR         R0,=0xE002801C
 00000108  6001      STR         R1,[R0,#0x0]
 0000010A          L_42:
   99:         DelayNS(40);
 0000010A  2028      MOV         R0,#0x28
 0000010C  F7FF      BL          DelayNS?T  ; T=0x0001  (1)
 0000010E  FF78      BL          DelayNS?T  ; T=0x0001  (2)
  101:     }
 00000110  3401      ADD         R4,#0x1
 00000112  1C20      MOV         R0,R4 ; j
 00000114  2804      CMP         R0,#0x4 ; j
 00000116  D3EC      BCC         L_39  ; T=0x000000F2
  104:     for (j=0; j<10; j++)
 00000118  2400      MOV         R4,#0x0
 0000011A          L_46:
  106:         IO1PIN = 0xA5 << 18;        // 点亮LED1,LED3,LED5,LED7,其余熄灭
 0000011A  4800      LDR         R1,=0x2940000
 0000011C  4800      LDR         R0,=0xE0028010
 0000011E  6001      STR         R1,[R0,#0x0]
  107:         DelayNS(50);
 00000120  2032      MOV         R0,#0x32
 00000122  F7FF      BL          DelayNS?T  ; T=0x0001  (1)
 00000124  FF6D      BL          DelayNS?T  ; T=0x0001  (2)
  108:         IO1PIN = 0x5A << 18;        // 点亮LED2,LED4,LED6,LED8,其余熄灭
 00000126  4800      LDR         R1,=0x1680000
 00000128  4800      LDR         R0,=0xE0028010
 0000012A  6001      STR         R1,[R0,#0x0]
  109:         DelayNS(10);
 0000012C  200A      MOV         R0,#0xA
 0000012E  F7FF      BL          DelayNS?T  ; T=0x0001  (1)
 00000130  FF67      BL          DelayNS?T  ; T=0x0001  (2)
  110:     }
 00000132  3401      ADD         R4,#0x1
 00000134  1C20      MOV         R0,R4 ; j
 00000136  280A      CMP         R0,#0xA ; j
 00000138  D3EF      BCC         L_46  ; T=0x0000011A
  113:     for (j=0; j<30; j++)
 0000013A  2400      MOV         R4,#0x0
 0000013C          L_51:
  115:         IO1PIN = ~IO1SET;       // 点亮LED1,LED3,LED5,LED7,其余熄灭
 0000013C  4800      LDR         R0,=0xE0028014
 0000013E  6801      LDR         R1,[R0,#0x0]
 00000140  43C9      MVN         R1,R1
 00000142  4800      LDR         R0,=0xE0028010
 00000144  6001      STR         R1,[R0,#0x0]
  116:         DelayNS(10);
 00000146  200A      MOV         R0,#0xA
 00000148  F7FF      BL          DelayNS?T  ; T=0x0001  (1)
 0000014A  FF5A      BL          DelayNS?T  ; T=0x0001  (2)
  117:     }
 0000014C  3401      ADD         R4,#0x1
 0000014E  1C20      MOV         R0,R4 ; j
ARM COMPILER V2.53,  Main                                                                  03/03/09  22:31:59  PAGE 9   

 00000150  281E      CMP         R0,#0x1E ; j
 00000152  D3F3      BCC         L_51  ; T=0x0000013C
  120:     while (1)
 00000154          L_55:
  122:         if ((IO0PIN & KEY1) == 0)   IO0CLR = BEEP;  // 如果KEY1按下,蜂鸣器鸣叫
 00000154  4800      LDR         R0,=KEY1 ; KEY1
 00000156  6801      LDR         R1,[R0,#0x0] ; KEY1
 00000158  4800      LDR         R0,=0xE0028000
 0000015A  6800      LDR         R0,[R0,#0x0]
 0000015C  4008      AND         R0,R1
 0000015E  2800      CMP         R0,#0x0
 00000160  D103      BNE         L_57  ; T=0x0000016A
 00000162  2180      MOV         R1,#0x80
 00000164  4800      LDR         R0,=0xE002800C
 00000166  6001      STR         R1,[R0,#0x0]
 00000168  E7F4      B           L_55  ; T=0x00000154
 0000016A          L_57:
  123:             else    IO0SET = BEEP;                  // 松开则停止蜂鸣 
 0000016A  2180      MOV         R1,#0x80
 0000016C  4800      LDR         R0,=0xE0028004
 0000016E  6001      STR         R1,[R0,#0x0]
  124:     }
 00000170  E7F0      B           L_55  ; T=0x00000154
  127:     return 0;
 00000172            ; SCOPE-END
  128: }
 00000172  BC08      POP         {R3}
 00000174  4718      BX          R3
 00000176          ENDP ; 'main'



Module Information          Static
----------------------------------
  code size            =    ------
  data size            =    ------
  const size           =       180
End of Module Information.


ARM COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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