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

📄 main.txt

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

                          ARM

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

                  RTC_TASK PROC
;;;401      void  RTC_TASK(void *pdata)
;;;402      {
000000  e92d4010          PUSH     {r4,lr}
000004  e24dd048          SUB      sp,sp,#0x48
000008  e1a04000          MOV      r4,r0
;;;403        RTCTime Time  ;
;;;404    	char   Display[9],DisplayDATE[11];
;;;405     
;;;406    //    uint8   Wait_Signal0;
;;;407    	pdata = pdata;						        /*防止编译器警告 */
00000c  e1a00000          MOV      r0,r0
;;;408    	Time.RTC_Sec  = 0;       /* 秒 - [0,59] */
000010  e3a00000          MOV      r0,#0
000014  e58d0028          STR      r0,[sp,#0x28]
;;;409        Time.RTC_Min  = 0;       /* 分 - [0,59] */
000018  e58d002c          STR      r0,[sp,#0x2c]
;;;410        Time.RTC_Hour = 0;       /* 小时 - [0,23] */
00001c  e58d0030          STR      r0,[sp,#0x30]
;;;411        Time.RTC_Mday = 25;      /* 当月天数- [1,31] */
000020  e3a00019          MOV      r0,#0x19
000024  e58d0034          STR      r0,[sp,#0x34]
;;;412        Time.RTC_Mon  = 4;       /* 月 - [1,12] */
000028  e3a00004          MOV      r0,#4
00002c  e58d0038          STR      r0,[sp,#0x38]
;;;413        Time.RTC_Year = 2007;    /* 年 - [0,4095] */
000030  e59f04dc          LDR      r0,|L1.1300|
000034  e58d003c          STR      r0,[sp,#0x3c]
;;;414        Time.RTC_Wday = 2;       /* 星期- [0,6] */
000038  e3a00002          MOV      r0,#2
00003c  e58d0040          STR      r0,[sp,#0x40]
;;;415        Time.RTC_Yday = 156;     /* 当年天数 - [1,365] */
000040  e3a0009c          MOV      r0,#0x9c
000044  e58d0044          STR      r0,[sp,#0x44]
;;;416    	TargetInit();		     /*硬件初始化 */
000048  ebfffffe          BL       TargetInit
;;;417    	RTCInit();				 /**/
00004c  ebfffffe          BL       RTCInit
;;;418    	RTCSetTime(Time); 
000050  e28d1038          ADD      r1,sp,#0x38
000054  e1a0000d          MOV      r0,sp
000058  e891101c          LDM      r1,{r2-r4,r12}
00005c  e880101c          STM      r0,{r2-r4,r12}
000060  e28d3028          ADD      r3,sp,#0x28
000064  e893000f          LDM      r3,{r0-r3}
000068  ebfffffe          BL       RTCSetTime
;;;419    	RTCStart();
00006c  ebfffffe          BL       RTCStart
;;;420     	
;;;421    	while(1)
000070  ea00007c          B        |L1.616|
;;;422    	{	
;;;423     
;;;424    //	    OSSemPend(DispSem,0,&Wait_Signal0);               /*等待信号量 */
;;;425    		Time = RTCGetTime();
                  |L1.116|
000074  e28d0028          ADD      r0,sp,#0x28
000078  ebfffffe          BL       RTCGetTime
;;;426    		Display[0] = ((uint8)Time.RTC_Hour/10)+48;
00007c  e59d1030          LDR      r1,[sp,#0x30]
000080  e20100ff          AND      r0,r1,#0xff
000084  e3a0100a          MOV      r1,#0xa
000088  ebfffffe          BL       __aeabi_idivmod
00008c  e2800030          ADD      r0,r0,#0x30
000090  e5cd001c          STRB     r0,[sp,#0x1c]
;;;427    		Display[1] = ((uint8)Time.RTC_Hour%10)+48;
000094  e59d1030          LDR      r1,[sp,#0x30]
000098  e20100ff          AND      r0,r1,#0xff
00009c  e3a0100a          MOV      r1,#0xa
0000a0  ebfffffe          BL       __aeabi_idivmod
0000a4  e2810030          ADD      r0,r1,#0x30
0000a8  e5cd001d          STRB     r0,[sp,#0x1d]
;;;428    		Display[2] = ':';
0000ac  e3a0003a          MOV      r0,#0x3a
0000b0  e5cd001e          STRB     r0,[sp,#0x1e]
;;;429    		Display[3] = ((uint8)Time.RTC_Min/10)+48;
0000b4  e59d102c          LDR      r1,[sp,#0x2c]
0000b8  e20100ff          AND      r0,r1,#0xff
0000bc  e3a0100a          MOV      r1,#0xa
0000c0  ebfffffe          BL       __aeabi_idivmod
0000c4  e2800030          ADD      r0,r0,#0x30
0000c8  e5cd001f          STRB     r0,[sp,#0x1f]
;;;430    		Display[4] = ((uint8)Time.RTC_Min%10)+48;
0000cc  e59d102c          LDR      r1,[sp,#0x2c]
0000d0  e20100ff          AND      r0,r1,#0xff
0000d4  e3a0100a          MOV      r1,#0xa
0000d8  ebfffffe          BL       __aeabi_idivmod
0000dc  e2810030          ADD      r0,r1,#0x30
0000e0  e5cd0020          STRB     r0,[sp,#0x20]
;;;431    		Display[5] = ':';
0000e4  e3a0003a          MOV      r0,#0x3a
0000e8  e5cd0021          STRB     r0,[sp,#0x21]
;;;432    		Display[6] = ((uint8)Time.RTC_Sec/10)+48;
0000ec  e59d1028          LDR      r1,[sp,#0x28]
0000f0  e20100ff          AND      r0,r1,#0xff
0000f4  e3a0100a          MOV      r1,#0xa
0000f8  ebfffffe          BL       __aeabi_idivmod
0000fc  e2800030          ADD      r0,r0,#0x30
000100  e5cd0022          STRB     r0,[sp,#0x22]
;;;433    		Display[7] = ((uint8)Time.RTC_Sec%10)+48;
000104  e59d1028          LDR      r1,[sp,#0x28]
000108  e20100ff          AND      r0,r1,#0xff
00010c  e3a0100a          MOV      r1,#0xa
000110  ebfffffe          BL       __aeabi_idivmod
000114  e2810030          ADD      r0,r1,#0x30
000118  e5cd0023          STRB     r0,[sp,#0x23]
;;;434    		Display[8] = '\0';
00011c  e3a00000          MOV      r0,#0
000120  e5cd0024          STRB     r0,[sp,#0x24]
;;;435    		DisplayDATE[0] =((uint8) Time.RTC_Year/1000)+48;
000124  e59d103c          LDR      r1,[sp,#0x3c]
000128  e20100ff          AND      r0,r1,#0xff
00012c  e3a01ffa          MOV      r1,#0x3e8
000130  ebfffffe          BL       __aeabi_idivmod
000134  e2800030          ADD      r0,r0,#0x30
000138  e5cd0010          STRB     r0,[sp,#0x10]
;;;436    		Time.RTC_Mday=Time.RTC_Mday%1000;
00013c  e3a01ffa          MOV      r1,#0x3e8
000140  e59d0034          LDR      r0,[sp,#0x34]
000144  ebfffffe          BL       __aeabi_uidivmod
000148  e58d1034          STR      r1,[sp,#0x34]
;;;437    		DisplayDATE[1] =((uint8) Time.RTC_Year/100)+48;
00014c  e59d103c          LDR      r1,[sp,#0x3c]
000150  e20100ff          AND      r0,r1,#0xff
000154  e3a01064          MOV      r1,#0x64
000158  ebfffffe          BL       __aeabi_idivmod
00015c  e2800030          ADD      r0,r0,#0x30
000160  e5cd0011          STRB     r0,[sp,#0x11]
;;;438    		Time.RTC_Mday=Time.RTC_Mday%100;
000164  e3a01064          MOV      r1,#0x64
000168  e59d0034          LDR      r0,[sp,#0x34]
00016c  ebfffffe          BL       __aeabi_uidivmod
000170  e58d1034          STR      r1,[sp,#0x34]
;;;439    		DisplayDATE[2] =((uint8) Time.RTC_Year/10)+48;
000174  e59d103c          LDR      r1,[sp,#0x3c]
000178  e20100ff          AND      r0,r1,#0xff
00017c  e3a0100a          MOV      r1,#0xa
000180  ebfffffe          BL       __aeabi_idivmod
000184  e2800030          ADD      r0,r0,#0x30
000188  e5cd0012          STRB     r0,[sp,#0x12]
;;;440    		Time.RTC_Mday=Time.RTC_Mday%10;
00018c  e3a0100a          MOV      r1,#0xa
000190  e59d0034          LDR      r0,[sp,#0x34]
000194  ebfffffe          BL       __aeabi_uidivmod
000198  e58d1034          STR      r1,[sp,#0x34]
;;;441    		DisplayDATE[3] =((uint8)Time.RTC_Year)+48;
00019c  e59d003c          LDR      r0,[sp,#0x3c]
0001a0  e2800030          ADD      r0,r0,#0x30
0001a4  e5cd0013          STRB     r0,[sp,#0x13]
;;;442    		DisplayDATE[4]=':';
0001a8  e3a0003a          MOV      r0,#0x3a
0001ac  e5cd0014          STRB     r0,[sp,#0x14]
;;;443    		DisplayDATE[5] = ((uint8)Time.RTC_Mon/10)+48;
0001b0  e59d1038          LDR      r1,[sp,#0x38]
0001b4  e20100ff          AND      r0,r1,#0xff
0001b8  e3a0100a          MOV      r1,#0xa
0001bc  ebfffffe          BL       __aeabi_idivmod
0001c0  e2800030          ADD      r0,r0,#0x30
0001c4  e5cd0015          STRB     r0,[sp,#0x15]
;;;444    		DisplayDATE[6] = ((uint8)Time.RTC_Mon%10)+48;
0001c8  e59d1038          LDR      r1,[sp,#0x38]
0001cc  e20100ff          AND      r0,r1,#0xff
0001d0  e3a0100a          MOV      r1,#0xa
0001d4  ebfffffe          BL       __aeabi_idivmod
0001d8  e2810030          ADD      r0,r1,#0x30
0001dc  e5cd0016          STRB     r0,[sp,#0x16]
;;;445    		DisplayDATE[7]=':';
0001e0  e3a0003a          MOV      r0,#0x3a
0001e4  e5cd0017          STRB     r0,[sp,#0x17]
;;;446    		DisplayDATE[8] = ((uint8)Time.RTC_Mday/10)+48;
0001e8  e59d1034          LDR      r1,[sp,#0x34]
0001ec  e20100ff          AND      r0,r1,#0xff
0001f0  e3a0100a          MOV      r1,#0xa
0001f4  ebfffffe          BL       __aeabi_idivmod
0001f8  e2800030          ADD      r0,r0,#0x30
0001fc  e5cd0018          STRB     r0,[sp,#0x18]
;;;447    		DisplayDATE[9] = ((uint8)Time.RTC_Mday%10)+48;
000200  e59d1034          LDR      r1,[sp,#0x34]
000204  e20100ff          AND      r0,r1,#0xff
000208  e3a0100a          MOV      r1,#0xa
00020c  ebfffffe          BL       __aeabi_idivmod
000210  e2810030          ADD      r0,r1,#0x30
000214  e5cd0019          STRB     r0,[sp,#0x19]
;;;448    		DisplayDATE[10] = '\0';
000218  e3a00000          MOV      r0,#0
00021c  e5cd001a          STRB     r0,[sp,#0x1a]
;;;449    	    GUI_PutString(8, 15, "Date is:");  //
000220  e28f2e2f          ADR      r2,|L1.1304|
000224  e3a0100f          MOV      r1,#0xf
000228  e3a00008          MOV      r0,#8
00022c  ebfffffe          BL       GUI_PutString
;;;450            GUI_PutString(8, 25, &DisplayDATE[0]);
000230  e28d2010          ADD      r2,sp,#0x10
000234  e3a01019          MOV      r1,#0x19
000238  e3a00008          MOV      r0,#8
00023c  ebfffffe          BL       GUI_PutString
;;;451     		GUI_PutString(8, 30, "Time is:");  // 
000240  e28f2fb7          ADR      r2,|L1.1316|
000244  e3a0101e          MOV      r1,#0x1e
000248  e3a00008          MOV      r0,#8
00024c  ebfffffe          BL       GUI_PutString
;;;452            GUI_PutString(8, 40, &Display[0]);
000250  e28d201c          ADD      r2,sp,#0x1c
000254  e3a01028          MOV      r1,#0x28
000258  e3a00008          MOV      r0,#8
00025c  ebfffffe          BL       GUI_PutString
;;;453    	//	GUI_Picture(0, 0,97,66,BMP); 
;;;454    	    
;;;455    		OSTimeDly(100);
000260  e3a00064          MOV      r0,#0x64
000264  ebfffffe          BL       OSTimeDly
                  |L1.616|
000268  eaffff81          B        |L1.116|              ;421
;;;456    //		Wait_Signal0 = OSSemPost(DispSem);              /*发送信号量 */	
;;;457    	}
;;;458      }
                          ENDP

                  Task3 PROC
;;;365     void  Task3(void *pdata)
;;;366    { 
00026c  e92d4070          PUSH     {r4-r6,lr}
000270  e1a05000          MOV      r5,r0
;;;367       uint8  *snd="12a";
000274  e28f4fad          ADR      r4,|L1.1328|
;;;368     
;;;369       pdata = pdata;
000278  e1a00000          MOV      r0,r0
;;;370     
;;;371       while(1)
00027c  ea000008          B        |L1.676|
;;;372       {
;;;373       UART0_SendStr(snd);
                  |L1.640|
000280  e1a00004          MOV      r0,r4
000284  ebfffffe          BL       UART0_SendStr
;;;374          IO1CLR =(1<<25);
000288  e3a00402          MOV      r0,#0x2000000
00028c  e59f12a0          LDR      r1,|L1.1332|
000290  e581001c          STR      r0,[r1,#0x1c]
;;;375    	  IO1CLR =(1<<23);
000294  e3a00502          MOV      r0,#0x800000
000298  e581001c          STR      r0,[r1,#0x1c]
;;;376    	 // IO0CLR=(1<<11);
;;;377     
;;;378    		  OSTimeDly(100);
00029c  e3a00064          MOV      r0,#0x64
0002a0  ebfffffe          BL       OSTimeDly
                  |L1.676|
0002a4  eafffff5          B        |L1.640|              ;371
;;;379       }
;;;380    } 
                          ENDP

                  Task2 PROC
;;;350     void  Task2(void *pdata)
;;;351    {
0002a8  e92d4070          PUSH     {r4-r6,lr}
0002ac  e1a06000          MOV      r6,r0
;;;352       int temp;

⌨️ 快捷键说明

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