📄 led.lst
字号:
206
207 //*****************************开始计时************************************
208
209 void clock()
210 {
211 1
212 1 hour=key_value[0]*10+key_value[1];
213 1 min=key_value[2]*10+key_value[3];
214 1 sec=key_value[4]*10+key_value[5];
215 1
216 1 if(hour>23||min>59||sec>59)
217 1 {
218 2 key_valueclean();
219 2 Error();
220 2
221 2 }
222 1 else
223 1 {
224 2 while(1)
225 2 {
226 3 if(sec==60) //秒为60分进1
227 3 {
228 4 min++;
229 4 sec=0;
230 4 if(min==60) //分为60时进1
231 4 {
232 5 hour++;
233 5 min=0;
234 5 if(hour==24) //时为24,时为0
235 5 hour=0;
236 5
237 5 }
238 4
239 4 }
240 3
241 3 sg=sec%10; //显示秒
C51 COMPILER V7.50 LED 04/15/2008 19:27:32 PAGE 5
242 3 ss=sec/10;
243 3 write7279(0x80,sg);
244 3 write7279(0x81,ss);
245 3
246 3
247 3
248 3 mg=min%10; //显示分
249 3 ms=min/10;
250 3 write7279(0x82,mg);
251 3 write7279(0x83,ms);
252 3
253 3
254 3
255 3 hg=hour%10; //显示时
256 3 hs=hour/10;
257 3 write7279(0x84,hg);
258 3 write7279(0x85,hs);
259 3
260 3
261 3
262 3
263 3 delay10ms(100); //延时1秒
264 3 sec++;
265 3
266 3 stopkey();
267 3
268 3
269 3
270 3 }
271 2 }
272 1 }
273
274
275
276
277
278 //*************************倒计时函数***********************************************
279
280
281
282
283 void countdowntime()
284 {
285 1
286 1 hour=key_value[0]*10+key_value[1];
287 1 min=key_value[2]*10+key_value[3];
288 1 sec=key_value[4]*10+key_value[5];
289 1
290 1
291 1 if(hour>23||min>59||sec>59)
292 1 {
293 2 key_valueclean();
294 2 Error();
295 2
296 2 }
297 1 else
298 1 {
299 2 while(1)
300 2 {
301 3 if(sec==-1) //秒记到0时
302 3 {
303 4 min--;
C51 COMPILER V7.50 LED 04/15/2008 19:27:32 PAGE 6
304 4 sec=59;
305 4 if(min==-1) //分记到0时
306 4 {
307 5 hour--;
308 5 min=59;
309 5 // if(hour==-1) //时记到0时
310 5 // hour=23;
311 5
312 5 }
313 4
314 4 }
315 3
316 3 sg=sec%10; //显示秒
317 3 ss=sec/10;
318 3 write7279(0x80,sg);
319 3 write7279(0x81,ss);
320 3
321 3
322 3
323 3 mg=min%10; //显示分
324 3 ms=min/10;
325 3 write7279(0x82,mg);
326 3 write7279(0x83,ms);
327 3
328 3
329 3
330 3 hg=hour%10; //显示时
331 3 hs=hour/10;
332 3 write7279(0x84,hg);
333 3 write7279(0x85,hs);
334 3
335 3
336 3
337 3
338 3 delay10ms(100); //延时1秒
339 3 sec--;
340 3
341 3
342 3
343 3 while(hour==0&min==0&sec==-1) //时间到时,显示要按F键
344 3 {
345 4 write7279(DECODE1,0x0f);
346 4 stopkey();
347 4 }
348 3
349 3
350 3
351 3 }
352 2 }
353 1
354 1
355 1
356 1 }
357
358
359
360 //****************************显示错误*********************************
361
362 void Error()
363 {
364 1
365 1
C51 COMPILER V7.50 LED 04/15/2008 19:27:32 PAGE 7
366 1 send_byte(CMD_RESET); //复位
367 1
368 1 write7279(UNDECODE+4, 0x4F); //E
369 1 write7279(UNDECODE+3, 0x05); //r
370 1 write7279(UNDECODE+2, 0x05); //r
371 1 write7279(UNDECODE+1, 0x1D); //o
372 1 write7279(UNDECODE, 0x05); //r
373 1
374 1 while(1)
375 1 {
376 2 stopkey();
377 2 }
378 1
379 1
380 1 }
381
382
383
384
385 //**********************************等待停止键**************************************
386
387
388 void stopkey(void)
389 {
390 1 if(!key)
391 1 {
392 2 key_number=read7279(CMD_READ); //按下F键后回到键盘等待状态
393 2 if(key_number==KEY_F)
394 2 {
395 3 a=0;
396 3 keycontrol();
397 3 }
398 2 }
399 1 }
400
401
402
403
404
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 976 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 30 ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -