CHF143.00
Download est disponible immédiatement
A thorough revision that provides a clear understanding of the basic principles of microcontrollers using C programming and PIC18F assembly language
This book presents the fundamental concepts of assembly language programming and interfacing techniques associated with typical microcontrollers. As part of the second edition's revisions, PIC18F assembly language and C programming are provided in separate sections so that these topics can be covered independent of each other if desired. This extensively updated edition includes a number of fundamental topics. Characteristics and principles common to typical microcontrollers are emphasized. Interfacing techniques associated with a basic microcontroller such as the PIC18F are demonstrated from chip level via examples using the simplest possible devices, such as switches, LEDs, Seven-Segment displays, and the hexadecimal keyboard. In addition, interfacing the PIC18F with other devices such as LCD displays, ADC, and DAC is also included. Furthermore, topics such as CCP (Capture, Compare, PWM) and Serial I/O using C along with simple examples are also provided.
Microcontroller Theory and Applications with the PIC18F, 2nd Edition is a comprehensive and self-contained book that emphasizes characteristics and principles common to typical microcontrollers. In addition, the text:
Illustrates C interfacing techniques through the use of numerous examples, most of which have been implemented successfully in the laboratory
This new edition of Microcontroller Theory and Applications with the PIC18F is excellent as a text for undergraduate level students of electrical/computer engineering and computer science.
Auteur
M. RAFIQUZZAMAN, PhD, PE, is Professor of Electrical and Computer Engineering at California State Polytechnic University, Pomona. Dr. Rafiquzzaman has over 40 years of academic and industrial experiences. He is the founder and President of Rafi Systems, Inc., a manufacturer of biomedical devices (Intraocular lenses) in California. Dr. Rafiquzzaman authored several books on digital logic, microcontrollers, and microprocessors. His first book on microprocessors was published by Wiley in 1982.
Contenu
Preface xiii
Credits xvii
1. Introduction to Microcontrollers 1
1.1 Explanation of Terms 3
1.2 Microcontroller Data Types 7
1.2.1 Unsigned and Signed Binary Numbers 7
1.2.2 ASCII and EBCDIC Codes 10
1.2.3 Unpacked and Packed Binary-Coded-Decimal Numbers 10
1.3 Evolution of the Microcontroller 11
1.4 Embedded Controllers 14
2. Microcontroller Basics 17
2.1 Basic Blocks of a Microcomputer 17
2.1.1 System Bus 18
2.1.2 Clock Signals 19
2.2 Microcontroller architectures 20
2.3 Central Processing Unit (CPU) 21
2.3.1 Register Section 21
2.3.2 Control Unit 29
2.3.3 Arithmetic and Logic Unit (ALU) 30
2.3.4 Simplified Explanation of Control Unit design 30
2.4 Basic concept of pipelining 31
2.5 RISC vs. CISC 33
2.6 Functional Representation of a Typical Microcontroller---- The PIC18F4321 34
Questions and Problems 36
3. Microcontroller Memory and Input/Output (I/O) 37
3.1 Introduction to Microcontroller Memory 37
3.1.1 Main memory 38
3.1.2 READ and WRITE Timing Diagrams 40
3.1.3 Main Memory Organization 42
3.2 Microcontroller Input/Output (I/O) 45
3.2.1 Overview of digital output circuits 47
3.2.2 Simple I/O Devices 49
3.2.3 Programmed I/O 50
3.2.4 Unconditional and Conditional Programmed I/O 52
3.2.5 Interrupt I/O 53
Questions and Problems 56
4. Programming Languages 59
4.1 Computer Programming Languages 59
4.2 Machine Language 60
4.3 Assembly Language 60
4.3.1 Types of Assemblers 61
4.3.2 Assembler Delimiters 62
4.3.3 Specifying Numbers by Typical Assemblers 63
4.3.4 Assembler Directives or Pseudoinstructions 63
4.3.5 Assembly Language Instruction Formats 65
4.3.6 Typical Instruction Set 67
4.3.7 Typical Addressing Modes 73
4.3.8 Subroutine Calls in Assembly Language 74
4.4 High-Level Language 74
4.5 Introduction to C Language 76
4.5.1 Data types 78
4.5.2 Bit manipulation operators 79
4.5.3 Control structures 81
4.5.4 The if-else construct 81
4.5.5 The switch construct 82
4.5.6 The while construct 83
4.5.7 The for construct 84
4.5.8 The do-while construct 85
4.5.9 Structures, and Unions 85
4.5.10 Functions in C 86
4.5.11 Arrays 88
4.5.12 Macros 88
4.6 Choosing a programming language 88
4.7 Flowcharts 89
Questions and Problems 90
5. PIC18F Architecture and Addressing Modes 93
5.1 Basic features of the PIC18F family 93
5.2 PIC18F Register Architecture 96
5.3 PIC18F Memory Organization 100
5.3.1 PIC18F Program Memory 101
5.3.2 PIC18F Data Memory 101
5.4 PIC18F Addressing Modes 104
5.4.1 Literal or Immediate Addressing Mode 104
5.4.2 Inherent or Implied Addressing Mode 104
5.4.3 Direct or Absolute Addressing Mode 104
5.4.4 Indirect Addressing Mode 105
5.4.5 Relative Addressing Mode 110
5.4.6 Bit Addressing Mode 112
Questions and Problems 113
6. Assembly Language Programming With the PIC18F: Part 1 115
6.1 Introduction to the PIC18F MPLAB assembler 115
6.2 PIC18F Instruction Format 120
6.3 PIC18F Instruction Set 121
6.3.1 Data Movement Instructions 124
6.3.2 Arithmetic Instructions 130
6.3.3 Logic Instructions 138
6.3.4 Rotate Instructions 141
6.3.5 Bit Manipulation Instructions 147
Questions and Problems 151
7. Assembly Language Programming With the PIC18F: Part 2 155
7.1 PIC18F Jump/Branch instructions 155
7.2 PIC18F Test, Compare, and Skip instructions 157
7.3 PIC18F Table Read/Write instructions 163
7.4 PIC18F Subroutine instructions 168
7.5 PIC18F System Control instructions 170
7.6 PIC18F Hardware vs. Software stack 171
7.7 Multiplication and Division algorithms 178
7.7.1 Signed Multiplication algorithm 178
7.7.2 Unsigned Division algorithm 180
7.7.3 Signed Division algorithm 182
7.8 Advanced Programming Examples 184
7.9 PIC18F Delay Routine 188
Questions and Problems 191
8. PIC18F Programmed I/O Using Assembly & C 195
8.1 PIC18F Pins and Signals 195
8.1.1 Clock 196
8.1.2 PIC18F Reset 202
8.1.3 High Voltage and Low Voltage Programming (HVP and LVP) 205
8.1.4 "pragma config" and "config" directives 205
8.1.5 A simplified setup for the PIC18F4321 206
8.1.6 Downloading programs into the PIC18F4321 using the PICKit3 interface 206
8.2 PIC18F4321 Programmed I/O 208
8.2.1 I/O instructions in PIC18F assembly 211
8.2.2 Configuring PIC18F4321 I/O ports using PIC18F assembly 211
8.2.3 Configuring PIC18F4321 I/O ports using C 213
8.2.4 Interfacing LED's (Light Emitting Diodes) and Seven-segment displays 215
8.2.5 Programmed I/O examples using PIC18F assembly 216
8.2.6 Programmed I/O examples using C Language 220
Questions and Problems 228
9. PIC18F Interrupt I/O, LCD, and Keyboard Interfacing 231
9.1 Basics of Polled I/O vs. Interrupt I/O 231
9.2 PIC18F Interrupts 236
9.2.1 Interrupt Procedure 236
9.2.2 PIC18F Interrupt Types 238
9.2.3 Programming the PIC18F External Interrupts 238
9.2.4 Programming PIC18F external interrupts using assembly 243
9.2.5 Programming PIC18F external interrupts using C 243
9.2.6 Accessing PIC18F on-chip peripheral devices using Polled I/O vs. Interrupt I/O 252
9.3 PIC18F Interface to a typical LCD (Liquid Crystal Display) 252
9.4 Interfacing PIC18F4321 to a hexadecimal keyboard and a seven-segment display 259
9.4.1 Basics of Keyboard and Display Interface to a Microcontroller 259
9.4.2 PIC18F4321 Interface to a Hexadecimal Keyboard an…