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.
|