📄 rtc.lst
字号:
ARM COMPILER V2.53, rtc 02/08/06 16:25:35 PAGE 1
ARM COMPILER V2.53, COMPILATION OF MODULE rtc
OBJECT MODULE PLACED IN .\Obj\rtc.obj
COMPILER INVOKED BY: C:\Keil\ARM\BIN\CA.exe rtc.c THUMB BROWSE DEBUG PRINT(.\LST\RTC.LST) TABS(4) OBJECT(.\Obj\rtc.obj)
stmt level source
1
2
3
4 #include <LPC214X.H> /* LPC214x definitions */
5
6
7 #include <code.h>
8
9
10 /************MONTH************************************************
11
12 RTC初始化代码
13
14 *************************************************************/
15 void RTCInit(void)
16 {
17 1 //PREINT = Fpclk / 32768 - 1; // 设置基准时钟分频器
18 1 //PREFRAC = Fpclk - (Fpclk / 32768) * 32768;
19 1
20 1 // PREINT = Fpclk / 12980 - 1; // 设置基准时钟分频器
21 1 //PREFRAC = Fpclk - (Fpclk / 12980) * 12980;
22 1
23 1 CCR=0x00;
24 1
25 1 YEAR=2006;
26 1 MONTH=07;
27 1 DOM=10;
28 1 DOW=4;
29 1 HOUR=17;
30 1 MIN=18;
31 1 SEC=56;
32 1
33 1 CIIR=0X00;
34 1 CCR=0X11;
35 1
36 1 }
37
38 /*******************************************************************************
39
40 读取RTC时间函数
41
42 ********************************************************************************/
43
44 void ReadRTC(void)
45 {
46 1 uint datas;
47 1 uint times;
48 1 uint bak;
49 1
50 1 times=CTIME0;
51 1 datas=CTIME1;
52 1
53 1 bak=(times>>16)&0x1f;
54 1
55 1 Draw_a(bak/10,0,0,8); //时
56 1 Draw_a(bak%10,8,0,8);
57 1
58 1 Draw_a(10,16,0,8);
59 1
ARM COMPILER V2.53, rtc 02/08/06 16:25:35 PAGE 2
60 1
61 1 bak=(times>>8)&0x3f;
62 1
63 1 Draw_a(bak/10,24,0,8);
64 1 Draw_a(bak%10,32,0,8); //分
65 1
66 1 Draw_a(10,40,0,8);
67 1
68 1
69 1 bak=times&0x3f;
70 1
71 1 Draw_a(bak/10,48,0,8);
72 1 Draw_a(bak%10,56,0,8); //秒
73 1
74 1
75 1 bak=(datas>>16)&0xfff;
76 1
77 1 Draw_a(bak/1000,32-8,1,8);
78 1 bak%=1000;
79 1 Draw_a(bak/100,40-8,1,8); //年
80 1 bak%=100;
81 1 Draw_a(bak/10,48-8,1,8);
82 1 Draw_a(bak%10,56-8,1,8);
83 1
84 1 Draw_a(11,64-8,1,8);
85 1
86 1
87 1 bak=(datas>>8)&0x0f;
88 1
89 1 Draw_a(bak/10,72-8,1,8); //月
90 1 Draw_a(bak%10,80-8,1,8);
91 1
92 1 Draw_a(11,88-8,1,8);
93 1
94 1
95 1 bak=datas&0x1f;
96 1
97 1 Draw_a(bak/10,96-8,1,8);
98 1 Draw_a(bak%10,104-8,1,8);
99 1
100 1
101 1 }
ARM COMPILER V2.53, rtc 02/08/06 16:25:35 PAGE 3
ASSEMBLY LISTING OF GENERATED OBJECT CODE
*** EXTERNALS:
EXTERN CODE16 (Draw_a?T)
EXTERN CODE16 (?C?UDIV?T)
*** PUBLICS:
PUBLIC RTCInit?T
PUBLIC ReadRTC?T
*** CODE SEGMENT '?PR?RTCInit?T?rtc':
23: CCR=0x00;
00000000 2200 MOV R2,#0x0
00000002 4800 LDR R0,=0xE0024008
00000004 7002 STRB R2,[R0,#0x0]
25: YEAR=2006;
00000006 4800 LDRH R1,=0x7D6
00000008 4800 LDR R0,=0xE002403C
0000000A 8001 STRH R1,[R0,#0x0]
26: MONTH=07;
0000000C 2107 MOV R1,#0x7
0000000E 4800 LDR R0,=0xE0024038
00000010 7001 STRB R1,[R0,#0x0]
27: DOM=10;
00000012 210A MOV R1,#0xA
00000014 4800 LDR R0,=0xE002402C
00000016 7001 STRB R1,[R0,#0x0]
28: DOW=4;
00000018 2104 MOV R1,#0x4
0000001A 4800 LDR R0,=0xE0024030
0000001C 7001 STRB R1,[R0,#0x0]
29: HOUR=17;
0000001E 2111 MOV R1,#0x11
00000020 4800 LDR R0,=0xE0024028
00000022 7001 STRB R1,[R0,#0x0]
30: MIN=18;
00000024 2312 MOV R3,#0x12
00000026 4800 LDR R0,=0xE0024024
00000028 7003 STRB R3,[R0,#0x0]
31: SEC=56;
0000002A 2338 MOV R3,#0x38
0000002C 4800 LDR R0,=0xE0024020
0000002E 7003 STRB R3,[R0,#0x0]
33: CIIR=0X00;
00000030 4800 LDR R0,=0xE002400C
00000032 7002 STRB R2,[R0,#0x0]
34: CCR=0X11;
00000034 4800 LDR R0,=0xE0024008
00000036 7001 STRB R1,[R0,#0x0]
36: }
00000038 4770 BX R14
0000003A ENDP ; 'RTCInit?T'
*** CODE SEGMENT '?PR?ReadRTC?T?rtc':
44: void ReadRTC(void)
00000000 B570 PUSH {R4-R6,LR}
45: {
00000002 ; SCOPE-START
50: times=CTIME0;
00000002 4800 LDR R0,=0xE0024014
00000004 6806 LDR R6,[R0,#0x0]
00000006 ---- Variable 'times' assigned to Register 'R6' ----
51: datas=CTIME1;
00000006 4800 LDR R0,=0xE0024018
00000008 6805 LDR R5,[R0,#0x0]
0000000A ---- Variable 'datas' assigned to Register 'R5' ----
ARM COMPILER V2.53, rtc 02/08/06 16:25:35 PAGE 4
53: bak=(times>>16)&0x1f;
0000000A 1C34 MOV R4,R6 ; times
0000000C 0C24 LSR R4,R4,#0x10 ; times
0000000E 201F MOV R0,#0x1F
00000010 4004 AND R4,R0
00000012 ---- Variable 'bak' assigned to Register 'R4' ----
55: Draw_a(bak/10,0,0,8); //时
00000012 1C20 MOV R0,R4 ; bak
00000014 210A MOV R1,#0xA
00000016 F7FF BL ?C?UDIV?T ; T=0x0001 (1) ; ?C?UDIV?T
00000018 FFF3 BL ?C?UDIV?T ; T=0x0001 (2) ; ?C?UDIV?T
0000001A 1C08 MOV R0,R1
0000001C 2200 MOV R2,#0x0
0000001E 1C11 MOV R1,R2
00000020 2308 MOV R3,#0x8
00000022 F7FF BL Draw_a?T ; T=0x0001 (1)
00000024 FFED BL Draw_a?T ; T=0x0001 (2)
56: Draw_a(bak%10,8,0,8);
00000026 1C20 MOV R0,R4 ; bak
00000028 210A MOV R1,#0xA
0000002A F7FF BL ?C?UDIV?T ; T=0x0001 (1) ; ?C?UDIV?T
0000002C FFE9 BL ?C?UDIV?T ; T=0x0001 (2) ; ?C?UDIV?T
0000002E 1C01 MOV R1,R0
00000030 2308 MOV R3,#0x8
00000032 1C19 MOV R1,R3
00000034 2200 MOV R2,#0x0
00000036 F7FF BL Draw_a?T ; T=0x0001 (1)
00000038 FFE3 BL Draw_a?T ; T=0x0001 (2)
58: Draw_a(10,16,0,8);
0000003A 200A MOV R0,#0xA
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -