
Fundamentals of Digital Logic and Microcontrollers Fundamentals of Digital Logic and Microcontrollers Sixth Edition M. RAFIQUZZAMAN, Ph.D. Professor California State Polytechnic University, Pomona and President Rafi Systems, Inc. Copyright © 2014 by John Wiley & Sons, Inc. All rights reserved. Published by John Wiley & Sons, Inc., Hoboken, New Jersey. Published simultaneously in Canada. No part of this publication may be reproduced, stored in a retrieval system or transmitted in any form or by any means, electronic, mechanical, photocopying, recording, scanning or otherwise, except as permitted under Section 107 or 108 of the 1976 United States Copyright Act, without either the prior written permission of the Publisher, or authorization through payment of the appropriate per-copy fee to the Copyright Clearance Center, Inc., 222 Rosewood Drive, Danvers, MA 01923, (978) 750-8400, fax (978) 646-8600, or on the web at www.copyright.com. Requests to the Publisher for permission should be addressed to the Permissions Department, John Wiley & Sons, Inc., 111 River Street, Hoboken, NJ 07030, (201) 748-6011, fax (201) 748-6008, or online at http://www.wiley.com/go/permissions. Limit of Liability/Disclaimer of Warranty: While the publisher and author have used their best efforts in preparing this book, they make no representation or warranties with respect to the accuracy or completeness of the contents of this book and specifically disclaim any implied warranties of merchantability or fitness for a particular purpose. No warranty may be created or extended by sales representatives or written sales materials. The advice and strategies contained herein may not be suitable for your situation. You should consult with a professional where appropriate. Neither the publisher nor author shall be liable for any loss of profit or any other commercial damages, including but not limited to special, incidental, consequential, or other damages. For general information on our other products and services or for technical support, please contact our Customer Care Department within the United States at (800) 762-2974, outside the U.S. at (317) 572-3993 or fax (317) 572-4002. Wiley also publishes its books in a variety of electronic formats. Some content that appears in print may not be available in electronic formats. For more information about Wiley products, visit our web site at www.wiley.com Library of Congress Cataloging-in-Publication Data: Rafiquzzaman, Mohamed. [Fundamentals of digital logic and microcomputer design] Fundamentals of digital logic and microcontrollers / M. Rafiquzzaman. – Sixth edition. pages cm Revised edition of: Fundamentals of digital logic and microcomputer design. Includes index. ISBN 978-1-118-85579-9 (cloth) 1. Logic circuits. 2. Microcomputers–Design and construction. 3. Electronic digital computers–Circuits. I. Title. TK7888.4.R34 2014 621.39ʹ5–dc23 2014017642 Printed in the United States of America. 10 9 8 7 6 5 4 3 2 1 To my wife, Kusum; son, Tito; daughter-in-law, Trina; and my grandchildren In memory of my brother Elan CONTENTS PREFACE xiii 1: INTRODUCTION TO DIGITAL SYSTEMS 1 1.1 Explanation of Terms 2 1.2 Design Levels 6 1.3 Combinational and Sequential Circuits 7 1.4 Digital Integrated Circuits 7 1.4.1 Diodes 7 1.4.2 Transistors 8 1.4.3 MOS Transistors 14 1.5 Integrated Circuits (ICs) 18 1.6 CAD (Computer-Aided Design) 19 1.7 Evolution of the Microcontroller 20 1.8 Typical Microcontroller Applications 21 1.8.1 A Simple Microcontroller Application 22 1.8.2 Embedded Controllers 23 2: NUMBER SYSTEMS AND CODES 25 2.1 Number Systems 25 2.1.1 General Number Representation 25 2.1.2 Converting Numbers from One Base to Another 28 2.2 Unsigned and Signed Binary Numbers 30 2.3 Codes 34 2.3.1 Binary-Coded-Decimal Code (8421 Code) 34 2.3.2 Alphanumeric Codes 35 2.3.3 Excess-3 Code 36 2.3.4 Gray Code 37 2.3.5 Unicode 39 2.4 Fixed-Point and Floating-Point Representations 40 2.5 Arithmetic Operations 41 2.5.1 Binary Arithmetic 41 2.5.2 BCD Arithmetic 51 2.6 Error Correction and Detection 53 Questions and Problems 55 vii viii Contents 3: BOOLEAN ALGEBRA AND DIGITAL LOGIC GATES 59 3.1 Basic Logic Operations 59 3.1.1 NOT Operation 59 3.1.2 OR operation 60 3.1.3 AND operation 62 3.2 Other Logic Operations 64 3.2.1 NOR operation 64 3.2.2 NAND operation 64 3.2.3 Exclusive-OR operation (XOR) 65 3.2.4 Exclusive-NOR Operation (XNOR) 66 3.3 IEEE Symbols for Logic Gates 67 3.4 Positive and Negative Logic 68 3.5 Boolean Algebra 69 3.5.1 Boolean Identities 70 3.5.2 Simplification Using Boolean Identities 72 3.5.3 Consensus Theorem 74 3.5.4 Complement of a Boolean Function 75 3.6 Standard Representations 76 3.7 Karnaugh Maps 80 3.7.1 Two-Variable K-map 81 3.7.2 Three-Variable K-map 82 3.7.3 Four-Variable K-map 85 3.7.4 Prime Implicants 87 3.7.5 Expressing a Boolean function in Product-of-sums (POS) form using a K-map 89 3.7.6 Don’t Care Conditions 91 3.7.7 Five-Variable K-map 95 3.8 Quine–McCluskey Method 96 3.9 Implementation of Digital Circuits with NAND, NOR, and Exclusive-OR/Exclusive-NOR Gates 97 3.9.1 NAND Gate Implementation 98 3.9.2 NOR Gate Implementation 99 3.9.3 XOR / XNOR Implementations 102 Questions and Problems 106 4: COMBINATIONAL LOGIC 109 4.1 Basic Concepts 109 4.2 Analysis of a Combinational Logic Circuit 109 4.3 Design of a Combinational Circuit 110 4.4 Multiple-Output Combinational Circuits 112 4.5 Typical Combinational Circuits 114 4.5.1 Comparators 114 4.5.2 Decoders 118 4.5.3 Encoders 122 4.5.4 Multiplexers 127 4.5.5 Demultiplexers 129 4.5.6 Binary / BCD Adders and Binary Subtractors 129 4.6 IEEE Standard Symbols 136 Contents ix 4.7 Read-Only Memories (ROMs) 138 4.8 Programmable Logic Devices (PLDs) 140 4.9 Commercially Available Field Programmable Devices (FPDs) 144 4.10 HARDWARE DESCRIPTION LANGUAGE (HDL) 146 4.11 Verilog basics 148 4.11.1 Verilog keywords 148 4.11.2 A typical Verilog Segment 148 4.11.3 Verilog operators 151 4.11.4 Verilog Constants 152 4.11.5 Modeling logical conditions in a circuit 152 4.11.6 Verilog if-else and case-endcase structures 153 4.11.7 A typical Verilog Simulator 153 4.12 Verilog modeling examples for combinational circuits 155 4.12.1 Structural modeling 155 4.12.2 Dataflow modeling 161 4.12.3 Behavioral modeling 163 Questions and Problems 168 5: SEQUENTIAL LOGIC 173 5.1 Basic Concepts 173 5.2 Latches and Flip-Flops 173 5.2.1 SR Latch 174 5.2.2 Gated SR Latch 176 5.2.3 Gated D Latch 176 5.2.4 Edge-Triggered D Flip-Flop 177 5.2.5 JK Flip-Flop 180 5.2.6 T Flip-Flop 181 5.3 Flip-flop timing parameters for edge-triggered flip-flops 181 5.4 Preset and Clear Inputs 182 5.5 Summary of the gated SR latch and the Flip-Flops 182 5.6 Analysis of Synchronous Sequential Circuits 185 5.7 Types of Synchronous Sequential Circuits 188 5.8 Minimization of States 188 5.9 Design of Synchronous Sequential Circuits 190 5.10 Design of Counters 196 5.11 Examples of Synchronous Sequential Circuits 201 5.11.1 Registers 201 5.11.2 Modulo-n Counters 203 5.11.3 Random-Access Memory (RAM) 206 5.12 Algorithmic State Machines (ASM) Chart 207 5.13 Asynchronous Sequential Circuits 214 5.14 Verilog description of typical synchronous sequential circuits 217 Questions and Problems 235 6: CPU, MEMORY, AND I/O 243 6.1 Design of the CPU 243 6.1.1 Register Design 244 6.1.2 Arithmetic Logic Unit (ALU) 244 6.1.3 ALU Design 255 x Contents 6.1.4 Control Unit Design 257 6.2 Memory Organization 280 6.2.1 Types of Main memory 283 6.2.2 READ and WRITE Timing Diagrams 285 6.2.3 Main Memory Organization 287 6.3 Input/Output (I/O) 290 6.3.1 Simple I/O Devices 292 6.3.2 Programmed I/O 293 6.3.3 Interrupt I/O 295 6.4 CPU design using Verilog 296 Questions and Problems 309 7: MICROCONTROLLER BASICS 317 7.1 Basic Blocks of a Microcontroller 317 7.1.1 System Bus 318 7.1.2 Clock Signals 319 7.2 Microcontroller Architectures 320 7.3 Basic Concept of Pipelining 321 7.4 RISC vs. CISC 323 7.5 Functional Representation of a Typical RISC Microcontroller—The PIC18F4321 324 7.6 Basics of Programming Languages 324 7.6.1 Machine Language 326 7.6.2 Assembly Language 327 7.6.3 High-Level Language 327 7.7 Choosing a Programming Language 328 7.8 Introduction to C Language 329 7.8.1 Data Types 332 7.8.2 Bit Manipulation Operators 333 7.8.3 Control Structures 334 7.8.4 The switch Construct 338 7.8.5 The while Construct 338 7.8.6 The for Construct 340 7.8.7 The do-while Construct 341 7.8.8 Structures and Unions 341 7.8.9 Functions in C 342 7.8.10 Macros 343 Questions and Problems 344 8: PIC18F HARDWARE AND INTERFACING USING C: PART 1 345 8.1 PIC18F Pins and Signals 345 8.1.1 Clock 346 8.1.2 PIC18F Reset 350 8.1.3 A Simplified Setup for the PIC18F4321 350 8.2 PIC18F4321 programmed I/O using C 351 8.2.1 PIC 18F4321 I/O ports 351 8.2.2 Interfacing LEDs (Light Emitting Diodes) and Seven-segment Displays 354 8.2.3 Microchip MPLAB C18 compiler and the PICkit3 interface 355 Contents xi 8.2.4 Configuration commands 356 8.3 PIC18F Interrupts 359 8.3.1 PIC18F Interrupt Types 359 8.3.2 PIC18F External Interrupts in Default Mode 359 8.3.3 Interrupt Registers and Priorities 361 8.3.4 Setting the Triggering Levels of INTn Pin Interrupts 362 8.3.5 Programming the PIC18 interrupts using C 363 Questions and Problems 369 9: PIC18F HARDWARE AND INTERFACING USING C: PART 2 373 9.1 PIC18F Timers 373 9.1.1 Timer0 375 9.1.2 Timer1 378 9.1.3 Timer2 382 9.1.4 Timer3 384 9.2 PIC18F Interface to an LCD (Liquid Crystal Display) 390 9.3 Analog Interface 394 9.3.1 On-chip A/D Converter 395 9.3.2 Interfacing an External D/A (Digital-to-Analog) Converter to the PIC18F4321 403 9.4 Serial
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages15 Page
-
File Size-