📄 d.lst
字号:
C51 COMPILER V7.06 D 12/22/2008 21:01:20 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE D
OBJECT MODULE PLACED IN d.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE d.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include <reg52.h>
2 #include <absacc.h>
3 #include "intrins.h"
4 #include <dis.h>
5 #define uchar unsigned char
6 #define uint unsigned int
7 #define REG_A XBYTE[0x030A]
8 #define REG_B XBYTE[0x030B]
9 #define REG_C XBYTE[0x030C]
10 #define REG_D XBYTE[0x030D]
11 uchar tabwei1[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
12 uchar xdata *DS12887=0x0300;
13 uchar code PIAN_YI[6]={9,8,7,4,2,0 };/*-- 年、月、日、时、分、秒-- */
14 uchar idata DS12887_time[6]={8,12,6,20,27,00};/*----- 06/5/29 14:03:10 -----*/
15 uchar idata Time[20];/*-----提取时间各个位数据-----*/
16 //uchar key;
17 void delay()
18 {
19 1 uchar i,j,k;
20 1 for(i=2;i>0;i--)
21 1 for(j=3;j>0;j--)
22 1 for(k=60;k>0;k--);
23 1 }
24
25
26 void DS12887_Set0(void ) // 设置初始化时间
27
28 {
29 1
30 1 uchar idata i;
31 1
32 1 REG_B=0x86;
33 1
34 1 for(i=0;i<6;i++)
35 1
36 1 {
37 2
38 2 *(DS12887+PIAN_YI[i])=DS12887_time[i];
39 2
40 2 }
41 1
42 1 }
43
44 void DS12887_Read(void)// 读取实时时间
45 {
46 1 uchar idata k,i;
47 1
48 1 do
49 1
50 1 {
51 2
52 2 k=REG_A;
53 2
54 2 }while(k&0x80);
55 1
C51 COMPILER V7.06 D 12/22/2008 21:01:20 PAGE 2
56 1 for(i=0;i<6;i++)
57 1
58 1 {
59 2
60 2 DS12887_time[i]=*(DS12887+PIAN_YI[i]);
61 2
62 2 }
63 1
64 1 }
65 void set_p(uchar a,uchar j)
66 {
67 1 if( *(DS12887+a)+1>=0&&*(DS12887+a)+1<j)
68 1 {
69 2 *(DS12887+a)=*(DS12887+a)+1;
70 2
71 2 }
72 1 }
73 void set_m(uchar a,uchar j)
74 {
75 1 if( *(DS12887+a)-1>=0&&*(DS12887+a)-1<j)
76 1 {
77 2 *(DS12887+a)=*(DS12887+a)-1;
78 2
79 2 }
80 1 }
81
82 void read_timebit()
83 {
84 1 DS12887_Read();
85 1
86 1 Time[0]=DS12887_time[0]/10;//年十位0~9
87 1
88 1 Time[1]=DS12887_time[0]%10;//年个位0~9
89 1
90 1 Time[2]=DS12887_time[1]/10;//月十位0~1
91 1
92 1 Time[3]=DS12887_time[1]%10;//月个位0~9
93 1
94 1 Time[4]=DS12887_time[2]/10;//日十位0~3
95 1
96 1 Time[5]=DS12887_time[2]%10;//日个位0~9
97 1
98 1 Time[6]=DS12887_time[3]/10;//时十位0~2
99 1
100 1 Time[7]=DS12887_time[3]%10;//时个位0~9
101 1
102 1 Time[8]=DS12887_time[4]/10;//分十位0~5
103 1
104 1 Time[9]=DS12887_time[4]%10;//分个位0~9
105 1
106 1 Time[10]=DS12887_time[5]/10;//秒十位0~5
107 1
108 1 Time[11]=DS12887_time[5]%10;//秒个位0~9
109 1 }
110 void dis_play()
111 {
112 1 read_timebit();
113 1 mydisplay(0,Time[6]);
114 1 delay();
115 1 mydisplay(1,Time[7]);
116 1 delay();
117 1 mydisplay(2,10);
C51 COMPILER V7.06 D 12/22/2008 21:01:20 PAGE 3
118 1 delay();
119 1 mydisplay(4,Time[9]);
120 1 delay();
121 1 mydisplay(3,Time[8]);
122 1 delay();
123 1 mydisplay(5,10);
124 1 delay();
125 1 mydisplay(7,Time[11]);
126 1 delay();
127 1 mydisplay(6,Time[10]);
128 1 delay();
129 1 }
130
131
132 uint scankey()
133 {
134 1 uchar i;
135 1 tabwei1[i];
*** WARNING C275 IN LINE 135 OF D.C: expression with possibly no effect
136 1 //sendshur(10);
137 1 //sendshul(10);
138 1 if((readkey==0)&&(tabwei1[i]==0x01))
139 1 {
140 2
141 2 return 1;
142 2 }
143 1 if((readkey==0)&&(tabwei1[i]==0x02))
144 1 {
145 2 return 2;
146 2 }
147 1 i++;
148 1 if(i==8)
149 1 i=0;
150 1 }
151
152 void shanshuo_dis1()
153 {
154 1 read_timebit();
155 1 mydisplay(0,11);
156 1 delay();
157 1 mydisplay(1,11);
158 1 delay();
159 1 mydisplay(2,10);
160 1 delay();
161 1 mydisplay(4,Time[9]);
162 1 delay();
163 1 mydisplay(3,Time[8]);
164 1 delay();
165 1 mydisplay(5,10);
166 1 delay();
167 1 mydisplay(7,Time[11]);
168 1 delay();
169 1 mydisplay(6,Time[10]);
170 1 delay();
171 1 }
172 void shanshuo_dis2()
173 {
174 1 read_timebit();
175 1 mydisplay(0,Time[6]);
176 1 delay();
177 1 mydisplay(1,Time[7]);
178 1 delay();
C51 COMPILER V7.06 D 12/22/2008 21:01:20 PAGE 4
179 1 delay();
180 1 mydisplay(2,10);
181 1 delay();
182 1 mydisplay(4,11);
183 1 delay();
184 1 mydisplay(3,11);
185 1 delay();
186 1 mydisplay(5,10);
187 1 delay();
188 1 mydisplay(7,Time[11]);
189 1 delay();
190 1 mydisplay(6,Time[10]);
191 1 delay();
192 1 }
193 void shanshuo1()
194 {
195 1 uchar j,i,t,n;
196 1 while(t==0)
197 1 {
198 2 for(i=60;i>0;i--)
199 2 {
200 3 dis_play();
201 3 }
202 2 for(j=60;j>0;j--)
203 2 {
204 3 shanshuo_dis1();
205 3 }
206 2 n=scankey();
207 2 if(n!=0)
208 2 t=2;
209 2 }
210 1 }
211 void shanshuo2()
212 {
213 1 uchar j,i,t,n;
214 1 while(t==0)
215 1 {
216 2 for(i=60;i>0;i--)
217 2 {
218 3 dis_play();
219 3 }
220 2 for(j=60;j>0;j--)
221 2 {
222 3 shanshuo_dis2();
223 3 }
224 2 n=scankey();
225 2 if(n!=0)
226 2 t=2;
227 2 }
228 1 }
229 void main (void)
230 {
231 1 uchar k,key;
232 1 REG_A=0x20;
233 1 REG_B=0x26;
234 1 while(1)
235 1 {
236 2 dis_play();
237 2 key=scankey();
238 2 if(key==2)
239 2 {
240 3 k++;
C51 COMPILER V7.06 D 12/22/2008 21:01:20 PAGE 5
241 3 if(k==1)
242 3 shanshuo1();
243 3 else
244 3 shanshuo2();
245 3 }
246 2
247 2 }
248 1
249 1
250 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 761 ----
CONSTANT SIZE = 6 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 10 8
IDATA SIZE = 26 3
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 1 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -