|
Author :
Wichit
Sirichote
Some
applications
may not
need
user
display
and key
interface,
dump
terminal
is an
alternative
way for
program
setting,
displaying
user
interfacing
command.
Debugging,
dump
terminal
connects
with
serial
port,
use only
2-i/o
pin,
P3.0 for
Rxd and
P3.1 for
Txd. Any
computers
that has
serial
port and
emulates
as a
dump
terminal
can be
used for
the
purpose,
the
example
used PC
run
terminal
emulation
program
has COM1
9600baud
8data
bit no
parity,
1 stop
bit.
standard
serial
port is
RS232C
needs
level
converter
from TTL
to
RS232C
by using
MAX232
or
DS275.
D1 is a
dot LED
used for
testing
program
running.
terminal.c
TERMINAL.C
TERMINAL.HEX
This
program
displays
simple
clock on
terminal.
The
89C2051
sends
ascii
string
representing
real-time
through
TxD pin
at 9600
baud.
/*
*
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;
}
}
Exercises
-
write
a
function
that
can
be
used
to
set
current
time
of
the
clock.
-
there's
a
dot
LED
connected
at
P1.7
with
sink
current
driving,
write
a
function
that
sets
turn
on
time,
when
the
clock
reachs
setting
time,
makes
the
LED
on.
|