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

📄 main.lst

📁 keil开发平台下的ADUC7027的功能模块代码。
💻 LST
📖 第 1 页 / 共 2 页
字号:
 0000004C  0A000003  BEQ         L_4  ; Targ=0x60
   55:      ON_LED6();             //如果LED6灭的,则点亮它
 00000050  E3A01701  MOV         R1,#0x40000
 00000054  E5100000  LDR         R0,=0xFFFFF458
 00000058  E5801000  STR         R1,[R0,#0x0]
   56:     }
 0000005C  EA000015  B           L_2  ; Targ=0xB8
 00000060          L_4:
   59:      OFF_LED6();          //如果LED6亮的,则熄灭它
 00000060  E3A01701  MOV         R1,#0x40000
 00000064  E5100000  LDR         R0,=0xFFFFF454
 00000068  E5801000  STR         R1,[R0,#0x0]
   61:    return;
 0000006C  EA000011  B           L_2  ; Targ=0xB8
   62:   }
 00000070          L_3:
   65:  if(IRQSTA & TIMER3)       //读取IRQ中断状态,判断IRQ中断源
 00000070  E5100000  LDR         R0,=0xFFFF0000
 00000074  E5900000  LDR         R0,[R0,#0x0]
 00000078  E3100020  TST         R0,#0x0020
 0000007C  0A00000D  BEQ         L_2  ; Targ=0xB8
   67:    T3CLRI=0;
 00000080  E3A01000  MOV         R1,#0x0
 00000084  E5100000  LDR         R0,=0xFFFF036C
 00000088  E5801000  STR         R1,[R0,#0x0]
   68:    if(LED7STAT)
 0000008C  E5100000  LDR         R0,=0xFFFFF450
 00000090  E5900000  LDR         R0,[R0,#0x0]
 00000094  E3100702  TST         R0,#0x80000
 00000098  0A000003  BEQ         L_7  ; Targ=0xAC
   70:      ON_LED7();             //如果LED7灭的,则点亮它
 0000009C  E3A01702  MOV         R1,#0x80000
 000000A0  E5100000  LDR         R0,=0xFFFFF458
 000000A4  E5801000  STR         R1,[R0,#0x0]
   71:     }
 000000A8  EA000002  B           L_2  ; Targ=0xB8
 000000AC          L_7:
   74:      OFF_LED7();            //如果LED7亮的,则熄灭它
 000000AC  E3A01702  MOV         R1,#0x80000
 000000B0  E5100000  LDR         R0,=0xFFFFF454
 000000B4  E5801000  STR         R1,[R0,#0x0]
   78: }
ARM COMPILER V2.50a,  main                                                                 25/04/06  04:24:57  PAGE 6   

 000000B8          L_2:
 000000B8  E8BD0003  LDMIA       R13!,{R0-R1}
 000000BC  E25EF004  SUBS        R15,R14,#0x0004
 000000C0          ENDP ; 'IRQ_Handler?A'


*** CODE SEGMENT '?PR?FIQ_Handler?A?main':
   85:  if(FIQSTA & TIMER0)       //读取FIQ中断状态,判断FIQ中断源
 00000000  E5108000  LDR         R0,=0xFFFF0100
 00000004  E5988000  LDR         R8,[R8,#0x0]
 00000008  E3180004  TST         R8,#0x0004
 0000000C  0A000012  BEQ         L_12  ; Targ=0x5C
   87:    GP0CLR=(1<<(6+16));     //在P0.6上产生一个上升沿,给Timer1提供1/128秒的时钟信号
 00000010  E3A09501  MOV         R9,#0x400000
 00000014  E5108000  LDR         R0,=0xFFFFF428
 00000018  E5889000  STR         R9,[R8,#0x0]
   88:    GP0SET=(1<<(6+16));
 0000001C  E5108000  LDR         R0,=0xFFFFF424
 00000020  E5889000  STR         R9,[R8,#0x0]
   89:    T0CLRI=0;                //清Timer0中断
 00000024  E3A09000  MOV         R9,#0x0
 00000028  E5108000  LDR         R0,=0xFFFF030C
 0000002C  E5889000  STR         R9,[R8,#0x0]
   90:    if(LED4STAT)
 00000030  E5108000  LDR         R0,=0xFFFFF450
 00000034  E5988000  LDR         R8,[R8,#0x0]
 00000038  E3180801  TST         R8,#0x10000
 0000003C  0A000003  BEQ         L_10  ; Targ=0x50
   92:      ON_LED4(); //如果LED4灭的,则点亮它
 00000040  E3A09801  MOV         R9,#0x10000
 00000044  E5108000  LDR         R0,=0xFFFFF458
 00000048  E5889000  STR         R9,[R8,#0x0]
   93:     }
 0000004C  EA000002  B           L_12  ; Targ=0x5C
 00000050          L_10:
   96:      OFF_LED4();            //如果LED4亮的,则熄灭它
 00000050  E3A09801  MOV         R9,#0x10000
 00000054  E5108000  LDR         R0,=0xFFFFF454
 00000058  E5889000  STR         R9,[R8,#0x0]
  100: }
 0000005C          L_12:
 0000005C  E25EF004  SUBS        R15,R14,#0x0004
 00000060          ENDP ; 'FIQ_Handler?A'


*** CODE SEGMENT '?PR?DisplayTime?A?main':
  111: void DisplayTime(void)
 00000000  E92D4000  STMDB       R13!,{LR}
  115:  if(OldSecond==RealTime.Time.Second)  //如果秒值没有变化,则不用刷新时间
 00000004  E5100000  LDR         R0,=RealTime + 0x1 ; RealTime+1
 00000008  E5D00000  LDRB        R0,[R0,#0x0] ; RealTime+1
 0000000C  E1A01000  MOV         R1,R0
 00000010  E5100000  LDR         R0,=OldSecond ; OldSecond
 00000014  E5900000  LDR         R0,[R0,#0x0] ; OldSecond
 00000018  E1500001  CMP         R0,R1
 0000001C  0A00003D  BEQ         L_14  ; Targ=0x118
  120:  OldSecond=RealTime.Time.Second;     //如果秒值发生了变化,则需要刷新,并保存当前秒值
 00000020  E5100000  LDR         R0,=OldSecond ; OldSecond
 00000024  E5801000  STR         R1,[R0,#0x0] ; OldSecond
  122:  if(LED5STAT)    //控制LED5每秒闪烁一次
 00000028  E5100000  LDR         R0,=0xFFFFF450
 0000002C  E5900000  LDR         R0,[R0,#0x0]
 00000030  E3100802  TST         R0,#0x20000
 00000034  0A000003  BEQ         L_15  ; Targ=0x48
  124:    ON_LED5();
 00000038  E3A01802  MOV         R1,#0x20000
 0000003C  E5100000  LDR         R0,=0xFFFFF458
 00000040  E5801000  STR         R1,[R0,#0x0]
  125:   }
 00000044  EA000002  B           L_16  ; Targ=0x54
ARM COMPILER V2.50a,  main                                                                 25/04/06  04:24:57  PAGE 7   

 00000048          L_15:
  128:    OFF_LED5();
 00000048  E3A01802  MOV         R1,#0x20000
 0000004C  E5100000  LDR         R0,=0xFFFFF454
 00000050  E5801000  STR         R1,[R0,#0x0]
  129:   }
 00000054          L_16:
  131:  send_a_byte(RealTime.Time.Hour/10+'0');     //显示小时
 00000054  E5100000  LDR         R0,=RealTime + 0x3 ; RealTime+3
 00000058  E5D00000  LDRB        R0,[R0,#0x0] ; RealTime+3
 0000005C  E3A0100A  MOV         R1,#0xA
 00000060  EBFFFFE6  BL          ?C?SDIV?A  ; Targ=0x0 ; ?C?SDIV?A
 00000064  E1A00001  MOV         R0,R1
 00000068  E2800030  ADD         R0,R0,#0x0030
 0000006C  EBFFFFE3  BL          send_a_byte?A  ; Targ=0x0
  132:  send_a_byte(RealTime.Time.Hour%10+'0');
 00000070  E5100000  LDR         R0,=RealTime + 0x3 ; RealTime+3
 00000074  E5D00000  LDRB        R0,[R0,#0x0] ; RealTime+3
 00000078  E3A0100A  MOV         R1,#0xA
 0000007C  EBFFFFDF  BL          ?C?SDIV?A  ; Targ=0x0 ; ?C?SDIV?A
 00000080  E1A01000  MOV         R1,R0
 00000084  E2810030  ADD         R0,R1,#0x0030
 00000088  EBFFFFDC  BL          send_a_byte?A  ; Targ=0x0
  133:  send_a_byte(':');
 0000008C  E3A0003A  MOV         R0,#0x3A
 00000090  EBFFFFDA  BL          send_a_byte?A  ; Targ=0x0
  134:  send_a_byte(RealTime.Time.Minute/10+'0');    //显示分
 00000094  E5100000  LDR         R0,=RealTime + 0x2 ; RealTime+2
 00000098  E5D00000  LDRB        R0,[R0,#0x0] ; RealTime+2
 0000009C  E3A0100A  MOV         R1,#0xA
 000000A0  EBFFFFD6  BL          ?C?SDIV?A  ; Targ=0x0 ; ?C?SDIV?A
 000000A4  E1A00001  MOV         R0,R1
 000000A8  E2800030  ADD         R0,R0,#0x0030
 000000AC  EBFFFFD3  BL          send_a_byte?A  ; Targ=0x0
  135:  send_a_byte(RealTime.Time.Minute%10+'0');
 000000B0  E5100000  LDR         R0,=RealTime + 0x2 ; RealTime+2
 000000B4  E5D00000  LDRB        R0,[R0,#0x0] ; RealTime+2
 000000B8  E3A0100A  MOV         R1,#0xA
 000000BC  EBFFFFCF  BL          ?C?SDIV?A  ; Targ=0x0 ; ?C?SDIV?A
 000000C0  E1A01000  MOV         R1,R0
 000000C4  E2810030  ADD         R0,R1,#0x0030
 000000C8  EBFFFFCC  BL          send_a_byte?A  ; Targ=0x0
  136:  send_a_byte(':');
 000000CC  E3A0003A  MOV         R0,#0x3A
 000000D0  EBFFFFCA  BL          send_a_byte?A  ; Targ=0x0
  137:  send_a_byte(RealTime.Time.Second/10+'0');    //显示秒
 000000D4  E5100000  LDR         R0,=RealTime + 0x1 ; RealTime+1
 000000D8  E5D00000  LDRB        R0,[R0,#0x0] ; RealTime+1
 000000DC  E3A0100A  MOV         R1,#0xA
 000000E0  EBFFFFC6  BL          ?C?SDIV?A  ; Targ=0x0 ; ?C?SDIV?A
 000000E4  E1A00001  MOV         R0,R1
 000000E8  E2800030  ADD         R0,R0,#0x0030
 000000EC  EBFFFFC3  BL          send_a_byte?A  ; Targ=0x0
  138:  send_a_byte(RealTime.Time.Second%10+'0');
 000000F0  E5100000  LDR         R0,=RealTime + 0x1 ; RealTime+1
 000000F4  E5D00000  LDRB        R0,[R0,#0x0] ; RealTime+1
 000000F8  E3A0100A  MOV         R1,#0xA
 000000FC  EBFFFFBF  BL          ?C?SDIV?A  ; Targ=0x0 ; ?C?SDIV?A
 00000100  E1A01000  MOV         R1,R0
 00000104  E2810030  ADD         R0,R1,#0x0030
 00000108  EBFFFFBC  BL          send_a_byte?A  ; Targ=0x0
  142:  prints("",1);
 0000010C  E3E00102  MVN         R0,#0x102 ; ??S_1
 00000110  E3A01001  MOV         R1,#0x1
 00000114  EBFFFFB9  BL          prints?A  ; Targ=0x0
  143: }
ARM COMPILER V2.50a,  main                                                                 25/04/06  04:24:57  PAGE 8   

 00000118          L_14:
 00000118  E8BD0008  LDMIA       R13!,{R3}
 0000011C  E12FFF13  BX          R3
 00000120          ENDP ; 'DisplayTime?A'


*** CODE SEGMENT '?PR?main?main':
  147: void main(void)
 00000000  E92D4000  STMDB       R13!,{LR}
  149:  SysClkInit();
 00000004  EBFFFFFD  BL          SysClkInit?A  ; Targ=0x0
  150:  UART_init();
 00000008  EBFFFFFC  BL          UART_init?A  ; Targ=0x0
  151:  cls();
 0000000C  EBFFFFFB  BL          cls?A  ; Targ=0x0
  153:  EN_LED4();
 00000010  E5100000  LDR         R0,=0xFFFFF40C
 00000014  E5901000  LDR         R1,[R0,#0x0]
 00000018  E3C1100F  BIC         R1,R1,#0x000F
 0000001C  E5801000  STR         R1,[R0,#0x0]
 00000020  E5100000  LDR         R0,=0xFFFFF450
 00000024  E5901000  LDR         R1,[R0,#0x0]
 00000028  E3811401  ORR         R1,R1,#0x1000000
 0000002C  E5801000  STR         R1,[R0,#0x0]
  154:  EN_LED5();
 00000030  E5100000  LDR         R0,=0xFFFFF40C
 00000034  E5901000  LDR         R1,[R0,#0x0]
 00000038  E3C110F0  BIC         R1,R1,#0x00F0
 0000003C  E5801000  STR         R1,[R0,#0x0]
 00000040  E5100000  LDR         R0,=0xFFFFF450
 00000044  E5901000  LDR         R1,[R0,#0x0]
 00000048  E3811402  ORR         R1,R1,#0x2000000
 0000004C  E5801000  STR         R1,[R0,#0x0]
  155:  EN_LED6();
 00000050  E5100000  LDR         R0,=0xFFFFF40C
 00000054  E5901000  LDR         R1,[R0,#0x0]
 00000058  E3C11C0F  BIC         R1,R1,#0x0F00
 0000005C  E5801000  STR         R1,[R0,#0x0]
 00000060  E5100000  LDR         R0,=0xFFFFF450
 00000064  E5901000  LDR         R1,[R0,#0x0]
 00000068  E3811301  ORR         R1,R1,#0x4000000
 0000006C  E5801000  STR         R1,[R0,#0x0]
  156:  EN_LED7();
 00000070  E5100000  LDR         R0,=0xFFFFF40C
 00000074  E5901000  LDR         R1,[R0,#0x0]
 00000078  E3C11A0F  BIC         R1,R1,#0xF000
 0000007C  E5801000  STR         R1,[R0,#0x0]
 00000080  E5100000  LDR         R0,=0xFFFFF450
 00000084  E5901000  LDR         R1,[R0,#0x0]
 00000088  E3811302  ORR         R1,R1,#0x8000000
 0000008C  E5801000  STR         R1,[R0,#0x0]
  157:  OFF_LED4();
 00000090  E3A01801  MOV         R1,#0x10000
 00000094  E5100000  LDR         R0,=0xFFFFF454
 00000098  E5801000  STR         R1,[R0,#0x0]
  158:  OFF_LED5();
 0000009C  E3A01802  MOV         R1,#0x20000
 000000A0  E5100000  LDR         R0,=0xFFFFF454
 000000A4  E5801000  STR         R1,[R0,#0x0]
  159:  OFF_LED6();
 000000A8  E3A01701  MOV         R1,#0x40000
 000000AC  E5100000  LDR         R0,=0xFFFFF454
 000000B0  E5801000  STR         R1,[R0,#0x0]
  160:  OFF_LED7();
 000000B4  E3A01702  MOV         R1,#0x80000
 000000B8  E5100000  LDR         R0,=0xFFFFF454
 000000BC  E5801000  STR         R1,[R0,#0x0]
  162:  Timer0Init();
ARM COMPILER V2.50a,  main                                                                 25/04/06  04:24:57  PAGE 9   

 000000C0  EBFFFFCE  BL          Timer0Init?A  ; Targ=0x0
  163:  Timer1Init();
 000000C4  EBFFFFCD  BL          Timer1Init?A  ; Targ=0x0
  164:  Timer2Init();
 000000C8  EBFFFFCC  BL          Timer2Init?A  ; Targ=0x0
  165:  Timer3Init();
 000000CC  EBFFFFCB  BL          Timer3Init?A  ; Targ=0x0
  168:  prints("System Start......",1);
 000000D0  E3E00102  MVN         R0,#0x102 ; ??S_2
 000000D4  E3A01001  MOV         R1,#0x1
 000000D8  EBFFFFC8  BL          prints?A  ; Targ=0x0
  170:  while(1)
 000000DC          L_19:
  172:    RealTime.TimeData=T1VAL;  //读回定时器1的值
 000000DC  E5100000  LDR         R0,=0xFFFF0324
 000000E0  E5901000  LDR         R1,[R0,#0x0]
 000000E4  E5100000  LDR         R0,=RealTime ; RealTime
 000000E8  E5801000  STR         R1,[R0,#0x0] ; RealTime
  173:    DisplayTime();            //显示时间
 000000EC  EBFFFFC3  BL          DisplayTime?A  ; Targ=0x0
  174:   }
 000000F0  EAFFFFF9  B           L_19  ; Targ=0xDC
  175: }
 000000F4  E8BD0008  LDMIA       R13!,{R3}
 000000F8  E12FFF13  BX          R3
 000000FC          ENDP ; 'main'



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


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

⌨️ 快捷键说明

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