?? clock.lst
字號(hào):
C51 COMPILER V7.01 CLOCK 03/08/2007 12:09:37 PAGE 1
C51 COMPILER V7.01, COMPILATION OF MODULE CLOCK
OBJECT MODULE PLACED IN clock.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE clock.c OPTIMIZE(7,SPEED) REGFILE(.\fingerPRJ.ORC) BROWSE FLOATFUZZY(0) NOA
-REGS DEBUG OBJECTEXTEND CODE
stmt level source
1 #include "reg58.h"
2 #include "bus.h"
3 #include "clock.h"
4 #include "intrins.h"
5 #include "timer.h"
6 #include "lcd.h"
7
8 unsigned char clock_read(unsigned char time)
9 {
10 1 unsigned char tempdata;
11 1 AS128=0;
12 1 SEL128=0;
13 1 DATAPORT=time;
14 1 AS128=1;
15 1 _nop_();
16 1 AS128=0;
17 1
18 1 DATAPORT=0XFF;
19 1 //tempdata=DATAPORT;
20 1
21 1 RD=0;
22 1 _nop_();
23 1 _nop_();
24 1 tempdata=DATAPORT;
25 1 RD=1;
26 1 SEL128=1;
27 1 return tempdata;
28 1 }
29
30 void clock_write(unsigned char time,unsigned char timedata)
31 {
32 1 AS128=0;
33 1 //WR=0;
34 1 SEL128=0;
35 1 DATAPORT=time;
36 1 AS128=1;
37 1 _nop_();
38 1 AS128=0;
39 1
40 1 DATAPORT=timedata;
41 1 WR=0;
42 1 _nop_();
43 1 WR=1;
44 1 SEL128=1;
45 1 }
46
47 void getdatetime()
48 {
49 1 datetime[0]=clock_read(CCENTURY);
50 1 datetime[1]=clock_read(CYEAR);
51 1 datetime[2]=clock_read(CMONTH);
52 1 datetime[3]=clock_read(CDAYOFMONTH);
53 1 datetime[4]=clock_read(CHOURS);
54 1 datetime[5]=clock_read(CMINUTES);
C51 COMPILER V7.01 CLOCK 03/08/2007 12:09:37 PAGE 2
55 1 datetime[6]=clock_read(CSECONDS);
56 1 datetime[7]=clock_read(CDAYOFWEEK);
57 1 secondsflag=0;
58 1 seconds=0;
59 1 }
60 void init_clock()
61 {
62 1 //unsigned char tempdata;
63 1 //clock_write(REGISTERA,0x20);
64 1 //clock_write(SECONDS,0);
65 1 //clock_write(MINUTES,32);
66 1 //clock_write(HOURS,12);
67 1 //clock_write(DAYOFWEEK,4);
68 1 //clock_write(DAYOFMONTH,11);
69 1 //clock_write(MONTH,8);
70 1 //clock_write(YEAR,05);
71 1 //clock_write(CENTURY,20);
72 1
73 1 //clock_write(100,0x55);
74 1 //tempdata=clock_read(100);
75 1 clock_write(CREGISTERB,0x6);
76 1 clock_write(CREGISTERA,0x20);
77 1 //while(1)
78 1 //{
79 1 //tempdata=clock_read(SECONDS);
80 1 //tempdata=clock_read(MINUTES);
81 1 //tempdata=clock_read(HOURS);
82 1 //t/empdata=clock_read(DAYOFWEEK);
83 1 //tempdata=clock_read(DAYOFMONTH);
84 1 //tempdata=clock_read(MONTH);
85 1 //tempdata=clock_read(YEAR);
86 1 //tempdata=clock_read(CENTURY);
87 1 //tempdata=clock_read(REGISTERA);
88 1 //tempdata=clock_read(REGISTERB);
89 1 //tempdata=clock_read(REGISTERC);
90 1 //tempdata=clock_read(REGISTERD);
91 1 //}
92 1 //tempdata1=clock_read(USEDFLAG1);
93 1 //tempdata2=clock_read(USEDFLAG2);
94 1 //getdatetime(datetime);
95 1 _nop_();
96 1 }
97
98 void checksavedate()
99 {
100 1 unsigned char tempdata;
101 1 tempdata=(dispbuff[LINE2][0]-0X30)*10+dispbuff[LINE2][1]-0X30; //20
102 1 if(tempdata!=20)return;
103 1
104 1 tempdata=(dispbuff[LINE2][2]-0X30)*10+dispbuff[LINE2][3]-0X30; //05
105 1 if(tempdata>99)return;
106 1
107 1 tempdata=(dispbuff[LINE2][4]-0X30)*10+dispbuff[LINE2][5]-0X30; //10
108 1 if((tempdata>12)||(!tempdata))return;
109 1
110 1 tempdata=(dispbuff[LINE2][6]-0X30)*10+dispbuff[LINE2][7]-0X30; //11
111 1 if((tempdata>31)||(!tempdata))return;
112 1
113 1 tempdata=(dispbuff[LINE2][8]-0X30)*10+dispbuff[LINE2][9]-0X30; //
114 1 if(tempdata>23)return;
115 1
116 1 tempdata=(dispbuff[LINE2][10]-0X30)*10+dispbuff[LINE2][11]-0X30;
C51 COMPILER V7.01 CLOCK 03/08/2007 12:09:37 PAGE 3
117 1 if(tempdata>59)return;
118 1
119 1 tempdata=(dispbuff[LINE2][12]-0X30)*10+dispbuff[LINE2][13]-0X30;
120 1 if(tempdata>59)return;
121 1
122 1 tempdata=dispbuff[LINE2][14]-0X30;
123 1 if((tempdata>7)||(!tempdata))return;
124 1
125 1
126 1 tempdata=(dispbuff[LINE2][12]-0X30)*10+dispbuff[LINE2][13]-0X30;
127 1 clock_write(CSECONDS,tempdata);
128 1
129 1 tempdata=(dispbuff[LINE2][10]-0X30)*10+dispbuff[LINE2][11]-0X30;
130 1 clock_write(CMINUTES,tempdata);
131 1
132 1 tempdata=(dispbuff[LINE2][8]-0X30)*10+dispbuff[LINE2][9]-0X30; //
133 1 clock_write(CHOURS,tempdata);
134 1
135 1 tempdata=(dispbuff[LINE2][6]-0X30)*10+dispbuff[LINE2][7]-0X30; //11
136 1 clock_write(CDAYOFMONTH,tempdata);
137 1
138 1 tempdata=(dispbuff[LINE2][4]-0X30)*10+dispbuff[LINE2][5]-0X30; //10
139 1 clock_write(CMONTH,tempdata);
140 1
141 1 tempdata=(dispbuff[LINE2][2]-0X30)*10+dispbuff[LINE2][3]-0X30; //05
142 1 clock_write(CYEAR,tempdata);
143 1
144 1 tempdata=(dispbuff[LINE2][0]-0X30)*10+dispbuff[LINE2][1]-0X30; //20
145 1 clock_write(CCENTURY,tempdata);
146 1
147 1 tempdata=dispbuff[LINE2][14]-0X30;
148 1 clock_write(CDAYOFWEEK,tempdata);
149 1
150 1 getdatetime();
151 1
152 1
153 1
154 1 }
C51 COMPILER V7.01 CLOCK 03/08/2007 12:09:37 PAGE 4
ASSEMBLY LISTING OF GENERATED OBJECT CODE
; FUNCTION _clock_read (BEGIN)
; SOURCE LINE # 8
;---- Variable 'time' assigned to Register 'R7' ----
; SOURCE LINE # 9
; SOURCE LINE # 11
0000 C2B4 CLR AS128
; SOURCE LINE # 12
0002 C2A0 CLR SEL128
; SOURCE LINE # 13
0004 8F80 MOV P0,R7
; SOURCE LINE # 14
0006 D2B4 SETB AS128
; SOURCE LINE # 15
0008 00 NOP
; SOURCE LINE # 16
0009 C2B4 CLR AS128
; SOURCE LINE # 18
000B 7580FF MOV P0,#0FFH
; SOURCE LINE # 21
000E C2B7 CLR RD
; SOURCE LINE # 22
0010 00 NOP
; SOURCE LINE # 23
0011 00 NOP
; SOURCE LINE # 24
;---- Variable 'tempdata' assigned to Register 'R7' ----
0012 AF80 MOV R7,P0
; SOURCE LINE # 25
0014 D2B7 SETB RD
; SOURCE LINE # 26
0016 D2A0 SETB SEL128
; SOURCE LINE # 27
; SOURCE LINE # 28
0018 ?C0001:
0018 22 RET
; FUNCTION _clock_read (END)
; FUNCTION _clock_write (BEGIN)
; SOURCE LINE # 30
;---- Variable 'timedata' assigned to Register 'R5' ----
;---- Variable 'time' assigned to Register 'R7' ----
; SOURCE LINE # 31
; SOURCE LINE # 32
0000 C2B4 CLR AS128
; SOURCE LINE # 34
0002 C2A0 CLR SEL128
; SOURCE LINE # 35
0004 8F80 MOV P0,R7
; SOURCE LINE # 36
0006 D2B4 SETB AS128
; SOURCE LINE # 37
0008 00 NOP
; SOURCE LINE # 38
0009 C2B4 CLR AS128
; SOURCE LINE # 40
000B 8D80 MOV P0,R5
; SOURCE LINE # 41
000D C2B6 CLR WR
; SOURCE LINE # 42
C51 COMPILER V7.01 CLOCK 03/08/2007 12:09:37 PAGE 5
000F 00 NOP
; SOURCE LINE # 43
0010 D2B6 SETB WR
; SOURCE LINE # 44
0012 D2A0 SETB SEL128
; SOURCE LINE # 45
0014 22 RET
; FUNCTION _clock_write (END)
; FUNCTION getdatetime (BEGIN)
; SOURCE LINE # 47
; SOURCE LINE # 48
; SOURCE LINE # 49
0000 7F32 MOV R7,#032H
0002 120000 R LCALL _clock_read
0005 8F00 E MOV datetime,R7
; SOURCE LINE # 50
0007 7F09 MOV R7,#09H
0009 120000 R LCALL _clock_read
000C 8F00 E MOV datetime+01H,R7
; SOURCE LINE # 51
000E 7F08 MOV R7,#08H
0010 120000 R LCALL _clock_read
0013 8F00 E MOV datetime+02H,R7
; SOURCE LINE # 52
0015 7F07 MOV R7,#07H
0017 120000 R LCALL _clock_read
001A 8F00 E MOV datetime+03H,R7
; SOURCE LINE # 53
001C 7F04 MOV R7,#04H
001E 120000 R LCALL _clock_read
0021 8F00 E MOV datetime+04H,R7
; SOURCE LINE # 54
0023 7F02 MOV R7,#02H
0025 120000 R LCALL _clock_read
0028 8F00 E MOV datetime+05H,R7
; SOURCE LINE # 55
002A E4 CLR A
002B FF MOV R7,A
002C 120000 R LCALL _clock_read
002F 8F00 E MOV datetime+06H,R7
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -