?? 1.3.lst
字號(hào):
C51 COMPILER V7.50 1_3 08/17/2008 19:05:24 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE 1_3
OBJECT MODULE PLACED IN 1.3.OBJ
COMPILER INVOKED BY: E:\keil3\C51\BIN\C51.EXE 1.3.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include<reg51.h>
2 #define uint unsigned int
3 #define uchar unsigned char
4 uint a,b,c,c1,d,x,y,xi,n,n0,
5 ke,ke0,kex,ke1,k1,ke2,ke3,ke4,
6 ry,ry0,ry1,hf,hf0,hf1,hf2,hf3,
7 bian,ge,shi,bai,qian,q1,q2,
8 q3,q4,t,f,f1,f2,f3,ke12;
9 uchar code table[]={
10 //0x12,0x7e,0x43,0x4a,0x2e,
11 //0x8a,0x82,0x5e,0x02,0x0a};
12 0xc0,0xf9,0xa4,0xb0,0x99,
13 0x92,0x82,0xf8,0x80,0x90};
14
15 void into()
16 {
17 1 TMOD=0x22;
18 1 EA=1;
19 1 ET0=1;
20 1 TR0=1;
21 1 TH0=56;
22 1 TL0=56;
23 1 a=0;
24 1 b=0;
25 1 c=0;
26 1 d=0;
27 1 q1=0xef;
28 1 q2=0xf7;
29 1 q3=0xfb;
30 1 q4=0xfd;
31 1 f=0xff;
32 1 f1=0xff;
33 1 f2=0xff;
34 1 f3=0xff;
35 1 ke1=0;
36 1 ke2=0;
37 1 ke3=1;
38 1 ke4=1;
39 1 ry=187;
40 1 hf=123;
41 1 xi=0;
42 1 n=2008;
43 1 // P0=0x00;
44 1 }
45 void delay(uint b)
46 {
47 1 for(x=b;x>0;x--)
48 1 for(y=30;y>0;y--);
49 1 }
50 void display()
51 {
52 1 ge=xi%10;
53 1 P1=q1;
54 1 P2=table[ge];
55 1 delay(10);
C51 COMPILER V7.50 1_3 08/17/2008 19:05:24 PAGE 2
56 1 shi=xi%100/10;
57 1 P1=q2;
58 1 P2=table[shi];
59 1 delay(10);
60 1 bai=xi/100%10;
61 1 P1=q3;
62 1 P2=table[bai];
63 1 delay(10);
64 1 qian=xi/1000;
65 1 P1=q4;
66 1 P2=table[qian];
67 1 delay(10);
68 1 P1=0xff;
69 1 }
70
71
72 void key()
73 {
74 1
75 1 uchar i,j;
76 1 ke=P3&0x3c;
77 1
78 1 if (a>3000)
79 1 i=c;
80 1 if (a<1500)
81 1 j=c;
82 1 if (ke==0x38||ke==0x34||ke==0x2c||ke==0x1c)
83 1 {
84 2 delay(10);
85 2 if (ke==0x38||ke==0x34||ke==0x2c||ke==0x1c)
86 2 {
87 3 kex=ke;
88 3 delay(500);
89 3 ke0=P3&0x3c;
90 3
91 3 }
92 2 }
93 1 switch(kex)
94 1 {
95 2 case 0x38: if (ke!=ke0)ke1++;break;
96 2 case 0x34: if (ke!=ke0)ke2++;break;
97 2 // case 0x2c: if (ke!=ke0)ke3++;break;
98 2 // case 0x1c: if (ke!=ke0)ke4++;break;
99 2 }
100 1 kex=0;
101 1 if (ke1>4)
102 1 ke1=0;
103 1 if (ke2>4)
104 1 ke2=0;
105 1
106 1 if (ke1==0)
107 1 {
108 2 k1=2;
109 2 if (c%60>20&&c%60<=40)
110 2 k1=3;
111 2 if (c%60>40&&c%60<=60)
112 2 k1=4;
113 2 switch(k1)
114 2 {
115 3 case 2:xi=hf1;break;
116 3 case 3:xi=ry1;break;
117 3 case 4:xi=n;break;
C51 COMPILER V7.50 1_3 08/17/2008 19:05:24 PAGE 3
118 3 default : ;
119 3 }
120 2 }
121 1 else
122 1 switch(ke1)
123 1 {
124 2 case 1:xi=c1;break;
125 2 case 2:xi=hf1;break;
126 2 case 3:xi=ry1;break;
127 2 case 4:xi=n;break;
128 2 default : ;
129 2 }
130 1 if (ke2>0)
131 1 {
132 2 switch(ke2)
133 2 {
134 3 case 1: if (i!=j)t=f,f=q1,q1=t;
135 3 if (ke!=ke0&&ke==0x2c)ge++;
136 3 if (ke!=ke0&&ke==0x1c)ge--;break;
137 3 case 2: if(i!=j)t=f1,f1=q2,q2=t;
138 3 if (ke!=ke0&&ke==0x2c)shi++;
139 3 if (ke!=ke0&&ke==0x1c)shi--;break;
140 3 case 3: if (i!=j)t=f2,f2=q3,q3=t;
141 3 if (ke!=ke0&&ke==0x2c)bai++;
142 3 if (ke!=ke0&&ke==0x1c)bai--;break;
143 3 case 4: if (i!=j)t=f3,f3=q4,q4=t;
144 3 if (ke!=ke0&&ke==0x2c)qian++;
145 3 if (ke!=ke0&&ke==0x1c)qian--;break;
146 3 default : ;
147 3 }
148 2 d=ge+shi*10+bai*100+qian*1000;
149 2 xi=d;
150 2 if (ke1!=0)
151 2 ke12=ke1+5;
152 2 switch(ke12)
153 2 {
154 3 case 7:hf0=d;break;
155 3 case 8:ry0=d;break;
156 3 case 9:n0=d;break;
157 3 }
158 2 if (ke1!=0)
159 2 {
160 3 switch(ke12)
161 3 {
162 4 case 6:c=d;break;
163 4 case 7:hf=d;break;
164 4 case 8:ry=d;break;
165 4 case 9:n=d;break;
166 4 }
167 3 ke12=ke1-5;
168 3 }
169 2 // ke1=0;
170 2 }
171 1
172 1 }
173 void year()
174 {
175 1 if(c==3600)
176 1 {
177 2 c=0;
178 2 hf3++;
179 2 }
C51 COMPILER V7.50 1_3 08/17/2008 19:05:24 PAGE 4
180 1 hf=hf3*60+c/60;
181 1 if(hf==24*60)
182 1 {
183 2 ry++;
184 2 hf=0;
185 2 }
186 1 if (ry==373)
187 1 n++,ry=31;
188 1 switch(ry/31)
189 1 {
190 2 //case 1: if (ry%60==32)ry=ry+28;break;
191 2 case 2: if (ry%31==29)ry=ry+2;break;
192 2 // case 3: if (ry%60==32)ry=ry+28;break;
193 2 case 4: if (ry%31==30)ry=ry+1;break;
194 2 // case 5: if (ry%60==32)ry=ry+28;break;
195 2 case 6: if (ry%31==30)ry=ry+1;break;
196 2 // case 7: if (ry%60==32)ry=ry+28;break;
197 2 // case 8: if (ry%60==32)ry=ry+28;break;
198 2 case 9: if (ry%31==30)ry=ry+1;break;
199 2 // case 10: if (ry%60==32)ry=ry+28;break;
200 2 case 11: if (ry%31==30)ry=ry+1;break;
201 2 // case 12: if (ry%60==32)ry=ry+28;break;
202 2 default : ;
203 2 }
204 1
205 1 }
206 void time()
207 {
208 1 if (n==n0&&ry1==ry0&&hf1==hf0)
209 1 {
210 2 P0=0x01;
211 2 }
212 1 if (hf1!=hf0)
213 1 P0=0x00;
214 1
215 1 }
216 void transfrom ()
217 {
218 1 hf1=hf%10+hf%60/10*10+hf/60%10*100+hf/60/10*1000;
219 1 c1=c%10+c%60/10*10+c/60%10*100+c/60/10*1000;
220 1 ry1=(ry/31+1)%10+(ry%31+1)/10*10+ry/31%10*100+ry/31/10*1000;
221 1 }
222 void main()
223 {
224 1 into();
225 1
226 1 while(1)
227 1 {
228 2 year();
229 2 key();
230 2 transfrom ();
231 2 display();
232 2 time();
233 2
234 2 }
235 1 }
236 void exter0() interrupt 1
237 {
238 1 a++;
239 1 if(a==4608)
240 1 {
241 2 c++;
C51 COMPILER V7.50 1_3 08/17/2008 19:05:24 PAGE 5
242 2 a=0;
243 2 }
244 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 1953 ----
CONSTANT SIZE = 10 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 82 2
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -