Wilmshurst | Designing Embedded Systems with PIC Microcontrollers | E-Book | sack.de
E-Book

E-Book, Englisch, 583 Seiten

Wilmshurst Designing Embedded Systems with PIC Microcontrollers

Principles and Applications

E-Book, Englisch, 583 Seiten

ISBN: 978-0-08-046814-3
Verlag: Elsevier Science & Techn.
Format: EPUB
Kopierschutz: 6 - ePub Watermark



Embedded Systems with PIC Microcontrollers: Principles and Applications is a hands-on introduction to the principles and practice of embedded system design using the PIC microcontroller. Packed with helpful examples and illustrations, the book provides an in-depth treatment of microcontroller design as well as programming in both assembly language and C, along with advanced topics such as techniques of connectivity and networking and real-time operating systems. In this one book students get all they need to know to be highly proficient at embedded systems design. This text combines embedded systems principles with applications, using the16F84A, 16F873A and the 18F242 PIC microcontrollers. Students learn how to apply the principles using a multitude of sample designs and design ideas, including a robot in the form of an autonomous guide vehicle. Coverage between software and hardware is fully balanced, with full presentation given to microcontroller design and software programming, using both assembler and C. The book is accompanied by a companion website containing copies of all programs and software tools used in the text and a 'student' version of the C compiler. This textbook will be ideal for introductory courses and lab-based courses on embedded systems, microprocessors using the PIC microcontroller, as well as more advanced courses which use the 18F series and teach C programming in an embedded environment. Engineers in industry and informed hobbyists will also find this book a valuable resource when designing and implementing both simple and sophisticated embedded systems using the PIC microcontroller.*Gain the knowledge and skills required for developing today's embedded systems, through use of the PIC microcontroller.
*Explore in detail the 16F84A, 16F873A and 18F242 microcontrollers as examples of the wider PIC family.
*Learn how to program in Assembler and C.
*Work through sample designs and design ideas, including a robot in the form of an autonomous guided vehicle.
*Accompanied by a CD-ROM containing copies of all programs and software tools used in the text and a 'student' version of the C complier.

Tim Wilmshurst is the author of Designing Embedded Systems with PIC Microcontrollers. He has been designing embedded systems since the early days of microcontrollers. For many years this was for Cambridge University, where he led a development team building original systems for research applications - for example in measurement of bullet speed, wind tunnel control, simulated earthquakes, or seeking a cure to snoring. Now he is Head of Electronic Systems at the University of Derby, where he aims to share his love of engineering design with his students.
Wilmshurst Designing Embedded Systems with PIC Microcontrollers jetzt bestellen!

Autoren/Hrsg.


Weitere Infos & Material


1;Cover;1
2;Copyright page;5
3;Table of contents;6
4;Introduction;22
5;Acknowledgements;26
6;Section 1: Getting Started with Embedded Systems;28
6.1;Chapter 1. Tiny computers, hidden control;30
6.1.1;1.1 The main idea – embedded systems in today’s world;30
6.1.2;1.2 Some example embedded systems;31
6.1.3;1.3 Some computer essentials;35
6.1.4;1.4 Microprocessors and microcontrollers;38
6.1.5;1.5 Microchip and the PIC microcontroller;42
6.1.6;1.6 An introduction to PIC microcontrollers using the 12 Series;44
6.1.7;1.7 What others do – a Freescale microcontroller;47
6.1.8;Summary;49
6.1.9;References;49
7;Section 2: Minimum Systems and the PIC 16F84A;50
7.1;Chapter 2. Introducing the PIC 16 Series and the 16F84A;52
7.1.1;2.1 The main idea – the PIC 16 Series family;52
7.1.2;2.2 An architecture overview of the 16F84A;54
7.1.3;2.3 A review of memory technologies;56
7.1.4;2.4 The 16F84A memory;59
7.1.5;2.5 Some issues of timing;64
7.1.6;2.6 Power-up and Reset;65
7.1.7;2.7 What others do – the Atmel AT89C2051;67
7.1.8;2.8 Taking things further – the 16F84A on-chip reset circuit;68
7.1.9;Summary;71
7.1.10;References;71
7.2;Chapter 3. Parallel ports, power supply and the clock oscillator;72
7.2.1;3.1 The main idea – parallel input/output;73
7.2.2;3.2 The technical challenge of parallel input/output;73
7.2.3;3.3 Connecting to the parallel port;79
7.2.4;3.4 The PIC 16F84A parallel ports;82
7.2.5;3.5 The clock oscillator;86
7.2.6;3.6 Power supply;88
7.2.7;3.7 The hardware design of the electronic ping-pong;90
7.2.8;Summary;91
7.2.9;References;91
7.3;Chapter 4. Starting to program – an introduction to Assembler;92
7.3.1;4.1 The main idea – what programs do and how we develop them;93
7.3.2;4.2 The PIC 16 Series instruction set, with a little more on the ALU;96
7.3.3;4.3 Assemblers and Assembler format;98
7.3.4;4.4 Creating simple programs;100
7.3.5;4.5 Adopting a development environment;103
7.3.6;4.6 An introductory MPLAB tutorial;104
7.3.7;4.7 An introduction to simulation;108
7.3.8;4.8 Downloading the program to a microcontroller;110
7.3.9;4.9 What others do – a brief comparison of CISC and RISC instruction sets;113
7.3.10;4.10 Taking things further – the 16 Series instruction set format;114
7.3.11;Summary;115
7.3.12;References;115
7.4;Chapter 5. Building Assembler programs;116
7.4.1;5.1 The main idea – building structured programs;116
7.4.2;5.2 Flow control – branching and subroutines;119
7.4.3;5.3 Generating time delays and intervals;122
7.4.4;5.4 Dealing with data;124
7.4.5;5.5 Introducing logical instructions;128
7.4.6;5.6 Introducing arithmetic instructions and the Carry flag;129
7.4.7;5.7 Taming Assembler complexity;133
7.4.8;5.8 More use of the MPLAB simulator;136
7.4.9;5.9 The ping-pong program;139
7.4.10;5.10 Simulating the ping-pong program – tutorial;143
7.4.11;5.11 What others do – graphical simulators;145
7.4.12;Summary;146
7.4.13;References;146
7.5;Chapter 6. Working with time: interrupts, counters and timers;147
7.5.1;6.1 The main idea – interrupts;148
7.5.2;6.2 Working with interrupts;152
7.5.3;6.3 The main idea – counters and timers;158
7.5.4;6.4 Applying the 16F84A Timer 0, with examples using the electronic ping-pong;163
7.5.5;6.5 TheWatchdog Timer;165
7.5.6;6.6 Sleep mode;166
7.5.7;6.7 What others do;167
7.5.8;6.8 Taking things further – interrupt latency;168
7.5.9;Summary;169
8;Section 3: Larger Systems and the PIC 16F873A;170
8.1;Chapter 7. Larger systems and the PIC 16F873A;172
8.1.1;7.1 The main idea – the PIC 16F87XA;173
8.1.2;7.2 The 16F873A block diagram and CPU;173
8.1.3;7.3 16F873A memory and memory maps;177
8.1.4;7.4 ‘Special’ memory operations;182
8.1.5;7.5 The 16F873A interrupts;185
8.1.6;7.6 The 16F873A oscillator, reset and power supply;188
8.1.7;7.7 The 16F873A parallel ports;188
8.1.8;7.8 Test, commission and diagnostic tools;192
8.1.9;7.9 The Microchip in-circuit debugger (ICD 2);198
8.1.10;7.10 Applying the 16F873A: the Derbot AGV;199
8.1.11;7.11 Downloading, testing and running a simple program with ICD 2;203
8.1.12;7.12 Taking things further – the 16F874A/16F877A Ports D and E;207
8.1.13;Summary;209
8.1.14;References;210
8.2;Chapter 8. The human and physical interfaces;211
8.2.1;8.1 The main idea – the human interface;211
8.2.2;8.2 From switches to keypads;214
8.2.3;8.3 LED displays;220
8.2.4;8.4 Liquid crystal displays;226
8.2.5;8.5 The main idea – interfacing to the physical world;230
8.2.6;8.6 Some simple sensors;230
8.2.7;8.7 More on digital input;234
8.2.8;8.8 Actuators: motors and servos;239
8.2.9;8.9 Interfacing to actuators;242
8.2.10;8.10 Building up the Derbot;247
8.2.11;8.11 Applying sensors and actuators – a ‘blind’ navigation Derbot program;249
8.2.12;Summary;250
8.2.13;References;250
8.3;Chapter 9. Taking timing further;252
8.3.1;9.1 The main ideas – taking counting and timing further;252
8.3.2;9.2 The 16F87XA Timer 0 and Timer 1;253
8.3.3;9.3 The 16F87XA Timer 2, comparator and PR2 register;259
8.3.4;9.4 The capture/compare/PWM (CCP) modules;262
8.3.5;9.5 Pulse width modulation;264
8.3.6;9.6 Generating PWM in software;271
8.3.7;9.7 PWM used for digital-to-analog conversion;276
8.3.8;9.8 Frequency measurement;279
8.3.9;9.9 Speed control applied to the Derbot;282
8.3.10;9.10 Where there is no timer;285
8.3.11;9.11 Sleep mode;287
8.3.12;9.12 Where do we go from here?;288
8.3.13;9.13 Building up the Derbot;289
8.3.14;Summary;289
8.3.15;Reference;289
8.4;Chapter 10. Starting with serial;290
8.4.1;10.1 The main idea – introducing serial;290
8.4.2;10.2 Simple serial links – synchronous data communication;292
8.4.3;10.3 The 16F87XA Master Synchronous Serial Port (MSSP) module in SPI mode;294
8.4.4;10.4 A simple SPI example;300
8.4.5;10.5 The limitations of Microwire and SPI, and of simple synchronous serial transfer;302
8.4.6;10.6 Enhancing synchronous serial, and the Inter-Integrated Circuit bus;302
8.4.7;10.7 The MSSP configured for I2C;304
8.4.8;10.8 I2C applied in the Derbot AGV;313
8.4.9;10.9 Evaluation of synchronous serial data communication and an introduction to asynchronous;320
8.4.10;10.10 The 16F87XA Addressable Universal Synchronous Asynchronous Receiver Transmitter ( USART);322
8.4.11;10.11 Implementing serial without a serial port – ‘bit banging’;330
8.4.12;10.12 Building up the Derbot;330
8.4.13;Summary;330
8.4.14;References;330
8.5;Chapter 11. Data acquisition and manipulation;331
8.5.1;11.1 The main idea – analog and digital quantities, their acquisition and use;331
8.5.2;11.2 The data acquisition system;332
8.5.3;11.3 The PIC 16F87XA ADC module;339
8.5.4;11.4 Applying the ADC in the Derbot light meter program;346
8.5.5;11.5 Some simple data manipulation techniques;348
8.5.6;11.6 The Derbot light-seeking program;353
8.5.7;11.7 The comparator module;354
8.5.8;11.8 Applying the Derbot circuit for measurement purposes;356
8.5.9;11.9 Configuring the Derbot AGV as a light-seeking robot;359
8.5.10;Summary;359
8.5.11;References;359
9;Section 4: Smarter Systems and the PIC 18FXX2;360
9.1;Chapter 12. Smarter systems and the PIC 18FXX2;362
9.1.1;12.1 The main idea – the PIC 18 Series and the 18FXX2;363
9.1.2;12.2 The 18F2X2 block diagram and Status register;364
9.1.3;12.3 The 18 Series instruction set;367
9.1.4;12.4 Data memory and Special Function Registers;372
9.1.5;12.5 Program memory;374
9.1.6;12.6 The Stacks;379
9.1.7;12.7 The interrupts;380
9.1.8;12.8 Power supply and reset;385
9.1.9;12.9 The oscillator sources;387
9.1.10;12.10 Introductory programming with the 18F242;391
9.1.11;Summary;394
9.1.12;References;394
9.2;Chapter 13. The PIC 18FXX2 peripherals;395
9.2.1;13.1 The main idea – the 18FXX2 peripherals;395
9.2.2;13.2 The parallel ports;396
9.2.3;13.3 The timers;398
9.2.4;13.4 The capture/compare/PWM (CCP) modules;403
9.2.5;13.5 The serial ports;405
9.2.6;13.6 The analog-to-digital converter (ADC);407
9.2.7;13.7 Low-voltage detect;407
9.2.8;13.8 Applying the 18 Series in the Derbot-18;409
9.2.9;13.9 The 18F2420 and the extended instruction set;410
9.2.10;Summary;412
9.2.11;Reference;412
9.3;Chapter 14. Introducing C;413
9.3.1;14.1 The main idea – why C?;414
9.3.2;14.2 An introduction to C;414
9.3.3;14.3 Compiling the C program;421
9.3.4;14.4 The MPLAB C18 compiler;422
9.3.5;14.5 A C18 tutorial;423
9.3.6;14.6 Simulating a C program;427
9.3.7;14.7 A second C example – the Fibonacci program;428
9.3.8;14.8 The MPLAB C18 libraries;430
9.3.9;14.9 Further reading;433
9.3.10;Summary;434
9.3.11;References;434
9.4;Chapter 15. C and the embedded environment;436
9.4.1;15.1 The main idea – adapting C to the embedded environment;436
9.4.2;15.2 Controlling and branching on bit values;436
9.4.3;15.3 More on functions;440
9.4.4;15.4 More branching and looping;442
9.4.5;15.5 Using the timer and PWM peripherals;444
9.4.6;Summary;449
9.5;Chapter 16. Acquiring and using data with C;450
9.5.1;16.1 The main idea – using C for data manipulation;450
9.5.2;16.2 Using the 18FXX2 ADC;450
9.5.3;16.3 Pointers, arrays and strings;458
9.5.4;16.4 Using the I2C peripheral;464
9.5.5;16.5 Formatting data for display;467
9.5.6;Summary;470
9.6;Chapter 17. More C and the wider C environment;471
9.6.1;17.1 The main idea – more C and the wider C environment;471
9.6.2;17.2 Assembler inserts;472
9.6.3;17.3 Controlling memory allocation;473
9.6.4;17.4 Interrupts;475
9.6.5;17.5 Example with interrupt on overflow – flashing LEDs on the Derbot;476
9.6.6;17.6 Storage classes and their application;480
9.6.7;17.7 Start-up code: c018i.c;483
9.6.8;17.8 Structures, unions and bit-fields;486
9.6.9;17.9 Processor-specific header files;487
9.6.10;17.10 Taking things further – the MPLAB Linker and the . map file;489
9.6.11;Summary;492
9.6.12;References;492
9.7;Chapter 18. Multi-tasking and the Real Time Operating System;493
9.7.1;18.1 The main ideas – the challenge of multi-tasking and real time;493
9.7.2;18.2 Achieving multi-tasking with sequential programming;496
9.7.3;18.3 The Real Time Operating System (RTOS);499
9.7.4;18.4 Scheduling and the scheduler;500
9.7.5;18.5 Developing tasks;504
9.7.6;18.6 Data and resource protection – the semaphore;505
9.7.7;18.7 Where do we go from here?;506
9.7.8;Summary;506
9.7.9;References;506
9.8;Chapter 19. The SalvoTM Real Time Operating System;507
9.8.1;19.1 The main idea – Salvo, an example RTOS;507
9.8.2;19.2 Configuring the Salvo application;509
9.8.3;19.3 Writing Salvo programs;510
9.8.4;19.4 A first Salvo example;512
9.8.5;19.5 Using interrupts, delays and semaphores with Salvo;518
9.8.6;19.6 Using Salvo messages and increasing RTOS complexity;526
9.8.7;19.7 A program example with messages;527
9.8.8;19.8 The RTOS overhead;536
9.8.9;Summary;537
9.8.10;References;537
10;Section 5: Techniques of Connectivity and Networking;538
10.1;Chapter 20. Connectivity and networks;540
10.1.1;20.1 The main idea – networking and connectivity;540
10.1.2;20.2 Infrared connectivity;542
10.1.3;20.3 Radio connectivity;543
10.1.4;20.4 Controller Area Network (CAN) and Local Interconnect Network (LIN);545
10.1.5;20.5 Embedded systems and the Internet;549
10.1.6;20.6 Conclusion;550
10.1.7;Summary;551
10.1.8;References;551
10.2;Appendix 1. The PIC 16 Series instruction set;554
10.3;Appendix 2. The electronic ping-pong;555
10.4;Appendix 3. The Derbot AGV – hardware design details;560
10.5;Appendix 4. Some basics of Autonomous Guided Vehicles;564
10.6;Appendix 5. PIC 18 Series instruction set (non-extended);568
10.7;Appendix 6. Essentials of C;571
11;Index;576


Ihre Fragen, Wünsche oder Anmerkungen
Vorname*
Nachname*
Ihre E-Mail-Adresse*
Kundennr.
Ihre Nachricht*
Lediglich mit * gekennzeichnete Felder sind Pflichtfelder.
Wenn Sie die im Kontaktformular eingegebenen Daten durch Klick auf den nachfolgenden Button übersenden, erklären Sie sich damit einverstanden, dass wir Ihr Angaben für die Beantwortung Ihrer Anfrage verwenden. Selbstverständlich werden Ihre Daten vertraulich behandelt und nicht an Dritte weitergegeben. Sie können der Verwendung Ihrer Daten jederzeit widersprechen. Das Datenhandling bei Sack Fachmedien erklären wir Ihnen in unserer Datenschutzerklärung.