Microcontroller Projects Using the Basic Stamp - Size

Jun 4, 2002 - Microcontroller Projects. Using the Basic Stamp ...... Chapter 9 Morse Code Projects. ..... This makes for very simple software, but it has the ...
583KB taille 9 téléchargements 326 vues
Williams2.book Page i Tuesday, June 4, 2002 3:34 PM

Microcontroller Projects Using the Basic Stamp Second Edition

Al Williams

CMP Books Lawrence, Kansas 66046

Williams2.book Page ii Tuesday, June 4, 2002 3:34 PM

CMP Books CMP Media LLC 1601 West 23rd Street, Suite 200 Lawrence, Kansas 66046 USA www.cmpbooks.com Designations used by companies to distinguish their products are often claimed as trademarks. In all instances where CMP Books is aware of a trademark claim, the product name appears in initial capital letters, in all capital letters, or in accordance with the vendor’s capitalization preference. Readers should contact the appropriate companies for more complete information on trademarks and trademark registrations. All trademarks and registered trademarks in this book are the property of their respective holders. Copyright © 2002 by Al Williams, except where noted otherwise. Published by CMP Books, CMP Media LLC. All rights reserved. Printed in the United States of America. No part of this publication may be reproduced or distributed in any form or by any means, or stored in a database or retrieval system, without the prior written permission of the publisher. The programs in this book are presented for instructional value. The programs have been carefully tested, but are not guaranteed for any particular purpose. The publisher does not offer any warranties and does not guarantee the accuracy, adequacy, or completeness of any information herein and is not responsible for any errors or omissions. The publisher assumes no liability for damages resulting from the use of the information in this book or for any infringement of the intellectual property rights of third parties that would result from the use of this information. Acquisition Editor: Editor: Layout Design & Production: Managing Editor: Cover Art Design:

Robert Ward Madeleine Reardon Dimond Michelle O’Neal and Justin Fulmer Michelle O’Neal Damien Castaneda

Distributed in the U.S. and Canada by: Publishers Group West 1700 Fourth Street Berkeley, CA 94710 1-800-788-3123 www.pgw.com

ISBN: 1-57820-101-2

Williams2.book Page iii Tuesday, June 4, 2002 3:34 PM

Table of Contents Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi The Challenge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .xii Is This Book for You? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .xii What’s New in the Second Edition? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii What You Need . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii How to Proceed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiv

Chapter 1

Jump Right In . . . . . . . . . . . . . . . . . . . . . . . . . 1

Getting Started . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2 Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3 Other Prototyping Needs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7 The No-Hardware Approach . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9 The Software. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9 Your First Stamp Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10 The Outside World . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11 Digital Basics. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12 Number Systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .13 Other Bases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .14 Boolean Algebra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15 Connecting Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16 Digital Systems in an Analog World: A Few Laws. . . . . . . . . . . . . . . . . . . . .19 Pull-up and Pull-down Resistors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .23 Putting it All Together: Your Next Program . . . . . . . . . . . . . . . . . . . . . . . . .25 Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .26 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .26

iii

Williams2.book Page iv Tuesday, June 4, 2002 3:34 PM

iv

Table of Contents

Chapter 2

The Nitty Gritty — A Stamp Reference . . . . .29

General Program Formatting and Labels . . . . . . . . . . . . . . . . . . . . . . . . . . . The Stamp I Memory Map and I/O . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Stamp I Expressions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . The Stamp II Memory Map and I/O . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Stamp II Expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Handling Large, Negative, and Floating Point Expressions . . . . . . . . . . . . .

33 35 39 40 44 46

COMMAND REFERENCE . . . . . . . . . . . . . . . . . . . . . . . . .54 Section I — Data Commands . . . . . . . . . . . . . . . . . . . . .55 DEBUG I, II, IISX, IIE, IIP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SYMBOL I . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CON II, IISX, IIE, IIP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . VAR II, IISX, IIE, IIP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . LET I . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . EEPROM I . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . BSAVE I . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . DATA II, IISX, IIE, IIP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . READ I, II, IISX, IIE, IIP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . WRITE I, II, IISX, IIE, IIP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PUT IISX, IIE, IIP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GET IISX, IIE, IIP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . RANDOM I, II, IISX, IIE, IIP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

56 59 60 61 62 63 64 65 67 68 70 72 73

Section II — Flow Control . . . . . . . . . . . . . . . . . . . . . . .75 END I, II, IISX, IIE, IIP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PAUSE I, II, IISX, IIE, IIP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . NAP I, II, IISX, IIE, IIP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SLEEP I, II, IISX, IIE, IIP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GOTO I, II, IISX, IIE, IIP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . IF I, II, IISX, IIE, IIP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . BRANCH I, II, IISX, IIE, IIP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GOSUB I, II, IISX, IIE, IIP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . RETURN I, II, IISX, IIE, IIP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . FOR I, II, IISX, IIE, IIP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . NEXT I, II, IISX, IIE, IIP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . RUN IISX, IIE, IIP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

76 77 78 79 80 81 84 86 90 91 93 94

Section III — Digital I/O . . . . . . . . . . . . . . . . . . . . . . . . .95 INPUT I, II, IISX, IIE, IIP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96

Williams2.book Page v Tuesday, June 4, 2002 3:34 PM

Table of Contents

v

OUTPUT I, II, IISX, IIE, IIP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 HIGH I, II, IISX, IIE, IIP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 LOW I, II, IISX, IIE, IIP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 TOGGLE I, II, IISX, IIE, IIP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 REVERSE I, II, IISX, IIE, IIP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 PULSOUT I, II, IISX, IIE, IIP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 PULSIN I, II, IISX, IIE, IIP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 COUNT II, IISX, IIE, IIP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 BUTTON I, II, IISX, IIE, IIP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 XOUT II, IISX, IIE, IIP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108

Section IV — Analog I/O . . . . . . . . . . . . . . . . . . . . . . 110 PWM I, II, IISX, IIE, IIP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . POT I . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . RCTIME II, IISX, IIE, IIP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SOUND I . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . FREQOUT II, IISX, IIE, IIP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . DTMFOUT II, IISX, IIE, IIP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

111 113 114 116 117 119

Section V — Serial I/O . . . . . . . . . . . . . . . . . . . . . . . . 120 SERIN I, II, IISX, IIE, IIP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SEROUT I, II, IISX, IIE, IIP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SHIFTIN II, IISX, IIE, IIP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SHIFTOUT II, IISX, IIE, IIP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

121 128 130 131

Section VI — Tables . . . . . . . . . . . . . . . . . . . . . . . . . . 132 LOOKUP I, II, IISX, IIE, IIP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 LOOKDOWN I, II, IISX, IIE, IIP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134

Section VII — Specialized I/O . . . . . . . . . . . . . . . . . . 135 AUXIO, MAINIO IIP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . I2CIN, I2COUT BSIIP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . IOTERM BSIIP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . LCDCMD, LCDIN, LCDOUT BSIIP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OWIN, OWOUT BSIIP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

136 137 138 139 141

Section VIII — Event Handling . . . . . . . . . . . . . . . . . . 142 POLLIN BSIIP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . POLLMODE BSIIP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . POLLOUT BSIIP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . POLLRUN BSIIP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . POLLWAIT BSIIP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

143 144 145 146 147

Williams2.book Page vi Tuesday, June 4, 2002 3:34 PM

vi

Table of Contents

Section IX — Math Operators . . . . . . . . . . . . . . . . . . .149 +, –, *, / I, II, IISX, IIE, IIP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ** I, II, IISX, IIE, IIP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . */ II, IISX, IIE, IIP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . // I, II, IISX, IIE, IIP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . >>,