**CHAPTER 0: INTRODUCTION TO COMPUTING 1**

Section 0.1: Numbering and coding systems 2

Section 0.2: Digital primer 9

Section 0.3: Inside the computer 13

**CHAPTER 1: THE 8051 MICROCONTROLLERS 23**

Section 1.1: Microcontrollers and embedded processors 24

Section 1.2: Overview of the 8051 family 28

**CHAPTER 2: 8051 ASSEMBLY LANGUAGE PROGRAMMING 37**

Section 2.1: Inside the 8051 38

Section 2.2: Introduction to 8051 Assembly programming 41

Section 2.3: Assembling and running an 8051 program 44

Section 2.4: The program counter and ROM space in the 8051 46

Section 2.5: 8051 data types and directives 49

Section 2.6: 8051 flag bits and the PSW register 52

Section 2.7: 8051 register banks and stack 55

**CHAPTER 3: JUMP, LOOP, AND CALL INSTRUCTIONS 69**

Section 3.1: Loop and jump instructions 70

Section 3.2: Call instructions 75

Section 3.3: Time delay for various 8051 chips 80

**CHAPTER 4: ****I/O****PORT**** PROGRAMMING 93**

Section 4.1: 8051 I/O programming 94

Section 4.2: I/O bit manipulation programming 100

**CHAPTER 5: 8051 ADDRESSING MODES 109**

Section 5.1: Immediate and register addressing modes 110

Section 5.2: Accessing memory using various addressing modes 112

Section 5.3: Bit addresses for I/O and RAM 122

Section 5.4: Extra 128-byte on-chip RAM in 8052 131

**CHAPTER 6: ARITHMETIC & LOGIC INSTRUCTIONS**

**AND PROGRAMS 139**

Section 6.1: Arithmetic instructions 140

Section 6.2: Signed number concepts and arithmetic operations 150

Section 6.3: Logic and compare instructions 155

Section 6.4: Rotate instruction and data serialization 161

Section 6.5: BCD, ASCII, and other application programs 167

**CHAPTER 7: 8051 PROGRAMMING IN C 181**

Section 7.1: Data types and time delay in 8051 C 182

Section 7.2: I/O programming in 8051 C 188

Section 7.3: Logic operations in 8051 C 194

Section 7.4: Data conversion programs in 8051 C 199

Section 7.5: Accessing code ROM space in 8051 C 204

Section 7.6: Data serialization using 8051 C 209

**CHAPTER 8: 8051 HARDWARE CONNECTION AND**

**INTEL HEX FILE 217**

Section 8.1: Pin description of the 8051 218

Section 8.2: Design and test of DS89C4x0 trainer 224

Section 8.3: Explaining the Intel hex file 232

**CHAPTER 9: 8051 TIMER PROGRAMMING**

**IN ASSEMBLY AND C 239**

Section 9.1: Programming 8051 timers 240

Section 9.2: Counter programming 255

Section 9.3: Programming timers 0 and 1 in 8051 C 260

**CHAPTER 10: 8051 SERIAL PORT PROGRAMMING**

**IN ASSEMBLY AND C 277**

Section 10.1: Basics of serial communication 278

Section 10.2: 8051 connection to RS232 285

Section 10.3: 8051 serial port programming in Assembly 287

Section 10.4: Programming the second serial port 300

Section 10.5: Serial port programming in C 306

**CHAPTER 11: INTERRUPTS PROGRAMMING**

**IN ASSEMBLY AND C 317**

Section 11.1: 8051 interrupts 318

Section 11.2: Programming timer interrupts 322

Section 11.3: Programming external hardware interrupts 326

Section 11.4: Programming the serial communication interrupt 333

Section 11.5: Interrupt priority in the 8051/52 337

Section 11.6: Interrupt programming in C 340

**CHAPTER 12: LCD AND KEYBOARD INTERFACING 351**

Section 12.1: LCD interfacing 352

Section 12.2: Keyboard interfacing 363

**CHAPTER 13: ADC, DAC, AND SENSOR INTERFACING 373**

Section 13.1: Parallel and serial ADC 374

Section 13.2: DAC interfacing 398

Section 13.3: Sensor interfacing and signal conditioning 403

**CHAPTER 14: 8051 INTERFACING TO EXTERNAL MEMORY 411**

Section 14.1: Semiconductor memory 412

Section 14.2: Memory address decoding 422

Section 14.3: 8031/51 interfacing with external ROM 425

Section 14.4: 8051 data memory space 430

Section 14.5: Accessing external data memory in 8051 C 440

**CHAPTER 15: 8051 INTERFACING WITH THE 8255 449**

Section 15.1: Programming the 8255 450

Section 15.2: 8255 interfacing 458

Section 15.3: 8051 C programming for the 8255 462

**CHAPTER 16: DS12887 RTC INTERFACING**

**AND PROGRAMMING 467**

Section 16.1: DS12887 RTC interfacing 468

Section 16.2: DS12887 RTC programming in C 476

Section 16.3: Alarm, SQW, and IRQ features of the

DS12887 chip 479

**CHAPTER 17: MOTOR CONTROL: RELAY, ****PWM****, ****DC****,**

**AND STEPPER MOTORS 491**

Section 17.1: Relays and optoisolators 492

Section 17.2: Stepper motor interfacing 498

Section 17.3: DC motor interfacing and PWM 507

APPENDIX A: 8051 INSTRUCTIONS, TIMING, AND REGISTERS 523

APPENDIX B: BASICS OF WIRE WRAPPING 563

APPENDIX C: IC TECHNOLOGY AND SYSTEM DESIGN ISSUES 567

APPENDIX D: FLOWCHARTS AND PSEUDOCODE 587

APPENDIX E: 8051 PRIMER FOR X86 PROGRAMMERS 592

APPENDIX F: ASCII CODES 593

APPENDIX G: ASSEMBLERS, DEVELOPMENT RESOURCES,

AND SUPPLIERS 594

APPENDIX H: DATA SHEETS 596

INDEX 617

DD