18.11.2014 Views

The Microcontroller Idea Book - Jan Axelson's Lakeview Research

The Microcontroller Idea Book - Jan Axelson's Lakeview Research

The Microcontroller Idea Book - Jan Axelson's Lakeview Research

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Clocks and Calendars<br />

Listing 10-3 (page 1 of 4). Clock and alarm routines for DS1286 Watchdog<br />

Timer.<br />

10 REM set WT to match address of DS1286 watchdog timer<br />

20 WT=0A000H<br />

30 DO<br />

40 PRINT<br />

50 PRINT “Select function:”<br />

60 PRINT “Initialize and start clock 1"<br />

70 PRINT “Display time and day 2"<br />

80 PRINT “Set alarm 3"<br />

90 INPUT A<br />

100 IF A=1 THEN GOSUB 200<br />

110 IF A=2 THEN GOSUB 1000<br />

120 IF A=3 THEN GOSUB 2000<br />

130 WHILE 1=1<br />

140 END<br />

200 REM initialize and start clock<br />

210 REM stop clock while initializing<br />

220 XBY(WT+9)=XBY(WT+9).OR.80H<br />

230 REM get time and date, convert each value to BCD and<br />

store<br />

240 INPUT “year (0-99)? ”,X<br />

250 GOSUB 3000<br />

260 XBY(WT+0AH)=X<br />

270 INPUT “month (1-12)? ”,X<br />

280 GOSUB 3000<br />

290 XBY(WT+9)=(XBY(WT+9).AND.0E0H)+X<br />

300 INPUT “day of month (1-31)? ”,X<br />

310 GOSUB 3000<br />

320 XBY(WT+8)=X<br />

330 INPUT “day of week (1-7)? ”,X<br />

340 GOSUB 3000<br />

350 XBY(WT+6)=X<br />

360 INPUT “24-hr (0) or 12-hr (1) clock? ”,TT<br />

370 IF TT=0 THEN GOSUB 3000 ELSE GOSUB 600<br />

380 INPUT “minutes (0-59)? ”,X<br />

390 GOSUB 3000<br />

400 XBY(WT+2)=X<br />

410 INPUT “seconds (0-59)? ”,X<br />

420 GOSUB 3000<br />

430 XBY(WT+1)=X<br />

440 XBY(WT)=0<br />

<strong>The</strong> <strong>Microcontroller</strong> <strong>Idea</strong> <strong>Book</strong> 181

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!