📄 jishuan.lst
字号:
11
12 unsigned char code dispbitcode[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
13 unsigned char a[8];
14 unsigned char i,j;
15 unsigned char temp,x,count;
16 unsigned char key,k;
17 unsigned long sun=0,chu=0,xian=0;
18 bit wei=0;
19
20
21
22
23
24
25
26 void main(void)
27
28 {
29 1
30 1 TMOD=0x01;
31 1
32 1 TH0=(65536-4000) / 256;
33 1
34 1 TL0=(65536-4000) % 256;
35 1
36 1 TR0=1;
37 1
38 1 ET0=1;
39 1
40 1 EA=1;
41 1
42 1
43 1
44 1
45 1
46 1 count=0;
47 1
48 1
49 1
50 1 for( k=4;;k++)
51 1
52 1 {
53 2
54 2 P3=dispbitcode[k];
C51 COMPILER V7.07 JISHUAN 04/05/2009 16:58:31 PAGE 7
55 2
56 2 temp=P3;
57 2
58 2 temp=temp & 0x0f;
59 2
60 2 if (temp!=0x0f)
61 2
62 2 {
63 3
64 3 for(i=50;i>0;i--)
65 3
66 3 for(j=200;j>0;j--);
67 3
68 3 temp=P3;
69 3
70 3 temp=temp & 0x0f;
71 3
72 3 if (temp!=0x0f)
73 3
74 3 {
75 4
76 4 temp=P3;
77 4
78 4 temp=temp & 0x0f;
79 4
80 4 switch(temp)
81 4
82 4 {
83 5
84 5 case 0x0e:
85 5
86 5 if (k==4)
87 5 key=7;
88 5
89 5 if (k==5)
90 5 key=4;
91 5
92 5 if (k==6)
93 5 key=1;
94 5
95 5 if (k==7)
96 5 key=15;
97 5
98 5 break;
99 5
100 5 case 0x0d:
101 5
102 5 if (k==4)
103 5 key=8;
104 5
105 5 if (k==5)
106 5 key=5;
107 5
108 5 if (k==6)
109 5 key=2;
110 5
111 5 if (k==7)
112 5 key=0;
113 5
114 5 break;
115 5
116 5 case 0x0b:
C51 COMPILER V7.07 JISHUAN 04/05/2009 16:58:31 PAGE 8
117 5
118 5 if (k==4)
119 5 key=9;
120 5
121 5 if (k==5)
122 5 key=6;
123 5
124 5 if (k==6)
125 5 key=3;
126 5
127 5 if (k==7)
128 5 key=14;
129 5
130 5 break;
131 5
132 5 case 0x07:
133 5
134 5 if (k==4)
135 5 key=10;
136 5
137 5 if (k==5)
138 5 key=11;
139 5
140 5 if (k==6)
141 5 key=12;
142 5
143 5 if (k==7)
144 5 key=13;
145 5
146 5 break;
147 5
148 5
149 5
150 5
151 5
152 5 }
153 4
154 4 while(temp!=0x0f)
155 4
156 4 {
157 5
158 5 temp=P3;
159 5
160 5 temp=temp & 0x0f;
161 5
162 5 }
163 4
164 4 }
165 3 }
166 2 else
167 2 key=16;
168 2 if (k==7)
169 2 k=3;
170 2 if ((key>=0) && (key<10))
171 2 {
172 3 sun=sun*10+key;
173 3 xian=sun;
174 3 }
175 2 if ((key>9) && (key<15))
176 2 {
177 3 switch(count)
178 3 {
C51 COMPILER V7.07 JISHUAN 04/05/2009 16:58:31 PAGE 9
179 4 case 0:
180 4 count=key;
181 4 chu=sun;
182 4 sun=0;
183 4
184 4 break;
185 4
186 4 case 10:
187 4
188 4 count=key;
189 4 xian=chu/sun;
190 4 chu=xian;
191 4 sun=0;
192 4 break;
193 4
194 4 case 11:
195 4
196 4 count=key;
197 4
198 4 xian=chu*sun;
199 4
200 4 chu=xian;
201 4
202 4 sun=0;
203 4
204 4 break;
205 4
206 4 case 12:
207 4
208 4 count=key;
209 4
210 4 xian=chu-sun;
211 4
212 4 chu=xian;
213 4
214 4 sun=0;
215 4 break;
216 4
217 4 case 13:
218 4
219 4 count=key;
220 4
221 4 xian=chu+sun;
222 4
223 4 chu=xian;
224 4
225 4 sun=0;
226 4 break;
227 4
228 4 case 14:
229 4
230 4
231 4 count=key;
232 4
233 4 break;
234 4
235 4
236 4 }
237 3 }
238 2 if (key==15)
239 2 {
240 3 count=0;
C51 COMPILER V7.07 JISHUAN 04/05/2009 16:58:31 PAGE 10
241 3
242 3 sun=0;
243 3
244 3 chu=0;
245 3
246 3 xian=0;
247 3 }
248 2
249 2
250 2
251 2 }
252 1 }
253 void t0(void) interrupt 1 using 0
254
255 {
256 1 TR0=0;
257 1
258 1 TH0=(65536-4000) / 256;
259 1
260 1 TL0=(65536-4000) % 256;
261 1 a[7]=xian/10000000;
262 1 a[6]=xian%10000000/1000000;
263 1 a[5]=xian%1000000/100000;
264 1 a[4]=xian%100000/10000;
265 1 a[3]=xian%10000/1000;
266 1 a[2]=xian%1000/100;
267 1 a[1]=xian%100/10;
268 1 a[0]=xian%10;
269 1 if (wei==0)
270 1 {
271 2 wei=1;
272 2 while(!(a[7-x]>0))
273 2 {
274 3
275 3 if (x>6)
276 3 break;
277 3 else
278 3 x++;
279 3 }
280 2 }
281 1 P1=0xff;
282 1 P2=dispcode[a[7-x]];
283 1 P1=dispbitcode[x];
284 1 x++;
285 1 if(x>7)
286 1 {
287 2 x=0;
288 2 wei=0;
289 2 }
290 1 TR0=1;
291 1
292 1 }
293
294
C51 COMPILER V7.07 JISHUAN 04/05/2009 16:58:31 PAGE 11
NAME CLASS MSPACE TYPE OFFSET SIZE
==== ===== ====== ==== ====== ====
P1 . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0090H 1
P2 . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00A0H 1
P3 . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00B0H 1
EA . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00AFH 1
dispbitcode. . . . . . . . . . . . . . PUBLIC CODE ARRAY 000BH 8
size_t . . . . . . . . . . . . . . . . TYPEDEF ----- U_INT ----- 2
t0 . . . . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
main . . . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
count. . . . . . . . . . . . . . . . . PUBLIC DATA U_CHAR 0000H 1
xian . . . . . . . . . . . . . . . . . PUBLIC DATA U_LONG 0001H 4
TMOD . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0089H 1
temp . . . . . . . . . . . . . . . . . PUBLIC DATA U_CHAR 0005H 1
chu. . . . . . . . . . . . . . . . . . PUBLIC DATA U_LONG 0006H 4
wei. . . . . . . . . . . . . . . . . . PUBLIC DATA BIT 0000H 1
ET0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00A9H 1
key. . . . . . . . . . . . . . . . . . PUBLIC DATA U_CHAR 000AH 1
TH0. . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 008CH 1
dispcode . . . . . . . . . . . . . . . PUBLIC CODE ARRAY 0000H 11
TL0. . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 008AH 1
TR0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008CH 1
sun. . . . . . . . . . . . . . . . . . PUBLIC DATA U_LONG 000BH 4
a. . . . . . . . . . . . . . . . . . . PUBLIC DATA ARRAY 000FH 8
i. . . . . . . . . . . . . . . . . . . PUBLIC DATA U_CHAR 0017H 1
j. . . . . . . . . . . . . . . . . . . PUBLIC DATA U_CHAR 0018H 1
k. . . . . . . . . . . . . . . . . . . PUBLIC DATA U_CHAR 0019H 1
x. . . . . . . . . . . . . . . . . . . PUBLIC DATA U_CHAR 001AH 1
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 988 ----
CONSTANT SIZE = 19 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 27 ----
IDATA SIZE = ---- ----
BIT SIZE = 1 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -