Book description
PIC microcontrollers are used worldwide in commercial and industrial devices. The 8-bit PIC which this book focuses on is a versatile work horse that completes many designs. An engineer working with applications that include a microcontroller will no doubt come across the PIC sooner rather than later. It is a must to have a working knowledge of this 8-bit technology.This book takes the novice from introduction of embedded systems through to advanced development techniques for utilizing and optimizing the PIC family of microcontrollers in your device. To truly understand the PIC, assembly and C programming language must be understood. The author explains both with sample code and examples, and makes the transition from the former to the latter an easy one. This is a solid building block for future PIC endeavors.
New to the 2nd Edition:
*Include end of chapter questions/activities moving from introductory to advanced
*More worked examples
*Includes PowerPoint slides for instructors
*Includes all code snips on a companion web site for ease of use
*A survey of 16/32-bit PICs
*A project using ZigBee
- Covers both assembly and C programming languages, essential for optimizing the PIC
- Amazing breadth of coverage moving from introductory to advanced topics covering more and more complex microcontroller families
- Details MPLAB and other Microchip design tools
Table of contents
- Cover Image
- Table of Contents
- Copyright
- Introduction to the first edition
- Introduction to the second edition
- Acknowledgements
- Section 1 Getting Started with Embedded Systems
- CHAPTER 1. Tiny computers, hidden control
- Section 2 Minimum Systems and the PIC 16F84A
- CHAPTER 2. Introducing the PIC mid-range family and the 16F84A
- CHAPTER 3. Parallel ports, power supply and the clock oscillator
-
CHAPTER 4. Starting to program – an introduction to Assembler
- 4.1. The main idea – what programs do and how we develop them
- 4.2. The PIC 16 Series instruction set, with a little more on the ALU
- 4.3. Assemblers and Assembler format
- 4.4. Adopting a development environment
- 4.5. An introductory MPLAB tutorial
- 4.6. An introduction to simulation
- 4.7. A larger program – using data memory and moving data
- 4.8. Programming for a target piece of hardware – a simple data transfer program
- 4.9. Downloading to a microcontroller
- 4.10. Taking things further: the 16 Series instruction set format
-
CHAPTER 5. Building Assembler programs
- 5.1. The main idea – building structure into programs
- 5.2. Conditional branching and working with bits
- 5.3. Subroutines
- 5.4. Generating time delays and intervals
- 5.5. More use of the MPLAB simulator
- 5.6. Introducing logical instructions
- 5.7. Look-up tables
- 5.8. Taming Assembler complexity
- 5.9. The ping-pong program
- 5.10. Simulating the ping-pong program – tutorial
- 5.11. A glance at graphical simulators
- 5.12. Taking things further: indirect addressing and the File Select register
- CHAPTER 6. Working with time
- Section 3 Larger Systems and the PIC 16F873A
-
CHAPTER 7. Larger Systems and the PIC 16F873A
- 7.1. The main idea – the PIC 16F87XA
- 7.2. The 16F873A block diagram and CPU
- 7.3. 16F873A memory and memory maps
- 7.4. ‘Special’ memory operations
- 7.5. The 16F873A interrupts
- 7.6. The 16F873A oscillator, reset and power supply
- 7.7. The 16F873A parallel ports
- 7.8. Test, commission and diagnostic tools
- 7.9. The Microchip in-circuit debugger (ICD 2)
- 7.10. Applying the 16F873A: the Derbot AGV
- 7.11. Downloading, testing and running a simple program with ICD 2
- 7.12. Taking things further – the 16F874A/16F877A Ports D and E
-
CHAPTER 8. The human and physical interfaces
- 8.1. The main idea – the human interface
- 8.2. From switches to keypads
- 8.3. LED displays
- 8.4. Liquid crystal displays
- 8.5. The main idea – interfacing to the physical world
- 8.6. Some simple sensors
- 8.7. More on digital input
- 8.8. Actuators: motors and servos
- 8.9. Interfacing to actuators
- 8.10. Building the Derbot
- 8.11. Applying sensors and actuators – a ‘blind’ navigation Derbot program
-
CHAPTER 9. Taking timing further
- 9.1. The main ideas – taking counting and timing further
- 9.2. The 16F87XA Timer 0 and Timer 1
- 9.3. The 16F87XA Timer 2, comparator and PR2 register
- 9.4. The capture/compare/pulse width modulation (CCP) modules
- 9.5. Pulse width modulation
- 9.6. Generating pulse width modulation in software
- 9.7. Pulse width modulation used for digital-to-analog conversion
- 9.8. Frequency measurement
- 9.9. Speed control applied to the Derbot
- 9.10. When there is no timer
- 9.11. Sleep mode
- 9.12. Where do we go from here?
- 9.13. Building the Derbot
-
CHAPTER 10. Starting with serial
- 10.1. The main idea – introducing serial
- 10.2. Simple serial links – synchronous data communication
- 10.3. The 16F87XA Master Synchronous Serial Port module in SPI mode
- 10.4. A simple Serial Peripheral Interface example
- 10.5. The limitations of Microwire and Serial Peripheral Interface, and of simple synchronous serial transfer
- 10.6. Enhancing synchronous serial and the Inter-Integrated Circuit bus
- 10.7. The Master Synchronous Serial Port configured for Inter-Integrated Circuit
- 10.8. Inter-Integrated Circuit applied in the Derbot Autonomous Guided Vehicle
- 10.9. Evaluation of synchronous serial data communication and an introduction to asynchronous serial data communication
- 10.10. The 16F87XA Addressable Universal Synchronous Asynchronous Receiver Transmitter (USART)
- 10.11. Implementing serial without a serial port – ‘bit banging’
- 10.12. Building the Derbot
-
CHAPTER 11. Data acquisition and manipulation
- 11.1. The main idea – analog and digital quantities, their acquisition and use
- 11.2. The data acquisition system
- 11.3. The PIC 16F87XA ADC module
- 11.4. Applying the analog-to-digital converter in the Derbot light meter program
- 11.5. Some simple data manipulation techniques
- 11.6. The Derbot light-seeking program
- 11.7. The comparator module
- 11.8. Applying the Derbot circuit for measurement purposes
- CHAPTER 12. Some PIC microcontroller advances
- Section 4 Smarter Systems and the PIC 18F2420
-
CHAPTER 13. Smarter systems and the PIC 18F2420
- 13.1. The main idea – the PIC 18 Series and the 18F2420
- 13.2. The 18F2420/2520 block diagram and Status register
- 13.3. The 18 Series instruction set
- 13.4. Data memory and Special Function Registers
- 13.5. Program memory
- 13.6. The Stacks
- 13.7. The interrupts
- 13.8. Power supply and reset
- 13.9. The oscillator sources
- 13.10. Introductory programming with the 18F2420
- 13.13. A peripheral review and the parallel ports
- 13.14. The timers
- 13.15. The capture/compare/pulse width modulation modules
- 13.16. The serial ports
- 13.17. The analog-to-digital converter
- 13.18. Applying the 18 Series in the Derbot
- CHAPTER 14. Introducing C
- CHAPTER 15. C and the embedded environment
- CHAPTER 16. Acquiring and using data with C
-
CHAPTER 17. More C and the wider C environment
- 17.1. The main idea – more C and the wider C environment
- 17.2. Assembler inserts
- 17.3. Controlling memory allocation
- 17.4. Interrupts
- 17.5. Example with interrupt on overflow – flashing LEDs on the Derbot
- 17.6. Storage classes and their application
- 17.7. Start-up code: c018i.c
- 17.8. Structures, unions and bit-fields
- 17.9. Processor-specific header files
- 17.10. Taking things further – the MPLAB Linker and the .map file
-
CHAPTER 18. Multi-tasking and the real-time operating system
- 18.1. The main ideas – the challenges of multi-tasking and real time
- 18.2. Achieving multi-tasking with sequential programming
- 18.3. The real-time operating system
- 18.4. Scheduling and the scheduler
- 18.5. Developing tasks
- 18.6. Data and resource protection – the semaphore
- 18.7. Where do we go from here?
-
CHAPTER 19. The Salvo real-time operating system
- 19.1. The main idea – Salvo, an example RTOS
- 19.2. Configuring the Salvo application
- 19.3. Writing Salvo programs
- 19.4. A first Salvo example
- 19.5. Using interrupts, delays and semaphores with Salvo
- 19.6. Using Salvo messages and increasing real-time operating system complexity
- 19.7. A program example with messages
- 19.8. The real-time operating system overhead
- Section 5 Where Can We Go from Here? Distributed Systems, Bigger Systems
- CHAPTER 20. Connectivity and networks
- CHAPTER 21. Moving beyond 8-bit
- APPENDIX 1. The PIC 16 Series instruction set
- APPENDIX 2. The electronic ping-pong program
- APPENDIX 3. The Derbot AGV – hardware design details
- APPENDIX 4. Some basics of Autonomous Guided Vehicles
- APPENDIX 5. The PIC 18 Series instruction set
- APPENDIX 6. Essentials of C
- Index
Product information
- Title: Designing Embedded Systems with PIC Microcontrollers, 2nd Edition
- Author(s):
- Release date: November 2009
- Publisher(s): Newnes
- ISBN: 9780080961842
You might also like
book
Designing Embedded Systems with PIC Microcontrollers
Embedded Systems with PIC Microcontrollers: Principles and Applications is a hands-on introduction to the principles and …
book
Designing Embedded Systems with 32-Bit PIC Microcontrollers and MikroC
The new generation of 32-bit PIC microcontrollers can be used to solve the increasingly complex embedded …
book
PIC Microcontroller Projects in C, 2nd Edition
Extensively revised and updated to encompass the latest developments in the PIC 18FXXX series, this book …
book
Programming 16-Bit PIC Microcontrollers in C, 2nd Edition
New in the second edition: MPLAB X support and MPLAB C for the PIC24F v3 and …