/* * terminal.c * use terminal for displaying clock * Copyright (c) 1999 by Wichit Sirichote * compiled with Dunfield Micro-C for 8051 Release 3.2 * c:\mc\cc51 terminal -i h=c:\mc m=t */ #include c:\mc\8051io.h /* include i/o header file */ #include c:\mc\8051reg.h extern register char cputick; unsigned register char sec100,sec,min,hour,flag1; main() { flag1 = 0; hour = 17; min = 59; sec = 0; serinit(9600); while(1){ while(cputick <10) ; cputick = 0; time(); printtime(); } } time () /* update real-time clock */ { sec100++; if (sec100 >= 10) /* 100 * 10 ms = 1 s */ {sec100 = 0; flag1 |= 0x01; /* set bit 0 */ sec++; if (sec >= 60) {sec = 0; flag1 |= 0x02; /* set bit 1 */ min++; if (min >= 60) {min = 0; hour++; if (hour >= 24) {hour = 0; } } } } } printtime() { if ((flag1 & 0x01) != 0) { printf("\n %02u:%02u:%02u",hour,min,sec); flag1 &= ~0x01; } }