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

📄 target.txt

📁 一个电力系统谐波检测的程序
💻 TXT
📖 第 1 页 / 共 2 页
字号:
; generated by ARM/Thumb C/C++ Compiler with , RVCT3.0 [Build 951] for uVision
; commandline ArmCC [--debug -c --asm --interleave -otarget.o --device=DARMP --apcs=interwork -O0 -IC:\Keil\ARM\INC\Philips APP\target.c]

                          ARM

                          AREA ||.text.7||, CODE, READONLY, ALIGN=2

                  init_port PROC
;;;42       //PINSEL0=0x00000000;
;;;43       IO0DIR |=SCLK;
000000  e59f03fc          LDR      r0,|L1.1028|
000004  e5900008          LDR      r0,[r0,#8]
000008  e3800b02          ORR      r0,r0,#0x800
00000c  e59f13f0          LDR      r1,|L1.1028|
000010  e5810008          STR      r0,[r1,#8]
;;;44       IO0DIR |=SDIN;
000014  e1a00001          MOV      r0,r1
000018  e5900008          LDR      r0,[r0,#8]
00001c  e3800a01          ORR      r0,r0,#0x1000
000020  e5810008          STR      r0,[r1,#8]
;;;45       IO0DIR |=LCD_DC;
000024  e1a00001          MOV      r0,r1
000028  e5900008          LDR      r0,[r0,#8]
00002c  e3800a02          ORR      r0,r0,#0x2000
000030  e5810008          STR      r0,[r1,#8]
;;;46       IO1DIR |=LCD_CE;
000034  e1a00001          MOV      r0,r1
000038  e5900018          LDR      r0,[r0,#0x18]
00003c  e3800501          ORR      r0,r0,#0x400000
000040  e5810018          STR      r0,[r1,#0x18]
;;;47       IO0DIR |=LCD_RST;						
000044  e1a00001          MOV      r0,r1
000048  e5900008          LDR      r0,[r0,#8]
00004c  e3800901          ORR      r0,r0,#0x4000
000050  e5810008          STR      r0,[r1,#8]
;;;48       IO1DIR |=(1<<25);	//设置LED控制口为输出	  
000054  e1a00001          MOV      r0,r1
000058  e5900018          LDR      r0,[r0,#0x18]
00005c  e3800402          ORR      r0,r0,#0x2000000
000060  e5810018          STR      r0,[r1,#0x18]
;;;49       IO1DIR |=(1<<23);	//设置LCD_LED控制口为输出	   
000064  e1a00001          MOV      r0,r1
000068  e5900018          LDR      r0,[r0,#0x18]
00006c  e3800502          ORR      r0,r0,#0x800000
000070  e5810018          STR      r0,[r1,#0x18]
;;;50     
;;;51      }
000074  e12fff1e          BX       lr
                          ENDP

                  HC165_HC595_init PROC
;;;53       void  HC165_HC595_init(void)
;;;54       {
000078  e92d4010          PUSH     {r4,lr}
;;;55       PINSEL1|=(2<<2);//设置 LED的SPI时钟功能 口
00007c  e59f0384          LDR      r0,|L1.1032|
000080  e5900004          LDR      r0,[r0,#4]
000084  e3800008          ORR      r0,r0,#8
000088  e59f1378          LDR      r1,|L1.1032|
00008c  e5810004          STR      r0,[r1,#4]
;;;56       PINSEL1|=(2<<6);//设置 LED的MOSI数据 发送功能 口
000090  e1a00001          MOV      r0,r1
000094  e5900004          LDR      r0,[r0,#4]
000098  e3800080          ORR      r0,r0,#0x80
00009c  e5810004          STR      r0,[r1,#4]
;;;57       PINSEL1|=(2<<4);//set 74HC165   MISO
0000a0  e1a00001          MOV      r0,r1
0000a4  e5900004          LDR      r0,[r0,#4]
0000a8  e3800020          ORR      r0,r0,#0x20
0000ac  e5810004          STR      r0,[r1,#4]
;;;58       IO1DIR |=HC595_CS;//
0000b0  e2410901          SUB      r0,r1,#0x4000
0000b4  e5900018          LDR      r0,[r0,#0x18]
0000b8  e3800601          ORR      r0,r0,#0x100000
0000bc  e2411901          SUB      r1,r1,#0x4000
0000c0  e5810018          STR      r0,[r1,#0x18]
;;;59       IO0DIR |=HC165_SH_LD;
0000c4  e1a00001          MOV      r0,r1
0000c8  e5900008          LDR      r0,[r0,#8]
0000cc  e3800601          ORR      r0,r0,#0x100000
0000d0  e5810008          STR      r0,[r1,#8]
;;;60       SSP_Init();
0000d4  ebfffffe          BL       SSP_Init
;;;61       }
0000d8  e8bd4010          POP      {r4,lr}
0000dc  e12fff1e          BX       lr
                          ENDP

                  IRQ_Exception PROC
;;;83     {
;;;84         while(1);                   // change it to your code  这一句替换为自己的代码
0000e0  e1a00000          MOV      r0,r0
                  |L1.228|
0000e4  eafffffe          B        |L1.228|
;;;85     }
                          ENDP

                  FIQ_Exception PROC
;;;106    {
;;;107        while(1);                   // change it to your code  这一句替换为自己的代码
0000e8  e1a00000          MOV      r0,r0
                  |L1.236|
0000ec  eafffffe          B        |L1.236|
;;;108    }
                          ENDP

                  Timer0_Exception PROC
;;;127            void Timer0_Exception(void)
;;;128    {
0000f0  e92d4010          PUSH     {r4,lr}
;;;129        T0IR = 0x01;
0000f4  e3a00001          MOV      r0,#1
0000f8  e59f130c          LDR      r1,|L1.1036|
0000fc  e5810000          STR      r0,[r1,#0]
;;;130        VICVectAddr = 0;            //interrupt close 通知中断控制器中断结束
000100  e3a00000          MOV      r0,#0
000104  e5000fd0          STR      r0,[r0,#-0xfd0]
;;;131        OSTimeTick();
000108  ebfffffe          BL       OSTimeTick
;;;132    }
00010c  e8bd4010          POP      {r4,lr}
000110  e12fff1e          BX       lr
                          ENDP

                  Timer0Init PROC
;;;153    {
;;;154        T0IR = 0xffffffff;
000114  e3e00000          MVN      r0,#0
000118  e59f12ec          LDR      r1,|L1.1036|
00011c  e5810000          STR      r0,[r1,#0]
;;;155        T0TC = 0;
000120  e3a00000          MOV      r0,#0
000124  e5810008          STR      r0,[r1,#8]
;;;156        T0TCR = 0x01;
000128  e3a00001          MOV      r0,#1
00012c  e5810004          STR      r0,[r1,#4]
;;;157        T0MCR = 0x03;
000130  e3a00003          MOV      r0,#3
000134  e5810014          STR      r0,[r1,#0x14]
;;;158        T0MR0 = (Fpclk / OS_TICKS_PER_SEC);
000138  e59f02d0          LDR      r0,|L1.1040|
00013c  e5810018          STR      r0,[r1,#0x18]
;;;159     }
000140  e12fff1e          BX       lr
                          ENDP

                  VICInit PROC
;;;182    
;;;183        VICIntEnClr = 0xffffffff;
000144  e3e00000          MVN      r0,#0
000148  e3a01000          MOV      r1,#0
00014c  e5010fec          STR      r0,[r1,#-0xfec]
;;;184        VICDefVectAddr = (uint32)IRQ_Handler;
000150  e59f02bc          LDR      r0,|L1.1044|
000154  e5010fcc          STR      r0,[r1,#-0xfcc]
;;;185    
;;;186        VICVectAddr0 = (uint32)Timer0_Handler;
000158  e59f02b8          LDR      r0,|L1.1048|
00015c  e5010f00          STR      r0,[r1,#-0xf00]
;;;187        VICVectCntl0 = (0x20 | 0x04);
000160  e3a00024          MOV      r0,#0x24
000164  e5010e00          STR      r0,[r1,#-0xe00]
;;;188        VICIntEnable = 1 << 4;
000168  e3a00010          MOV      r0,#0x10
00016c  e5010ff0          STR      r0,[r1,#-0xff0]
;;;189     }
000170  e12fff1e          BX       lr
                          ENDP

                  TargetInit PROC
;;;210            void TargetInit(void)
;;;211    {
                  |L1.372|
000174  e92d4010          PUSH     {r4,lr}
;;;212        OS_ENTER_CRITICAL();
000178  ef000002          SVC      0x2  ; formerly SWI
;;;213        srand((uint32) TargetInit);
00017c  e24f0010          ADR      r0,|L1.372|
000180  ebfffffe          BL       srand
;;;214        VICInit();
000184  ebfffffe          BL       VICInit
;;;215        Timer0Init();
000188  ebfffffe          BL       Timer0Init
;;;216     	init_port();
00018c  ebfffffe          BL       init_port
;;;217    	HC165_HC595_init();
000190  ebfffffe          BL       HC165_HC595_init
;;;218    	AD_INIT();
000194  ebfffffe          BL       AD_INIT
;;;219     
;;;220        OS_EXIT_CRITICAL();
000198  ef000003          SVC      0x3  ; formerly SWI
;;;221    }
00019c  e8bd4010          POP      {r4,lr}
0001a0  e12fff1e          BX       lr
                          ENDP

                  InitialiseUART0 PROC
;;;240            void InitialiseUART0(uint32 bps)
;;;241    {  	
0001a4  e92d4070          PUSH     {r4-r6,lr}
0001a8  e1a05000          MOV      r5,r0
;;;242        uint16 Fdiv;
;;;243        IO0DIR |=1<<31;
0001ac  e59f0250          LDR      r0,|L1.1028|
0001b0  e5900008          LDR      r0,[r0,#8]
0001b4  e3800102          ORR      r0,r0,#0x80000000
0001b8  e59f1244          LDR      r1,|L1.1028|
0001bc  e5810008          STR      r0,[r1,#8]
;;;244    	IO0CLR |=1<<31;
0001c0  e1a00001          MOV      r0,r1
0001c4  e590000c          LDR      r0,[r0,#0xc]
0001c8  e3800102          ORR      r0,r0,#0x80000000
0001cc  e581000c          STR      r0,[r1,#0xc]
;;;245        PINSEL0  |=0x05;    /* Select the pins for Uart 选择管脚为UART0 */
0001d0  e2810901          ADD      r0,r1,#0x4000
0001d4  e5900000          LDR      r0,[r0,#0]
0001d8  e3800005          ORR      r0,r0,#5
0001dc  e2811901          ADD      r1,r1,#0x4000
0001e0  e5810000          STR      r0,[r1,#0]
;;;246    
;;;247        U0LCR = 0x83;                               /* Enable to access the frequenc regecter 允许访问分频因子寄存器 */
0001e4  e3a00083          MOV      r0,#0x83
0001e8  e1c11500          BIC      r1,r1,r0,LSL #10
0001ec  e5c1000c          STRB     r0,[r1,#0xc]
;;;248        Fdiv = (Fpclk / 16) / bps;                  /* Set the baudrate设置波特率 */
0001f0  e1a01005          MOV      r1,r5
0001f4  e59f0220          LDR      r0,|L1.1052|
0001f8  ebfffffe          BL       __aeabi_uidivmod
0001fc  e1a04800          LSL      r4,r0,#16
000200  e1a04824          LSR      r4,r4,#16
;;;249        U0DLM = Fdiv / 256;							
000204  e1a00004          MOV      r0,r4
000208  e1a01fc4          ASR      r1,r4,#31
00020c  e0841c21          ADD      r1,r4,r1,LSR #24
000210  e1a01801          LSL      r1,r1,#16
000214  e1a01c21          LSR      r1,r1,#24
000218  e59f2200          LDR      r2,|L1.1056|
00021c  e5c21004          STRB     r1,[r2,#4]
;;;250    	U0DLL = Fdiv % 256;						
000220  e1a00004          MOV      r0,r4
000224  e1a01fc4          ASR      r1,r4,#31
000228  e0841c21          ADD      r1,r4,r1,LSR #24
00022c  e1a01441          ASR      r1,r1,#8
000230  e0441401          SUB      r1,r4,r1,LSL #8
000234  e5c21000          STRB     r1,[r2,#0]
;;;251        U0LCR = 0x03;                               /* Disable to access the frequenc regecter 禁止访问分频因子寄存器 */
000238  e3a00003          MOV      r0,#3
00023c  e1c21000          BIC      r1,r2,r0
000240  e5c1000c          STRB     r0,[r1,#0xc]

⌨️ 快捷键说明

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