The 8051 Microcontroller and Embedded Systems, 2/e (IE-Paperback)
內容描述
A new chapter on 8051 C programming (Chapter 7)A new section on the 8051 C programming of timers (Section 9.3)A new section on the second serial port of the DS89C4x0 chip (Section 10.4)A new section on the 8051 C programming of the second serial port (Section 10.5)A new section on the 8051 C programming of interrupts (Section 11.6)Programming of the 1KB SRAM of the DS89C4x0 chip (Section 14.4)A new section on the 8051 C programming of external memory (Section 14.5)A new chapter on the DS12887 RTC (real-time clock) chip (Chapter 16)A new chapter on motors, relays, and optoisolators (Chapter 17)Appendix A describes each 8051 instruction in detail, with examples. Appendix A also provides the clock count for instructions, 8051 register diagrams, and RAM memory maps. Appendix B describes basics of wire wrapping. Appendix C covers IC technology and logic families, as well as 8051 I/O port interfacing and fan-out. Make sure you study this before connecting the 8051 to an external device. Appendix D, the use of flowcharts and psuedocode is explored. Appendix E is for students familiar with x86 architecture who need to make a rapid transition to 8051 architecture. Appendix F provides the table of ASCII characters. Appendix G lists resources for assembler shareware, and electronics parts. Appendix H contains data sheets for the 8051 and other IC chips.
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/OPORT 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